# Patent

## Title
Predictive and descriptive analysis on relations graphs with heterogeneous entities

## Abstract

A method provides a random walk model with heterogeneous graphs to leverage multiple source data and accomplish prediction tasks. The system and method components include: 1) A heterogeneous graph formulation including heterogeneous instances of abstract objects as graph nodes and multiple relations as edges connecting those nodes. The different types of relations, such as client-vendor relation and client-product relation, are often quantified as the weights of edges connecting those entities; 2) To accomplish prediction tasks with such information, launching a multi-stage random walk model over the heterogeneous graph. The random walk within a subgraph with homogenous nodes usually produces the relevance between entities of the same type. The random walk across different type of nodes provides the prediction of decisions, such as a client purchasing a product.

## Background
CROSS REFERENCE TO RELATED APPLICATION
This application is a continuation of U.S. patent application Ser. No. 13/868,644, filed Apr. 23, 2013 the entire content and disclosure of which is incorporated herein by reference.


BACKGROUND
The present disclosure generally relates to the field of prediction analysis and building predictive models for applications, and more specifically to a system and method for building a random walk model with heterogeneous graphs to leverage multiple source data for prediction tasks.
Many predictive analytics problems involve a variety of different types of data. For example, in building a predictive model to generate sales recommendations, one might consider both the relationships between clients and the attributes of clients' industry and the characteristics of the products. In another example of legislative prediction, where the goal is to predict the votes from legislators on future bills, both political and social relationships between legislators and the semantic description of bills are available for predictive analysis. Besides predicting who might buy which product, or who might vote yea/nay on a bill, estimating the influence of entities (e.g., clients or legislators) is also very important for decision support.
Most of the existing learning methods rely on feature-based data representation by vectors in a predefined metric space, which lacks the capacity to handle relational information. Emerging techniques for social network analysis, such as relational learning, usually focus on homogenous relational links of single type of samples. To apply these methods for analyzing such complex heterogeneous data, one has to simplify and degrade the heterogeneous sources, such as summing multiple relation links in a heuristic way, which often results in information loss and unsatisfactory prediction accuracy. In addition, many important problems, such as estimating the influencers, do not even fit into this simplification scheme and far less advances have been made for complex data represented in such a heterogeneous way.
Therefore, there exists emerging need to develop tools and models to incorporate such heterogeneous data to: 1) perform efficient prediction or recommendation, and 2) identify the most influential entities.
BRIEF SUMMARY
A system, method and computer program product provides a random walk model with heterogeneous graphs to leverage multiple source data and accomplish prediction tasks.
The system and method includes components including: 1) A heterogeneous graph formulation including heterogeneous instances of abstract objects as graph nodes and multiple relations as edges connecting those nodes. For instance, in a typical business analytics application, the clients, and vendors, are treated as graph nodes. The different types of relations, such as client-vendor relation and client product relation, are often quantified as the weights of edges connecting those entities; 2) To accomplish prediction tasks with such rich information, a multi-stage random walk model over the heterogeneous graph is launched. The random walk within a subgraph with homogenous nodes usually produces the relevance between entities of the same type. The random walk across different type of nodes provides the prediction of decisions, such as a client purchasing a product.
With the proposed system and methods, one can 1) perform the predictive analysis simultaneously using multiple type relational data and attribute data without data aggregation or simplification, avoiding information loss; 2) perform a descriptive analysis of the influence estimate in a joint space of multiple types of entities.
In one aspect, there is provided a method of predicting a relation between entities comprising: constructing, at a computer device, a heterogeneous graph representation of multi-source data including: receiving data for forming multiple unipartite sub-graphs, each sub-graph having homogeneous vertices and edges connecting the vertices, and receiving data for forming bipartite sub-graphs having partially observed edges connecting respective nodes between any two different unipartite sub-graphs, the partially observed edges representing cross-entity links; computing at the computer device, a steady-state relevance matrix for each sub-graph using a homogeneous Markov Random Walk model applied to each the unipartite sub-graph; dynamically generating missing edges connecting vertices between each of two unipartite sub-graphs by applying, using the computed steady-state relevance matrix for each sub-graph, an iterative and heterogeneous Markov Random Walk model to the bipartite sub-graphs to dynamically generate missing edges, wherein a generated missing edge represents a cross-entity connection recommendation or prediction in the heterogeneous graph, wherein a programmed processor unit of the computer device performs the receiving, constructing, applying the first Markov Random Walk model to each the unipartite sub-graph and applying the iterative Markov Random Walk model to the bipartite sub-graphs.
According to a further aspect, there is provided a computer-implemented system for predicting a relation between entities comprising: a memory storage device; a computer system associated with the memory storage device, the computer system including a processor device configured to perform a method to: construct, at a computer device, a heterogeneous graph representation of multi-source data including: receiving data for forming multiple unipartite sub-graphs, each sub-graph having homogeneous vertices and edges connecting the vertices, and receiving data for forming bipartite sub-graphs having partially observed edges connecting respective nodes between any two different unipartite sub-graphs, the partially observed edges representing cross-entity links; compute at the computer device, a steady-state relevance matrix for each sub-graph using a homogeneous Markov Random Walk model applied to each the unipartite sub-graph; dynamically generate missing edges connecting vertices between each of two unipartite sub-graphs by applying, using the computed steady-state relevance matrix for each sub-graph, an iterative and heterogeneous Markov Random Walk model to the bipartite sub-graphs to dynamically generate missing edges, wherein a generated missing edge represents a cross-entity connection recommendation or prediction in the heterogeneous graph.
In a further aspect, a computer program product is provided for performing operations. The computer program product includes a storage medium readable by a processing circuit and storing instructions run by the processing circuit for running a method. The method is the same as listed above.



BRIEF DESCRIPTION OF THE DRAWINGS
Various objects, features and advantages of the present invention will become apparent to one skilled in the art, in view of the following detailed description taken in combination with the attached drawings, in which:
FIG. 1 depicts a heterogeneous graph representation of roll call data from the Congress of the United States of America;
FIG. 2 illustrates an algorithm to perform Iterative Vote Link Prediction through Random Walk over a Heterogeneous Graph in one embodiment;
FIG. 3 illustrates a generic method and system used to manage buying-selling relations across different types of connections in a heterogeneous graph-based representation 50 in one embodiment;
FIG. 4 depicts generally a system 150 used to manage buying-selling relations for multiple types of entities (in one or more entity graphs) across different types of connections shown in the example heterogeneous graph 50 of FIG. 3; and
FIG. 5 illustrates a portion of a computer system 200, including a CPU and a conventional memory in which the method and system herein may be embodied.



