基于重叠节点的复杂网络社区发现方法与流程

文档序号:11432292阅读:717来源:国知局

本发明属于数据挖掘技术领域,具体涉及的是一种利用节点权重对信息传播接收标签方法。



背景技术:

近年来,随着互联网应用的不断推广,人们越来越多的参与到社交网络中,人们不再局限于地域的差异而紧密联系在一起。因此,人们对社区发现的研究也越来越深入。随着社交网络的迅猛发展,研究学者对社区发现的研究方法与技术也在不断完善和提高。复杂网络就是一个聚宝盆,富含着各种大量的有用信息。比如,我们可以根据网络中用户的兴趣、爱好、关注点以及其他相似特征,得出关于该用户的价值观、兴趣、活动等重要信息。我们可以根据这些属性将多个用户划分在同一个社区,方便统一为该社区用户推送相关信息,降低成本。然而,随着网络用户信息与关系的不断更新与变化,需要处理的数据复杂度不断增加。现有的方法中大多数采用模块度进行判断,但是这个方法无法避免分辨率限制问题,即在社区发现过程中,有时偏爱小社区,有时偏爱大社区。为了解决这个问题,提出了模块度密度这个概念,对复杂网络的社区发现具有重要意义。

lifanghe等在2016年kdd会议上提出了基于和谐模块度的联合社区和结构洞发现算法。该算法主要分为两大部分,首先进行结构洞发现,并在此基础上进行社区发现,寻找最优的社区发现结果。它主要是将定义的和谐方程转化为对l范式的求解。根据大量的对比实验发现,大多数算法对结构洞的定义理解具有偏差,从而导致结果的千差万别,但是根据去除结构洞节点前后的社区发现结果对比发现,后来的效果明显要好于先前。

本发明是根据分析该文章的方法,将结构洞引申到重叠节点,涉及一种基于重叠节点的复杂网络社区发现,能够更加快速有效的进行社区发现。



技术实现要素:

本发明所要解决的技术问题是在标签传播过程中对重叠节点的发现以及重叠节点的选择,使得具有较低权重的重叠节点被发现,使得去除掉这些重叠节点后社区的结构特征更加明显,提高社区发现的正确性。

技术方案如下:

基于重叠节点的复杂网络社区发现方法,包括以下步骤:

步骤1),初始化整个网络,网络中的每个节点分配唯一的一个标签,以其标签初始化节点内存;

步骤2),信息接收者挑选,在步骤1)得到的初始化的节点,随机选择一个节点作为信息接收者;

步骤3),信息传播,在步骤2)中确定一个节点信息接收者,该节点的每一个邻居节点根据传播规则发送一个标签;

步骤4),信息接收,信息接收者根据接收规则接受在步骤3)中发送来的一个标签。再执行步骤2),直到满足停止条件;

步骤5),重叠节点发现,在这个阶段,把具有多个不同标签的节点记录下来即为重叠节点;

步骤6),节点权重,根据步骤5),获得重叠节点,计算这些节点的权重;

步骤7),k重叠节点的选择,根据步骤6),将节点的权重按升序排列,从中选择前k个重叠节点;

步骤8),社区发现,分别对移除k个重叠节点前后的网络节点进行社区发现。

进一步的,基于重叠节点的复杂网络社区发现算法,步骤1),初始化网络图结构,给网络中的每个节点分配一个标签,每个节点的标签必须有且仅有一个,根据节点的标签进行内存初始化。

进一步的,基于重叠节点的复杂网络社区发现算法,步骤3),信息传播,根据传播规则选择一个标签进行传播。其传播规则为从其存储器中选择随机标签,其概率与存储器中该标签出现的频率成比例。

进一步的,基于重叠节点的复杂网络社区发现算法,步骤4),信息接收,信息接收者根据接收规则接受发送来的一个标签。其接收规则为从当前步骤中挑选最受欢迎即出现频率最高的标签。

进一步的,基于重叠节点的复杂网络社区发现算法,步骤5),重叠节点发现。当迭代停止后,对每一个节点历史标签序列中各标签出现的频率做统计,与一个给定阈值γ(γ=0.5)相比较,如果小于γ,则删除节点的此标签信息,否则保留,最终具有多个不同标签的节点即为重叠节点。

终止条件包括:

(1)达到迭代次数;

(2)收集到充分的信息后任意时间均可停止。

进一步的,基于重叠节点的复杂网络社区发现算法,步骤6),重叠节点权重,其用于衡量节点在网络中的影响力,它的值越大表明节点的影响力越大,反之亦然。计算重叠节点权重,其定义为:

其中,节点集合v={v1,v2,...,vn},集合ti={ti1,ti2,...,tik}为与节点i相连接节点的集合,函数g(vi)为节点的度。d为阻尼系数,取值在0~1之间,每个节点权重的求解主要采用迭代的方式进行。

进一步的,基于重叠节点的复杂网络社区发现算法,步骤7),k重叠节点的选择,根据步骤6)计算重叠节点的权重,将其按升序排列,并根据网络大小以及重叠节点个数确定k的值,从重叠节点权重序列中选择前k个,得到所对应的重叠节点即所求的节点。

进一步的,基于重叠节点的复杂网络社区发现算法,步骤8),社区发现,通过现有的多种社区发现算法比较移除k个重叠节点前后的网络节点进行社区发现的结果。

其评价模型方法如下:

1)互信息用来衡量两个变量之间共享的信息。互信息值越大表明两个变量之间共享的信息越多,反之则越少。其定义如下:

2)模块度(modularity)用于衡量网络的社区划分是否得到好的结果。模块度的值越大表明社区发现的结果越好,反之则越少。其定义如下:

有益效果

本发明能够让具有较低权重的节点具有更高的被选中的概率,从而使得网络影响力高的重叠节点被保留下来。加快重叠节点的选择,且其有明确的定义,具有一定的倾向性和目的性,简化了初始复杂网络,使得社区发现的结果更加准确。

附图说明

图1为基于重叠节点的复杂网络社区发现算法的特征选择流程图。

具体实施方式

结合流程图及实施案例对本发明所述的基于重叠节点的复杂网络社区发现算法作进一步的详细描述。

本实施案例采用基于重叠节点的复杂网络社区发现,如图1所示,本方法包含如下步骤:

步骤10,初始化整个网络,网络中的每个节点分配唯一的一个标签,每一个节点的内存都用节点的id(即标签)初始化。

步骤20,信息接收者挑选。每一个节点都可以作为信息接收者或者信息传播者,取决于这个节点在网络中充当的角色,而对于一个复杂网络,网络中的节点往往即进行信息传播又进行信息接收,因此,随机挑选一个节点作为信息接收者。

步骤30,信息传播。根据步骤20,确定一个节点作为信息接收者,由于每一个节点能够容纳尽可能多的节点标签,节点能够累积在底层网络随机过程中接收到的节点标签信息,且不会出现信息的擦除与丢失。

步骤301,判断出该节点所有的邻居节点。

步骤302,该节点的每一个邻居节点根据所接收到的标签的重复次数,挑选出现频率最高的标签进行传播,如果具有多个出现频率最高的节点标签,则随机选择其中一个标签进行传播。

步骤40,信息接收。该步骤与步骤30类似,从所有邻居节点传播来的标签中选择出现频率最高的节点标签进行接收,并将该标签存储在该节点所在的内存中。如果具有多个相同的最高频率的节点标签,则选取最先传播过来的标签。再执行步骤20,直到满足停止条件。

步骤50,重叠节点发现。由于每个节点可以容纳多个标签信息,从而使得该节点能够分属于多个社区。在这个过程中,就是把具有多个不同标签的节点记录下来。

步骤501,在这个过程中,每一次迭代,节点的内存中都会添加一个节点标签;迭代结束后,每个节点内存中存储t(迭代次数)个节点标签,形成一个历史标签序列,对每个节点历史标签序列中各标签出现的频率做统计。

步骤502,判断这些节点标签在整个过程中出现的概率是否小于阈值γ,如果是,则删除这个节点的该标签信息,否则保留。此时,具有多个标签的节点即为重叠节点,用于进一步的操作。其中,阈值γ∈[0,1],由于阈值的变动,可能导致重叠社区与非重叠社区的变动,所以,设定γ=0.5。

步骤60,重叠节点权重。根据步骤50,获得社区发现后的重叠节点,根据公式,计算重叠节点对应的权重。

步骤70,k个重叠节点的选择。根据步骤60,将节点所对应的权重按升序排列,从中选择前k个值,并分别对应到相应的重叠节点。其中,k的值根据网络的大小以及重叠节点的个数来确定。

步骤80,社区发现,采用多种社区发现算法以及多个数据集进行结果对比实验,利用互信息和模块度的值来判断结果是否有改善。

步骤801,对原始的网络进行社区发现。

步骤802,对移除前k个重叠节点后的网络节点进行社区发现。

步骤803,比较移除前k个重叠节点前后的网络节点进行社区发现的结果。

以上所述的具体实施方案,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述仅为本发明的具体实施方案而已,并非用以限定本发明的范围,任何本领域的技术人员,在不脱离本发明的构思和原则的前提下所做出的等同变化与修改,均应属于本发明保护的范围。

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