掌桥专利:专业的专利平台
掌桥专利
首页

一种基于随机游走的标签传播重叠社区发现方法及系统

文献发布时间:2023-06-19 11:32:36


一种基于随机游走的标签传播重叠社区发现方法及系统

技术领域

本发明涉及计算机和通信技术领域,特别是涉及一种基于随机游走的标签传播重叠社区发现方法及系统。

背景技术

现实生活中,许多复杂系统都可以建模成一种复杂网络进行分析,如常见的电力网络、航空网络、交通网络、计算机网络以及社交网络等。社区发现根据网络节点间的连接紧密程度或者相似程度划分社区结构,对网络中的节点进行合理的分类。社区重叠是网络中的重要特征,即不同社区之间具有重叠的节点。重叠社区的检测对于网络结构分析、社区划分等具有重要研究价值和科学意义。

网络中的重叠社区发现算法主要包括基于派系过滤的算法、基于局部扩展的算法、边社区发现算法和基于多标签传播的算法等。

基于派系过滤的算法,其核心思想是基于团渗透理论发现重叠社区。由k个节点组成的完全子图称为k极大团,派系过滤算法旨在寻找多个有(k-1)个公共节点的k极大团,这些有公共节点的k极大团就是重叠社区结构。

基于局部扩展的重叠社区发现算法的思想是根据定义的局部度量,从给定的初始节点逐步合并近邻节点,从而进行局部扩展优化,该方法包括2个步骤:种子的选择和将种子扩展为社区。首先寻找网络的初始种子社区,之后通过贪心策略并结合局部适应度函数对已有种子社区进行扩展发现重叠社区。

边社区发现算法的核心思想是在将边转换为聚类算法能够处理的模型的基础上,利用聚类算法对边进行聚类,从而实现边社区的发现。

基于多标签传播的重叠社区发现算法为网络中的节点设置标签,在标签传播时会通过隶属度来决定节点选择哪一个社区。

派系过滤算法主要寻找k极大团,具有只能够发现基于k极大团的重叠社区结构的缺陷。基于局部扩展的重叠社区发现算法的节点加入顺序以及局部扩展算法的性能会对社区发现结果稳定性造成影响。基于多标签传播的重叠社区发现算法的随机性较强,社区发现结果不够稳定,且算法需要手动输入相关参数以辅助发现重叠节点。

发明内容

本发明的目的是提供一种基于随机游走的标签传播重叠社区发现方法及系统,提高了重叠社区发现的准确性。

为实现上述目的,本发明提供了如下方案:

一种基于随机游走的标签传播重叠社区发现方法,所述方法包括:

获取复杂网络中各节点的重要性,所述重要性为各节点在所述复杂网络中的概率分布;

根据各节点的重要性获得种子节点集合;

为所述种子节点集合中各所述种子节点赋予唯一标签;

为各所述种子节点的邻居节点赋予对应所述种子节点的标签;

通过标签传播使所述复杂网络中各节点包括至少一个标签;

重复进行“通过标签传播,将各节点的邻居节点中标签权重大于设定权重阈值的标签更新到各对应节点”操作,直到各所述节点的标签不再发生变化;

根据各节点的标签划分社区,获得社区集合;各社区中各节点具有相同的标签;

根据所述社区集合确定重叠社区。

可选地,所述根据各节点的重要性获得种子节点集合,具体包括:

选择重要性均大于邻居节点的重要性的节点为所述种子节点;所述种子节点构成所述种子节点集合。

根据公共邻居节点的个数对所述种子节点集合进行筛选,得到更新后的种子节点集合。

可选地,所述根据公共邻居节点的个数对所述种子节点集合进行筛选,得到更新的种子节点集合,具体包括:

获得所述种子节点集合中每两个种子节点的公共邻居节点的个数,若公共邻居节点的个数大于设定个数阈值,则从所述种子节点集合中删除所述公共邻居节点对应的两个种子节点中的一个种子节点,得到更新的种子节点集合。

可选地,通过PageRank算法计算出所述复杂网络中各节点的重要性。

本发明还公开了一种基于随机游走的标签传播重叠社区发现系统,所述系统包括:

各节点的重要性获取模块,用于获取复杂网络中各节点的重要性,所述重要性为各节点在所述复杂网络中的概率分布;

种子节点集合获取模块,用于根据各节点的重要性获得种子节点集合;

种子节点标签赋予模块,用于为所述种子节点集合中各所述种子节点赋予唯一标签;

邻居节点标签赋予模块,用于为各所述种子节点的邻居节点赋予对应所述种子节点的标签;

第一标签传播模块,用于通过标签传播使所述复杂网络中各节点包括至少一个标签;

第二标签传播模块,用于重复进行“通过标签传播,将各节点的邻居节点中标签权重大于设定权重阈值的标签更新到各对应节点”操作,直到各所述节点的标签不再发生变化;

