基于标签传播的局部社区检测算法
原论文题目:Near linear time algorithm to detect community structures in large-scale networks
内容概要:
文中提出了基于标签传播的局部社区检测算法,每个节点使用唯一的标签进行初始化,在算法的每轮迭代中,统计每个节点的邻居的标签的频数,采纳其邻居的最大频数的标签作为新标签,并随机使用一致的方法打破纽带,在这种方式下,标签在整个网络当中传播,紧密相连的节点组在标签上形成共识,最后,有着一样的标签的节点组成一个社区;可以看出,该算法非常简单高效,使用网络结构指导社团检测过程,不用优化任何关于社团强度的指标,并且,社团数目和社团大小不是作为算法的先验知识,而是由算法结果决定的。算法思想
假设节点的邻居是 ,每个节点的标签表明其所属的社团,由其邻居的标签决定其所属的社团,文中假设节点会选择加入其具有最大标签数邻居所属的社团。首先使用唯一的标签初始化每个节点,让标签在整个网络当中传播,随着标签的传播,紧密相连的节点群会迅速以唯一的标签形成共识,当网络当中形成很多这样的密集组时,它们会继续向外扩展,最后,拥有相同标签的节点组成一个社团。
- 标签更新方式
同步更新:
在第i次迭代时,节点 x x 基于其邻居在第i-1次时的标签来更新其标签:
同步更新的问题是若网络中的子图是二部图或近似二部图的结构会造成标签震荡,在社区以星形的结构出现时尤其如此,因此文中使用异步更新方式。
异步更新
Cx(t)=f(Cxi1(t),..