论文解读-《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 示意图

算法框架示意图
stcommunity01

3.3 算法的优势

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

4. 实验设置

在大型网络上的应用

stcommunity02

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年前的算法,只要算法牛逼,论文可以写的简单甚至简洁,甚至算法名称在论文中都没有给出。

posted @ 2025-12-02 10:57  zhang-yd  阅读(0)  评论(0)    收藏  举报