# Patent

## Title
Methods for clustering networks based on topology discovery and devices thereof

## Abstract

A method, non-transitory computer readable medium, and device for clustering a network includes obtaining information regarding a network including relationship information for a plurality of nodes of the network. A weight value for each of a plurality of directly connected pairs of the plurality of nodes is determined, wherein the directly connected pair are identified based on the relationship information. At least one topology score is generated for each of the plurality of nodes. A plurality of clusters is generated using the topology scores and one of the plurality of nodes as a seed node for each of the clusters. At least the seed node used to generate at least a subset of the plurality of clusters is output.

## Background
RELATED APPLICATION
This application claims the benefit of Indian Patent Application Filing No. 3781/CHE/2012, filed Sep. 12, 2012, which is hereby incorporated by reference in its entirety.
FIELD
This technology generally relates to methods and devices for clustering weighted networks based on topology discovery and, more particularly, for more effectively identifying key influencers in a network, such as a social network.
BACKGROUND
Many social networks have become very large and widely used and are increasingly leveraged for information, including characteristics of users, such as for placement of advertising for products or services. Social networks uniquely represent relationships and activities among individuals, communities, and organizations and access to social networks is pervasive in many segments of society as well as available on most computing devices. Accordingly, social networks are generally effective platforms for supporting such advertising.
However, methods for clustering, profiling, classifying, and/or modeling social networks, as well as discovering and analyzing topologies represented therein, are often ineffective. For example, current clustering methods for networks do not consider topology discovery or how various topologies describe the nature of communications or message passing among nodes in the networks.
Additionally, current clustering methods consider social networks to be unweighted, thereby assuming equality among each relationship in the network. By considering networks to be unweighted and/or assigning equal weight to each edge connecting network nodes, current methods for clustering social networks ignore the strength of relationships among nodes, which is vital information. Relationship strength information is particularly useful for identifying key influencers, such as for marketing or promotional purposes
SUMMARY
A method for clustering a network includes obtaining, at a network clustering computing device, information regarding a network including relationship information for a plurality of nodes of the network. A weight value for each of a plurality of directly connected pairs of the plurality of nodes is determined, with the network clustering computing device, wherein the directly connected pair are identified based on the relationship information. At least one topology score is generated, with the network clustering computing device, for each of the plurality of nodes. A plurality of clusters is generated, with the network clustering computing device, using the topology scores and one of the plurality of nodes as a seed node for each of the clusters. At least the seed node used to generate at least a subset of the plurality of clusters is output, with the network clustering computing device.
A non-transitory computer readable medium having stored thereon instructions for clustering a network including machine executable code which when executed by at least one processor, causes the processor to perform steps including obtaining information regarding a network including relationship information for a plurality of nodes of the network. A weight value for each of a plurality of directly connected pairs of the plurality of nodes is determined, wherein the directly connected pair are identified based on the relationship information. At least one topology score is generated for each of the plurality of nodes. A plurality of clusters is generated using the topology scores and one of the plurality of nodes as a seed node for each of the clusters. At least the seed node used to generate at least a subset of the plurality of clusters is output.
A network clustering computing device includes one or more processors and a memory coupled to the one or more processors which are configured to execute programmed instructions stored in the memory including obtaining information regarding a network including relationship information for a plurality of nodes of the network. A weight value for each of a plurality of directly connected pairs of the plurality of nodes is determined, wherein the directly connected pair is identified based on the relationship information. At least one topology score is generated for each of the plurality of nodes. A plurality of clusters is generated using the topology scores and one of the plurality of nodes as a seed node for each of the clusters. At least the seed node used to generate at least a subset of the plurality of clusters is output.
This technology provides a number of advantages including providing more effective methods, non-transitory computer readable medium, and devices to cluster networks by analyzing network topologies as well as the strength of relationships among nodes. With this technology, edge weights representing the strength of the relationship of connected nodes can be determined and clusters of a network, as well as key influencer(s) within clusters, can be identified based on topology and one or more selectable clustering parameters.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is an exemplary environment with an exemplary network clustering computing device; and
FIG. 2 is a flow chart of an exemplary method for clustering a network.