DETAILED DESCRIPTION
A system, method and computer program product for providing a random walk model with heterogeneous graphs to leverage multiple source data and accomplish challenging prediction tasks, is provided. The system, method and computer program product is applicable to any application using predictive analytics.
For purposes of description herein, the novel random walk model with heterogeneous graphs is described herein in the context of a political science application, namely, the build of a random walk-based model to predict a legislators' votes on a set of proposed laws or “bills”. The principles of the novel random walk model with heterogeneous graphs as described herein is applicable to many other applications that could benefit from using predictive analytics, e.g., managing buying-selling relations across hybrid networks.
Humanistic and social studies, including anthropology, criminology, marketing, sociology, and urban planning are increasingly turning to data-driven quantitative methods, informatics, and predictive analytics. Political science is no different. Politics in democracies are centered around votes on bills in legislatures. Voting history, also known as roll call data, is an important historical record that has been studied statistically since the 1920s, if not earlier.
Following other political science studies, one focus is on the legislature of the federal government of the United States of America, known as the Congress. An important feature of the United States Congress is that legislators are not bound to vote in lockstep with their party. In contrast to parliamentary governments, such as those that follow the Westminster system, party affiliation is not codified in the constitution and thus is only one of many factors that go into determining whether a legislator votes yea or nay. Congress is a bicameral legislature composed of the Senate with 100 members known as senators, and the House of Representatives with 435 members known as representatives. A session of Congress lasts two years. The composition of Congress changes after every session due to elections. Within a session, the only changes are due to death or resignation.
A bill is a proposed law under consideration by a legislature, that if passed, becomes a law. Each bill that comes to a vote in Congress is sponsored by at least one legislator. Other legislators may cosponsor the bill if they coauthored it or if they wish to publicly indicate strong support for it in advance of the vote. Thus, frequent cosponsorship of bills reflects collaboration and similarity in ideology between legislators.
Roll call data can be analyzed to obtain a variety of descriptive statistics, but can also be used in developing predictive models. Legislative prediction leads to a better understanding of government and can also provide actionable insights to political strategists. It is a challenging task to predict the votes of all current legislators on a bill that has not yet been voted upon.
To leverage both text mining of bills and the social connection between legislators to predict legislative votes, there is provided a model based on random walks on a heterogeneous graph (RWHG) to predict the vote links between legislators and bills. In this formulation, the roll call data is represented as a heterogeneous graph, where both legislators and bills are treated as vertices. The legislators are connected based on political relationship, specifically cosponsorship, and the bills are connected based on their semantic similarity in the bag-of-words (BOW) representation space. The votes, yea or nay, are treated as directed edges of a bipartite-style legislator-bill graph. Based on this formulation, a two-stage random walk is performed over the heterogeneous graph to iteratively generate vote links.
For predictive analysis in this contact, there is generated a heterogeneous graph to represent the roll call data, where both the legislators and bills are treated as graph vertices. The legislator vertices are connected based on their social and political relationships, quantified with edge weights. Similarly, the bills are connected based on their estimated semantic similarity. The votes are treated as the links of a bipartite-style legislator-bill graph. Overall, this unique formulation has a heterogeneous-structured graph with two types of vertices and three types of edges.
Graph Notations
There is first defined a graph notation for the legislators. Assuming there are a total of L legislators, a set of legislator vertices is denoted as V(x)={x1, . . . , x1, . . . , xL} with cardinality |V(x)|=L. These legislators can be connected based on attributes such as party, state, age, gender, and cosponsorship by converting the attributes to a political similarity measure between legislators. In other words, the legislators form a graph G(x)={V(x),E(x)} independently, with an edge set E(x)={e(x)lm}⊂V(x)×V(x) (l,m=1, . . . , L). The details for estimating political similarity, i.e. the weight of the edges, are described in greater detail below.
There is further defined the set of bills as V(y)={y1, . . . , yn, . . . , yN} with cardinality |V(y)|=N. Given textual content, the same symbol is reused to represent the standard bag-of-words (BOW) model of bills as ynεRB, where B is the size of the dictionary. Accordingly, the bills form a graph in the semantic space, where the set of vertices V(y) represents the bills and the set of edges E(y)={e(y)nk}⊂V(y)×V(y) (n,k=1, . . . , N) connects bills based on their semantic similarity. Therefore, the bill graph represented as G(y)={V(y)),E(y)}.
An additional piece of information to leverage into the graph formulation is the initially-given set of votes, i.e. the yea or nay results for the legislators voting on the bills. Since each vote involves two types of vertices, one legislator and one bill, the vote can be viewed as a special type of directed edge or link across these heterogeneous vertices. This gives the third component of the heterogeneous graph formulation, a bipartite structured vote graph G(xy)={V,E(xy)}, where V=V(x)∪V(y) and E(xy)={e(xy)ln}⊂V(x)×V(y) (l=1, . . . , L, n=1, . . . , N).
In summary, the heterogeneous graph G contains three subgraphs: legislator graph G(x), bill graph G(y), and vote graph G(xy). In a general form specified in equation 1), G is defined as:

G={V,E}, 

V=V(x)∪V(y),

E=E(x)∪E(y)∪E(xy),

E(x)⊂V(x)×V(x),

E(y)⊂V(y)×V(y),

E(xy)⊂V(x)×V(y).  (1)

In other words, graph G has two types of heterogeneous vertices, i.e. legislators V(x) and bills V(y), and three types of edges, legislator political relations E(x), bill semantic similarity E(y) and directed vote links E(xy). Detail regarding the estimation of these edge weights and important graph quantities is now described.
It should be understood that in general the heterogenious graph used for prediction/recommendation problems may include multiple unipartite graphs. In such embodiments, one unipartite graph may have nodes representing an entity, e.g., a person or user, while the other unipartite graph may have nodes representing e.g., a client, a buyer, a seller; while another unipartitie graph of the heterogeneous graph may include nodes representing plural items, e.g., a product, or a service, which and the graphs having partially observed connections (links or edges) therebetween.
FIG. 1 depicts a heterogeneous graph representation 10 of roll call data from the Congress of the United States of America. The heterogeneous graph 10 contains nodes or vertices 12 representing a legislator (legislator vertices), bill nodes 15 representing bills before Congress (bill vertices), edges 17 connecting legislators in the graph 10 (i.e., representing a cosponsorship relation), edges 19 connecting bills (i.e., representing semantic similarity), and directed vote edges 22, representing yea votes from legislators to bills and directed vote edges 24, representing nay votes from legislators to bills. The thickness of the edges indicates the strength of the corresponding connections. The heterogeneous graph G contains three subgraphs: legislator graph G(x) 30, bill graph G(y) 40, and a vote graph G(xy) 45.
Legislators Social and Political Relations
Social connections among the members of the House and Senate have been well-studied in fields like social science and political science because they illuminate information for estimating political relevance and revealing the underlying legislative patterns. Different kinds of social connections, such as friendship, family, and acquaintanceship relations, have been identified as important effects on political positions. However, predicting roll call data is about understanding legislators' ideology more than social relationships between them. Therefore, scholars recently proposed to use cosponsorship relations as a more robust and direct way to understand the voting behavior and political influence of each legislator. Briefly speaking, each piece of legislation is uniquely sponsored by a legislator and publicly cosponsored by a group of legislators. Hence, it is fairly straightforward to reveal the cosponsorship edge between each cosponsor and the corresponding sponsor. The system and method for random walking over a heterogeneous graph is particularly interested in this kind of cosponsorship information and uses it to connect the legislators and estimate their political affinity.
More precisely, the pairwise political similarity w(x)lmεR refers to the affinity between legislators xl and xm, i.e. the weight of the edge e(x)lm. Assuming that legislators xl and xm have a total of clm cosponsored bills in common and have Cl and Cm individually cosponsored bills, then the value of w(x)lm computed from the cosponsorship information is governed by equation 2) as follows:




  
    
      
        
          w
          
            
              (
              x
              )
            
            lm
          
        
        =
        
          
            
              c
              lm
            
            
              
                C
                l
              
              +
              
                C
                m
              
            
          
          .
        
      
    
    
      
        (
        2
        )
      
    
  




