标签传播算法

来源:互联网 发布:网络安全管理责任书 编辑:程序博客网 时间:2024/05/22 14:23

    标签传播算法(Label Propagation AlgorithmLPA)是由Zhu等人2002年提出,它是一种基于图的半监督学习方法,其基本思路是用已标记节点的标签信息去预测未标记节点的标签信息。2007年,Raghavan等人首次提出将LPA算法应用于社团检测

LPA算法思路简单清晰,其基本过程如下:

(1)为每个节点随机的指定一个自己特有的标签;

(2)逐轮刷新所有节点的标签,直到所有节点的标签不再发生变化为止。对于每一轮刷新,节点标签的刷新规则如下:

对于某一个节点,考察其所有邻居节点的标签,并进行统计,将出现个数最多的那个标签赋值给当前节点。当个数最多的标签不唯一时,随机选择一个标签赋值给当前节点。

    由上述步骤可知,LPA算法中比较关键的部分为标签的更新过程。算法的每个迭代过程中节点的标签更新是基于它的邻接节点的标签。节点x在选择标签时,如果存在多组个数最多的标签,则随机选择其中一组标签进行更新。

    在标签传播算法中,节点的标签更新通常有同步更新和异步更新两种方法。同步更新是指,节点xt时刻的更新是基于邻接节点在t-1时刻的标签。异步更新是指,节点xt时刻更新时,其部分邻接节点是t时刻更新的标签,还有部分的邻接节点是t-1时刻更新的标签。LPA算法在标签传播过程中采用的是同步更新,研究者们发现同步更新应用在二分结构网络中,容易出现标签震荡的现象。因此,之后的研究者大多采用异步更新策略来避免这种现象的出现。

           Symeon等人通过实验比较了17种常见的社区检测算法的复杂度和适应社区规模的大小,发现LPA的时间复杂度和空间复杂度分别为O(n)O(n2)n为社区的节点数),与其他算法相比较,LPA具有线性的时间复杂度并且可以很好地适应大规模社区的检测,经过5次迭代后开始收敛,既不需要优化预定义的目标函数,也不需要关于社区的数量和规模等先验信息。

原创粉丝点击