社区发现研究报告
——一种带约束的标签传播算法[1]
摘要:是一种对 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)
在标签传播算法中,很容易出现一个或几个社区远大于其他社区,这样容易产生没有意义的检测结果,为了避免这样的现象产生,在本算法中设置了一个阈值α,用来判定是否豁免该社区。社区的集合: