1 Label Propagation Algorithm
1.1 简介
标签传播算法(label propagation algorithm,LPA)是Zhu等人2002年提出的一种基于图的半监督学习方法。其基本思想是用部分已标记标签的节点预测所有未标记的节点标签信息。Usha等人于2007年首次将LPA思想用于社区检测。标签传播的半监督学习形式为
其中, LL为带标记样本总数,为未标记样本总数,以及
LPA尽力给具有较大权值的两个样本具有相同的标签。
1.2 算法
首先,我们定一个概率转移矩阵PP:
PijPij表示从节点ii跳转到的概率。
假设有CC个标签类别,个标记样本YL∈RL×CYL∈RL×C和UU个未标记样本。我们将这两个数据矩阵合为一个数据矩阵,
那么,LP算法如下所示:
while($X$收敛)
{
执行传播: $X=PX$;
重置标签: $X_L=Y_L$;
}
1.3 改进
LPA每次迭代第2)步的时候,这部分计算者可以省略。矩阵分块就可以做到。我们可以将矩阵PP做以下划分:
相应地,算法更新为,
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 xx, set ;
2) t←1t←1;
3) Arrange the nodes in the network in a random order and set it to XX;
4) For each chosen in that specific order, let Cx(t)=f(Cxi1(t),...,Cxim(t),Cxi(m+1)(t−1),...,Cxik(t−1))Cx(t)=f(Cxi1(t),...,Cxim(t),Cxi(m+1)(t−1),...,Cxik(t−1)). ff 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 and go to 3).
算法终止条件:
说明:
Cx(t)Cx(t): 是结点xx在时刻的标签。
dCjidiCj: 是结点xx具有标签的邻居结点个数。