In addition, the cosponsorship matrix W(x)={w(x)lm} presents an intuitive way to estimate the political connectivity of the legislators. Note that the value of w(x)lm represents the normalized cosponsorship weight between the legislator xl and xm. For each legislator xl, the sum of such edge weights of all the connected legislators shows the political popularity of this legislator, which is calculated according to equation 3) as:




  
    
      
        
          d
          
            
              (
              x
              )
            
            l
          
        
        =
        
          
            
              ∑
              m
            
            ⁢
            
              w
              
                
                  (
                  x
                  )
                
                lm
              
            
          
          =
          
            
              ∑
              m
            
            ⁢
            
              
                
                  c
                  lm
                
                
                  
                    C
                    l
                  
                  +
                  
                    C
                    m
                  
                
              
              .
            
          
        
      
    
    
      
        (
        3
        )
      
    
  




From the graph formulation perspective, this quantity is exactly the degree of vertex xl on the graph G(x). Accordingly, the diagonal degree matrix can be written as D(x)=diag└d(x)1, . . . , d(x)l, . . . , d(x)L┘.
Semantic Similarity of Bills
In one embodiment, the BOW model represents the textual context using the frequency of the words in documents, while omitting grammar and word order. Given the BOW representation of the n th legislative bill as yn={yn1, . . . , ynb, . . . , ynB}, the b th element ynb denotes the count of the corresponding b th entry in the dictionary appearing in the bill. For such a histogram-style feature representation, one can use a kernel function over pairs of vertices to compute the weight w(y)nk for the edge e(y)nk in the bill graph. For example, the Gaussian kernel is often applied to modulate semantic similarity between bill yn and yk according to equation 4) as:




  
    
      
        
          
            w
            
              
                (
                y
                )
              
              nk
            
          
          =
          
            exp
            [
            
              -
              
                
                  
                    dis
                    2
                  
                  ⁡
                  
                    (
                    
                      
                        y
                        n
                      
                      ,
                      
                        y
                        k
                      
                    
                    )
                  
                
                
                  2
                  ⁢
                  
                    σ
                    2
                  
                
              
            
            ]
          
        
        ,
      
    
    
      
        (
        4
        )
      
    
  




where the function dis(yn,yk) evaluates the dissimilarity or distance between bill yn and yk, and σ is the kernel bandwidth parameter. Different choices of the distance function dis(·) may be used as known in the art, e.g., such as lp (p=1,2) distance and χ2 distance. The kernel function based weighting scheme has the flexibility to adapt to a wide range of data with different priors and distributions. However, the determination of bandwidth σ is heuristic without any theoretic guarantee. Another weighting function for histogram-style data representation is cosine similarity, which is relatively straightforward to compute according to equation 5) as:





  
    
      
        
          w
          
            
              (
              y
              )
            
            nk
          
        
        =
        
          
            
              
                y
                n
              
              ·
              
                y
                k
              
            
            
              
                
                
                  y
                  n
                
                
              
              ⁢
              
                
                
                  y
                  k
                
                
              
            
          
          .
        
      
    
    
      
        (
        5
        )
      
    
  




Similarly, the degree of the bill vertex yn can be calculated as d(y)n=Σkw(y)nk and the corresponding degree matrix is D(y)=diag└d(y)1, . . . , d(y)n, . . . , d(y)N┘.
Legislator-Bill Vote Links
A vote is defined as a directed edge e(xy)ln, which indicates that the legislator xl has voted on bill yn. Because there are two types of votes, it is reasonable to set the edge weight w(xy)ln=1 for yea and w(xy)ln=−1 for nay. If the vote does not exist, set w(xy)ln=0, indicating no vote edge between xl and yn. However such straightforward setting of edge weights is infeasible for random walk-based formulations since the edge weight matrix of the graph will eventually be converted to a positive-valued transition probability matrix.
Hence, to partition the yea and nay links, they are treated separately, which results in two legislator-bill vote graphs, namely yea and nay graphs with all positive edge weights. More specifically, for either yea or nay graph, the edge weight is set to one if a vote exists between the corresponding legislator and bill. For non-existent edges, the weights are still set to zero. Finally, there is obtained two weight matrices W(xy)yea={w(xy)lnyea} and W(xy)nay={w(xy)lnnay} for all the yea and nay votes, respectively. Accordingly, four types of vertex degree matrices are defined over the bipartite-style legislator-bill vote graph according to equation 6) as:




  
    
      
        
          
            d
            
              
                (
                xy
                )
              
              l
            
            yea
          
          =
          
            
              ∑
              n
            
            ⁢
            
              w
              
                
                  (
                  xy
                  )
                
                ln
              
              yea
            
          
        
        ,
        
          
            d
            
              
                (
                xy
                )
              
              l
            
            nay
          
          =
          
            
              ∑
              n
            
            ⁢
            
              w
              
                
                  (
                  xy
                  )
                
                ln
              
              nay
            
          
        
        ,
        
          

        
        ⁢
        
          
            D
            
              (
              xy
              )
            
            yea
          
          =
          
            diag
            ⁢
            
              ⌊
              
                
                  d
                  
                    
                      (
                      xy
                      )
                    
                    1
                  
                  yea
                
                ,
                ...
                ⁢
                
                  
                
                ,
                
                  d
                  
                    
                      (
                      xy
                      )
                    
                    l
                  
                  yea
                
                ,
                ...
                ⁢
                
                  
                
                ,
                
                  d
                  
                    
                      (
                      xy
                      )
                    
                    L
                  
                  yea
                
              
              ⌋
            
          
        
        ,
        
          

        
        ⁢
        
          
            D
            
              (
              xy
              )
            
            nay
          
          =
          
            diag
            ⁢
            
              ⌊
              
                
                  d
                  
                    
                      (
                      xy
                      )
                    
                    1
                  
                  nay
                
                ,
                ...
                ⁢
                
                  
                
                ,
                
                  d
                  
                    
                      (
                      xy
                      )
                    
                    l
                  
                  nay
                
                ,
                ...
                ⁢
                
                  
                
                ,
                
                  d
                  
                    
                      (
                      xy
                      )
                    
                    L
                  
                  nay
                
              
              ⌋
            
          
        
        ,
        
          

        
        ⁢
        
          
            d
            
              
                (
                yx
                )
              
              n
            
            yea
          
          =
          
            
              ∑
              l
            
            ⁢
            
              w
              
                
                  (
                  yx
                  )
                
                ln
              
              yea
            
          
        
        ,
        
          
            d
            
              
                (
                yx
                )
              
              n
            
            nay
          
          =
          
            
              ∑
              l
            
            ⁢
            
              w
              
                
                  (
                  yx
                  )
                
                ln
              
              nay
            
          
        
        ,
        
          

        
        ⁢
        
          
            D
            
              (
              yx
              )
            
            yea
          
          =
          
            diag
            ⁢
            
              ⌊
              
                
                  d
                  
                    
                      (
                      yx
                      )
                    
                    1
                  
                  yea
                
                ,
                ...
                ⁢
                
                  
                
                ,
                
                  d
                  
                    
                      (
                      yx
                      )
                    
                    n
                  
                  yea
                
                ,
                ...
                ⁢
                
                  
                
                ,
                
                  d
                  
                    
                      (
                      yx
                      )
                    
                    N
                  
                  yea
                
              
              ⌋
            
          
        
        ,
        
          

        
        ⁢
        
          
            D
            
              (
              yx
              )
            
            nay
          
          =
          
            diag
            ⁢
            
              ⌊
              
                
                  d
                  
                    
                      (
                      yx
                      )
                    
                    1
                  
                  nay
                
                ,
                ...
                ⁢
                
                  
                
                ,
                
                  d
                  
                    
                      (
                      yx
                      )
                    
                    n
                  
                  nay
                
                ,
                ...
                ⁢
                
                  
                
                ,
                
                  d
                  
                    
                      (
                      yx
                      )
                    
                    N
                  
                  nay
                
              
              ⌋
            
          
        
        ,
      
    
    
      
        (
        6
        )
      
    
  




