|||
首先声明一下,链路预测这个问题上我是个井底之蛙,就读了一片文献就上来冒泡了,请各位老大多批评。
最近读了Missing and spurious interactions and the reconstruction of complex networks. Guimera, R, Sales-Pardo, M. Proc. Natl. Acad. Sci. U. S. A这篇论文(http://www.pnas.org/content/early/2009/12/11/0908366106.abstract),还有科学网上几篇周涛他们使用节点的相似特性进行链路预测的博文,我发现大家在研究链路预测问题的时候,都是系统性的针对于一系列网络进行预测,一般文章里面也强调了算法的广泛适用性,根据某类网络特点进行预测的好像不多(很可能有,但是我没看到)。
现在的工作是否可以理解为大家在开发通用性的链路预测算法,这有点像计算机行业里面的问题,比如说开发一个数据压缩算法,因为我们的电脑里面有文本、有电影、有照片、有数据,那么比较好的压缩算法就是虽然某一类型文件的压缩效率不是最高,但是基本上每种数据的压缩效果都不错,最终达到一种总体上的最优。通用算法应该是更侧重于数据挖掘或机器学习方面,这方面CS业的人搞比较合适,我隐约觉得感觉好的算法不一定需要理解每一种复杂网络的特点作为基础??
但是对复杂网络上的链路预测而言,固然我们需要这样通用性的算法(可以作为benchmark),但我觉得更可以花些力气搞搞某一类型网络的链路预测问题,比如说针对单纯在线社会网络的链路预测、单纯针对基因调控网络的链路预测。
一方面是这样做应该可以提到预测的准确性。不同类型网络具有不同的特点,开发通用算法的时候就不能使用某种类型网络的特点来对算法进行优化。研究通用算法的时候,每种网络的结构特点和演化规律很难用一种方法统一起来,这时候算法能否挖掘出各种网络的“共性”是非常重要的。分开预测的好处是我们可以研究每种类型网络的特点或演化规律,将这些统计规律作为先验知识应用到预测算法中去,这样就会提高预测精度。和我们的电脑里面各种类型文件都有不同,研究基因的他们只关注基因网络,而社会科学家只关心社会网络,他们之间几乎没有的交集,所以我们这么做是可行的。
另一方面也有助于我们理解了链路预测中的一些本质问题,现在的预测算法主要是在描述“怎么做”性能才好,给大家讲“为什么”的工作还比较少。比如说为什么有些网络使用各种算法的预测精度都比较高,有些比较低?又比如说一个网络中有多少信息是可以预测出来的,有多少信息是没办法预测的?虽然这样的问题很大,但是我觉得通过研究网络结构的特点,然后将结构特点和预测算法里面用到的信息进行对照可能是一个比较可行的方法。研究某一类型网络的特点和链路预测算法的相关性是一个很好的出发点, 它有助于回答为什么A预测算法比B预测算法好,什么样的网络结构下D算法的预测性能要比C算法好。
最近读了一些社会网络的论文,最直观的感觉就是现在的工作好像把网络演化的规律和链路预测给分开了,如果研究的是演化网络的话,实际上这应该算是同一个问题吧? 比如说社会网络你将某些节点去掉,然后推测某些链接是否存在,我的感觉和我们知道t时刻某社会网络的情况来预测t+i时刻网络的情况几乎是一样的。
通过社会网络的演化规律来预测社会网络的链路,最近这方面有点想法,留个尾巴下次再写吧。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-8-18 02:11
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社