Patent Publication Number: US-11657105-B2

Title: Automated networking graph mining and visualization

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a Continuation Application of U.S. patent application Ser. No. 12/780,522, filed on May 14, 2010 by Nie et al., and entitled “AUTOMATED SOCIAL NETWORKING GRAPH MINING AND VISUALIZATION” and claims priority to U.S. patent application Ser. No. 12/780,522. 
    
    
     BACKGROUND 
     Many social networking applications have come on-line on the Internet in recent years to allow people to connect both socially and professionally. Typically such social networking applications require a user to create a user identification (ID) and password and to identify their friends in order to create a profile. However, many Web pages, such as news sites, blogs, reviews and so forth, on the World Wide Web or Internet, describe the social activities of people and other entities, even though this information is not listed on social networking application sites. 
     Additionally, although many social networking applications exist, there are not very many ways that the social connections or relationships between people and other entities that can readily be determined and viewed. 
     SUMMARY 
     This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. 
     The automated social networking graph mining and visualization technique described herein mines social connections and allows visualization of social networking relationships from general (not necessarily social-application specific) Web pages. 
     More specifically, in one embodiment, the automated social networking graph mining and visualization technique automatically mines and lays out the social networking graph of entities. An entity can be, for example, a person, an organization or even a key word. The technique uses the distances between an entity&#39;s name and related entities names on one or more Web pages to determine connections between entities and the strength of these connections. 
     In the mining process, the inputs are general Web pages. People&#39;s or other entities&#39; names and the social connections among them are automatically extracted and integrated. For each entity&#39;s name, its social networking graph is defined as a combination of the set of names which are connected to the entity&#39;s name in one or more Web pages, and the set of the social connections among those connected entities&#39; names identified from the Web. These social connections can be weighted by a relationship ranking procedure. 
     In one embodiment, the social networking graph mining and visualization technique can use a layout procedure to generate a two-dimensional (2-D) social networking graph around a person&#39;s or other entity&#39;s name. In one embodiment of the technique, the layout is automatically generated by using a force-directed model and an energy reduction process. In this layout, the social connection weight is represented by the distance between its two ends. The shorter the distance is, the larger the connection weight is. Also, in one embodiment, the layout procedure clusters the people&#39;s or other entities&#39; names that are closely connected to each other together. 
    
    
     
       DESCRIPTION OF THE DRAWINGS 
       The specific features, aspects, and advantages of the disclosure will become better understood with regard to the following description, appended claims, and accompanying drawings where: 
         FIG.  1    is an exemplary architecture for employing one exemplary embodiment of the automated social networking graph mining and visualization technique described herein. 
         FIG.  2    depicts a flow diagram of an exemplary process for employing the automated social networking graph mining and visualization technique. 
         FIG.  3    depicts a flow diagram of an exemplary process for creating a social networking graph according to one exemplary embodiment of the automated social networking graph mining and visualization technique. 
         FIG.  4    depicts an exemplary social networking graph created by one exemplary embodiment of the automated social networking graph mining and visualization technique. 
         FIG.  5    depicts a graphical user interface employed in one exemplary embodiment of the automated social networking graph mining and visualization technique. 
         FIG.  6    is a schematic of an exemplary computing device which can be used to practice the automated social networking graph mining and visualization technique. 
     
    
    
     DETAILED DESCRIPTION 
     In the following description of the automated social networking graph mining and visualization technique, reference is made to the accompanying drawings, which form a part thereof, and which show by way of illustration examples by which the automated social networking graph mining and visualization technique described herein may be practiced. It is to be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the claimed subject matter. 
     1.0 Automated Social Networking Graph Mining and Visualization Technique. 
     The following sections provide an overview of the automated social networking graph mining and visualization technique, as well as an exemplary architecture, processes and a user interface for employing the technique. 
     1.1 Overview of the Technique 
     Social networking has received much attention recently. Social networking applications and services like Facebook and Twitter allow users to grow their own private social network. However, the Internet actually contains public social networks underlying the text in general Web pages. For example, Web pages that describe social activities provide implicit social connections among the people or entities mentioned on these pages. These public implicit social connections can be viewed as a huge social networking graph. Little work has been done to automatically identify and present the social connections among people and other entities from Web pages that were not designed specifically for social networking applications 
     In one embodiment, the automated social networking graph mining and visualization technique automatically identifies social networking connections from general Web pages and provides a social networking graph in a 2-D layout that allows a viewer to easily identify the connections between people or entities in the graph, as well as the strengths of these connections. 
     In one embodiment, the technique creates a 2-D visualization layout that provides a specific entity&#39;s social networking graph as a set of vertices (names) and edges (social connections) arranged in a radial layout based on the connections and strengths of connections between the entity and other entities. The social graph&#39;s owner (e.g., the entity for which the graph is generated) is placed in the center. With the mining process and the layout process described above, the social networking graph from the Web is automatically generated and visualized. 
     1.2 Exemplary Architecture. 
       FIG.  1    provides an exemplary architecture  100  for employing one embodiment of the automated social networking graph mining and visualization technique. As shown in  FIG.  1   , the architecture  100  employs a social networking graph mining and visualization module  102  that resides on a computing device  600 , which will be discussed in greater detail with respect to  FIG.  6   . 
     The social networking graph mining and visualization module  102  operates to mine a social networking graph  104  and present it to a user on a display  106  which a user  108  can manipulate via a user interface  110 . Web pages  112  are input into the social networking graph mining and visualization module  102 . A Web page visual parser  114  parses Web page content from each of the Web pages input into information blocks  116 . The information blocks  116  are input into a name extractor  118 , which recognizes entities&#39; names from information blocks. These entities could be, for example, people, organizations or key words. 
     The information blocks  120  with entities&#39; names tagged are input into a social connection ranker  122  that determines and ranks the one or more connections between entities identified in the tagged information blocks  116 . The social connection ranker  122  also identifies the strengths of the connections and assigns weights to them. One exemplary procedure for determining the ranking will be discussed in greater detail later. The social connection ranker  122  outputs the ranked entities&#39; names and their connection weights  124 . These connection weights  124  are input into a social connection integrator  126  that integrates all of the ranked entities&#39; names and their connection weights  124  and creates and outputs a social networking graph  104  on the display  106  using a force directed model. Once portions of the social networking graph  104  are displayed on the display  106 , a user  108  can manipulate the social networking graph  104  to show other portions of it via a user interface  110 , which will be discussed in greater detail later. 
     1.3. Exemplary Processes Employed by the Automated Social Networking Graph Mining and Visualization Technique. 
     The following paragraphs provide descriptions of exemplary processes for employing the automated social networking graph mining and visualization technique. It should be understood that some in some cases the order of actions can be interchanged, and in some cases some of the actions can even be omitted. 
     1.3.1 Automated Social Networking Graph Mining. 
     A high level flow diagram of a process for employing one embodiment of the automated social networking graph mining and visualization technique is shown in  FIG.  2   . This embodiment of the technique mines social connections and their strengths from general Web pages. As shown in  FIG.  2   , block  202 , these Web pages are input into the process. These input Web pages can be found, for example, by a Web crawler crawling the Internet. 
     The content of each of the input Web pages is parsed into information blocks, as shown in block  204 . For example, a visual parser that identifies blocks of text or other contiguous blocks of data can be used to parse the content of the Web pages. Various conventional techniques can be used to identify and parse this text or other contiguous blocks of data. The names of people or entities found in the information blocks are then identified, as shown in block  206 . For example, this can be done by a conventional name finder. Here a conventional name finder refers to any computer algorithm that can automatically find an entity&#39;s name from the information blocks. 
     As shown in block  208 , the social connections among the entities&#39; names in the information blocks are then ranked. In one embodiment of the technique, the ranking considers the position of the names and the surrounding text in the information blocks (e.g., the positions of the names and the particular distance or numbers of words separating the names in the text). The closer two names are to each other, the stronger the strength of the connection is considered. Details regarding the ranking procedure employed by one embodiment of the technique are given later. The ranked social connections from all information blocks are then integrated to determine the strength of the social connections between entities found on the Web pages, as shown in block  210 . In one embodiment of the social networking graph mining and visualization technique, the integration considers the frequency with which the same set of names are found on a Web page in addition to the closeness of the names in an information block in determining the strength of the connections found for each information block. The strengths of the social connections can then be used for various purposes, such as, for example, determining who someone&#39;s friends are, or for graphing these social connections to provide a visual aid in determining the strength of social connections between people or other entities, as shown in block  212 . 
     1.3.2 Visualizing Social Connections. 
       FIG.  3    provides a flow diagram of one exemplary process  300  employed by the automated social networking graph mining and visualization technique in order to visualize social connections. In this embodiment of the technique, the social connections among people&#39;s/entities&#39; names extracted from general Web pages are represented in the form of a 2-D graph with a set of vertices representing names, and a set of edges representing social connections. A force-directed model is used to represent the 2-D graph and an energy minimization procedure is used to substantially optimize or enhance the layout the 2-D graph. 
     As shown in block  302 , a list of ranked social connections is input. A social graph&#39;s owner (the person for which the graph is displayed) is placed in the center of the 2D graph as a center vertex, as shown in block  304 . Vertices representing names of people or other entities with social connections to the social graph&#39;s owner are placed in difference orbits around the center vertex (orbits around the center vertex based on ranking), as shown in block  306 . The shorter the orbit&#39;s radius is, the stronger the social connection between the vertex in the orbit and the center vertex is. One orbit around the center vertex is created for each of the social connections, with the vertex (entity) with the strongest social connection to the owner being closest to the center vertex. As shown in block  308 , the vertices can then be clustered into different clusters according to the connectivity between the vertices (e.g., clustered in accordance with the connections between them and an energy minimization procedure which will be described in greater detail below). The vertices in the same cluster (e.g., those vertices that have more than one connection between them) are placed close to each other. The clusters of vertices are also placed so that clusters of vertices do not overlap each other, as shown in block  310 . As shown in block  312 , a force-directed model is then used to substantially optimize the uniformity of the layout of the 2D graph. 
       FIG.  4    provides an example of the 2D graph layout  400  produced by one embodiment of the technique. In this embodiment of the social networking graph mining and visualization technique, a force-directed model substantially optimizes the layout to be uniform by employing a set of forces and an energy minimization procedure: 
     1) A repulsive force  402  between each two vertices (an example of which is shown in  FIG.  4   ); 
     2) An attractive force  404  along the edges (e.g., between the social connections between the vertices  402 ); 
     3) A repulsive force  406  between adjacent orbits; and 
     4) Unpenetratable boundaries  408  that are modeled to isolate the clusters that have no connection between each other. 
     5) Each of the objects in the graph, for example, each vertex, edge, orbit and the unpenetratable boundary, are either radially/tangentially free or both free so that can move according to a force of the force-directed model. 
     Hence, there are four kinds of different forces in the force-directed model at each vertex: 
     The attractive force  404  along the edges {right arrow over (f)} 1 (i,j)=d i,j   2 ; 
     the repulsive force  402  between each to vertices 
                   f   →     2     ⁡     (     i   ,   j     )       ≡       c   2       d     i   ,   j     2             