where d(x)lyea and d(x)lnay indicate the total numbers of yea and nay votes from the legislator xl, and d(y)nyea and d(y)nnay are the total number of yea and nay votes received by the bill yn. Hence the priors of yea and nay votes are defined for each legislator and bill based on the given vote links, according to equation 7) as:





  
    
      
        
          
            p
            
              
                (
                x
                )
              
              l
            
            yea
          
          =
          
            
              d
              
                
                  (
                  xy
                  )
                
                l
              
              yea
            
            
              
                d
                
                  
                    (
                    xy
                    )
                  
                  l
                
                yea
              
              +
              
                d
                
                  
                    (
                    xy
                    )
                  
                  l
                
                nay
              
            
          
        
        ,
        
          
            p
            
              
                (
                x
                )
              
              l
            
            nay
          
          =
          
            
              d
              
                
                  (
                  xy
                  )
                
                l
              
              nay
            
            
              
                d
                
                  
                    (
                    xy
                    )
                  
                  l
                
                yea
              
              +
              
                d
                
                  
                    (
                    xy
                    )
                  
                  l
                
                nay
              
            
          
        
        ,
        
          

        
        ⁢
        
          
            p
            
              
                (
                y
                )
              
              n
            
            yea
          
          =
          
            
              d
              
                
                  (
                  yx
                  )
                
                n
              
              yea
            
            
              
                d
                
                  
                    (
                    yx
                    )
                  
                  n
                
                yea
              
              +
              
                d
                
                  
                    (
                    yx
                    )
                  
                  n
                
                nay
              
            
          
        
        ,
        
          
            p
            
              
                (
                y
                )
              
              n
            
            nay
          
          =
          
            
              d
              
                
                  (
                  yx
                  )
                
                n
              
              nay
            
            
              
                d
                
                  
                    (
                    yx
                    )
                  
                  n
                
                yea
              
              +
              
                d
                
                  
                    (
                    yx
                    )
                  
                  n
                
                nay
              
            
          
        
        ,
      
    
    
      
        (
        7
        )
      
    
  




where p(x)lyea and p(x)lnay are the priors that xl produces yea and nay votes and p(y)lyea, and p(y)lnay are the priors that yn receives yea and nay votes.

Recalling the general form of the heterogeneous graph as G={V,E}, where V=V(x)∪V(y) and E=E(x)∪E(y)∪E(xy), the edge weight matrix W for G can be defined in a block-wise form according to equation 8) as:




  
    
      
        
          W
          =
          
            [
            
              
                
                  
                    W
                    
                      (
                      x
                      )
                    
                  
                
                
                  
                    W
                    
                      (
                      xy
                      )
                    
                  
                
              
              
                
                  0
                
                
                  
                    W
                    
                      (
                      y
                      )
                    
                  
                
              
            
            ]
          
        
        ,
      
    
    
      
        (
        8
        )
      
    
  




where W(xy) is the weight matrix of the directed legislator-bill vote graph. Since the yea and nay votes are treated separately, W is decomposed into Wyea and Wnay accordingly according to equation 9):





  
    
      
        
          
            W
            yea
          
          =
          
            [
            
              
                
                  
                    W
                    
                      (
                      x
                      )
                    
                  
                
                
                  
                    W
                    
                      (
                      xy
                      )
                    
                    yea
                  
                
              
              
                
                  0
                
                
                  
                    W
                    
                      (
                      y
                      )
                    
                  
                
              
            
            ]
          
        
        ,
        
          

        
        ⁢
        
          
            W
            nay
          
          =
          
            [
            
              
                
                  
                    W
                    
                      (
                      x
                      )
                    
                  
                
                
                  
                    W
                    
                      (
                      xy
                      )
                    
                    nay
                  
                
              
              
                
                  0
                
                
                  
                    W
                    
                      (
                      y
                      )
                    
                  
                
              
            
            ]
          
        
        ,
      
    
    
      
        (
        9
        )
      
    
  




where Wyea and Wnay are the weight matrices of the heterogeneous graphs Gyea and Gnay, respectively.

FIG. 1 illustrates an example of the heterogeneous graph representation of the roll call data. Based on this formulation, the goal of legislative prediction is to infer the missing edges in E(xy) given the legislator graph G(x), bill graph G(y), and the partially observed vote edges, i.e., yea and nay vote links. A two-stage random walk approach to conduct vote prediction using both Wyea and Wnay is described in further detail below.
Given some observations of the votes, there are two types of legislative prediction tasks: 1) predicting votes missing at random; 2) predicting all votes for new bills. The first task is related to so called “within-matrix” prediction and the second one to “out-of-matrix” prediction. To accomplish such prediction tasks, especially predicting the votes for new bills, two major assumptions are made:
1. Political affinity connects legislative behavior. Legislators who have strong affinity, e.g. strong cosponsorship relations, tend to vote similarly on a set of bills.
2. Legislative behavior is consistent among similar bills. Semantically similar bills tend to receive the same voting results from legislators.
These two assumptions bring two views of predicting the votes along the column and row directions of the weight matrix W(xy). Along the row direction, the vote w(xy)ln is estimated based on the known votes of the most similar bills from the same legislator, while along the column direction, the prediction of w(xy)ln is accomplished based on the observed votes of the same bill generated by the most similar legislators.
In the following, a method of random walks on a heterogeneous graph (RWHG) is presented which combines the clues from the above assumptions and performs two-stage random walks on two unipartite graphs and across a bipartite graph.
Random Walks on Unipartite Graphs
As discussed earlier, there are three subgraphs in the above formulation, two of which, i.e., legislator cosponsorship graph and bill semantic similarity graph, are unipartite with homogeneous vertices. For each of these two subgraphs, a random walk with restart (RWR) model is invoked to derive the steady-state distributions, which indicate the political and semantic relevance among legislators and bills, respectively. Note that during the process of performing RWR, the directed vote links are broken and random walks conducted over these two unipartite graphs independently.
For a standard RWR-based relevance model, a random walker starts from the i th vertex and iteratively jumps to its neighbors with transition probabilities pi={pi1, . . . , pij, . . . , pin}. However, for each transition, the random walker returns to the original vertex i with probability 1−α. After achieving the steady-state, the probability of the random walker being at the j th vertex gives the relevance score of vertex j with respect to vertex i. Similarly, if n random walkers are simultaneously launched, one from each vertex of the graph, with transition probabilities p1, . . . , pn, the final steady-state probability matrix gives the relevance scores between each pair of vertices. Defining the transition probability matrix P={p1, . . . , pn}, one step of RWR from time t to t+1 can be formed according to equation 10) as:

R(t+1)=αPR(t)+(1−α)I,  (10)

where R(t) and R(t+1) are the state probability matrices at time t and t+1 and the identity matrix IεRn×n can be treated as the uniform prior for all the vertices. Building on this RWR model, a few revisions are made to adapt to the problem of legislative prediction.

