一种复杂网络重叠社区发现方法与流程

文档序号:14748962发布日期:2018-06-22 09:43阅读:347来源:国知局

本发明涉及复杂网络分析技术领域,特别涉及一种重叠社区发现方法。



背景技术:

现实世界存在大量互相连接的复杂系统,如Web网络系统、城市交通网系统、蛋白质互作用系统以及经济贸易关系网络等。这些系统形式各异,但是都能够利用复杂网络(complex network)进行抽象和表达,其中网络中的节点表示系统中的个体对象,网络中的边表示对象之间的相互关系。随着计算机技术和Internet的迅速发展,人们对真实网络数据的存储和处理能力越来越强,在此基础上发现复杂网络往往存在一定的结构特征和功能特性。作为复杂网络中的重要特征,社区结构在真实网络中到处可见。社区结构是指网络中由一些点组成的集合(群、团、簇),社区内部节点间连接相对紧密,而社区之间的节点连接比较稀疏。社区结构在现实世界中大量存在,如社交网络中的社区代表由兴趣或者爱好相近的人组成的团体、科学家合作网中的社区表示拥有共同研究方向的人组成的团体等。网络中的社区结构在一定程度上反映了真实网络的结构特征和聚集关系,是对网络的一种有效压缩,不同层次和尺度的社区结构可以让人们从不同的角度来研究网络。因此,复杂网络社区发现对深入理解网络的功能与拓扑结构的关系具有很大的帮助,有利于人们更好的利用网络和改造网络,是一项具有重要意义的工作。

目前用于发现复杂网络中社区结构的方法主要包括:图划分方法、分裂方法、凝聚方法、基于优化指标的方法等。图划分方法是一种试探优化算法,设置一个初始划分作为起点,然后利用贪心原理,根据使子图内部与子图之间的边最优化原则,通过不断交换两个子图中的节点得到最终划分结果。分裂方法源于通过不断删除社区之间的边来获得社区结构这一简单思想,通过删除社区之间的边,网络被分为互不联通的子图,直到每个节点都是孤立的部分,这样可以获得一个层次结构的树状图,再通过一定准则选择图中的某一层作为社区发现的结果。凝聚方法则是自底向上的,即初始时每个节点是一个单独的社区,然后通过一定标准不断合并社区,直到所有节点都属于一个社区。基于优化指标的方法假定,更高的模块化系数 (Q函数值)意味着更好的社区结果,因此对应最高模块化系数的对网络的一个划分便是最佳的社区结果。

公开号为CN103778192A的专利《一种复杂网络局部社区发现方法》公开了一种复杂网络局部社区发现方法,从包含源节点的初始社区出发通过逐渐扩展找到源节点所隶属的网络局部社区。其步骤为:S1初始化核心路径,将源节点添加到该路径;S2对于以核心路径中最后一个节点为中心的邻域内的每个节点,计算其与最后一个节点的连通强度值,找到使得连通强度最大的节点z;S3判断节点z是否在核心路径中,如果没包含则将节点z加入核心路径,返回步骤S2;否则对核心路径中可能存在的多余节点进行过滤;S4将核心路径中的节点确定为初始社区。公开号为CN103747033A的专利《一种社区发现的方法》公开了一种社区发现的方法,包括以下步骤:1)利用MapReduce模型实现并行计算;2)在Map阶段,将计算任务分为N份,每份计算任务包括随机游走过程和数据处理过程,其中通过随机游走获得复杂网络的一个遍历节点序列,通过对遍历节点序列进行数据分析,获得两个节点之间的连接的紧密程度;3)在Reduce阶段,对并行计算的结果进行整合得到节点之间的连接紧密程度,根据节点之间连接的紧密程度来进行社区发现;4)对处于社区重叠部分的节点进行分析,以概率形式对节点归属于哪个社区做出描述。公开号为CN103729467A的专利《一种社交网络中的社区结构发现方法》公开了一种复杂社交网络中的社区结构发现方法,该方法包括以下步骤:步骤一:将社交网络转换为邻接矩阵形式,如果两个节点之间存在边,那么相对应的元素为1,否则为0;步骤二:利用随机游走理论对邻接矩阵进行处理,得到新的节点度数P-degree以及边权值P-weight;步骤三:根据新的节点度数P-degree得到社交网络中的领袖节点;步骤四:基于领袖节点生成子社区,并通过对子社区的一系列操作来进行社区发现。

上述社区发现方法都基于一个相同的假设,即每个网络节点只属于一个社区,基于这一假设发现的社区结构间是相互独立的。然而事实上,由于网络节点的属性多样性,造成了社区之间相互联系、相互交叉的重叠特性。在这种情况下,某些节点所属的社区可能不止有一个,例如一个人可以参与多种关系网络、一篇学术论文可以涉及多个主题、一个单词可以拥有多种词性等等。因此发现网络中具有重叠结构的社区往往更能切合实际应用需求,设计出一种适用于重叠网络的社区发现算法是一个亟待解决的问题。



