摘要:是一种对 CLPA-GNR 算法进一步改善的算法。利用基于 Sørensen-Dice index 的相似性得分实现初始社区的发现以及在传播过程中断链。该算法还在标签传播过程及社区融合过程中使用约束。
1. 引言
CLPA-GNR 算法分别对单个节点和组节点进行更新,与此同时在算法的不同阶段设置约束,该算法在无向无权重图中通过去除 LPA 中的随机性获得一个确定性发现。即使目前大多数算法致力于减少 LPA 的缺点,增强其优势,但是在其鲁棒性和稳定性方面仍然存在着问题。本文的算法是基于 CLPA-GNR 算法[2]进行改善的,在一定程度上防止了无用发现的产生。
2. 半同步约束标签传播算法(SSCLPA)
该算法中,顶点被分为两类:VS = {vSi: i ∈ R} and VGR = {vGRj: j ∈ R},(其中 VS 为孤立点【solo node】,而 VGR 为组节点【group node】,即已分配社区的节点)。与最初的 LPA 算法不同,该算法中两类节点在更新时是分开进行的。VS 是同步更新,因此没有更新顺序之谈;VGR 是异步更新的,需要定义其更新顺序的规则。规则如下(优先考虑规则(1),只有当(1)相同时,才进一步的考虑(2)):
(1)根据邻居中孤立点的个数按升序排列,即邻居中孤立点越少,越早更新。
(2)根据节点自身的度升序排列,即度越小,越早更新。(原因:度数低的节点一般分 布在社区外围,提早更新标签对其他节点更新标签的影响小)
2.1 SSCLPA 的主要过程
(1)豁免社区(Exempted Community)
在标签传播算法中,很容易出现一个或几个社区远大于其他社区,这样容易产生没有意义的检测结果,为了避免这样的现象产生,在本算法中设置了一个阈值α,用来判定是否豁免该社区。社区的集合:;某个社区顶点的的集合:
(2)
其中:
因此,豁免社区的集合如下:(该集合中的社区之后不参与传播和断链过程)
(2)约束标签传播(Constrained Label Propagation)
该过程是用来处理 VS 标签更新的,顶点是同步更新的除非另有声明。设 VSj 为目标顶点, 则将 VSj 收入社区 ci 需要满足以下条件:
(3)组节点再分配(Group Nodes Reallocation)
该过程在 CLP 或 GM 后执行,是用来处理 VGR 标签更新的,顶点是异步更新的除非另有声明。设 VGRj 为目标顶点,则将 VGRj 收入社区 ci 需要满足以下条件:
(4)组融合(Groups Merging)
该过程从按逆序排列的最大社区(假设为 ci)开始。则要融合的两个社区 ci 与 cj 需要满足以下条件:
2.2 SSCLPA 的主要步骤
3. 实验
3.1 在基于 LFR[3,4]基准的网络上
实验的几个network 的参数设置如下表格:(混合参数m代表连接来自不同社区的两个节点的边所占的比例,度的平均值即最大值分别设为 kavg = 20 、 k max = 50 ,度序列及社区大小的指数分别设为
Table 1. Summary of the generated LFR networks.
结果如下:
图 1 不同网络大小、社区大小的无权重、无向的LFR 基准网络的NMI 比较
图 2 无权重、无向的GN 和RC 网络的NMI 比较
3.2 在基于 Girvan-Newman[5]基准上
网络共 128 个节点, 分为四个社区, m= 0 - 0.8 ,度的平均值即最大值分别设为 kavg = 16 、 k max = 16 ,度序列及社区大小的指数分别设为g= b= 0 。PIN 及 POUT 分别代表社区内部边及社区连接外部边所占的比例。
Table 2. Summary of the real-world networks considered in this study.
Table 3. The NMI of the real-world networks with ground truth communities.
Table 4. The Q[20] values of the real-world networks.
Table 5. The Qds[21] values of the real-world networks.
Table 6. The computational time of various detection algorithms on the Astro-ph and Brightkite networks.