传统link prediction算法
经典算法
现有的启发式可以根据计算分数所需的邻居的最大跳数(k-hop)进行分类
例如:
one-hop
- Common Neighbors 算法基于这样一个假设,即两个节点共有的邻居数量越多,它们之间存在链接的可能性就越大: C N ( u , v ) = ∣ Γ ( u ) ∩ Γ ( v ) ∣ \mathrm{CN}(u,v)=|\Gamma(u)\cap\Gamma(v)| CN(u,v)=∣Γ(u)∩Γ(v)∣其中, Γ ( v ) \Gamma(v) Γ(v)表示节点v的邻居
- Preferential Attachment算法基于“富者更富”或“优先连接”的概念,即流行的节点(即邻居数量多的节点)更有可能在未来获得更多的链接。这个想法来源于无标度网络的成长模型,其中一些节点因为具有较高的连接度而更容易吸引新的连接: P A ( u , v ) = ∣ Γ ( u ) ∣ × ∣ Γ ( v ) ∣ \mathrm{PA}(u,v)=|\Gamma(u)|\times|\Gamma(v)| PA(u,v)=∣Γ(u)∣×∣Γ(v)∣
two-hop
- Adamic-Adar:Adamic-Adar算法基于这样一个假设,即不是所有的共享邻居都同等重要。具体来说,如果一个共享邻居与很多其他节点相连(即度较高),那么它对于链接预测的贡献应该比度较低的邻居小。因此,AA算法倾向于给那些连接度较低的共享邻居更高的权重。 A A ( u , v ) = ∑ z ∈ Γ ( u ) ∩ Γ ( v ) 1 log ∣ Γ ( z ) ∣ ‾ \mathrm{AA}(u,v)=\sum_{z\in\Gamma(u)\cap\Gamma(v)}\frac1{\overline{\log|\Gamma(z)|}} AA(u,v)=z∈Γ(u)∩Γ(v)∑log∣Γ(z)∣1
- Resource Allocation:Resource Allocation算法受到物理学中的资源分配过程的启发。在这个模型中,每个节点都被视为有一定资源的实体,这些资源可以通过它们的共享邻居进行分配。如果两个节点通过共享邻居接收到更多的资源,那么它们之间存在链接的可能性就更大。RA算法假设资源的分配是均等的,不同于AA算法中对低度节点的偏好。 R A ( u , v ) = ∑ z ∈ Γ ( u ) ∩ Γ ( v ) 1 ∣ Γ ( z ) ∣ \mathrm{RA}(u,v)=\sum_{z\in\Gamma(u)\cap\Gamma(v)}\frac1{|\Gamma(z)|} RA(u,v)=z∈Γ(u)∩Γ(v)∑∣Γ(z)∣1
k-hop
- PageRank
- Katz index
- SimRank
缺陷
启发式方法对何时可能存在链接有很强的假设:由于启发式算法可以看作是预先定义的图结构特征
例如,公共邻居启发式假设如果两个节点有许多公共邻居,则它们更有可能连接。这种假设在社交网络中可能是正确的,但是在交通和物流网络中,两个节点之间的连接可能更多地受到地理距离和交通便利性的影响,而与它们共享的其他节点数量关系不大。在这类网络中,基于距离和流量优化的算法可能比传统启发式算法更有效。
γ-decaying heuristic
封闭子图 enclosing graph
对于图 G = ( V , E ) G=(V,E) G=(V,