Label Propagation Algorithm

1 Label Propagation Algorithm

1.1 简介

标签传播算法(label propagation algorithm,LPA)是Zhu等人2002年提出的一种基于图的半监督学习方法。其基本思想是用部分已标记标签的节点预测所有未标记的节点标签信息。Usha等人于2007年首次将LPA思想用于社区检测。标签传播的半监督学习形式为

minfi=1Lfiyi2+λijL+UWijfifj2 min f ∑ i = 1 L ‖ f i − y i ‖ 2 + λ ∑ i j L + U W i j ‖ f i − f j ‖ 2

其中, L L 为带标记样本总数, U U 为未标记样本总数,以及
Wij=exp(d2ijσ2)=exp(Dd=1||xidxjd||2σ2) W i j = exp ⁡ ( − d i j 2 σ 2 ) = exp ⁡ ( − ∑ d = 1 D | | x i d − x j d | | 2 σ 2 )

LPA尽力给具有较大权值的两个样本具有相同的标签。

1.2 算法

首先,我们定一个概率转移矩阵 P P :

Pij=P(ij)=WijkWik P i j = P ( i → j ) = W i j ∑ k W i k

Pij P i j 表示从节点 i i 跳转到 j j 的概率。

假设有 C C 个标签类别, L L 个标记样本 YLRL×C Y L ∈ R L × C U U 个未标记样本 YURU×C Y U ∈ R U × C 。我们将这两个数据矩阵合为一个数据矩阵,

X=[YL;YU] X = [ Y L ; Y U ]

那么,LP算法如下所示:

while($X$收敛)
{
    执行传播: $X=PX$;
    重置标签: $X_L=Y_L$;
}

1.3 改进

LPA每次迭代第2)步的时候,这部分计算者可以省略。矩阵分块就可以做到。我们可以将矩阵 P P 做以下划分:

P=(PLLPULPLUPUU) P = ( P L L P L U P U L P U U )

相应地,算法更新为,
XUPUUXU+PULXL X U ← P U U X U + P U L X L


2 Community Detection by LPA

Usha等人于2007年首次将标签传播算法用于社区识别(CDLPA)。不同于第一部分的LPA,Usha等人提出的算法并没有考虑到已标注的标签信息,这导致该算法的不稳定,即CDLPA可能得到多个不同的社区划分结果。

CDLPA的具体算法如下所示:

1) Initialize the labels at all nodes in the network. For a given node x x , set Cx(0)=x C x ( 0 ) = x ;
2) t1 t ← 1 ;
3) Arrange the nodes in the network in a random order and set it to X X ;
4) For each xX x ∈ X chosen in that specific order, let Cx(t)=f(Cxi1(t),...,Cxim(t),Cxi(m+1)(t1),...,Cxik(t1)) C x ( t ) = f ( C x i 1 ( t ) , . . . , C x i m ( t ) , C x i ( m + 1 ) ( t − 1 ) , . . . , C x i k ( t − 1 ) ) . f f returns the label occurring with the highest frequency among neighbors and ties are broken uniformly randomly.
5) If every node has a label that the maximum number of their neighbors have, then stop the algorithm. Else, set tt+1 t ← t + 1 and go to 3).

算法终止条件:

If i has label Cm then dCmidCjij. I f   i   h a s   l a b e l   C m   t h e n   d i C m ≥ d i C j ∀ j .

说明:
Cx(t) C x ( t ) : 是结点 x x 在时刻 t t 的标签。
dCji d i C j : 是结点 x x 具有标签 Cj C j 的邻居结点个数。


你可能感兴趣的:(Label Propagation Algorithm)