一种局部强化的多标签传播社区发现算法

一种局部强化的多标签传播社区发现算法

文章发表时间:2014年6月

1. 算法背景

  1. 社交网络中常见的“圈子”作为一种承载了重要的“局部社区”信息的元素没有得到足够的重视,圈子的规模比社区小,并且更加强调朋友或者有相同职业相同爱好的人(即,关系更为密切的人),往往是组成社区的核心。
  2. 现有许多网络是异构的,单标签传播算法容易在传播过程中丢失信息,而多标签传播为每个节点提供了更多合理的选择。

2. 算法相关工作

  1. 采用无向图 G 表示社交网络中的节点信息,所用到的信息包括:图的节点数、边数、节点x的邻居集合、节点的度。并允许每个节点包含多个标签,每个标签用(c,b)表示,其中 c 表示社区,b 表示归属系数,对于节点x而言,b 之和等于 1.
  2. 模度定义:

一种局部强化的多标签传播社区发现算法_第1张图片

3. LSMLP算法

3.1 算法思想

LSMLP算法由三部分组成,先找出所有的圈子,再迭代的进行局部强化和全图的多标签传播,最后执行2 步模度优化,算法流程如图:

一种局部强化的多标签传播社区发现算法_第2张图片

3.2 算法准备工作

3.2.1 圈子的定义

在无向图G{V,E}中,圈子 circle 是一组满足下述条件的子图:
丨 c i r c l e 丨 ≥ 4 并 且 对 于 任 意 的 x , y ∈ c i r c l e , 有 丨 x , y 丨 ≥ ( 丨 c i r c l e 丨 ⋅ ( 丨 c i r c l e 丨 − 1 ) ⋅ σ ) / 2 丨circle丨≥4 并且对于任意的x,y∈circle,有丨{x,y}丨≥(丨circle丨·(丨circle丨-1)·σ)/2 circle4xycirclexycirclecircle1σ/2
其中:丨circle丨:表示圈子中节点的数量;

​ {x , y}∈E,丨{x , y}丨表示圈子内部的边数;

​ σ 是紧致系数且 σ ∈[0,1],紧致系数为 1 时,圈子为极大团,这时共同邻居更容易找出极大团,当紧致系数非常小时,共同邻居难以发现符合定义的圈子,因此通常设置紧致系数为0.9附近

3.2.2 局部强化过程

对于每个圈子,在圈子内部进行多标签传播。

**依据:**圈子因为内部紧密性被视为潜在的社区核心,而社区核心通常为位于社区内部,与摄取之外的点几乎没有连接,所以只在圈子内部进行多标签传播,通过传播圈子内部的信息,以巩固社区核心。

具体强化过程:

  1. for 每个圈子 circle do
  2. ​ for 每个节点 x ∈ circle do
  3. ​ 更新x的标签 :
    一种局部强化的多标签传播社区发现算法_第3张图片
  4. ​ end for
  5. end for

3.3算法细节

本文通过求相邻节点x 和 y 的共同邻居N(x)∩ N(y),在取符合圈子定义的点集作为圈子,在第一次迭代中,采用局部强化获取潜在的社区核心的初始估计,然后通过全图的多标签传播提供每个节点多个合理的社区标签,之后的迭代过程中,不断巩固社区核心的信息和传播局部的邻居信息。

节点x属于社区 c 的归属系数 b 用 b(c,x)表示,对于圈子中的每个节点 x ,标签更新规则为:

一种局部强化的多标签传播社区发现算法_第4张图片

全图的多标签用来传播局部信息,对于每个节点 x ,标签更新规则为:

一种局部强化的多标签传播社区发现算法_第5张图片

在全图多标签更新结点标签时,采用异步的多标签传播。LSMLP 算法重复迭代第二部分直到满足模度不在增加。最后,采用一种2步的模度优化算法:第一步,为每个节点选择唯一的标签,为每个节点选择归属系数最大的社区号作为暂时的社区,此时,整个图的社区分布较为合理,但仍有一些节点分布不合理,因此,为每个节点在其剩下的标签中选择使模度增加最大的标签,即:

一种局部强化的多标签传播社区发现算法_第6张图片

模度优化的第二步便是从得到的社区入手,不断合并邻居社区来增大模度。

3.4 算法流程

  1. 为每个节点赋唯一的标签
  2. 每个结点的邻居按ID排序
  3. 找出所有的圈子circle
  4. while 模度增加
  5. 执行局部强化过程
  6. 执行全图的多标签传播
  7. 结束 while
  8. 为每个节点赋上唯一的标签 T_x= argmax(b(c,x))
  9. 为每个节点选择能使模度提高最大的标签
  10. while 存在社区对(w,v),合并后模度变化Q_wv>0
  11. 找到使得△Q_ab 最大的模度对(a,b)
  12. 合并社区a 和社区 b
  13. end while

存在社区对(w,v),合并后模度变化Q_wv>0
11. 找到使得△Q_ab 最大的模度对(a,b)
12. 合并社区a 和社区 b
13. end while

你可能感兴趣的:(social,network,学习方法)