社区划分模块,用于根据各节点的标签划分社区,获得社区集合;各社区中各节点具有相同的标签;

重叠社区确定模块,用于根据所述社区集合确定重叠社区。

可选地,所述种子节点集合获取模块,具体包括:

种子节点集合构建单元,用于选择重要性均大于邻居节点的重要性的节点为所述种子节点;所述种子节点构成所述种子节点集合。

种子节点集合更新单元,用于根据公共邻居节点的个数对所述种子节点集合进行筛选,得到更新后的种子节点集合。

可选地,所述种子节点集合更新单元,具体包括:

种子节点集合更新子单元,用于获得所述种子节点集合中每两个种子节点的公共邻居节点的个数,若公共邻居节点的个数大于设定个数阈值,则从所述种子节点集合中删除所述公共邻居节点对应的两个种子节点中的一个种子节点,得到更新的种子节点集合。

可选地,所述各节点的重要性获取模块,具体包括:

通过PageRank算法计算出所述复杂网络中各节点的重要性。

根据本发明提供的具体实施例,本发明公开了以下技术效果:

本发明公开了一种基于随机游走的标签传播重叠社区发现方法及系统,通过给种子节点赋予唯一的标签,降低了标签传播时的随机性,提高了算法的稳定性,提高了重叠社区发现的准确性。

附图说明

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

图1为本发明一种基于随机游走的标签传播重叠社区发现方法流程示意图;

图2为本发明一种基于随机游走的标签传播重叠社区发现方法部分流程示意图;

图3为本发明一种基于随机游走的标签传播重叠社区发现系统结构示意图。

具体实施方式

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

本发明的目的是提供一种基于随机游走的标签传播重叠社区发现方法及系统,提高了重叠社区发现的准确性。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

本发明涉及的术语解释:

复杂网络:复杂网络是指具有自组织、自相似、吸引子、小世界、无标度中部分或全部性质的网络。

社区:社区的定义为网络中所有节点集合的一个子集,该子集内节点之间的连接相对于与子集外其他节点之间更紧密。

重叠社区:不同社区之间具有重叠的节点。

pagerank:pagerank是Google排名公式的一部分,是Google用于用来标识网页的重要性的一种方法。

本发明通过PageRank随机游走得到的复杂网络中每个节点的概率分布即为节点在复杂网络中的重要性,根据节点的重要性选出种子节点,对每个种子节点赋予初始的标签,将其余节点进行标签传播,相同标签的节点分为一个社区,得到最终的社区划分结果。

图1为本发明一种基于随机游走的标签传播重叠社区发现方法流程示意图,如图1所示,一种基于随机游走的标签传播重叠社区发现方法包括:

步骤101:获取复杂网络中各节点的重要性,所述重要性为各节点在所述复杂网络中的概率分布。

通过PageRank算法计算出所述复杂网络中各节点的重要性。

步骤102:根据各节点的重要性获得种子节点集合。

所述根据各节点的重要性获得种子节点集合,具体包括:

选择重要性均大于邻居节点的重要性的节点为所述种子节点;所述种子节点构成所述种子节点集合。

根据公共邻居节点的个数对所述种子节点集合进行筛选,得到更新后的种子节点集合。

所述根据公共邻居节点的个数对所述种子节点集合进行筛选,得到更新后的种子节点集合,具体包括:

获得所述种子节点集合中每两个种子节点的公共邻居节点的个数,若公共邻居节点的个数大于设定个数阈值,则从所述种子节点集合中删除所述公共邻居节点对应的两个种子节点中的一个种子节点,若两个种子节点的重要性不同,则删除两个种子节点中重要性小的种子节点,若两个种子节点的重要性相同,则任意删除两个种子节点中的一个,得到更新后的种子节点集合。

步骤103:为所述种子节点集合中各所述种子节点赋予唯一标签。

步骤104:为各所述种子节点的邻居节点赋予对应所述种子节点的标签。

步骤105:通过标签传播使所述复杂网络中各节点包括至少一个标签。

步骤106:重复进行“通过标签传播,将各节点的邻居节点中标签权重大于设定权重阈值的标签更新到各对应节点”操作,直到各所述节点的标签不再发生变化。

步骤107:根据各节点的标签划分社区,获得社区集合;各社区中各节点具有相同的标签。

步骤108:根据所述社区集合确定重叠社区。

本发明提出一种基于随机游走的标签传播重叠社区发现方法,通过计算随机游走的概率分布来衡量各个节点在网络中的重要程度并选出种子节点,只给种子节点赋予标签,通过特定的传播规律来对种子节点的标签在网络中进行扩散,使得标签传播算法得到的社区划分结果更加稳定,允许除种子节点外其他节点拥有多个标签,使得算法可以发现重叠社区结构。

下面详细说明本发明一种基于随机游走的标签传播重叠社区发现方法:

第一、种子节点选取。