For the legislator graph, it is noted that each legislator has different connectivity with others, resulting in different political influence. Instead of using the uniform prior I the normalized vertex degree F(x)=diag└f(x)l, . . . , f(x)l, . . . , f(x)L┘ is used as the prior for each legislator, where diagonal entries are computed in equation 11) as:




  
    
      
        
          
            f
            
              
                (
                x
                )
              
              l
            
          
          =
          
            
              d
              
                
                  (
                  x
                  )
                
                l
              
            
            
              
                ∑
                m
              
              ⁢
              
                d
                
                  
                    (
                    x
                    )
                  
                  m
                
              
            
          
        
        ,
        
          l
          =
          1
        
        ,
        ...
        ⁢
        
          
        
        ,
        
          L
          .
        
      
    
    
      
        (
        11
        )
      
    
  




The transition probability P(x) is computed as the row-normalized weight matrix: P(x)=D(x)−1W(x). Then, the following transition equation 12) is obtained:

R(x)(t+1)=αP(x)R(x)(t)+(1−α)F(x),  (12)

The steady-state probability, denoted R(x)=R(x)(∞)={r(x)lm}, is then derived by solving the above discrete difference equations with t→∞ as in equation 13):

R(x)=(1−α)(I−αP(x))−1F(x).  (13)

Each element r(x)lm represents the political relevance score of the legislator xm with respect to xl. Note that r(x)lm≠r(x)ml and R(x) is asymmetric.
Similarly, for the bill graph, the prior F(y) and transition probability P(y) are set according to equation 14) as:




  
    
      
        
          
            F
            
              (
              y
              )
            
          
          =
          
            diag
            ⁢
            
              ⌊
              
                
                  f
                  
                    
                      (
                      y
                      )
                    
                    l
                  
                
                ,
                ...
                ⁢
                
                  
                
                ,
                
                  f
                  
                    
                      (
                      y
                      )
                    
                    l
                  
                
                ,
                ...
                ⁢
                
                  
                
                ,
                
                  f
                  
                    
                      (
                      y
                      )
                    
                    N
                  
                
              
              ⌋
            
          
        
        ,
        
          

        
        ⁢
        
          
            f
            
              
                (
                y
                )
              
              n
            
          
          =
          
            
              d
              
                
                  (
                  y
                  )
                
                n
              
            
            
              
                ∑
                k
              
              ⁢
              
                d
                
                  
                    (
                    y
                    )
                  
                  k
                
              
            
          
        
        ,
        
          n
          =
          1
        
        ,
        ...
        ⁢
        
          
        
        ,
        N
        ,
        
          

        
        ⁢
        
          
            P
            
              (
              y
              )
            
          
          =
          
            
              D
              
                (
                y
                )
              
              
                -
                1
              
            
            ⁢
            
              W
              
                (
                y
                )
              
            
          
        
        ,
      
    
    
      
        (
        14
        )
      
    
  




and the final relevance matrix R(y) derived from the steady-sate is computed as equation 15) (similar to equation 13)) as:

R(y)=(1−β)(I−βP(y))−1F(y),  (15)

where 1−β is the restart probability for the RWR in G(y). Thus, in the methods described herein, the vertex prior and transition probability computations are revised to adapt the standard random walk with restart model to the present problem. Then through performing RWR over the legislator graph and bill graph independently, two relevance matrices are derived: R(x) representing the political relevance among legislators, and R(y) representing semantic relevance of bills.

Random Walks Across Bipartite Graphs

Given the derived relevance matrices R(x) and R(y) from the random walk over the legislator cosponsorship graph and the bill semantic similarity graph, the next step includes predicting the possible link from a legislator xl to a bill yn. From the view of random walk, the goal is to estimate the transition chance of a random walker starting from vertex xl and transiting to yn. However, different from the random walk model used in the case of unipartite graphs, where the walker only performs random transitions in a unipartite graph, here the random walker has to cross a bipartite graph through the existing vote links. There are two possible paths for a random walker across the vertices of the bipartite graph, i.e. transiting from legislator xl to bill yn,
1. Political relevance-based transition. Based on the political relevance information, the random walker first performs transition from xl to xm, where xm has an observed vote link e(xy)mm. Then the walker can easily transit to yn through the existing vote link.
2. Semantic relevance-based transition. The random walker first transits from xl to yk based on the existing vote link e(xy)lk. Then the random walk is performed within G(y), resulting in a jump from yk to yn based on the semantic relevance.
Finally, the estimation of the transition chance involves a heterogeneous graph, including two types of vertices, i.e., V(x) and V(y) and three types of edges, E(x), E(y), and E(xy). It is noted that the above two transition paths are related to the two earlier made assumptions. Finally, the estimation of the transition chance involves a heterogeneous graph, across two types of vertices through three types of edges. Before providing the formulation of the above random walks over a bipartite graph, the transition probability is first defined as P(xy)={p(xy)ln} from the given vote links E(xy)={e(xy)ln} and weights W(xy)={w(xy)ln}. Similar to the unipartite graph-based random walk, the transition probability for the bipartite graph is computed as the row-normalized weight matrix. Since two bipartite graphs G(xy)yea and G(xy)nay are derived for the yea and nay votes separately, accordingly there is two transition probability matrices P(xy)yea={p(xy)lnyea} and P(xy)nay={p(xy)lnnay} set forth in equation 16) as follows:

P(xy)yea=D(xy)yea−1W(xy)yea 

P(xy)nay=D(xy)nay−1W(xy)nay  (16)

where the elements p(xy)lnyea and p(xy)lnnay represent the transition probability from xl to yn over graphs G(xy)yea and G(xy)nay, respectively. Considering the above transition paths, there is performed estimating the transition probabilities p(xy)lnyea and p(xy)lnnay of one step random walk over G(xy)yea and G(xy)nay according to equation 17) as:]





  
    
      
        
          
            p
            
              
                (
                xy
                )
              
              ln
            
            yea
          
          =
          
          ⁢
          
            
              γ
              ⁢
              
                
                  ∑
                  m
                
                ⁢
                
                  
                    r
                    
                      
                        (
                        x
                        )
                      
                      lm
                    
                  
                  ⁢
                  
                    p
                    
                      
                        (
                        xy
                        )
                      
                      mn
                    
                    yea
                  
                
              
            
            +
            
              
                (
                
                  1
                  -
                  γ
                
                )
              
              ⁢
              
                
                  ∑
                  k
                
                ⁢
                
                  
                    p
                    
                      
                        (
                        xy
                        )
                      
                      lk
                    
                    yea
                  
                  ⁢
                  
                    r
                    
                      
                        (
                        y
                        )
                      
                      kn
                    
                  
                
              
            
          
        
        ⁢
        
          

        
        ⁢
        
          
            p
            
              
                (
                xy
                )
              
              ln
            
            nay
          
          =
          
            
              γ
              ⁢
              
                
                  ∑
                  m
                
                ⁢
                
                  
                    r
                    
                      
                        (
                        x
                        )
                      
                      lm
                    
                  
                  ⁢
                  
                    p
                    
                      
                        (
                        xy
                        )
                      
                      mn
                    
                    nay
                  
                
              
            
            +
            
              
                (
                
                  1
                  -
                  γ
                
                )
              
              ⁢
              
                
                  ∑
                  k
                
                ⁢
                
                  
                    p
                    
                      
                        (
                        xy
                        )
                      
                      lk
                    
                    nay
                  
                  ⁢
                  
                    r
                    
                      
                        (
                        y
                        )
                      
                      kn
                    
                  
                
              
            
          
        
      
    
    
      
        (
        17
        )
      
    
  




where the first summation gives the transition probability from xl to yn through the political relevance path, and the second summation gives the transition probability via the semantic relevance path. The coefficient 0≦γ≦1 is the probability that the random walker will take the first transition path.

