一种极简单但效果特别好的链路预测方法
周涛  |  2013-08-04  |  科学网  |  385次阅读

最近读到Timothy Ravasi小组今年4月在Scientific Reports上一篇链路预测的论文[1]Ravasi等人认为,一个好的链路预测算法背后往往有一个网络形成的机制,反过来,一个重要的机制往往能够抽象出一种精确的链路预测方法。Ravasi等人也提到了,这个想法实际上最初来自王文强和张千明2012年的一个工作[2]

 

Ravasi等人关于网络结构形成的想法应该很强地收到了Ahn等人2010Nature工作的影响[3]Ravasi等人认为,网络倾向于形成某种局部的社团结构。针对两个未曾连边的节点对xy,如果用CN(x,y)表示共同邻居指数(xy有多少个共同邻居),Ravasi等人定义了一个新指数CAR(x,y)=CN(x,y)*LCL(x,y),其中LCL(x,y)是指xy的局部群落边,也就是在xy的所有共同邻居之间连的边的数目。

 

这个公式实在是简单,基本不增加太多的计算量,但是从Ravasi等人实验结果来看,能够很明显提高CN的精确度,也超过了Adamic-Adar指数和Resource Allocation指数。这一点是令我惊讶的,因为对CN的提高可以理解为分辨率的增加(作者自己也提到了),但是AARA指数没有这个问题。当然,作者自己也提出来AARA指数的一个变种,这个价值反而不大,因为AARA的思路不是这样的,用到global degree的原因是因为存在一个popular的共同邻居给不了多少信息。

 

这是一篇实验非常充分的文章,作者还尝试提出了一个分辨网络是不是真的具有局部群落的办法,并在几十个网络上做了实验。遗憾的是,这个办法本身不能给出是否存在局部群落的清晰的因果关系,作者后面的讨论也颇多牵强。文章最最大的问题是,没有任何有力的证据给出CNLCL之间是一个简单乘法关系——为什么不是加法,或者乘以LCL的方根,正如作者说的,方根和CN之间才具有线性可比性。

 

类似的思路在今年2月张千明的一篇PLoS ONE中也出现过[4],同样是从一个演化机制出发,抽象出一种链路预测算法,然后通过算法表现再回过头来验证这种机制,只不过张千明这篇文章针对的是有向网络。我觉得[1][2][4]三篇文章对照起来阅读非常有意思,[1][4]是强调从机制中抽象算法出来,[2]是强调利用算法表现评价机制。

 

 

[1] C. V.Cannistraci, G. Alanis-Lobato, T. Ravasi, From link-prediction in brainconnectomes and protein interactomes to the local-community-paradigm in complexnetworks, Scientific Reports 3 (2013) 1613.

全文链接:http://www.nature.com/srep/2013/130408/srep01613/full/srep01613.html

 

[2] W.-Q. Wang,Q.-M. Zhang, T. Zhou, Evaluating network models: A likelihood analysis, EPL 98(2012) 28004.

全文链接:http://iopscience.iop.org/0295-5075/98/2/28004

 

[3] Y.Y. Ahn, J.P. Bagrow, S. Lehmann, Link communities reveal multiscale complexity in networks,Nature 466 (2010) 761.

全文链接:http://www.nature.com/nature/journal/v466/n7307/abs/nature09182.html

 

[4] Q.-M. Zhang,L. Lu, W.-Q. Wang, Y. X. Zhu, T. Zhou, Potential Theory in Directed Networks,PLoS ONE 8 (2012) e55437.

全文链接:http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0055437

 




文章原载于作者的科学网文章,所述内容属作者个人观点,不代表本平台立场。
本文经过系统重新排版,阅读原内容可点击 阅读原文