论文部分内容阅读
复杂网络可以用来表示真实世界里的各种复杂的系统,其中节点代表一个个体,边表示个体之间的关系。人们用复杂网络来研究真实系统的内在规律,并获取实际问题的解决途径。作为目前复杂网络最热门的研究领域之一,链路预测可以根据网络中的节点属性或是结构信息预测网络中尚未产生的链路,从而揭示网络中隐而未现的信息。因为链路预测算法存在潜在的应用价值,它被不同学科领域的科研人员所关注,已成为当前的一个研究热点。链路预测主要可以分为基于节点属性和基于网络结构这两种方法。基于节点属性的链路预测能够很好的预测网络中的节点对,但是这种方法需要和机器学习等方式结合,对于不同的网络需要确定不同的参数组合才能达到最好的预测效果,在真实的网络中,要想得到节点的属性并不是一件简单的事情,在社交网络中,每个节点的很多属性往往是不公开的又是不真实的,同时,节点的哪一类属性对链路预测是有帮助的也是很难确定的。基于网络结构的链路预测更加简单,获得网络的结构信息也要比获得网络中节点的属性要来的简单许多。而且,基于网络结构的链路预测算法在各种网络中具有普遍适用性。在本论文中,重点研究了基于网络结构的链路预测算法。基于网络结构的链路预测算法主要有CN、AA、RA和Katz等。Katz考虑了节点对之间的所有路径(路径长度为2和路径长度大于2的路径),在现实的网络中,高阶路径虽然包含着大量的网络结构信息,也确实可以提高链路预测的准确度,但是并不是考虑越高阶的路径对链路预测的效果就越好,所以我们在分析了节点对之间各种长度的路径对节点对之间产生链路的影响之后,发现当我们考虑的节点对之间的路径长度小于等于3的时候,预测的效果会比较好,在这个基础之上,提出了基于有效路径度的链路预测算法,通过对12个真实网络的仿真,发现我们的算法相比较其他9种经典算法在性能上有了很大的提升。对于CN、AA和RA等算法只是简单统计节点对之间中间节点的个数或是度数而没有区别中间节点的重要性,我们提出了基于朴素贝叶斯模型的改进链路预测算法,这种算法克服了CN、AA和RA算法仅仅统计二步路径的中间节点而且还无法很好地区分中间节点对链路产生的贡献率的缺点,利用经典朴素贝叶斯数学模型对每个中间节点赋予一个贡献率,从而有效地区分每个中间节点。通过对4个真实网络的仿真,基于提出的基于朴素贝叶斯模型的改进链路预测算法(Bay_CN、Bay_AA、Bay_RA、Bay_LP)要比经典的CN、AA和RA和LP效果要好。前面提出的链路预测算法主要都是考虑无向的网络。虽然无向网络是复杂系统的最简单的表示方式,但是,在很多的真实网络中,节点和节点之间的相互关系都是有区别的。例如,在社交网络中,有部分的朋友是我们的亲密朋友,经常地联系,但是,有些朋友我们很久才会去联系。这种亲密和疏远的关系是可以用网络的方向来刻画的,所以在研究了有向网络中任意一个节点对之间的中间节点的出度和入度对这个节点对产生链路的影响,提出了一种基于网络节点有效性的链路预测算法,通过和四个经典算法在四个真实网络的仿真得出基于节点有效性的链路预测算法在性能上要比其他经典算法出色。