The matrix form of the above equation 17) is given showing the update of transition probability of vote links from time t to time t+1 according to equation 18) as:

P(xy)yea(t+1)=γR(x)P(xy)yea(t)+(1−γ)P(xy)yea(t)R(y) 

P(xy)nay(t+1)=γR(x)P(xy)nay(t)+(1−γ)P(xy)nay(t)R(y)  (18)

Due to the existence of the bipartite graph, the above random walk rule is significantly different than the one over unipartite graph. For instance, for a non-bipartite based random walk, the final distribution when t→∞ tends to a stationary distribution. However, for a bipartite graph with bipartition {V(x), V(y)}, the final distribution could oscillate between the prior distributions of V(x) and V(y) without achieving a steady-state. Since the formulation of equation 18) involves both transitions within each unipartite graph and across the bipartite graph, the final results are even more complicated to state. In addition, the prediction of new vote links changes the structure of the bipartite graph, and makes efforts to derive the final distribution of such steady-state intractable. Therefore, a new iterative approach is used to gradually produce the vote prediction results.
Iterative Prediction of Volte Links
As described herein, two legislator-bill vote graphs Gyea and Gnay using yea and nay votes have been constructed separately. Accordingly, two separate random walks should be performed over these two graphs using the transition probability update rules in equation 18). For one step of random walk from time t to t+1, two new transition matrices P(xy)yea(t+1) and P(xy)nay(t+1) are derived, where the elements p(xy)lnyea, p(xy)lnnay measure the chance of yea and nay result for xl voting on yn. In the iterative procedure of vote prediction described herein, the vote links are gradually completed in a greedy way, in which only the most confident prediction are used to create the new vote links. To achieve this, the method performs normalizing the transition probabilities over the two graphs to derive the posterior probability Pln={Plnyea, Plnnay}, representing the probability for xl to vote yn with yea and nay, respectively, according to equation 19) as:




  
    
      
        
          
            P
            ln
            yea
          
          =
          
            
              p
              
                
                  (
                  xy
                  )
                
                ln
              
              yea
            
            
              
                p
                
                  
                    (
                    xy
                    )
                  
                  ln
                
                yea
              
              +
              
                p
                
                  
                    (
                    xy
                    )
                  
                  ln
                
                nay
              
            
          
        
        ⁢
        
          

        
        ⁢
        
          
            P
            ln
            nay
          
          =
          
            
              p
              
                
                  (
                  xy
                  )
                
                ln
              
              nay
            
            
              
                p
                
                  
                    (
                    xy
                    )
                  
                  ln
                
                yea
              
              +
              
                p
                
                  
                    (
                    xy
                    )
                  
                  ln
                
                nay
              
            
          
        
      
    
    
      
        (
        19
        )
      
    
  




Then the uncertainty of the prediction of vote from xl to yn is measured by the mutual information I(xl, yn) according to equation 20) as:




  
    
      
        
          I
          ⁡
          
            (
            
              
                x
                l
              
              ,
              
                y
                n
              
            
            )
          
        
        =
        
          
            ∑
            
              x
              l
            
          
          ⁢
          
            
              ∑
              
                y
                n
              
            
            ⁢
            
              
                
                  p
                  ⁡
                  
                    (
                    
                      
                        x
                        l
                      
                      ,
                      
                        y
                        n
                      
                    
                    )
                  
                
                
                  
                    p
                    ⁡
                    
                      (
                      
                        x
                        l
                      
                      )
                    
                  
                  ⁢
                  
                    p
                    ⁡
                    
                      (
                      
                        y
                        n
                      
                      )
                    
                  
                
              
              .
            
          
        
      
    
    
      
        (
        20
        )
      
    
  




where p(xl,y) is the joint probability distribution and the marginal probabilities are p(xl),p(yn). In this formulation, p(xl,yn) refers to the probability of the yea and nay vote edge as shown in equations (19). The value p(xl) is interpreted as the probability of xl giving yea and nay votes, and p(yn) is the probability of yn receiving yea and nay votes, which are estimated as the priors in equation (7). Therefore, the mutual information I(xl, yn) is approximately computed according to equation 21) as:





  
    
      
        
          I
          ⁡
          
            (
            
              
                x
                l
              
              ,
              
                y
                n
              
            
            )
          
        
        ≈
        
          
            
              P
              ln
              yea
            
            ⁢
            log
            ⁢
            
              
            
            ⁢
            
              
                P
                ln
                yea
              
              
                
                  p
                  
                    
                      (
                      x
                      )
                    
                    l
                  
                  yea
                
                ⁢
                
                  p
                  
                    
                      (
                      y
                      )
                    
                    n
                  
                  yea
                
              
            
          
          +
          
            
              P
              ln
              nay
            
            ⁢
            log
            ⁢
            
              
            
            ⁢
            
              
                
                  P
                  ln
                  nay
                
                
                  
                    p
                    
                      
                        (
                        x
                        )
                      
                      l
                    
                    nay
                  
                  ⁢
                  
                    p
                    
                      
                        (
                        y
                        )
                      
                      n
                    
                    nay
                  
                
              
              .
            
          
        
      
    
    
      
        (
        21
        )
      
    
  




For each possible prediction of vote links, the above mutual information is computed and the one associated with maximum value is chosen. Then a new vote link is accordingly generated to G(xy)yea or G(xy)nay based on which one has higher posterior probability. This one steep greedy assignment for vote link prediction is written according to equations 22) as:

(l*,n*)=argmaxl,nI(xl,yn)

Pl*n*yea>Pl*n*nayw(xy)l*n*yea=1,

Pl*n*yea<Pl*n*nayw(xy)l*n*nay=1,  (22)