DETAILED DESCRIPTION
An exemplary environment 10 is illustrated in FIG. 1 as including a client computing device 12, a database server computing device 14, and a network clustering computing device 16 which are coupled together by communications networks 18(1)-18(n), which may include one or more local area networks and/or wide area networks, although other types and numbers of devices and components in other topologies could be used. This technology provides a number of advantages including providing more effective methods, non-transitory computer readable medium, and devices for clustering networks to identify significant nodes, communities, and/or key influencers based on network topology, the strength of relationship among nodes, and one or more selectable clustering parameters.
The client computing device 12 in the environment 10 includes a central processing unit (CPU) 20 including one or more processors, a memory 22, and an interface device 24 or I/O system, which are coupled together by a bus 26 or other link, although other numbers and types of devices, elements, and components in other configurations can be included. The client computing device 12 is coupled to the network clustering computing device 16 by one or more communication networks 18(1) in order to send information to and/or retrieve information from the network clustering computing device 16, for example, although this environment 10 can include other numbers and types of systems, devices, components, and elements in other configurations, such as multiple numbers of each of these devices.
The network clustering computing device 16 includes at least one CPU 28 including one or more processors, a memory 30, and an interface device 32 or I/O system, which are coupled together by a bus 34 or other link, although other numbers and types of systems, devices, components, and elements in other configurations and locations can be used. The CPU 36 in the network clustering computing device 16 executes a program of stored instructions for one or more aspects of the present technology as described and illustrated by way of the examples herein, although other types and numbers of processing devices and logic could be used and the CPU 36 could execute other numbers and types of programmed instructions.
The memory 30 in the network clustering computing device 16 stores these programmed instructions for one or more aspects of the present technology as described and illustrated herein, although some or all of the programmed instructions could be stored and executed elsewhere. A variety of different types of memory storage devices, such as a random access memory (RAM) or a read only memory (ROM) in the device or a floppy disk, hard disk, CD ROM, DVD ROM, or other computer readable medium which is read from and written to by a magnetic, optical, or other reading and writing system that is coupled to the CPU 28, can be used for the memory 30. In some examples, the memory 30 includes a weight computation module 36, a topology score computation module 38, a cluster generation and verification module 40, and/or a graphical presentation module 42 comprising programmed instructions for one or more aspects of the present invention as described and illustrated herein, although the memory 30 can comprise other types and numbers of systems, devices, and elements in other configurations which store other data or modules.
The interface device 32 in the network clustering computing device 16 is configured to operatively couple and communicate between the network clustering computing device 16, the client computing device 12, and the database server computing device 14, using the communication networks 18(1)-18(n). By way of example only, the communications could be based on TCP/IP over Ethernet and industry-standard protocols, including NFS, CIFS, SOAP, XML, LDAP, WBEM, WMI, and SNMP, although other types and numbers of connections, each having their own communications protocols, can be used.
The database server computing device 14 can include a CPU 44 including one or more processors, a memory 46, and an interface device 48 or I/O system, which are coupled together by a bus 50 or other link, although other numbers and types of devices, elements, and components in other configurations can be included. The CPU 44 in the database server computing device 14 may execute a program of stored instructions for one or more aspects of the present technology as described and illustrated herein. The memory 46 in the database server computing device 14 stores these programmed instructions, although some or all of the programmed instructions could be stored and executed elsewhere. The database server computing device 14 can be configured to store network information including relationship information of a plurality of nodes or users of the network, such as a social network by way of example.
It is to be understood that the devices and systems of the examples described herein are for exemplary purposes, as many variations of the specific hardware and software used to implement the examples are possible, as will be appreciated by those skilled in the relevant art(s). Furthermore, each of the systems of the examples may be conveniently implemented using one or more general purpose computer systems, microprocessors, digital signal processors, and micro-controllers, programmed according to the teachings of the examples, as described and illustrated herein, and as will be appreciated by those ordinary skill in the art.
In addition, two or more computing systems or devices can be substituted for any one of the systems in any embodiment of the examples. Accordingly, principles and advantages of distributed processing, such as redundancy and replication also can be implemented, as desired, to increase the robustness and performance of the devices and systems of the examples. The examples may also be implemented on computer device(s) that extend across any suitable network using any suitable interface mechanisms and communications technologies, including by way of example only telecommunications in any suitable form (e.g., voice and modem), wireless communications media, wireless communications networks, cellular communications networks, G3 communications networks, Public Switched Telephone Network (PSTNs), Packet Data Networks (PDNs), the Internet, intranets, and combinations thereof.
The examples may also be embodied as a non-transitory computer readable medium having instructions stored thereon for one or more aspects of the present technology as described and illustrated by way of the examples herein, as described herein, which when executed by a processor, cause the processor to carry out the steps necessary to implement the methods of the examples, as described and illustrated herein.
An exemplary method for clustering a network will now be described with reference to FIGS. 1-2. In step 200, the network clustering computing device 16 obtains information regarding a network including a relationship of a plurality of participants of the network. In one example, the relationship information is stored in a database, such as a database maintained by the database server computing device 14 by way of example only. The relationship information can be extracted by the network clustering computing device 16 directly from the database server computing device 14 or the relationship information can be obtained from a third party. Accordingly, the resulting data set includes a unique identifier for each member of the network, or node, and the relationship of each node to other nodes, if any. In one example, the network is a social network and the relationship information includes, for each member or member profile, an identification of the member's friends, followers, and/or associated or linked profiles, although other types of networks and other types of relationship information can be used.
In step 202, the network clustering computing device 16 executing the weight computation module 36 determines a weight value for each of a plurality of connected pairs of the plurality of nodes. Each weight value corresponds to an edge of the network and each edge connects a pair of nodes. A pair of nodes may be connected based on multiple shared relationships and the weight values represent the strength of the relationship of each pair of connected nodes.
In one example of determining edge weights, a digital bibliography library project (DBLP) database storing information regarding computer science publications is used. In this example, the database includes relationship information of authors of the publications, each of which is represented by a node. Authors can be linked based on co-authoring a paper or authoring a paper including a reference to a paper by another author, although other types of links can be used.
Accordingly, a weight value can be calculated for each edge based in this example on the number of publications in which the two nodes connected by the edge are authors as well as the total number of authors of those publications. Additionally, in this example a weight value can be calculated for each edge based on the number of publications in which the two nodes connected by the edge reference each other in publications in which they each are an author, respectively, as well as the total number of references in those publications. The coauthorship and reference weight values can be combined to form the edge weight values, although other types and numbers of values can be used. Exemplary computations for determining the edge weight values in this exemplary DBLP network are shown below in Table 1.







