当前位置: 首页 > 专利查询>河海大学专利>正文

一种基于局部模块度的层次重叠社区发现方法技术

技术编号:20365372 阅读:22 留言:0更新日期:2019-02-16 17:39
本发明专利技术公开一种基于局部模块度的层次重叠社区发现方法,该方法首先选取网络中度数最大的节点作为初始社区,计算其邻居节点的局部模块度值,对产生极值的节点计算其层次区分度值,通过实验给出一个层次区分度的阈值,进行比较判断是否到达层次边界,得到网络的层次结构。然后将得到的层次社区与根据MC‑COPRA算法得到的重叠社区进行相似度对比,若高于给定阈值则将重叠节点加入对应的层次社区,最终得到网络的层次重叠社区。通过在人工网络和真实网络上的实验结果表明,该算法能准确的探测社交网络的层次重叠结构。

【技术实现步骤摘要】
一种基于局部模块度的层次重叠社区发现方法
本专利技术涉及一种基于局部模块度的层次重叠社区发现方法,属于社会网络中的社区重叠和层次结构

技术介绍
随着社会信息化的加速发展,社交网络也日益成为人类社会关系的不可缺少的一部分,同时社交网络也是信息传播扩散的重要渠道和载体,是社会发展的重要影响因素。规模日益增大的社交网络中,每个人都代表着网络中的一个节点,而人与人之间的各种关系则是网络中的连边,这样的网络并不是杂乱无序,毫无规律可寻的,有许多研究都表明,社交网络中的节点之间的是可以按照一些不同的条件或规则,将它们合并或区分为相同或不同社区,这样的社交网络也就具有着社区结构,所以研究社交网络,对其社区结构的研究是必不可少的。在社区结构研究中,其重叠和层次结构不仅是其最基本的结构特征,也是最为重要的两种结构。通过对社交网络中的层次和重叠结构的发现,并以此作为基础性研究,对已发现的层次重叠社区中的人的兴趣爱好等行为信息进行分析,具有重要的现实意义,例如为用户生成更加精确的个性化推荐信息,对网络中的舆情传播进行更加准确的分析等,因此说社交网络中的社区结构的分析与研究已经成为研究社交网络的一个必不可少的组成部分。近年来,信息技术的不断发展也加快了人们对社区结构的研究,特别是对社区的重叠和层次结构的研究,引起了越来越多的国内外学者对其的分析研究,这些年来有许多关于社区重叠和层次结构发现算法被提出,在层次社区发现算法中,最为常见的就是基于模块度的社区发现算法,但是这类算法基本都存在分辨率的问题,也就是通过计算社区的模块度得到的结果是无法发现该网络中规模更小的层次结构。
技术实现思路
专利技术目的:面对现有技术中的不足,针对层次社区发现算法LMHC算法中存在的随机性与通过模块度的最大值划分社区层次结构存在的不准确性,提出了一种基于局部模块度的层次重叠社区发现方法。技术方案:一种基于局部模块度的层次重叠社区发现方法,包括如下步骤:步骤一:将网络的节点度数进行排序,将度数最大的节点设定为初始社区C,同时令社区节点个数n=1,加入的节点i=1;步骤二:将社区C中的节点的所有邻居节点加入到邻居节点的集合Nbs(C),并计算将各个邻居节点加入社区C时的局部模块度值R;步骤三:比较计算得到的各个R值,将最大R值Rmax所对应的节点与该节点的所有邻居节点分别加进社区C和Nbs(C),同时n=n+1;步骤四:计算R(n+1)-R(n),若R(n+1)-R(n)<0,记加入邻居节点后产生的局部模块度极大值Rmax(i)=R(n),同时回到步骤二,若R(n+1)-R(n)>0,记加入邻居节点产生的局部模块度极小值Rmin(i)=R(n);步骤五:计算R极值之差,若Rmax(i)-Rmin(i)→0即Rmax(i)-Rmin(i)<0.01或者存在Rmax(i)-Rmin(i-1)→0即Rmax(i)-Rmin(i-1)<0.01时,则回到步骤二,否则令i=i+1,并计算社区层次区分度Hdif,进入步骤六;步骤六:比较社区层次区分度Hdif与给定阈值的大小,若小于阈值,则判定未到达层次边界,则Rmax(i)到Rmax(i-1)之间的所有节点都认为是当前层次上的内部社区,反之若大于阈值,则表示发现了层次边界,并进入步骤七;步骤七:比较当前产生极大值的节点的局部模块度值即Rmax(i),若大于0.9(这里的0.9是LMHC算法中通过实验比较所得),回到步骤一继续探测,反之回到步骤二继续进行社区凝聚。步骤八:根据各个重叠节点所在的各个社区与层次结构中的各个社区进行相似度对比。进一步的,所述步骤二中计算将各个邻居节点加入社区C时的局部模块度值R方式如下:其中,Bin是社区C的内部连接边数,Bout是社区C的外部连接边数,局部模块度R则代表社区内部连接边数与社区内外连接边数之和的比值。如果一个社区的内部边越多,而外部边越少,则该社区的模块度值越大,说明社区内部连接越紧密。进一步的,所述步骤四中R(n)的含义如下:R(n)表示加入节点前的局部模块度值,R(n+1)表示加入节点后的局部模块度值。进一步的,所述步骤五中计算社区层次分度Hdif方法如下:其中,arg(Rmax)和arg(Rmin)分别是产生局部模块度极大值时加人社区的节点个数与在这之后产生极小值时加入的节点个数。arg(Rmin)-arg(Rmax)表示在产生极大值之后再产生极小值之间加入的节点的个数,其实也就是在当前社区的紧密程度由高到低,直到不再继续降低的过程中加入的节点规模。进一步的,所述步骤七中比较当前产生极大值的节点的局部模块度值即Rmax(i)具体步骤如下:若Rmax(i)大于0.9(这里的0.9是LMHC算法中通过实验比较所得),则将起始节点至当前产生最大R值的节点划分为一个社区,并作为网络中最高层次中的社区,移除这些节点,回到步骤一继续探测,反之,则将起始节点至当前产生最大R值的节点划分为一个层次社区,回到步骤二继续进行社区凝聚。进一步的,所述步骤八中社区相似度计算公式如下:其中|Ci|,|Cj|表示社区Ci,Cj中节点个数,|Ci|∩|Cj|则表示两个社区含有的相同节点的个数,将重叠节点加入相似度Sij大于给定阈值0.8(实验比较所得)的社区,最后得到网络的层次重叠社区。本专利技术的有益效果在于:以社区的层次结构为基础,首先,在初始化时选取度数最大的节点作为初始社区,计算其邻居节点的局部模块度值,排除了层次社区发现算法LMHC算法中存在的随机性;其次,通过大量实验比较得到层次区分度阈值,在判断新加入节点产生的极值后,通过比较层次区分度来确定是否达到层次边界,消除了基于局部模块度的社区层次结构发现方法(LMHC算法)中通过模块度的最大值划分社区层次结构存在的不准确性。最后,以得到的层次社区结构为基础,根据基于标签传播的重叠社区发现算法(MC-COPRA算法)得到的重叠社区与层次结构中的各个社区进行相似度对比,将重叠节点加入相似度高于给定阈值的社区,最终得到整个社交网络的层次重叠社区。附图说明图1是LMHC算法流程图;图2是改进后的算法流程图;图3是人工合成网络中不同Hdif值下的相似度对比图;图4是真实网络中不同Hdif值下的相似度对比图;图5是G1网络相似度对比图;图6是G2网络相似度对比图;图7是G3网络相似度对比图;图8是G4网络相似度对比图。具体实施方式下面结合具体实施例,进一步阐明本专利技术,应理解这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围,在阅读了本专利技术之后,本领域技术人员对本专利技术的各种等价形式的修改均落于本申请所附权利要求所限定的范围。基于局部模块度的层次重叠社区发现方法,首先初始化时选取度数最大的节点作为初始社区,其次就是对层次区分度阈值的选取,最后将得到的层次社区作为基础社区,与根据基于标签传播的重叠社区发现算法MC-COPRA算法得到的重叠社区进行相似度的比较,若高于阈值,则将其对应的重叠节点加入基础的社区。根据Clauset所提出的R公式来对社区的局部模块度进行计算时,首先随机选取网络中任一节点作为起始社区C,分别计算将该节点的邻居节点加入社区C时的局部模块度值,通过比较选取能产生最大局部模块度值的节点加入社区。当计算将本文档来自技高网
...