Finally, with the updated G(xy)yea or G(xy)nay, the corresponding transition matrix P(xy)yea or P(xy)nay is recomputed for the next random walk step. Through iteratively performing this random walk, where in each step the bipartite vote graph is updated with more links, all the missing vote links are gradually completed. FIG. 2 summarizes the heterogeneous graph-based random walk method and algorithm for predicting legislative votes.
Particularly, FIG. 2 illustrates an algorithm 100 to perform Iterative Vote Link Prediction through Random Walk over a Heterogeneous Graph in one embodiment. As shown in FIG. 2, the method 100 first includes, at 105, constructing a legislator graph G(x)={V(x),E(x),W(x)}, constructing a bill graph G(y)=W(y), E(y), W(y)}, and constructing vote graphs G(xy)yea={V(x)∪V(y),E(xy)yea,W(xy)yea} and G(xy)nay={V(x)∪V(x),E(xy)nay,W(xy)nay} as described herein. While the graphs set forth relate to the legislator vote prediction, it is understood that the principles described herein are applicable to any heterogeneous graph form used for recommendation or prediction problem. Then, in the manner described herein, there is performed computing transition probabilities P(x) and P(y) at 110 governing transition of a random walker starting from an i th vertex and iteratively jumping to its neighbors. Then at 115, there is performed deriving steady-state distributions R(x) representing the political relevance among legislators and R(y) representing the semantic relevance of bills. At 117, the random walker iteration counter is initialized, e.g., to t=0. Then, at 119 the method performs computing the initial bipartite graph transition probability matrices P(xy)yea(t) and P(xy)nay(t), e.g., using equation 16). Then, commencing an iterative loop 130, there is performed at each iteration the following: computing at 120, the bipartite graph transition probability matrices P(xy)yea(t+1) and P(xy)nay(t+1) using equations (18). Then at 122 there is performed estimating the posterior probabilities Plnyea and Plnnay for each possible vote link using equation 19. Then at 124 there is performed, for each possible prediction vote link, estimating the mutual information I(xl, yn) of the legislator and bill vertices using equation 20). Then at 126, there is performed updating the vote link W(xy)yea or W(xy)yea from the prediction with maximum mutual information, as in equations 22). Then at 127 there is performed updating the iteration counter: t=t+1 and at 129, computing the P(xy)yea(t) or P(xy)nay(t) with the new vote graphs. The processes in steps 120 to 127 are repeated as iterative loop 130 until all missing vote links are completed. At 135, a final output of the iterative procedure are the complete vote links W(xy)yea and W(xy)nay.
In a further embodiment, the novel random walk model with heterogeneous graphs methods and system described herein is implemented to leverage multiple source data and accomplish challenging prediction tasks for managing complex relational data, such as Buying-Selling Relations. That is, many predictive analytics problems in business intelligence involve a variety of different types of data. Currently, in today's interconnected world, buying/selling relations take form of complex hybrid networks. In such a setting, managing the buying/selling processes, and using the information on the network(s) optimally for business decision making (e.g. recommendation of cross-selling and up-selling) is difficult. In order to build a predictive model to generate such types of sales recommendations, one might consider both the relationships between clients and the attributes of clients' industry and the characteristics of the products. Besides predicting who might buy which product, estimating the influence of entities (e.g. vendors (sellers) or clients (customers)) is also very important for decision support.
For example, many different types of corporations and organizational structures need to manage complex hybrid buyer-seller networks. In one example, for a large global company that has a large salesforce for business-to-business selling, in this example, there are connections between clients if they share business partnerships, are in the same industry or sector, share strategy, have board members or executives in common, etc. There are also connections between the different salespeople based on working on teams together, communicating via social media, having the same job role, etc. Furthermore, there are connections between products and services as typically being part of the same solution, having similar function, etc. Additionally, there are connections between different pieces of marketing collateral based on semantic similarity, etc. The hybrid buying-selling network as represented generically by a heterogeneous graph 50 of FIG. 3 connects these different types of nodes: clients, salespeople, products, and marketing collateral, based on successful and unsuccessful interactions such as a salesperson using a particular piece of marketing collateral to sell a particular product to a particular client. Example recommendations that may be obtained from such networks such as shown in FIG. 3 are of the same form: which salesperson should a company recommend to sell what product using which piece of collateral to which client.
In a further example, a large retailer with many store locations whose managers have some liberty in stocking and purchasing decisions for their stores, in this example, the product suppliers, the products, the stores, and physical shelf locations within the store are all different types of nodes. Recommendations take the form of which products should a store purchase from whom and display where. Consumer demographics and other similarities connect stores (business enterprises) in this example.
A similar third example is a producer or manufacturer with a large global network of independent dealers. In this case, there is no network of product suppliers, but there is marketing collateral and individual salespeople. The decisions are similar to the other examples.
The method and system described herein is thus used to manage buying-selling relations across different types of connections. As shown in view of FIG. 3, the method includes two key components:
1) constructing the heterogeneous graph 50 including heterogeneous instances of abstract objects as graph nodes 60 and, for example, multiple client relations as edges 65 connecting those nodes. For instance, in a typical business analytics application, the graph nodes 60 may represent sellers and clients. Graph nodes 70 may represent products and/or services and multiple product associations as edges 75 connecting those nodes. The different types of relations, such as buy-seller relation and client product relation, are quantified as the weights of edges connecting those instances. Further, directed edges 80 between a node 60 and node 70 may represent a selling transaction, while directed edges 90 between a node 60 and node 70 may represent a buying transaction.
2) launching a multi-stage novel random walk model over the heterogeneous graph to accomplish prediction tasks with such rich information. The random walk within a subgraph with homogenous nodes usually produces the relevance between instances from the same type of objects. The random walk across different type of nodes adds new connections dynamically to provide the prediction of decisions, such as a client making a purchase of a product. That is, the heterogeneous graph with random walk modeling predicts edges to recommend new relevant connections.
Thus, in view of FIG. 3, the system and methods herein finds good new (i.e., not yet existing) business connections between different types of entities (e.g., actions, recommendations, outcomes, predictions), as represented by unknown connections 92 and 94 thereby driving business value.
FIG. 4 depicts generally a system 150 used to manage buying-selling relations 190 for multiple types of entities 152 (in one or more entity graphs) across different types of connections shown in the example heterogeneous graph 50 of FIG. 3. Using a computer device having a programmed processor such as described herein with respect to FIG. 5, the system performs: constructing the heterogeneous graphs at 160 to represent the accessed multi-source business data 155, including the existing within-entity edges, and existing cross-entity edges entity product relations (directed edges). From the graphs, using the computer system, there is performed the random walk starting with priors within each single-entity graph at 165. From within each single-entity graph, there is derived at 170 the steady-state distributions a descriptive analysis of influence and identifying communities 175. Using the steady-state distributions (from the single-entity graphs) and the heterogeneous graph representation 161, the computer system performs the two-way random walk across entity graphs at 180. At this step, there are dynamically added edges to the graph to product link prediction at 185 (e.g., a predictive analysis of generating sales recommendation).
Generally, from FIGS. 3 and 4, and the processing described herein, the generating of predictions for decision support include the performing random walk over unipartite graphs to derive stationary distributions (static); the iterative performing two-way random walk across the unipartite graphs (dynamic); and the measuring the confidence of the produced prediction links and updating of the graph structure accordingly. Thus, in view of FIG. 4, outcomes or predictions may be determined such as, e.g., 1) Which seller should sell which product to which company using which piece of marketing collateral? 2) If a seller has previously successfully sold to a company, then he or she may be able to successfully sell to another company closely connected to that company; 3) Moreover, another seller closely connected to this seller may be able to successfully sell to that other company.
With the methodology, one can 1) perform the predictive analysis simultaneously using multiple type relational data and attribute data without data aggregation or simplification, avoiding information loss; and 2) perform descriptive analysis of the influence estimate in a joint space of multiple types of entities.
Thus, the system and method described herein, makes use of rich relational and transactional information including: within-entity connections (including ones from social media, e.g., social connections, similarities and friendships) including identifying influencers and communities in each entity space to provide additional valuable information for decision support; and already existing cross-entity connections. The cross-entity connections include, but are not limited to: actions, recommendations, outcomes and predictions, etc. that are useful for applications involving Buyer-seller relationships; Expertise location; Market intelligence; Marketing; collateral recommendation; Business partnerships, mergers, and acquisitions; and Legislative vote prediction.
The system and method described herein can further be applied to the applications in biological and biomedical domains, such as validating a hypothesis between a prototype and a gene.
FIG. 5 illustrates an exemplary hardware configuration of a computing system infrastructure 200 in which the present method is run. In one aspect, computing system 200 receives the data and performs the method processing steps of FIG. 5, for example. The hardware configuration preferably has at least one processor or central processing unit (CPU) 211. The CPUs 211 are interconnected via a system bus 212 to a random access memory (RAM) 214, read-only memory (ROM) 216, input/output (I/O) adapter 218 (for connecting peripheral devices such as disk units 221 and tape drives 240 to the bus 212), user interface adapter 222 (for connecting a keyboard 224, mouse 226, speaker 228, disk drive device 232, and/or other user interface device to the bus 212), a communication adapter 234 for connecting the system 200 to a data processing network, the Internet, an Intranet, a local area network (LAN), etc., and a display adapter 236 for connecting the bus 212 to a display device 238 and/or printer 239 (e.g., a digital printer of the like).
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more tangible computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The tangible computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with a system, apparatus, or device running an instruction.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with a system, apparatus, or device running an instruction. The computer readable medium excludes only a propagating signal.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may run entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which run via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which run on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more operable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be run substantially concurrently, or the blocks may sometimes be run in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The embodiments described above are illustrative examples and it should not be construed that the present invention is limited to these particular embodiments. Thus, various changes and modifications may be effected by one skilled in the art without departing from the spirit or scope of the invention as defined in the appended claims.

