社团发现算法-BGLL算法(附代码实现)

一、社团发现算法

人们发现许多实际网络均具有社团结构, 即整个网络由若干个社团组成,社团之间的连接相对稀疏、社团内部的连接相对稠密。社团发现则是利用图拓扑结构中所蕴藏的信息从复杂网络 中解析出其模块化的社团结构,该问题的深入研 究有助于以一种分而治之的方式研究整个网络的 模块、功能及其演化,更准确地理解复杂系统的组 织原则、拓扑结构与动力学特性,具有十分重要的 意义。

社团发现算法派系繁多,在这里我们重点介绍非重叠社团发现算法,参照《复杂网络社团发现算法研究新进展》中大致可分为以下几类

  1. 基于模块度优化的社团发现算法
  2. 基于谱分析的社团发现算法
  3. 基于信息论的社团发现算法
  4. 基于标号传播的社团发现算法

基于模块度优化的社团发现算法是目前研究最多的一类算法,其思想是将社团发现问题定义 为优化问题,然后搜索目标值最优的社团结构。 由 Newman 等 首先提出的模块度 Q值是目前使 用最广泛的优化目标,该指标通过比较真实网络 中各社团的边密度和随机网络中对应子图的边密 度之间的差异来度量社团结构的显著性。模块度 优化算法根据社团发现时的计算顺序大致可分为 三类:

  1. 第一类算法采用聚合思想,自底向上进行,典型代表算法有 Newman快速算法 、CNM算法 和 MSG-MV算法等
  2. 第二类算法主要采用分裂的思想,自顶向下 进行。如GN算法等
  3. 第三类算法则是直接寻优法。如EO算法

BGLL算法就属于基于模块度优化中的聚合类算法,自底向上的不断聚合,下面主要介绍下BGLL算法。

二、BGLL算法

论文:Fast unfolding of communities in large networks

2.1 BGLL算法优点

  1. 速度快,可以处理大规模网络。处理1亿+节点的网络只需要158分钟
  2. 可发现不同粒度的社区。由于是自底向上的聚合发现社区,每次迭代后都会得到一个粒度的社团结构
  3. 无需指定社团数量,当模块度不再增益时自动停止

2.2 BGLL算法流程

image
image.gif

BGLL算法主要分为两步:

第一步:假设网络中有N个节点,首先我们给每个节点分配一个社区,所以初始阶段有多少个节点就有多少个社区。然后,对于网络中每个节点i,我们考虑他所有的邻居节点j,我们评估当把节点i从它所在的社区移动到其邻居j所在的社区时,模块度的增量变化,我们把节点i移动到使模块度增加最大的节点j所在的社区。如果所有计算出来的增益都不是正数,则将该节点仍处于原社区中。该过程对所有的节点重复并且按顺序应用,直到没有节点移动,则第一个过程停止,也就是任何一个节点的移动都不会导致模块度的增加。从该过程可以肯定,有些节点会被不止一次的考虑到。当然节点考虑顺序对算法最后的输出也是有影响的,但是最后对最后所划分的社区的模块度影响不大。但是节点的排序顺序是可以影响算法的运行时间的。
每一次节点移动一个孤立节点到其邻居所在的社团模块度增益为ΔQ:

image
image.gif

其中∑in∑in是社区C内部的所有边的权重之和,∑tot∑tot是社区C中所有节点相关的边的权重之和。kiki是发生在节点i上的所有边的权重之和。ki,inki,in是节点i到社区C中的所有节点的边的权重和,m是网络中所有边的权重之和。

第二步:用第一部分所划分出来的社区当作节点组成一个新的网络。新节点之间的边的权重为两个新节点之间(其实是两个社区之间)原本的权重之和。处在同一个社区中的节点之间的边导致新网络中该新节点有自环的边。然后对于构建的新网络使用第一部分的方法进行迭代。当网络不再改变也就是出现了最大模块度的时候停止迭代。

三、JAVA实现

BGLL算法JAVA实现

Qucik Start

example

    BGLL bgll = new BGLL()
    //inputPath is a origin network file
    //outPath is the result
    bgll.excuteBGLL(String inputPath, String outPath)
image.gif

input

a file like this: the first column is the id of nodeA,the second column is the id of nodeB,the last column is weight between nodeA and nodeB.The weight can be both integer and float.

1,2,14
2,3,10
1,4,9
2,3,6

image.gif

output

the output is the result of Hierarchical Clustering.there shows a faked result so that we can understand the output.

1,1,1
2,1,1
3,2,1
4,2,1
5,3,2
6,3,2
7,4,2
8,4,2

image.gif

As the output show,there are 8 nodes in the network.the first column is the id of nodes,the the second column is the community id of the first clustering,we get 4 community in the first step.The final column is the community id of the last step clustering,the 8 nodes final divided into 2 clusters.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容