论文解读-《Fast unfolding of communities in large networks》
1. 论文介绍
论文题目: Fast unfolding of communities in large networks
论文领域:统计学,图论和拓扑学
论文关键词:图, 社区结构
论文地址:https://arxiv.org/abs/0803.0476
2. 论文摘要
我们提出了一种简单的方法来提取大型网络的群落结构。我们的方法是一种基于模块性优化的启发式方法。研究表明,在计算时间方面,它优于所有已知的群落检测方法。此外,检测到的社区质量非常好,通过所谓的模块性来衡量。首先,通过识别比利时260万用户移动电话网络中的语言社区,以及分析包含1.18亿节点和超过10亿个链接的网络图来体现这一点。我们算法的准确性也在临时模块化网络上得到验证。.
3. 核心算法
一种优化模块化的算法,使得研究前所未有的规模网络成为可能。我们所进行实验方法的局限在于将网络存储在主存中,而非计算时间
3.1 算法步骤
步骤分为两个阶段
- 第一阶段:通过允许社区结构局部变化来优化模块化
- 第二阶段: 将发现的社区结构进行聚合,以建立新的社区网络
反复进行该过程,直到模块化无法增加为止。
3.2 示意图
算法框架示意图

3.3 算法的优势
(1)步骤直观且易于实施,且结果无需监督
(2)算法极快,复杂度在典型且稀疏的数据上是线性的
(3)模块化优化无法识别小于某一个尺度的群落,从而在纯模组优化方法检测到的群落中引入分辨率限制
4. 实验设置
在大型网络上的应用

5. 代码接口介绍
接口:
networkx.community.louvain_communities
参数:
- graph,NetworkX.graph
- weight, 保存用作权重的数值的边属性的名称。如果“无”,则每条边的权重为1。
- resolution, 如果分辨率小于1,则该算法有利于更大的社区。大于1有利于较小的社区
- threshold,每个级别的模块化增益阈值。如果算法的两个级别之间的模块化增益小于给定阈值,则算法停止并返回结果社区。
- max_level, 要计算的最大级别数(算法的步骤数)。必须是正整数或None。如果无,则没有最大水平,阈值参数决定停止条件。
- seed, 随机数生成器的初始种子
返回: - A list of sets (the best partition of
G)
参考:
https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.community.louvain.louvain_communities.html
6. 总结
快20年前的算法,只要算法牛逼,论文可以写的简单甚至简洁,甚至算法名称在论文中都没有给出。

浙公网安备 33010602011771号