## Claims

1. A method of predicting a relation between entities comprising:
constructing, at a computer device, a heterogeneous graph representation of multi-source data including: receiving data for forming multiple unipartite sub-graphs, each sub-graph having homogeneous vertices and edges connecting said vertices, and receiving data for forming bipartite sub-graphs having partially observed edges connecting respective nodes between any two different unipartite sub-graphs, said partially observed edges representing cross-entity links;
computing at said computer device, a steady-state relevance matrix for each sub-graph using a homogeneous Markov Random Walk model applied to each said unipartite sub-graph;
dynamically generating missing edges connecting vertices between each of two unipartite sub-graphs by applying, using said computed steady-state relevance matrix for each sub-graph, an iterative and heterogeneous Markov Random Walk model to said bipartite sub-graphs to dynamically generate missing edges, wherein a generated missing edge represents a cross-entity connection recommendation or prediction in said heterogeneous graph,
wherein a programmed processor unit of said computer device performs said receiving, constructing, applying said first Markov Random Walk model to each said unipartite sub-graph and applying said iterative Markov Random Walk model to said bipartite sub-graphs.

2. The method of claim 1, wherein said applying said iterative heterogeneous Markov Random Walk model comprises: at each iteration, traversing a bipartite graph through said partially observed edges to dynamically generate said missing edges.

3. The method of claim 1, wherein said applying said homogeneous Markov Random Walk model comprises:
computing a transition probability matrix for each said unipartite sub-graph, said computing said steady-state relevance matrix associated with a respective unipartite sub-graph based on a respective computed transition probability matrix.

4. The method of claim 3, wherein said applying said homogeneous Markov Random Walk model to each said unipartite sub-graph includes computing state probability matrices at transition times t and t+1, where a computed state probability matrix at time t+1 is a function of a computed state probability matrix at time t, said computed transition probability matrix, a computed matrix representing a uniform prior state for all the vertices of said a unipartite graph, and for a modeled random walker time transition between vertices in said sub-graph, a restart probability value for said unipartite sub-graph.

5. The method of claim 4, wherein one type of unipartite sub-graph comprise vertices representing a plurality of different users, and edges connecting a sub-set of different vertices of said one type of unipartite graph have different edge weights according to observed user affinity measures between different users, a computed steady-state relevance matrix associated with said respective one type of unipartite sub-graph is a function of a transition probability computed for a user, and a computed normalized matrix representing an affinity of said user to other users as represented in said one type unipartite graph.

6. The method of claim 4, wherein one type of unipartite sub-graph comprise vertices representing a plurality of items, said edges connecting a sub-set of different vertices of said one type of unipartite graph have different edge weights according to observed item similarity measures between different items, a computed steady-state relevance matrix associated with said respective item type of unipartite sub-graph is a function of a computed transition probability matrix for item, and a computed normalized matrix representing a similarity of an item to other items as represented in said second unipartite graph, and a restart probability value for said another type sub-graph.

7. The method of claim 4, wherein one type of unipartite sub-graph comprise vertices representing a different entity types, and edges connecting a sub-set of different vertices of said one type unipartite graph have different edge weights according to observed measures describing relationships between different entities, a computed steady-state relevance matrix associated with said respective entity type unipartite sub-graph is a function of:
a transition probability matrix for entities, a computed normalized matrix representing a similarity of entity to other entities in said entity type of unipartite graph, and a restart probability in said entity sub-graph.

8. The method of claim 4, wherein said dynamically generating said missing edges by applying said iterative and heterogeneous Markov Random Walk model to said bipartite graph comprises:
computing a first bipartite graph for partially observed edges representing positive cross-entity links that connect between vertices of a first unipartite sub-graph and vertices of a second unipartite sub-graph;
deriving a second bipartite graph for partially observed edges representing negative cross-entity links that connect between nodes of said first unipartite sub-graph and nodes of said second unipartite sub-graph; and
computing an initial positive bipartite graph transition probability matrix and an initial negative bipartite graph transition probability matrix corresponding to respective said derived first bipartite and second bipartite graphs.

9. The method of claim 8, wherein said dynamically generating said missing edges by applying said said iterative Random Walk model to said bipartite graph comprises, at each iteration:
deriving, for one step of random walk from time t to time t+1, for each respective said positive and negative bipartite graphs and, respective positive and negative bipartite graph transition probability matrices at time (t+1) and wherein elements of each said respective first and second bipartite graph transition probability matrices measure a probability of a cross-entity link defining of a new edge between vertices in said unipartite graphs;
estimating a respective positive and negative posterior probability and for each cross-entity link recommendation or prediction for said new edge between a node xl in said first unipartite graph to node yn in said second unipartite graph;
measuring an uncertainty of each possible cross-entity connection prediction as a mutual information approximation I(xl, yn), said mutual information approximation I(xl, yn) being a function of said positive and negative posterior probabilities and;
choosing a maximum mutual information approximation I(xl, yn) value among each possible binary classification prediction of the new edge; and
generating said new binary classified edge in either said first bipartite graph or second bipartite graph based on its posterior probability value; and
updating corresponding said initial first bipartite graph transition probability matrix at time (t) or said initial second bipartite graph transition probability matrix at time (t) with said generated new cross-entity connection.

10. The method of claim 9, further comprising:
repeating said deriving, estimating, measuring, choosing, generating and updating steps for each iteration to dynamically generate substantially all missing edges of said heterogeneous graph.

11. A method of predicting a legislator's vote in a proposed law item before Congress comprising:
constructing, at a computer device, a heterogeneous graph representation of multi-source data including: receiving data for forming a first unipartite sub-graph, said first sub-graph having homogeneous vertices representing legislators and edges connecting said vertices, and receiving data for forming a second unipartite sub-graph, said second unipartite graph having homogeneous vertices each representing a textual recitation of a proposed law item to be voted upon by said legislators; and receiving data to form a bipartite sub-graph having partially observed edges connecting vertices between said first and second unipartite sub-graphs, a partially observed edge representing a specific vote linking a legislator at user node xl in said first unipartite graph to a proposed law item yn in said second unipartite graph;
applying at said computer device, a homogeneous Markov Random Walk model to each said first and second unipartite sub-graph to derive a respective steady-state relevance matrix for each sub-graph;
applying, using said derive a steady-state relevance matrix for each sub-graph, an iterative and heterogeneous Markov Random Walk model to said bipartite sub-graphs to obtain missing edges connecting nodes of two unipartite sub-graphs, said iterative Markov Random Walk model traversing said bipartite graph through said partially observed edges to dynamically generate said missing edges, wherein a generated missing edge represents a legislator's vote prediction to any proposed law item in said heterogeneous graph,
wherein a programmed processor unit of said computer device performs said receiving, constructing, applying said first Markov Random Walk model to each said unipartite sub-graph and applying said iterative Markov Random Walk model to said bipartite sub-graphs.