本发明涉及链路预测领域,尤其涉及一种基于节点相似度的链路预测方法及装置。
背景技术:
:复杂网络的模式与演化分析具有重要的研究和应用价值,网络中节点相似度的计算是解决很多实际问题如链路预测、属性推断等的基础。复杂网络中节点相似度计算方法可以支撑生物网络分析、社交网络好友推荐、个性化内容推荐、信息网络属性推断、标签分类等应用。在链路预测的研究中,无向无权网络是最基本的刻画形式,而基于相似性的方法是最早提出并得到实证的简单有效的方法。基于相似性的研究框架仍然是链路预测的研究热点方法,一方面,现今对网络数据的刻画较以往丰富了许多,以社交网络为例,用节点表示的用户具有了更多的属性信息,包括兴趣、偏好、地域、行为等等个性化信息;而用边不仅可以表示用户间的好友或关注等静态关系,还可以表示交互、互动、时空关联等动态关系。丰富的网络属性信息和拓扑物理意义为相似性定义提供了广泛的研究对象;另一方面,网络数据的规模增长迅速,实际应用中对算法性能的要求更为严苛,一些复杂的建模方法和概率模型如似然分析虽然在准确率指标上优于相似性方法,但是其研究价值仅限于对网络结构特征的理解,处理节点规模的限制和时间复杂度过高决定了其应用性不强。现有的基于相似性的算法主要包括基于局部信息、基于路径和基于随机游走的相似性指标,其中基于局部信息共同邻居的相似性指标是最常用的方法。共同邻居指标中两个节点的相似性由其共同邻居节点的个数刻画,这种指标在实证网络中证明是有效的;同时一些改进方法考虑对两个节点各自共同邻居的集合进行操作,如利用余弦相似度提出了SALTON指标。另一些优化方法考虑两个节点各自的度,提出对大度节点有利或对小度节点有利的指标;考虑共同邻居节点的度,提出Adamic-Adar指标:度小的共同邻居节点的贡献大于度大的共同邻居节点,且以该节点度的对数的倒数递减;受网络资源分配过程的启发提出网络资源分配指标,本质上与Adamic-Adar指标类似,只是以该节点的度的倒数递减;考虑共同邻居节点间的相互关系,提出节点引力指标。技术实现要素:本发明所要解决的技术问题是:现有的节点相似度计算方法时间复杂度高并且准确性较低,提供了一种基于节点相似度的链路预测方法及装置。本发明解决上述技术问题的技术方案如下:一种基于节点相似度的链路预测方法,包括以下步骤:步骤1:对待分析的网络进行节点和链路表示;步骤2:获取网络中两个没有直接链路连接的节点;步骤3:读取所述两个没有直接链路连接的节点各自的邻居节点集合;步骤4:对所述两个没有直接链路连接的节点各自的邻居节点集合取交集,得到共同邻居集合;步骤5:将共同邻居集合视为子网,进行子网全局簇系数和子网中任意一个共同邻居节点簇系数的计算;步骤6:根据子网全局簇系数和子网中任意一个共同邻居节点簇系数计算所述两个没有直接链路连接的节点相似度;步骤7:根据计算得到的节点相似度进行链路预测。本发明的有益效果是:本发明在分析复杂网络局部结构中节点的相互关系时从簇系数角度出发,定义了基于局部簇系数的节点相似度计算新指标,从一个新的角度给出了节点相似度计算方式,本发明提出的节点相似度计算方法,与传统有监督方法相比具有计算快速,时间复杂度低的优势,与传统无监督方法相比具有准确性高的优势。在上述技术方案的基础上,本发明还可以做如下改进。进一步,所述步骤5具体包括:步骤5.1:对于子网中任意一个共同邻居节点z的局部簇系数cz,随机取两个共同邻居集合中两个不同于z的共同邻居节点v,w,当z的度大于1时,局部簇系数cz为其中,A为z、v、w三个节点互相之间均有链路连接的数量,B为z和v、z和w之间均有链路连接且v与w之间没有链路连接的数量;当z的度小于等于1时,cz为0;步骤5.2:对共同邻居集合的全局簇系数C根据公式进行计算,其中t是共同邻居集合子网中所有节点连接成三角形的个数,s是共同邻居集合子网中所有节点连接成V形的个数。进一步,所述步骤6具体包括:用x和y表示所述两个没有直接链路连接的节点,其相似度根据公式进行计算,其中C是共同邻居集合的全局簇系数,cz是共同邻居节点z的局部簇系数,Γ(x)∩Γ(y)为节点x和y的共同邻居集合。进一步,所述步骤7具体包括:步骤7.1:重复步骤2-6,得到复杂网络中任意两个没有直接链路连接的节点的相似度;步骤7.2:对节点相似度进行从大到小的排序。进一步,所述网络为无向无权复杂网络。对应上述方法,本发明的技术方案还包括一种基于节点相似度的链路预测装置,包括:表示模块、计算模块、遍历模块、预测模块;所述表示模块用于对待分析的复杂网络进行节点和链路表示;所述计算模块用于取所述复杂网络中两个没有直接链路连接的节点,得到两个节点各自的邻居节点集合,将两个节点的邻居节点集合取交集得到共同邻居集合,将所述共同邻居集合作为一个子网,计算出所述子网全局簇系数以及所述子网任意一个共同邻居节点簇系数,根据所述全局簇系数和所述任意一个共同邻居节点簇系数计算节点相似度;所述遍历模块用于根据所述计算模块遍历复杂网络所有节点,得到复杂网络中任意两个没有直接链路连接的节点的相似度;所述预测模块用于根据遍历模块与计算模块得到的相似度进行链路预测。本发明的有益效果是:本发明在分析复杂网络局部结构中节点的相互关系时从簇系数角度出发,定义了基于局部簇系数的节点相似度计算新指标,从一个新的角度给出了节点相似度计算方式,本发明提出的节点相似度计算方法,与传统有监督方法相比具有计算快速,时间复杂度低的优势,与传统无监督方法相比具有准确性高的优势。进一步,所述计算节点相似度包括:用x和y表示所述两个没有直接链路连接的节点,其相似度根据公式进行计算,其中C是共同邻居集合的全局簇系数,cz是共同邻居节点z的局部簇系数,Γ(x)∩Γ(y)为节点x和y的共同邻居集合;对于子网中任意一个共同邻居节点z的局部簇系数cz,随机取两个共同邻居集合中两个不同于z的共同邻居节点v,w,当z的度大于1时,局部簇系数cz为其中,A为z、v、w三个节点互相之间均有链路连接的数量,B为z和v、z和w之间均有链路连接且v与w之间没有链路连接的数量;当z的度小于等于1时,cz为0;对共同邻居集合的全局簇系数C,根据公式进行计算,其中t是共同邻居集合子网中所有节点连接成三角形的个数,s是共同邻居集合子网中所有节点连接成V形的个数。进一步,所述预测模块按照大小对节点相似度进行从大到小的排序。进一步,所述网络为无向无权复杂网络。附图说明图1为本发明一种基于相似度的链路预测方法及装置的流程示意图。具体实施方式以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。如图1所示,为本发明实施例给出的一种基于节点相似度的链路预测方法,包括以下步骤:步骤1:对待分析的网络进行节点和链路表示;步骤2:获取网络中两个没有直接链路连接的节点;步骤3:读取所述两个没有直接链路连接的节点各自的邻居节点集合;步骤4:对所述两个没有直接链路连接的节点各自的邻居节点集合取交集,得到共同邻居集合;步骤5:将共同邻居集合视为子网,进行子网全局簇系数和子网中任意一个共同邻居节点簇系数的计算;步骤6:根据子网全局簇系数和子网中任意一个共同邻居节点簇系数计算所述两个没有直接链路连接的节点相似度;步骤7:根据计算得到的节点相似度进行链路预测。其中,所述步骤5具体包括:步骤5.1:对于子网中任意一个共同邻居节点z的局部簇系数cz,随机取两个共同邻居集合中两个不同于z的共同邻居节点v,w,当z的度大于1时,局部簇系数cz为其中,A为z、v、w三个节点互相之间均有链路连接的数量,B为z和v、z和w之间均有链路连接且v与w之间没有链路连接的数量;当z的度小于等于1时,cz为0。步骤5.2:对共同邻居集合的全局簇系数C根据公式进行计算,其中t是共同邻居集合子网中所有节点连接成三角形的个数,s是共同邻居集合子网中所有节点连接成V形的个数。其中,所述步骤6具体包括:用x和y表示所述两个没有直接链路连接的节点,其相似度根据公式进行计算,其中C是共同邻居集合的全局簇系数,cz是共同邻居节点z的局部簇系数,Γ(x)∩Γ(y)为节点x和y的共同邻居集合。其中,所述步骤7具体包括:步骤7.1:重复步骤2-6,得到复杂网络中任意两个没有直接链路连接的节点的相似度;步骤7.2:对节点相似度进行从大到小的排序。其中,所述网络为无向无权复杂网络。本发明实施例还给出一种基于节点相似度的链路预测装置,包括:表示模块、计算模块、遍历模块、预测模块;所述表示模块用于对待分析的复杂网络进行节点和链路表示;所述计算模块用于取所述复杂网络中两个没有直接链路连接的节点,得到两个节点各自的邻居节点集合,将两个节点的邻居节点集合取交集得到共同邻居集合,将所述共同邻居集合作为一个子网,计算出所述子网全局簇系数以及所述子网任意一个共同邻居节点簇系数,根据所述全局簇系数和所述任意一个共同邻居节点簇系数计算节点相似度;所述遍历模块用于根据所述计算模块遍历复杂网络所有节点,得到复杂网络中任意两个没有直接链路连接的节点的相似度;所述预测模块用于根据遍历模块与计算模块得到的相似度进行链路预测。其中,所述计算节点相似度包括:用x和y表示所述两个没有直接链路连接的节点,其相似度根据公式进行计算,其中C是共同邻居集合的全局簇系数,cz是共同邻居节点z的局部簇系数,Γ(x)∩Γ(y)为节点x和y的共同邻居集合;对于子网中任意一个共同邻居节点z的局部簇系数cz,随机取两个共同邻居集合中两个不同于z的共同邻居节点v,w,当z的度大于1时,局部簇系数cz为其中,A为z、v、w三个节点互相之间均有链路连接的数量,B为z和v、z和w之间均有链路连接且v与w之间没有链路连接的数量;当z的度小于等于1时,cz为0;对共同邻居集合的全局簇系数C,根据公式进行计算,其中t是共同邻居集合子网中所有节点连接成三角形的个数,s是共同邻居集合子网中所有节点连接成V形的个数。其中,所述预测模块按照大小对节点相似度进行从大到小的排序。其中,所述网络为无向无权复杂网络。表1.与本发明类似的相似度指标如表1所示:x和y为两个待计算相似度的节点,Γ(x)为节点x的邻居节点集合,Γ(y)为节点y的邻居节点集合,局部结构为两个节点的共同邻居集合即|Γ(x)∩Γ(y)|,kx为节点x的度,ky为节点y的度,kz为共同邻居节点的度,ez为共同邻居内链接数。表1中除了节点引力指标,用到的信息都仅仅是共同邻居节点的个数,各自的度。共同邻居指标和Salton指标对每对节点来说,其共同邻居集合中所有节点视为等同。而共同邻居节点本身也是网络中的一般个体,也有其独特的特性,体现为网络的差异性。基于此,Adamic-Adar指标和网络资源分配指标将差异性建模为节点的度,即在全网范围该节点的链接数,且根据观察和实证,共同邻居节点度的大小对节点相似度的影响是成反比关系,相应的指标设计为倒数或指数倒数方式。节点引力指标更进一步在考虑共同邻居节点度的同时,加入了正相关因子ez,即节点z与其他共同邻居之间以及与节点x和y的链接数,相当于在一个局部集合Γ(x)∩Γ(y)∪{x,y}中的度,本质上是局部度大的节点对相似度影响更大。将待分析的复杂网络用一个无向无权图表示G=(N,E),其中N是节点的集合,E是链接的集合。两个节点是否产生链接与其相似程度成正比,即两个节点相似度越大,产生链接的可能性越大,在给定的网络数据集G中根据相似性指标计算得到网络中每两个节点之间的相似值(构成相似度矩阵S),根据相似值排序,即可给出两个节点间产生链接的概率排序。本实施例在度量节点间相似性时,从网络本身的拓扑结构分析,未考虑其他由于网络特殊性造成的节点自身属性,如社交网络中表示用户的节点拥有用户个性化兴趣、行为属性等。用x和y表示所述两个没有直接链路连接的节点,其相似度根据公式进行计算,其中C是共同邻居集合的全局簇系数,cz是共同邻居节点z的局部簇系数,Γ(x)∩Γ(y)为节点x和y的共同邻居集合。分别按照如下定义计算:对于子网中任意一个共同邻居节点z的局部簇系数cz,随机取两个共同邻居集合中两个不同于z的共同邻居节点v,w,当z的度大于1时,局部簇系数cz为其中,A为z、v、w三个节点互相之间均有链路连接的数量,B为z和v、z和w之间均有链路连接且v与w之间没有链路连接的数量;当z的度小于等于1时,cz为0。其中t是共同邻居集合子网中所有节点连接成三角形的个数,s是共同邻居集合子网中所有节点连接成V形的个数,根据上述三个公式即可计算出节点x和y之间的相似度。下面通过实际计算比较本发明提出的从簇系数角度出发的新指标与其他指标在节点相似度计算方面的优势。选取生物网络、社交网络、信息网络等6个数据集,与5种其他相似度计算方法进行对比,选用的数据集包括:美国航空网络(UA),由美国航空运输系统的332个机场和2126条航线构成;美国政治博客网络(PB),由1222个博客和19021条博客之间的超链接构成;新浪微博网络(WB),由500个新浪微博VIP用户和这些用户之间的8735条关注关系构成,利用新浪微博提供的API采集得到;线虫的神经网络(CE),由线虫的297个神经元和2345条神经构成;Wikipedia网络(WK),由维基百科网的7066个用户和103663投票信息构成;电子邮件网络(EM),由西班牙某大学的1133个电子邮箱账号和相互之间5451次邮件往来构成。同时选用了常用的局部相似性指标作为对比,有共同邻居指标(CN)及其改进方法,利用余弦相似性的Salton指标(SA);偏向于度小的共同邻居节点的Adamic-Adar指标(AA);基于网络资源分配的指标(RA);以及新近提出的节点引力指标(IA)。值得注意的是链路预测步骤框架是一样的,仅仅是节点相似度计算方法不一样。表2不同相似度计算方法的预测AUC评价结果AUCCNSAAARAIA本发明UA0.95090.93040.96190.96650.96620.9723PB0.92060.87280.92280.92380.92510.9528CE0.85810.79930.87680.87870.87940.8909WB0.81220.80050.81110.80890.81000.8766WK0.86370.79350.86410.85850.86600.8788EM0.84980.85100.85480.85390.85560.8598对链路预测效果用AUC评估方法:AUC=(N0+0.5Ne)/N。将网络分为训练集和测试集(比例为9:1),在通过训练集计算得到网络中每两个节点之间的相似度分数后,每次随机从测试集和不存在的边集中分别选取一条边进行比较,如果测试集中的边的相似度分数值大于不存在边的相似度分数值,就加1分(共N0次);如果两个相似度分数值相等,就加0.5分(共Ne次),以上独立比较n次。如果所有分数都是随机产生的,那么得到的AUC=0.5,各种算法的AUC值比0.5大的程度衡量了算法比随机选择准确的程度。根据表2结果,表明本发明提出的节点相似度方法在链路预测问题中比对比算法得到更好的效果,根据本发明计算得到的节点相似度进行链路预测,节点相似度越大,两节点产生链路连接的可能性越大。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3