技术实现要素:

本发明的目的是,提供一种有效的复杂网络重叠社区发现方法,进而实现对网络中具有重叠特性的社区结构的有效发现。

本发明为实现上述目标提供如下技术方案:

本发明所述网络重叠社区的发现过程包括计算网络节点连接因子、计算网络节点分离因子、计算网络节点代表度以及计算网络节点社区隶属度等环节。本发明的主要参数包括:节点的度、节点的相似度、节点的连接因子、节点的分离因子、节点的代表度、节点社区隶属度等,其中节点的度表示与一个网络节点存在连边关系的节点数量;节点的相似度用于描述网络中两个节点的相关性;节点的连接因子用于描述某一节点对其可能隶属的网络社区中其它节点的最大凝聚性,即网络社区内部的稠密性;节点的分离因子用于反映某一节点与其可能隶属的网络社区之外的节点间的最大相关性,即网络社区外部的稀疏性;节点的代表度用于衡量某一节点成为其所在社区领袖的能力;节点社区隶属度表示节点属于某一社区的可能性,用于反映社区结构的重叠特性。该方法包含以下步骤:

1.一种复杂网络重叠社区发现方法,包括以下步骤:

S10、将复杂网络表示为图G(V,E)的形式,即利用图中的节点和边对网络进行描述;

S20、计算图G(V,E)中每个网络节点的连接因子,用于描述某一网络节点对其可能隶属的网络社区中其它节点的最大凝聚性,即社区内部的稠密性;

S30、计算图G(V,E)中每个网络节点的分离因子,用于反映某一网络节点与其可能隶属的网络社区之外的节点间的最大相关性,即社区外部的稀疏性;

S40、计算每个节点的代表度,节点代表度用于描述某一节点对其所在社区的领导能力;

S50、将网络中的所有节点按照连接因子从大到小进行排序,并选取代表度最大的K个节点作为网络社区的领袖节点,其中K为网络中包含的社区数量;

S60、初始化领袖节点的社区隶属度;

S70、对于步骤5获得的按照连接因子排序的网络节点,依据节点连接因子和相似度通过递归过程计算每个非领袖节点关于各网络社区的隶属度;

S80、输出重叠社区发现结果。

进一步,所述步骤S10中所述复杂网络的图表示形式记作G(V,E),其中 V=(v1,v2,…,vi,…,vm)表示网络中的节点集合,m为节点数量,vi为网络中的第i个节点; E=(e1,e2,…,ej,…,en)表示网络中节点间连边的集合,n为边的数量,ej表示网络中的第j条边。

进一步,所述步骤S20中某一节点的连接因子定义为该节点的度与其邻居节点中最大相似度的乘积,所述步骤S20包括:

S21、计算网络中每个节点的度,即直接与该节点连接的边的数量,节点vi的度记做di;

S22、计算网络中每个节点与其具有直接连边关系的邻接节点的相似度,相似度是指两个节点拥有的共同邻接节点数量,节点vi与其某一邻接节点vj间的相似度记做si,j;

S23、依据节点的度及其邻居节点的相似度,计算每个节点的重要度,对于任一节点vi,其连接因子记做Li,计算方法如式(1)所示:

进一步,所述步骤S30中某一节点分离因子定义为重要度高于该节点的邻居节点与这一节点间的最大相似度,对于任一节点vi,其分离度记做Pi,计算方法如式(2)所示:

进一步,所述步骤S40中任一节点vi的代表度记做Ri,其计算方法如式(3)所示:

进一步,所述步骤S50包括:

S51、将网络中的所有节点按照连接因子从大到小进行排序,排序后的节点记为对于排序后的任意2个节点和满足:若i>j,则其连接因子Li<Lj;

S52、从排序后节点中选择代表度最大的K个节点作为网络社区领袖节点,记做 C=(c1,c2,…,ck,…,cK),其中ca表示第k个社区的领袖节点,1≤k≤K表示社区领袖节点的序号。

进一步,所述步骤60中初始化领袖节点的社区隶属度,具体而言是将各社区领袖节点关于其各自代表的网络社区的隶属度初始化为1。

进一步,所述步骤70中计算每个非领袖节点关于各网络社区的隶属度的方法为:

每个非领袖节点可能隶属于任何连接因子度高于自身的节点代表的社区,对于任一非领袖节点其关于第k个社区的隶属度mi,k通过下式递归计算得到:

其中,

式(5)中,表示节点与节点连接因子高于的某一节点间的相似度,mj,k表示节点关于第k个社区的隶属度。

进一步,所述步骤80中的输出结果包含2个部分:第一部分为用于代表各社区的领袖节点,第二部分为各非领袖节点以及关于各社区的隶属度。

本发明采用以上技术方案,与现有技术方案相比具有以下特征和有益效果:

1、本发明一种复杂网络重叠社区发现方法,定义了节点的连接因子和分离因子,能够有效表达网络中社区结构内部稠密性和外部稀疏性的本质。