TABLE 1







Notations:











 
Let ai and aj be two authors.



Wij = the weight of the link between ai and aj



wijC = the weight of the link between ai and aj



due to coauthorship



wijR = the weight of the link between ai and aj



due to references


 







  
    δ
    i
    k
  
  =
  
    {
    
      
        
          
            1
            ⁢
            
              
            
            ⁢
            if
            ⁢
            
              
            
            ⁢
            
              a
              i
            
            ⁢
            
              
            
            ⁢
            is
            ⁢
            
              
            
            ⁢
            an
            ⁢
            
              
            
            ⁢
            author
            ⁢
            
              
            
            ⁢
            of
            ⁢
            
              
            
            ⁢
            paper
            ⁢
            
              
            
            ⁢
            k
          
        
      
      
        
          
            0
            ⁢
            
              
            
            ⁢
            otherwise
          
        
      
    
  






 



nk = number of authors of paper k


 







  
    r
    ij
    k
  
  =
  
    {
    
      
        
          
            1
            ⁢
            
              
            
            ⁢
            if
            ⁢
            
              
            
            ⁢
            
              a
              i
            
            ⁢
            
              
            
            ⁢
            gives
            ⁢
            
              
            
            ⁢
            reference
            ⁢
            
              
            
            ⁢
            to
            ⁢
            
              
            
            ⁢
            
              a
              j
            
            ⁢
            
              
            
            ⁢
            in
            ⁢
            
              
            
            ⁢
            paper
            ⁢
            
              
            
            ⁢
            k
          
        
      
      
        
          
            0
            ⁢
            
              
            
            ⁢
            otherwise
          
        
      
    
  






 



Rik = number of references ai uses in paper k










Formulas:









  
    w
    ij
    c
  
  =
  
    
      ∑
      k
    
    ⁢
    
      
        
          δ
          i
          k
        
        ·
        
          δ
          j
          k
        
      
      
        
          n
          k
        
        -
        1
      
    
  






 






  
    w
    ij
    R
  
  =
  
    {
    
      
        
          
            
              0
              ⁢
              
                
              
              ⁢
              if
              ⁢
              
                
              
              ⁢
              
                
                  ∑
                  k
                
                ⁢
                
                  r
                  ij
                  k
                
              
            
            =
            
              
                0
                ⋀
                
                  
                    ∑
                    l
                  
                  ⁢
                  
                    r
                    ji
                    l
                  
                
              
              =
              0
            
          
        
      
      
        
          
            
              
                
                  [
                  
                    
                      (
                      
                        
                          ∑
                          k
                        
                        ⁢
                        
                          r
                          ij
                          k
                        
                      
                      )
                    
                    +
                    1
                  
                  ]
                
                [
                
                  
                    (
                    
                      
                        ∑
                        l
                      
                      ⁢
                      
                        r
                        ji
                        l
                      
                    
                    )
                  
                  +
                  1
                
                ]
              
              
                
                  (
                  
                    
                      ∑
                      k
                    
                    ⁢
                    
                      R
                      i
                      k
                    
                  
                  )
                
                ⁢
                
                  (
                  
                    
                      ∑
                      l
                    
                    ⁢
                    
                      R
                      j
                      l
                    
                  
                  )
                
              
            
            ⁢
            
              
            
            ⁢
            otherwise
          
        
      
    
  






 


wij = wijC + wijR


 






  
    d
    ij
  
  =
  
    
      (
      
        link
        ⁢
        
          
        
        ⁢
        distance
      
      )
    
    =
    
      1
      
        w
        ij
      
    
  













Optionally, in order to normalize the edge weight values an inverse of the total weight values, referred to herein and in Table 2 as the link distance (dij or dcv) can be calculated and used as described and illustrated below with respect to step 206. Accordingly, the link distance values will be bound between 0 and 1 and smaller link distance values for an edge represent a smaller distance, or relatively strong relationship, of the nodes connected by the edge. The DBLP database and associated network has been used herein for exemplary purposes, although other databases, networks, and edge weight determinations representing the strength of the relationship of the connected nodes can also be used.
In step 204, the network clustering computing device 16 executing the topology score computation module 38 generates at least one topology score for each of the plurality of nodes. Optionally, in order to generate the topology scores, the network clustering computing device 16 executing the topology score computation module 38 first generates at least one value for each of a plurality of centrality parameters for each of the plurality of nodes. The centrality parameters can include one or more of betweenness, closeness, degree, clustering coefficient, or eccentricity, as discussed in more detail below, although other centrality parameters can be utilized including eigenvalue and alpha centrality parameters, for example.
The value of the betweenness centrality parameter (b) for each node of a network is a measure of the number of vertices connecting indirectly to a specified vertex in the network or the extent to which a node lies between other nodes in the network. The betweenness centrality parameter takes into account the connectivity of the node's neighbors, resulting in a higher value for nodes which bridge clusters, communities, and/or groups. The value of the betweenness centrality parameter reflects the number of nodes a node is connecting indirectly through its direct links. Accordingly, the value of the betweenness centrality parameter is increased for nodes that facilitate connectivity among distant nodes of the network. Additionally, a node that resides on many shortest paths when compared to other of the nodes has a higher associated value for the betweenness centrality parameter.
In one example, for a graphical representation of a network G:=(V,E) with n vertices (v) or nodes, the betweenness b(v) for vertex v can be calculated by the following formula: b(v)=ΣsεV, tεV, s≠t (σst(v)/σst), where σst is the number of shortest paths from s to t, and σst(v) is the number of shortest paths from s to t that pass through vertex v. One exemplary algorithm for determining the value of the betweenness centrality parameter for a plurality of nodes is disclosed in U. Brandes, “A Faster Algorithm for Betweenness Centrality,” Journal of Mathematical Sociology, vol. 25 (1994), 2001, pp. 163-177, which is incorporated herein by reference.
The value of the closeness centrality parameter (cl) for each node of a network is a measure of the efficiency of each node in spreading information to all the other nodes which are reachable in the network or the degree a node is directly or indirectly near all other nodes in a network. The value of the closeness centrality parameter for a node reflects the ability of the node to access information through other network members.
In one example, the value of the closeness centrality parameter for each node of a network is determined as the mean geodesic distance, or the shortest path, between a vertex v or node and all other vertices reachable from it: cl(v)=((n−1)/ΣuεV d(v,t)), where d is the size of the network's connectivity component V reachable from v or the cardinality of vertex set V. Exemplary algorithms for determining the value of the closeness centrality parameter for a plurality of nodes are disclosed in S. Y. Chan, I. X. Leung, and P. Li'o, “Fast Centrality Approximation in Modular Networks”, Proc. of the 1st ACM International Workshop on Complex Networks meet Information and Knowledge Management (CNIKM '09), ACM, 2009, pp. 31-38 and D. Eppstein and J. Wang, “Fast Approximation of Centrality,” Journal of Graph Algorithms and Applications, vol. 8(1), 2004, pp. 39-45, each of which is incorporated herein by reference.
The value of the degree centrality parameter (d) for each node of a network is a measure of the number of connections a node has with its neighbors. Accordingly, in one example, the value of the degree centrality parameter is determined for a node based on the number of nodes in its neighborhood, such as the number of friends or followers of a member of a social network, for example.
The value of the clustering coefficient parameter (cc) for each node of a network is a measure of how close the neighbors of a node are to forming a clique or complete graph or the likelihood that two associates of a node are associates themselves. Accordingly, a relatively high clustering coefficient centrality parameter value indicates that all the neighbors are connected, or nearly connected, by every possible edge between them.
In one example, the clustering coefficient centrality parameter (cc) for a vertex ν or node is determined based on the ratio of the total connections between the vertices within its neighborhood, or direct connections, and the maximum number of links that could possibly exist between them: cc(v)=|{ejk}|/ki(ki−1), where ki represents the number of immediate neighbors of vertex v, ejkεE, and vi and vj are immediate neighbors of vertex v.
The value of the eccentricity centrality parameter (ecc) for each node of a network is a measure of the maximum shortest path length that is possible from a vertex ν or node to all its reachable vertices in the network or how far a node is from the node most distant from it in the network. A maximum shortest path of a node n is a shortest path from n to a node reachable from it that has the largest length among all shortest paths from n to its reachable nodes. The value of the eccentricity centrality parameter is of a node n is, therefore, the length of its maximum shortest path(s): ecc(v)=max(σst), where σst is the number of shortest paths from s to t. Accordingly, a lower eccentricity value may indicate a node is relatively spaced apart from other nodes and may have a lower significance or influencing power.
A summary of exemplary computations for the exemplary centrality parameters described herein is shown below in Table 2.










TABLE 2







Measure
Formulae









Betweenness




  
    b
    ⁡
    
      (
      v
      )
    
  
  =
  
    
      ∑
      
        
          s
          ∈
          V
        
        ,
        
          t
          ∈
          V
        
        ,
        
          s
          ≠
          t
        
      
    
    ⁢
    
      
        
          σ
          st
        
        ⁡
        
          (
          v
          )
        
      
      
        σ
        st
      
    
  







 



Closeness




  
    cl
    ⁡
    
      (
      s
      )
    
  
  =
  
    
      
        ∑
        
          t
          ∈
          
            V
            ⁢
            \
            ⁢
            s
          
        
      
      ⁢
      
        d
        st
      
    
    
      
        
        V
        
      
      -
      1
    
  







 



Degree
d(s) = |Ns |



 



Clustering Coefficient




  
    cc
    ⁡
    
      (
      s
      )
    
  
  =
  
    
      2
      ·
      
        E
        s
      
    
    
      
        
        
          N
          s
        
        
      
      ⁢
      
        (
        
          
            
            
              N
              s
            
            
          
          -
          1
        
        )
      
    
  







 



Eccentricity




  
    e
    ⁡
    
      (
      s
      )
    
  
  =
  
    
      max
      
        t
        ∈
        V
      
    
    ⁢
    
      d
      st
    
  











Notations:



G = (V, E) is an undirected graph, where V denote a set of vertices and E a set of edges.



est ∈ E if there exists an edge between vertices s and t, where s, t ∈ V.



The neighborhood of a vertex s is denoted by Ns, where Ns = {t:est ∈ E}.



Es represents the number of connected pairs among all neighbors of vertex s.



σst represents the number of shortest paths from vertex s to vertex t, whereas σst(v) represents the number of shortest paths from s to t which passes through vertex v.



dst represents the shortest path distance from s to t.






With the centrality parameter values, the network clustering computing device 16 executing the topology score computation module 38 generates at least one topology score for each node which can include a star topology score, a ring topology score, and/or a mesh topology score, although other topology scores can be generated.
In one example, star topology scores are generated for each node based on the following formula: b×d×cl×(1−cc2), where b, d, cl, and cc are the betweenness, degree, closeness, and clustering coefficient centrality parameter values, respectively. Accordingly, the star topology score is directly proportional to the betweenness centrality parameter value, degree centrality parameter value, closeness centrality parameter value, and one minus the square of the clustering coefficient centrality parameter value, thereby more heavily weighting the clustering coefficient centrality parameter.
In one example, ring topology scores are generated for each node based on the following formula: ring topology scores are generated for each node based on the following formula: ecc×cl×d2, where ecc, cl, and d are the eccentricity, closeness, and degree centrality parameter values, respectively. Accordingly, the ring topology score is directly proportional to the eccentricity centrality parameter value, the closeness centrality parameter value, and the square of the degree parameter value, thereby more heavily weighting the degree centrality parameter.
In another example, mesh topology scores are generated for each node based on the following formula: cc×d2×cl/ecc2, where cc, d, cl, and ecc are the clustering coefficient, degree, closeness, and eccentricity parameter values, respectively. Accordingly, the mesh topology score is directly proportional to the cluster coefficient centrality parameter value and the closeness centrality parameter value and inversely proportional to the eccentricity centrality parameter value.
Optionally, in order to normalize the star, ring, and/or mesh topology scores, a logarithm function can be utilized along with the optional weight values. Also optionally, the generated topology scores can be stored in the memory 30 as associated with each corresponding node. While the topology scores identified above, alone or in combination, are useful in resolving certain queries with respect to a network, other topology scores can also be calculated and/or used to analyze the network.
In step 206, the network clustering computing device 16 executing the cluster generation and verification module 40 generates a plurality of clusters. In order to generate the clusters, the network clustering computing device 16 executing the cluster generation and verification module 40 optionally obtains at least one value for at least one clustering parameter. The clustering parameters can include a maximum distance parameter, an overlapping parameter, and/or a threshold topology score parameter, although other clustering parameters can also be used. The clustering parameter values can be selectable or tunable and obtained as input from a user of the client computing device 12 using communication network 18(1). Alternatively, the clustering parameter values can be default values stored in the memory 30. In yet another alternative, the clustering parameter values can be determined from by the network clustering computing device 16 executing the cluster generation and verification module 40 based on one or more characteristics of the network.
In this example, the distance parameter (Dc) represents the maximum allowed distance of the furthest neighbor to node c for purposes of inclusion in a cluster. The overlapping parameter (θ) can be used to generate a minimum required number of overlapping nodes (Rθ) in order for two nodes to be included in the same cluster. Rθ can be calculated as θ×min(|ne(c)|, |ne(v)|), where ne(c) and ne(v) represent the neighborhood of nodes c and v, respectively. The neighborhood of a node can be the nodes having a link distance, as determined as described and illustrated above, to node c that is less than the value of the Dc clustering parameter. The threshold topology score parameter (T) represents the topology score threshold at which a node will not be used as a seed node to generate a cluster and/or at which a node will not be included in a cluster. The threshold topology scores can be an absolute or percentile value. In one example, as described and illustrated below, Dc is the average distance of node c to all other nodes in the network, θ varies for each iteration, as described in more detail below, within a range of θ0−0.3 to θ0+0.3, where θ0 is the average clustering coefficient of the nodes of the network, and T is the tenth percentile of topology scores, although other clustering parameter values can be used.
With the topology scores and the clustering parameter values the network clustering computing device 16 executing the cluster generation and verification module 40 generates the plurality of clusters using one of the plurality of nodes as a seed node for each of the clusters. Accordingly, the network clustering computing device 16 executing the cluster generation and verification module 40 obtains a selection of the topology score(s) that are to be used to generate the clusters. A selection of star, ring, or mesh topology scores, for example, can be obtained as input from a user of the client computing device 12 using communication network 18(1). The user's selection can be based on whether the user would like to identify significant nodes capable of influencing or motivating a large number of other nodes, significant nodes likely to be influential with an increased number of groups of members, or significant nodes likely to be relatively influential with an increased number of active or fully connected communities or components of the network in which case star, ring, or mesh topology scores, respectively, can be used.
Based on the selection of at least one of the topology scores, the nodes can be ranked by the network clustering computing device 16 executing the cluster generation and verification module 40 based on the values of the selected topology score generated and optionally stored in the memory 30 in step 204. Optionally, the topology scores can be used to determine which nodes of the plurality of nodes are used as seed nodes. Accordingly, in one example, each of the nodes having a topology score in the tenth percentile can be used as a seed node to generate a cluster. Alternatively, all of the nodes can be used as seed nodes.
For each of the seed nodes, the network clustering computing device 16 executing the cluster generation and verification module 40 performs a neighborhood testing and merging procedure to determine whether a plurality of nodes can be accepted as a cluster. In one example of such a procedure, the network clustering computing device 16 executing the cluster generation and verification module 40 adds the seed node to a null set representing a cluster (Cl) and then determines the other nodes (v) that can be added to the set to generate the cluster. To determine whether each of the other nodes belongs in the cluster, the distance of each of the other nodes, or link distance, previously calculated based on the edge weight determination in step 202, is compared to the Dc clustering parameter value. If the link distance for each of the other nodes and the seed node is less than or equal to the Dc clustering parameter value, then the number of overlapping nodes in the neighborhood of each seed node and each other node is determined. If the number of overlapping nodes is greater than or equal to the Rθ parameter value for any of the other nodes, then the other node is added to the set representing the cluster.
Optionally, the other nodes can be filtered such that they are only added to the set representing the cluster if their associated topology score(s) (t(v)) satisfy a condition based on the threshold topology score parameter value. The overlap determination, and optionally the topology score determination, is made for each of the other nodes of the network satisfying the distance condition. When all of the other nodes have been tested, the network clustering computing device 16 executing the cluster generation and verification module 40 accepts or rejects the cluster. The verification of each cluster can be based on whether the number of nodes in the generated cluster is greater than or equal to the degree centrality parameter value for the seed node, indicating the cluster includes at least additional nodes beyond those nodes immediately related to the seed node.
The network clustering computing device 16 executing the cluster generation and verification module 40 performs the procedure described above for each of the seed nodes. Optionally, each of the seed nodes for each of the accepted clusters, and/or each of the nodes includes in each of the sets representing the accepted clusters, can be stored in the memory 30.
An exemplary set of steps performed by the network clustering computing device 16 executing the cluster generation and verification module 40 to generate the plurality of clusters in step 206 is set forth in the below pseudocode, where Dc, Rθ, T, ne(c), and ne(v) are determined as discussed above, dcv is the shortest distance between nodes c and v, degree(c) or d(c) is equal to the degree clustering coefficient parameter value for node c, and LT1 and T1 are set variables used for comparison purposes in the procedure.












1:  Set L to be a list of the nodes sorted in descending order of topology


  score of their topology scores


2: Tl = ø


3:  for each c ε L do


4:  LTl = Tl


5:  if c ε Tl then continue


6:  Cl = {c}


7:  Add c to Tl


8:  for each v where dev ≦ Dc do


9:   if|ne(c) ∩ ne(v)| ≧ Re then do


10:    Add v to Cl


11:    Add v to Tl


12:    if t(v) ≧ T then do


13:     Add ne(v) to Cl


14:     Add ne(v) to Tl


15:    end if


16:   end if


17:  end for


18:  if |Tl| − |LTl| > degree(c) then accept Cl as a new cluster


19: end for









In step 208, the network clustering computing device 16 executing the graphical presentation module 42 outputs at least the seed nodes used to generate at least a subset of the plurality of clusters. Optionally, the subset of the plurality of clusters includes only those clusters accepted in step 206. The output can be sent by the network clustering computing device 16 executing the graphical presentation module 42 to the client computing device 12 using the communication network 18(1), to the memory 30, or to another storage location from which it can be subsequently retrieved. Optionally, in examples in which the output is sent to the client computing device 12, the output can be in the form of a network graph representing the accepted clusters and identifying the seed or any other relatively significant nodes.
In some examples, a user of the client computing device 12 can input different clustering parameter values and/or indicate a different topology score to the network clustering computing device 16 and at least step 206 can be repeated with the updated values. Thereby, a user of the client computing device 12 can select or tune the clustering parameters and/or the topology score(s) used in step 206 to potentially alter the composition of the accepted clusters.
In another example, steps 206-208 can be repeated by the network clustering computing device 16 executing the cluster generation and verification module 40 for a plurality of values of θ. In this example, an initial value of θ (θ0) can be determined as the average clustering coefficient of the nodes of the network and steps 206-208 can be repeated for θ values within a range of θ0−0.3 to θ0+0.3, for example, although other ranges can be used. The number of iterations of steps 206-208 can depend on the number of values of θ used, such as determined based on a stored increment/decrement value. Optionally, a set of clusters generated in each iteration of step 206 can be output to the memory 30 in each respective iteration of step 208.
In this example, a set of accepted clusters can be output for each iteration and the plurality of sets of clusters can be analyzed, by the network clustering computing device 16 executing the graphical presentation module 42, to generate a score. The plurality of sets of clusters can be analyzed based on any number of parameters such as the value of θ, a cluster count, an uncovered node count, an overlapping node count, and/or a multi-overlapping node count, for example, although other parameters can also be used. The value of the cluster count parameter can be the total number of accepted clusters. The value of the uncovered node count parameter can be the number of nodes included in all of the accepted clusters. The value of the overlapping node count can be the number of nodes that are included in more than one accepted cluster. The value of the multi-overlapping node count parameter can be the ratio of the number of nodes included in more than two accepted clusters to the number of nodes included in more than one accepted clusters.
In some examples, weights can be applied by the network clustering computing device 16 executing the graphical presentation module 42 to the parameters and/or the parameters can be considered as having equal weight. In order to determine the final output, a scoring function can be utilized by the network clustering computing device 16 executing the graphical presentation module 42 to generate a score for each set of accepted clusters based on one or more of the parameter values. In some examples, the score can be directly proportional to the θ and multi-overlapping node count parameter values and indirectly proportional to the cluster count, uncovered node count, and overlapping node count parameter values. Accordingly, at least the seed nodes for the set of accepted clusters having the highest score can be output by the network clustering computing device 16 executing the graphical presentation module 42.
Accordingly, as illustrated and described with the examples herein, this technology provides more effective methods, non-transitory computer readable medium, and devices for clustering a network to identify one or more significant nodes. With this technology, topology discovery is advantageously performed during clustering. Additionally, edge weights representing the strength of relationships among the nodes are used to filter the nodes added to the generated clusters. This technology also provides selectable or tunable clustering parameters that can be altered by a user. By using the topology scores, edge weight values, and/or clustering parameter values to cluster a network, this technology provides more effective clustering including improved identification of significant nodes.
Having thus described the basic concept of the invention, it will be rather apparent to those skilled in the art that the foregoing detailed disclosure is intended to be presented by way of example only, and is not limiting. Various alterations, improvements, and modifications will occur and are intended to those skilled in the art, though not expressly stated herein. These alterations, improvements, and modifications are intended to be suggested hereby, and are within the spirit and scope of the invention. Additionally, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations therefore, is not intended to limit the claimed processes to any order except as may be specified in the claims. Accordingly, the invention is limited only by the following claims and equivalents thereto.

## Claims

1. A method for optimization of clustering nodes in a network, the method comprising:
obtaining, by a network clustering computing device, relationship data for a plurality of nodes;
identifying, by the network clustering computing device, a plurality of node pairs in the plurality of nodes based on the relationship data;
determining, by the network clustering computing device, a weight value for each of the plurality of node pairs;
normalizing, by the network clustering computing device, the weight value for each of the plurality of node pairs to determine a link distance value for each of the plurality of node pairs;
generating, by the network clustering computing device, a topology score for each of the plurality of nodes based on plurality of centrality parameter values for each of the plurality of nodes;
generating, by the network clustering computing device, a plurality of seed nodes based on the topology score for each of the plurality of nodes;
generating, by the network clustering computing device, a plurality of clusters based on the plurality of seed nodes, wherein each cluster in the generated plurality of clusters comprises a subset of the plurality of node pairs having the link distance value below a maximum link distance parameter value and topology scores that exceed a threshold topology score parameter value; and
outputting, by the network clustering computing device, at least the plurality of seed nodes to a server to configure the server to generate at least a subset of the plurality of clusters to selectively communicate with the subset of the plurality of clusters.

2. The method as set forth in claim 1, wherein the weight value comprises a strength relationship of each of the plurality of node pairs based on a number of connections for each node in the plurality of node pairs.

3. The method as set forth in claim 1, wherein the plurality of topology scores comprises a star topology score, a ring topology score, or a mesh topology score.

4. The method as set forth in claim 1, further comprising:
obtaining, by the network clustering computing device, one or more clustering parameter values for at least one clustering parameter comprising a maximum distance parameter, or an overlapping parameter, wherein the plurality of clusters is further generated based on the one or more clustering parameter values.

5. The method as set forth in claim 1, wherein the outputting further comprises:
generating, by the network clustering computing device, a graphical presentation of the plurality of clusters, wherein the graphical presentation comprises an indication of each of the plurality of seed nodes used to generate the plurality of clusters.

6. The method as set forth in claim 1, further comprising:
determining, by the network clustering device, a distance between each of the plurality of connected nodes, wherein the generating a plurality of clusters is further based on the distance between the plurality of connected nodes.

7. The method as set forth in claim 1, further comprising:
ranking, by the network clustering device, each of the plurality of nodes based on the plurality of topology scores; and
selecting, by the network clustering device, the plurality of seed nodes from the ranked plurality of nodes, based at least in part on the ranking of the plurality of nodes.

8. A non-transitory computer readable medium having stored thereon instructions for optimization of clustering nodes in a network comprising machine executable code which when executed by at least one processor, causes the processor to perform steps comprising:
obtaining relationship data information for a plurality of nodes;
identifying a plurality of node pairs based on the relationship data;
determining a weight value for each of the plurality of node pairs;
normalizing the weight value for each of the plurality of node pairs to determine a link distance value for each of the plurality of node pairs;
generating a topology score for each of the plurality of nodes based on a plurality of centrality parameter values for each of the plurality of nodes;
generating a plurality of seed nodes based on the topology score for each of the plurality of nodes;
generating a plurality of clusters based on the plurality of seed nodes, wherein each cluster in the generated plurality of clusters comprises a subset of the plurality of node pairs having the link distance value below a maximum link distance parameter value and topology scores that exceed a threshold topology score parameter value; and
outputting at least the plurality of seed nodes to a server to configure the server to generate at least a subset of the plurality of clusters to selectively communicate with the subset of the plurality of clusters.

9. The medium as set forth in claim 8, wherein the weight value comprises a strength relationship of each of the plurality of node pairs based on a number of connections for each node in the plurality of node pairs.

10. The medium as set forth in claim 8, wherein the plurality of topology scores comprises a star topology score, a ring topology score, or a mesh topology score.

11. The medium as set forth in claim 8, further having stored thereon instructions which when executed by the at least one processor, causes the processor to perform steps further comprising:
obtaining one or more clustering parameter values for at least one clustering parameter comprising a maximum distance parameter, or an overlapping parameter, wherein the plurality of clusters is further generated based on the one or more clustering parameter values.

12. The medium as set forth in claim 8, wherein the outputting further comprises:
generating a graphical presentation of the plurality of clusters, wherein the graphical presentation comprises an indication of each of the plurality of seed nodes used to generate the plurality of clusters.

13. The medium as set forth in claim 8, further having stored thereon instructions that when executed by the processor cause the processor to perform steps further comprising:
determining a distance between each of the plurality of connected nodes, wherein the generating a plurality of clusters is further based on the distance between the plurality of connected nodes.

14. The medium as set forth in claim 8, further having stored thereon instructions that when executed by the processor cause the processor to perform steps further comprising:
ranking each of the plurality of nodes based on the plurality of topology scores; and
selecting the plurality of seed nodes from the ranked plurality of nodes, based at least in part on the ranking of the plurality of nodes.

15. A network clustering computing device, comprising:
one or more processors; and
a memory coupled to the one or more processors which are configured to be capable of executing programmed instructions, which comprise the programmed instructions stored in the memory to:
obtain relationship data for a plurality of nodes;
identify a plurality of node pairs in the plurality of nodes based on the relationship data;
determine a weight value for each of the plurality of node pairs;
normalize the weight value for each of the plurality of node pairs to determine a link distance value for each of the plurality of node pairs;
generate a topology score for each of the plurality of nodes based on a plurality of centrality parameter values for each of the plurality of nodes;
generate a plurality of seed nodes based on the topology score for each of the plurality of nodes;
generate a plurality of clusters based on the plurality of seed nodes, wherein each cluster in the generated plurality of clusters comprises a subset of the plurality of node pairs having the link distance value below a maximum link distance parameter value and topology scores that exceed a threshold topology score parameter value; and
output at least the plurality of seed nodes to a server to configure the server to generate at least a subset of the plurality of clusters to selectively communicate with the subset of the plurality of clusters.

16. The device as set forth in claim 15, wherein the weight value comprises a strength relationship of each of the plurality of node pairs based on a number of connections for each node in the plurality of node pairs.

17. The device as set forth in claim 15, wherein the plurality of topology scores comprises a star topology score, a ring topology score, or a mesh topology score.

18. The device as set forth in claim 15, wherein the one or more processors are further configured to be capable of executing programmed instructions, which comprise the programmed instructions stored in the memory to:
obtain one or more clustering parameter values for at least one clustering parameter comprising a maximum distance parameter, or an overlapping parameter, wherein the plurality of clusters is further generated based on the one or more clustering parameter values.

19. The device as set forth in claim 15, wherein the outputting further comprises generating a graphical presentation of the plurality of clusters, wherein the graphical presentation comprises an indication of each of the plurality of seed nodes used to generate the plurality of clusters.

20. The device as set forth in claim 15, wherein the one or more processors are further configured to be capable of executing programmed instructions, which comprise the programmed instructions stored in the memory to:
determine a distance between each of the plurality of connected nodes, wherein the generating a plurality of clusters is further based on the distance between the plurality of connected nodes.

21. The device as set forth in claim 15, wherein the one or more processors are further configured to be capable of executing programmed instructions, which comprise the programmed instructions stored in the memory to:
rank each of the plurality of nodes based on the plurality of topology scores; and
select the plurality of seed nodes from the ranked plurality of nodes, based at least in part on the ranking of the plurality of nodes.