【技术保护点】
1.一种基于局部模块度的层次重叠社区发现方法,其特征在于,包括如下步骤:步骤一:将网络的节点度数进行排序,将度数最大的节点设定为初始社区C,同时令n=1,i=1;步骤二:将社区C中的节点的所有邻居节点加入到邻居节点的集合Nbs(C),并计算将各个邻居节点加入社区C时的局部模块度值R;步骤三:比较计算得到的各个R值,将最大R值Rmax所对应的节点与该节点的所有邻居节点分别加进社区C和Nbs(C),同时n=n+1;步骤四:计算R(n+1)‑R(n),若R(n+1)‑R(n)<0,记Rmax(i)=R(n),同时回到步骤二,若R(n+1)‑R(n)>0,记Rmin(i)=R(n);步骤五:计算R极值之差,若Rmax(i)‑Rmin(i)→0或者存在Rmax(i)‑Rmin(i‑1)→0,则回到步骤二,否则令i=i+1,并计算社区层次区分度Hdif,进入步骤六;步骤六:比较社区层次区分度Hdif与给定阈值的大小,若小于阈值,则判定未到达层次边界,则Rmax(i)到Rmax(i‑1)之间的所有节点都认为是当前层次上的内部社区,反之若大于阈值,则表示发现了层次边界,并进入步骤七;步骤七:比较当前产生极大值的节点的局部模块度值即Rmax(i),若大于0.9,回到步骤一继续探测,反之回到步骤二继续进行社区凝聚;步骤八:根据各个重叠节点所在的各个社区与层次结构中的各个社区进行相似度对比。...