2、本发明一种复杂网络重叠社区发现方法,利用隶属度描述网络节点与社区间的归属关系,能够更好的反映网络中社区结构的重叠特性。

3、本发明一种复杂网络重叠社区发现方法,能够获得更加合理可靠的网络重叠社区发现结果。

附图说明

图1为本发明所述复杂网络重叠社区发现方法的计算机实现系统结构图。

图2为本发明所述复杂网络重叠社区发现方法的实施流程图。

具体实施方式

下面结合附图对本发明的具体实施方式进行详细说明。

本发明所述的复杂网络重叠社区发现方法通过计算机程序实施,图1所示为计算机实现的系统结构图,其中复杂网络数据存储单元用于存储复杂网络的原始数据信息,复杂网络的图表示单元用于将复杂网络记录为节点和边构成的图的形式,网络社区结构特征分析单元用于计算网络节点的连接因子和分离因子,节点社区隶属度计算单元用于计算每个节点关于各网络社区的隶属度,重叠社区结构输出单元用于输出社区发现结果,计算机处理器和内存用于执行上述单元发出的计算指令。下面将按照图2所示的实施流程,详述本发明提出的技术方案的具体实施方式,其中相同或类似的标号代表相同或类似的元件或具有相同或相似功能的元件,其实施方式主要包含以下关键内容:

首先利用步骤S10将复杂网络数据记录为图的形式;其次分别利用步骤S20和步骤S30 计算网络中每个节点的连接因子和分离因子用于描述网络社区结构的内部稠密性和外部稀疏性;接着利用步骤S40计算每个节点的代表度描述该节点对其所在社区的代表能力,从而利用步骤S50将代表度较大的节点选为各网络社区的领袖节点,并利用步骤S60对领袖节点的社区隶属度进行初始化;继而利用步骤S70通过递归过程计算每个非社区领袖节点的社区隶属度;最后,通过步骤S80输出重叠社区发现结果。具体实施步骤如下:

步骤S10、将复杂网络表示为图的形式,记作G(V,E),利用V=(v1,v2,…,vi,…,vm)表示图中节点的集合,m为节点数量,其中vi代表图的第i个节点;利用E=(e1,e2,…,ej,…,en)表示节点之间连边的集合,n为边的数量,其中ej表示图中的第j条边;

步骤S20、对于步骤S10得到的网络的图形式,计算每个节点的连接因子,具体包含以下步骤:

步骤S21、计算网络中每个节点的度,节点的度是指直接与该节点连接的边的数量,节点 vi的度记做di;

步骤S22、对于网络中每个节点,计算与其具有直接连边关系的每个邻接节点的相似度,两个节点间的相似度是指它们拥有的共同邻接节点数量,节点vi与具有直接连边关系的某一节点vj间的相似度记做si,j;

步骤S23、依据节点的度及其邻居节点的相似度,计算每个节点的连接因子,节点连接因子是节点的度与其邻居节点中最大相似度的乘积,对于任一节点vi,其连接因子Li的计算方法如式(1)所示:

步骤S30、计算网络中每个节点的分离因子,节点分离因子是连接因子高于该节点的邻居节点与该节点间的最大相似度,对于任一节点vi,其分离因子Pi的计算方法如式(2)所示:

步骤S40、计算每个节点的代表度,节点代表度用于描述某一节点对其所在社区的代表能力,代表度越大的节点越有可能成为社区领袖节点,对于任一节点vi,其代表度Ri的计算方法如式(3)所示:

步骤S50、将网络中的所有节点按照连接因子从大到小进行排序,选取节点代表度最大的 K个节点C=(c1,c2,…,ck,…,cK)作为网络社区的领袖节点,其中K为网络中的社区数量,这些领袖节点代表了各自所属的网络社区,ca表示第k个社区的领袖节点,1≤k≤K表示领袖节点的序号,具体步骤如下:

步骤S51、将网络中的所有节点按照连接因子从大到小进行排序,排序后的节点记为对于排序后的任意2个节点和满足:若i>j,则其连接因子Li<Lj;

步骤S52、从排序后的节点中选择代表度最大的K个节点作为网络社区领袖节点;

步骤S60、初始化社区领袖节点的隶属度:由步骤S50产生的K个社区领袖节点关于其各自所属网络社区的隶属度初始化为1;

步骤S70、通过递归过程计算每个网络节点的社区隶属度,每个非领袖节点可能隶属于任何连接因子度高于自身的节点代表的社区,对于任一非领袖节点其关于第k个社区的隶属度为mi,k,计算方法如下:

其中,

式(5)中表示节点与节点连接因子高于的某一节点间的相似度,mj,k表示节点关于第k个社区的隶属度;

步骤S80、进行重叠社区发现结果输出,其输出结果由两部分构成:代表各社区结构的领袖节点和各非领袖节点及其关于各社区的隶属度,具体步骤如下:

步骤S81、输出各社区领袖节点,用于代表网络中各个社区结构;

步骤S82、输出各非领袖节点及其关于各社区的隶属度。

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