首先,通过PageRank算法计算出各个节点在复杂网络中的重要性;其次,找出节点重要性均大于等于其邻居节点重要性的节点;最后,再对相对重要的节点进行筛选。为了使得选出来的种子节点之间有相对较远的“距离”,防止先后选出的节点本应该位于同一个社区中,最终分为两个种子节点形成不同的社区,本文采取更少相同邻居节点的方法,即在选择种子节点时,先判断此两节点的共同邻居数,当邻居数大于设定个数阈值α时,则弃置PR值较小的一个节点,即种子节点之间的共同邻居数必须小于设定个数阈值α,PR值表示节点的重要性,一种基于随机游走的标签传播重叠社区发现方法部分流程如图2所示。

种子节点选取过程见算法1。

算法1:种子节点选取算法

输入:网络G=(V,E),设定个数阈值α。其中,V表示节点,E表示边。

输出:种子节点集合S。

Step1、初始化,

Step2、通过PageRank随机游走算法,计算出各个节点的PR值,所有节点初始化为无标签。

Step3、遍历复杂网络G,若节点PR值均大于等于其邻居节点PR值,将其加入种子节点集合S。

Step4、若种子节点集合S中存在两个节点的公共邻居节点数大于设定个数阈值α,从种子节点集合S中删除PR值较小的一个。

Step5、设置标记种子节点集合S中的种子节点,并输出种子节点集合S。

第二、标签更新。

在标签传播的过程中,节点接收所有邻居节点的所有标签,计算各个标签的权重,若权重大于阈值时,则将该标签更新到自己的标签。当所有节点的标签不再变化时,将相同标签的节点划分到一个社区。

节点i的标签k的权重p(i,k)定义为:

其中,p(i,k)表示节点i中标签k的权重,PR

重叠社区发现过程见算法2。

算法2:重叠社区发现算法

输入:网络G=(V,E),设定权重阈值β。

输出:社区集合C。

Step1.初始化,

Step2.根据种子节点选取算法,得到种子节点集合S。

Step3.种子节点的邻居节点赋予该种子节点的标签,若某节点是多个种子节点的邻居节点,则将这几个种子节点的标签都赋予该节点。

Step4.进行标签传播,直到网络G中所有节点至少含有一个标签。

Step5.对整个网络G进行标签传播,若某节点邻居节点的标签有多个,计算每种标签的权重,将权重大于设定权重阈值β的标签更新到该节点。

Step6.重复执行Step5,直到节点的标签不再变化,将标签相同的节点加入同一社区,得到最终的社区划分结果并将标签相同的节点加入社区集合C。

Step7.输出社区集合C

图3为本发明一种基于随机游走的标签传播重叠社区发现系统结构示意图,如图3所示,一种基于随机游走的标签传播重叠社区发现系统包括:

各节点的重要性获取模块201,用于获取复杂网络中各节点的重要性,所述重要性为各节点在所述复杂网络中的概率分布。

所述各节点的重要性获取模块201,具体包括:

通过PageRank算法计算出所述复杂网络中各节点的重要性。

种子节点集合获取模块202,用于根据各节点的重要性获得种子节点集合。

所述种子节点集合获取模块202,具体包括:

种子节点集合构建单元,用于选择重要性均大于邻居节点的重要性的节点为所述种子节点;所述种子节点构成所述种子节点集合。

种子节点集合更新单元,用于根据公共邻居节点的个数对所述种子节点集合进行筛选,得到更新的种子节点集合。

所述种子节点集合更新单元,具体包括:

种子节点集合更新子单元,用于获得所述种子节点集合中每两个种子节点的公共邻居节点的个数,若公共邻居节点的个数大于设定个数阈值,则从所述种子节点集合中删除所述公共邻居节点对应的两个种子节点中的一个种子节点,得到更新的种子节点集合。

种子节点标签赋予模块203,用于为所述种子节点集合中各所述种子节点赋予唯一标签。

邻居节点标签赋予模块204,用于为各所述种子节点的邻居节点赋予对应所述种子节点的标签。

第一标签传播模块205,用于通过标签传播使所述复杂网络中各节点包括至少一个标签。

第二标签传播模块206,用于重复进行“通过标签传播,将各节点的邻居节点中标签权重大于设定权重阈值的标签更新到各对应节点”操作,直到各所述节点的标签不再发生变化。

社区划分模块207,用于根据各节点的标签划分社区,获得社区集合;各社区中各节点具有相同的标签。

重叠社区确定模块208,用于根据所述社区集合确定重叠社区。

本发明通过随机游走计算节点在复杂网络中的重要性并选取种子节点,给种子节点赋予唯一的标签,降低了标签传播时的随机性,提高了算法的稳定性。另外通过种子节点在复杂网络中的重要性衡量标签的权重,提高了算法的准确性。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • 一种基于随机游走的标签传播重叠社区发现方法及系统
  • 一种基于随机游走的标签传播社区发现方法
技术分类

06120112965637