【技术特征摘要】
1.一种基于局部模块度的层次重叠社区发现方法,其特征在于,包括如下步骤:步骤一:将网络的节点度数进行排序,将度数最大的节点设定为初始社区C,同时令n=1,i=1;步骤二:将社区C中的节点的所有邻居节点加入到邻居节点的集合Nbs(C),并计算将各个邻居节点加入社区C时的局部模块度值R;步骤三:比较计算得到的各个R值,将最大R值Rmax所对应的节点与该节点的所有邻居节点分别加进社区C和Nbs(C),同时n=n+1;步骤四:计算R(n+1)-R(n),若R(n+1)-R(n)<0,记Rmax(i)=R(n),同时回到步骤二,若R(n+1)-R(n)>0,记Rmin(i)=R(n);步骤五:计算R极值之差,若Rmax(i)-Rmin(i)→0或者存在Rmax(i)-Rmin(i-1)→0,则回到步骤二,否则令i=i+1,并计算社区层次区分度Hdif,进入步骤六;步骤六:比较社区层次区分度Hdif与给定阈值的大小,若小于阈值,则判定未到达层次边界,则Rmax(i)到Rmax(i-1)之间的所有节点都认为是当前层次上的内部社区,反之若大于阈值,则表示发现了层次边界,并进入步骤七;步骤七:比较当前产生极大值的节点的局部模块度值即Rmax(i),若大于0.9,回到步骤一继续探测,反之回到步骤二继续进行社区凝聚;步骤八:根据各个重叠节点所在的各个社区与层次结构中的各个社区进行相似度对比。2.如权利要求1所述的基于局部模块度的层次重叠社区...

【专利技术属性】
技术研发人员:许国艳王诗玉孙洁戚荣志程义
申请(专利权)人:河海大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1