Blondel V D, Guillaume J L, Lambiotte R, et al. Fast unfolding of communities in large networks[J]. Journal of statistical mechanics: theory and experiment, 2008, 2008(10): P10008.
摘要
我们提出了一种简单的方法来提取大型网络的社区结构。 我们的方法是一种基于模块化优化的启发式方法。 在计算时间方面优于所有其他已知的社区检测方法。 此外,通过所谓的模块化衡量,所检测到的社区的质量非常好。 这首先是通过识别比利时260万用户的移动电话网络中的语言社区,并分析由1.18亿个节点和10亿多个链接组成的网络图来显示的。我们的算法的准确性也在自组织模块化网络上得到了验证。
Keywords
Random graphs, networks;Critical phenomena of socio-economic systems; Socio-economic networks
(随机图,网络;社会经济系统的关键现象;社会经济网络)
1 引言
社会、技术和信息系统通常可以用复杂的网络来描述,这些网络具有结合了组织和随机性的互连节点拓扑[1,2]。社交网络服务、移动电话网络或网络等大型网络的典型规模现在以百万计,而不是数十亿个节点,这些规模需要新的方法来从其结构中检索全面的信息。一个有前途的方法是将网络分解为子单元或社区,它们是一组高度互联的节点[3]。识别这些社区至关重要,因为它们可能有助于发现先验未知的功能模块,如信息网络中的主题或社交网络中的网络社区。此外,最终的元网络(其节点是社区)可用于可视化原始网络结构。
社区检测问题需要将网络划分为由密集连接的节点组成的社区,属于不同社区的节点只有稀疏连接。众所周知,这个优化问题的精确公式在计算上是难以处理的。因此,已经提出了几种算法来以相当快的方式找到相当好的分区。近年来,由于大型网络数据集的可用性不断提高以及网络对日常生活的影响,对快速算法的搜索引起了人们的极大兴趣。人们可以区分几种类型的社区检测算法:分裂算法检测社区间的链接并将其从网络中移除[4,5,6],凝聚算法递归地合并相似的节点/社区[7],优化方法基于目标函数的最大化[8,9,10]。由这些方法产生的分区的质量通常由所谓的分区模块化来衡量。分区的模块化是一个介于-1和1之间的标量值,它衡量社区内部的链接密度,而不是社区之间的链接密度[4,11]。在加权网络的情况下(加权网络是指其链路上具有权重的网络,例如两个移动电话用户之间的通信数量),如[12]的定义
Q = 1 2 m ∑ i , j [ A i j − k j k j 2 m ] δ ( c i , c j ) Q=\frac{1}{2m}\sum_{i,j}[A_{ij}-{\frac{k_jk_j}{2m}}]δ(c_i,c_j) Q=2m1i,j∑[Aij−2mkjkj]δ(ci,cj)
其中 A i j A_{ij} Aij表示 i i i 和 j j j 之间的边的权重, k i = ∑ j A i j k_i=\sum_jA_{ij} ki