一种网络节点的相似度计算方法与流程

文档序号:12491424阅读:4919来源:国知局

本发明涉及网络技术领域,特别涉及一种网络节点的相似度计算方法。



背景技术:

相似性的度量在复杂网络、社区发现、推荐系统以及数据挖掘等领域有重要应用。近年来,节点间相似性的衡量取得了较大进展,目前已有的衡量节点相似性的方法主要集中在两节点邻域中所共有的节点特征的计算,大致可分为:Common-Neighbors相似度、Salton相似度、Jaccard相似度、Sorensen相似度、Hub Promoted相似度、Hub Depressed相似度、Leicht-Holme-Newman相似度、Preferential Attachment相似度、Adamic-Adar相似度等,这些相似度衡量方法主要通过衡量节点间所共有的邻节点的度数或者直接是该节点本身的度数进行相似性的估算,而对于相邻节点不能够准确的衡量节点间的相似性。

研究发现,相邻节点间的相似性衡量如果仍采用共有的相邻节点特征进行衡量,那么会出现与二阶邻域节点的相似性高于直接相邻的节点的相似性。鉴于已有相似性度量方法不能够准确衡量相邻节点间的相似性,本发明主要解决直接相邻节点之间的相似度的准确衡量问题。



技术实现要素:

本发明实施例提供了一种网络节点的相似度计算方法,用以解决现有技术中存在的问题。

一种网络节点的相似度计算方法,包括:

采集网络中的节点信息,将所述节点信息转换为邻接表,其中所述节点信息包括节点集V;

利用所述邻接表计算所述节点集V中每个节点p的直接邻接点集

利用所述邻接表,使用Floyd算法计算所述节点集V中每个节点p的二阶邻接点集

将节点p作为代表点,将所述直接邻接点集中任意一个节点u作为吸引链上的1跳节点,计算u的拓扑势Ap←u

将节点p作为代表点,将所述节点p依赖于节点u的二阶邻接点集中任意一个节点s作为吸引链上的2跳节点,计算s的拓扑势Ap←s,其中,

计算所述拓扑势Ap←u和总拓扑势之间的比值Ru,s

根据所述直接邻接点集和节点s,计算节点p与二阶邻接点集中所有节点的总Adamic-Adar Index相似度Simp,s

根据所述总Adamic-Adar Index相似度Simp,s和比值Ru,s计算节点p和u的Adamic-Adar Index相似度Simp,u=Ru,s×Simp,s

判断所述节点集V中每个节点和其直接相邻节点之间的相似度是否计算完成,如果是则方法结束,否则重新计算所述节点集V中每个节点p的直接邻接点集

优选地,计算所述节点集V中每个节点p的二阶邻接点集的方法包括:将所述邻接表中节点和其邻接节点直接相连的形式转化为邻接矩阵A[i,j]n×n,n表示节点总数,其中,节点i和节点j如果是直接相连的,那么A[i,j]=1,否则为0;然后,根据所述邻接矩阵A[i,j]n×n,利用Floyd算法计算获得最终的距离矩阵D[i,j]n×n,从距离矩阵D[i,j]n×n中获取每个节点的二阶邻接点集

优选地,计算u的拓扑势Ap←u的方法包括:将节点p以及所述直接邻接点集所构成的集合定义为Γ(p),将节点p作为拓扑势中的代表点,在其一条吸引链上第a跳节点pa,a为整数,对于代表点p的拓扑势为那么节点u对于代表点p的拓扑势为其中,σopt表示控制每个节点影响范围的因子。

优选地,计算s的拓扑势Ap←s的方法包括:根据所述邻接表,将节点s及其直接邻接点集所构成的集合定义为Γ(s),计算得到所述二阶邻接节点中节点的拓扑势之和为并且节点s和节点u在相同的吸引链上。

优选地,计算得到的所述比值Ru,s的为

优选地,计算得到的所述总Adamic-Adar Index相似度Simp,s为其中,k(z)表示节点z的度数。

优选地,计算节点p和u的Adamic-Adar Index相似度的方法包括:

因此,

本发明的有益效果在于:本发明提供的网络节点复杂度计算方法,主要利用节点的拓扑势以及Adamic-Adar Index相似性,首先计算出各点的与其二阶邻节点之间的拓扑势,然后将能够通过某一直接相连节点访问的所有二阶邻节点的拓扑势求和,通过该一阶邻节点和其二阶邻节点拓扑势之后的比值等价于一阶邻节点与其二阶邻节点相似度之后的比值,最终计算出节点与邻节点之间的相似性。本发明提供的方法不仅能够快速有效地衡量相邻节点之间的相似性,还能避免节点间相似性的过度相同引起的节点间相似度无法区分问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种网络节点的相似度计算方法的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种网络节点的相似度计算方法,该方法包括:

步骤100,采集网络的节点信息,所述节点信息包括节点集V和边集E,将所述节点信息转化成邻接表;

步骤110,利用所述邻接表计算所述节点集V中的每个节点p的直接邻接点集

步骤120,将所述节点集V中节点和其邻接节点直接相连的形式转化为邻接矩阵A[i,j]n×n,n表示节点总数。其中,节点i和节点j如果是直接相连的,那么A[i,j]=1,否则为0。然后,根据所述邻接矩阵A[i,j]n×n,利用Floyd算法计算多源点之间的最短路径,获得最终的距离矩阵D[i,j]n×n,从所述距离矩阵D[i,j]n×n中获取每个节点p的二阶邻接点集

步骤130,将节点p以及所述直接邻接点集所构成的集合定义为节点集Γ(p)。将节点p作为拓扑势中的代表点,所述拓扑势的一条吸引链上第a跳(a为整数)节点pa对于代表点p的拓扑势为简称为那么所述直接邻接点集中的节点u对于代表点p的拓扑势为简称为其中,σopt表示控制每个节点影响范围的因子,节点的影响范围通过l设置调整σopt因子来控制节点的影响范围;

步骤140,依赖于节点u的吸引链上代表点p的二阶邻接点集为其中任意一个节点为s,即根据所述邻接表,将节点s及其直接邻接点集所构成的集合定义为节点集Γ(s)。计算得到所述二阶邻接点集中节点的拓扑势之和简称为并且节点s和节点u在相同的吸引链上;

步骤150,利用所述拓扑势Ap←u和依赖于节点u的节点p的二阶邻接点集的总拓扑势计算节点u和二阶邻接点集中所有节点的总拓扑势的比值

步骤160,根据所述直接邻接点集以及节点s,计算节点p与二阶邻接点集中所有节点的总Adamic-Adar Index相似性度其中k(z)表示节点z的度数;

步骤170,根据所述相似度Simp,s以及所述比值Ru,s,计算节点p与u的Adamic-Adar Index相似性度Simp,u

因此,

步骤180,判断是否每个节点p和其直接相邻节点u的相似度已经计算完成,如果是,则算法结束。如果不是,则返回步骤110重新计算。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1