the repulsive force  406  between adjacent orbits
 
                     f   →     3     ⁡     (       O   k     ,     O     k   -   1         )       ≡       c   3       d     k   ,     k   -   1             ;         
and
 
the unpenetratable boundaries
 
                   f   →     4     ⁡     (     i   ,     u   m       )       =     {           -       c   4       θ     i   ,     U   m             ⁢     θ     i   ,       U   m     &gt;         ⁢   τ           +   ∞     ⁢           ⁢     θ     i   ,     U   m           ≤   τ       ;             
where i, j represents the i-th vertex and j-th vertex; d represents the distance; O k  represents the k-th orbit; U m  represents the m-th unpenetratable boundary; C 1,2,3  represent constants; θ represents the positive intersection angle of the line, which goes through the vertex and the center vertex, and the unpenetratable boundary and τ represents a constant threshold. Given the definitions above, the aggregated force at one vertex is
 
                   F   →     i     ⁡     (   Placement   )       =         ∑     ∀         j   i     ⁡     (     i   ,   j     )       ∈   Edges         ⁢         f   →     1     ⁡     (     i   ,   j     )         +       ∑     j   ≠   i       ⁢         f   →     2     ⁡     (     i   ,   j     )         +         f   →     3     ⁡     (       O   k     ,     O     k   -   1         )       +       ∑   m     ⁢         f   →     4     ⁡     (     i   ,     U   m       )                 
When the forces are balanced at one vertex, the aggregated force at that vertex is zero. Therefore, the technique seeks to minimize a sum of aggregated force(s) of all of the vertices. The layout algorithm then finds a proper placement of the vertices where
 
             Placement   =     arg   ⁢           ⁢   min   ⁢           ⁢       ∑   i     ⁢            F   →     i                    
The
 
               ∑   i     ⁢            F   →     i                
can be regarded as the Energy of the layout so that the layout algorithm actually reduces the total energy of the force model. In one embodiment of the technique, the energy-reduction process is performed in an iterative way. In each iteration, each vertex is moved along the direction of the aggregated force. The process stops when the energy converges to a certain level. More particularly, as the energy goes down, the total displacement of the vertices also decreases. The technique sets a constant threshold value. When the total displacement is less than this value, the iteration process stops. Until that point, the vertices keep moving in each iteration, that is, their position changes.
 
     1.3.3 Ranking Social Connections. 
     As discussed previously, some embodiments of the social networking graph mining and visualization technique employ a ranking procedure to rank the social connections between entities. The following section gives additional information on the ranking procedure used in one embodiment of the technique. 
     The ranking employed by one embodiment of the technique can be described as follows. Given a list of entities&#39; names X={x 0 , x 1 , . . . } and a list of Web pages W={w 0 , w 1 , . . . }, each Web page has information blocks B={b 0 , b 1 , . . . }, if x i , x j  occurred in one information block, the relationship weight between these two names in a information block is defined as
 
 R   b ( x   i   ,x   j )= R   d   ·R   c  
 
where R d  represents the distance measure of the relationship and R c  represents the context measure of the relationship. The definition of these two measures are as follows.
 
                 R   d     ⁡     (       x   i     ,     x   j       )       =     e   ⁡     (     1   -         d   ⁡     (       x   i     ,     x   j       )       -   1     10       )                     R   c     =       (       x   i     ,     x   j       )     =       1.0   ⁢           ⁢     K   ⁡     (       x   i     ,     x   j       )         =   ϕ                       ∏   K     ⁢       k   m     ⁢     K   ⁡     (       x   i     ,     x   j       )           =     {     k   m     }           
Here d(x i , x j ) represents the character distance between x i , x j  in the information block. If x i , x j  do not show up together in the information block, d(x i , x j ) is infinite. That is, R d  equals zero. The variable K(x i , x j ) represents a relationship keyword set, such as “wife”, “friend” etc, that has been discovered between the two names in the information block. The variable k m  represents the predefined keyword weight, k m &gt;1.0. In one embodiment, each relationship keyword has a predefined weight, for example, “wife” has weight of 2.0, “friend” has weight of 1.6. K(x i , x j ) is a set of weights that correspond to the relationship keywords for the two names. If there is no relationship keywords for x i  and x j , K(x i , x j ) is an empty set which is represented by “φ”. Otherwise, K(x i , x j ) will have one or more values, such as {1.6, 2.0, . . . }.
 
     In one embodiment, the keyword set is manually collected. When a keyword from this set exists in an information block with two entity names, a procedure is used to decide whether this keyword is used to describe the relationship between the two entity names. Then, the global relationship weight of x i , x j  is defined as: 
               R   ⁡     (       x   i     ,     x   j       )       =       ∑   W     ⁢       ∑   B     ⁢       R   b     ⁡     (       x   i     ,     x   j       )                 
The ranking procedure can thus compute the relationship weights between all entities in the information blocks and rank the entities and their associated relationship weights accordingly. It should be noted, however, that other ranking procedures could be used to create the ranked list of social connections.
 
     Note that a social graph is defined as G=(V, E), where V is the vertex set and E is the edge set. Each unique entity&#39;s/person&#39;s name discovered from the Web is a vertex in the graph, that is, V={x 0 , x 1 , . . . }. Between each x i , x j  pair that has non-zero weight, an edge e ij  is defined. Then, E={e ij }, where R(x i , x j )&gt;0. 
     1.4 Exemplary User Interface: 
       FIG.  5    shows one exemplary user interface  500  for displaying and manipulating a social graph in accordance with one embodiment the automated social networking graph mining and visualization technique. In this embodiment, a user can search for an entity&#39;s name (e.g., a person, an organization or a key word) by entering the name (e.g., “C” in this example) in a search box  502 . The entity&#39;s name (e.g., C) is shown as a center vertex  504  and other connected entities are shown as vertices  506  around the center vertex  504 . The strength of the social connections between the vertices  506  are shown as edges  508 . The shorter the edge  508  between two vertices  506 , the stronger the relationship is between the entities represented by the connected vertices. The longer the edge  508  between two vertices  506 , the weaker the relationship is between the entities represented by the connected vertices. In one embodiment, the color of the vertices  506 , and optionally the background behind them, varies from 0° to 360° in a rainbow-like color sequence (e.g., red  510 , orange  512 , yellow  514 , green  516 , blue  518 , and purple  520 ). Additionally, the more close the nodes or vertices  506  are, the more similar the colors of the nodes (and optionally the background behind the nodes) are. In one embodiment, the node/vertex color changes according to the polar coordinates from 0° to 360°. 
     In one embodiment, the exemplary user interface  500  also provides animation. For example, when a user clicks (e.g., selects) one vertex  506  with a user input device, the whole social graph/map  522  changes to a new map centered on the clicked on (e.g., selected) vertex. During the switching transition, there are three kinds of animations: 
     a) originally displayed vertices which will not be on the new map are no longer displayed. 
     b) originally displayed vertices which will still be in the new map will move to a new position; and 
     c) new vertices which were not in the original map will appear and move to position. 
     The user interface  500  can also include a curser control  524  to allow a user to move around the map  522  to display additional portions of the graph. A user can also select various vertices  506  to find out additional information about them. For example, in one embodiment, if a user selects a vertex with a mouse or other input device, a pop-up window or display screen with additional information about the entity associated with the selected vertex will be displayed. 
     2.0 The Computing Environment 
     The automated social networking graph mining and visualization technique is designed to operate in a computing environment. The following description is intended to provide a brief, general description of a suitable computing environment in which the automated social networking graph mining and visualization technique can be implemented. The technique is operational with numerous general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable include, but are not limited to, personal computers, server computers, hand-held or laptop devices (for example, media players, notebook computers, cellular phones, personal data assistants, voice recorders), multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like. 
       FIG.  6    illustrates an example of a suitable computing system environment. The computing system environment is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the present technique. Neither should the computing environment be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment. With reference to  FIG.  6   , an exemplary system for implementing the automated social networking graph mining and visualization technique includes a computing device, such as computing device  600 . In its most basic configuration, computing device  600  typically includes at least one processing unit  602  and memory  604 . Depending on the exact configuration and type of computing device, memory  604  may be volatile (such as RAM), nonvolatile (such as ROM, flash memory, etc.) or some combination of the two. This most basic configuration is illustrated in  FIG.  6    by dashed line  606 . Additionally, device  600  may also have additional features/functionality. For example, device  600  may also include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Such additional storage is illustrated in  FIG.  6    by removable storage  608  and non-removable storage  610 . Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Memory  604 , removable storage  608  and non-removable storage  610  are all examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by device  600 . Computer readable media include both transitory, propagating signals and computer (readable) storage media. Any such computer storage media may be part of device  600 . 
     Device  600  also can contain communications connection(s)  612  that allow the device to communicate with other devices and networks. Communications connection(s)  612  is an example of communication media. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal, thereby changing the configuration or state of the receiving device of the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. The term computer readable media as used herein includes both storage media and communication media. 
     Device  600  may have various input device(s)  614  such as a display, keyboard, mouse, pen, camera, touch input device, and so on. Output device(s)  616  devices such as a display  622 , speakers, a printer, and so on may also be included. All of these devices are well known in the art and need not be discussed at length here. 
     The automated social networking graph mining and visualization technique may be described in the general context of computer-executable instructions, such as program modules, being executed by a computing device. Generally, program modules include routines, programs, objects, components, data structures, and so on, that perform particular tasks or implement particular abstract data types. The automated social networking graph mining and visualization technique may be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices. 
     It should also be noted that any or all of the aforementioned alternate embodiments described herein may be used in any combination desired to form additional hybrid embodiments. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. The specific features and acts described above are disclosed as example forms of implementing the claims.