半监督学习算法——标签传播算法(LPA)与其扩展

标签传播算法LPA与其扩展

1. 什么是标签传播算法?

标签传播算法(Label Propagation Algorithm,LPA,2007)是基于图的一种标签算法,也是社区发现(Community Detection)领域的一种经典方法。社区发现是为了发现图中的一些社区结构,可以看作是聚类发现的问题,详细发展和介绍在链接中。

  • 社区发现的历史:上世纪60年代,Herbert Simon 首先提出了复杂系统具有模块结构特性的概念。而针对社区的研究实际上是从子图分割问题演化而来,Kernighan-Lin 提出的二分算法使得子图分割问题逐渐成为当时图挖掘领域关注的重点。另外,在社会学领域,社会学家也发现社区结构在各种复杂网络中的普遍存在性。进入21世纪后,社区的研究开始被研究者所重视,而近年来随着社交网络的崛起,这一领域的关注度已大大提升。

2. 标签传播算法怎么做?

核心思想: 利用该节点的周围的节点的标签(投票思想)来刷新该节点的标签,循环迭代直到收敛。

在这里插入图片描述

A. 标签传播算法(LPA)的做法比较简单:

  1. 第一步: 为所有节点指定一个唯一的标签;

  2. 第二步: 逐轮刷新所有节点的标签,直到达到收敛要求为止。对于每一轮刷新,节点标签刷新的规则如下:

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

注:算法中的记号 N_n^k 表示节点 n 的邻居中标签为 k 的所有节点构成的集合。

B. “相似的数据应该具有相同的label。LP算法包括两大步骤:1)构造相似矩阵;2)勇敢的传播吧。” LPA详细过程与代码

3. LPA的扩展。
社区发现的已有算法:
在这里插入图片描述

LPA及其扩展详细内容

  • 1.HANP(Hop Attenuation & Node Preference)

全称包含两个部分 跳跃衰减(HA)与节点偏好(NP):
(1)跳跃衰减:为每个节点引入score来刻画其传播能力。
(2)节点偏好:一个节点从其他节点接受标签,与LPA不同,综合考虑其传播能力、出现频率、度(如果是带权图还考虑边权)。

  • 2.SLPA(Speak-Listen Propagation Algorithm)

SLP是一个重叠型的社区发现算法,可以通过阈值r让其退化为非重叠性的社区发现算法。
在这里插入图片描述

SLPA 中引入了 Listener 和 Speaker 两个比较形象的概念,你可以这么来理解:在刷新节点标签的过程中,任意选取一个节点作为 listener,则其所有邻居节点就是它的 speaker 了,speaker 通常不止一个,一大群 speaker 在七嘴八舌时,listener 到底该听谁的呢?这时我们就需要制定一个规则。

在 LPA 中,我们以出现次数最多的标签来做决断,其实这就是一种规则。只不过在 SLPA 框架里,规则的选取比较多罢了(可以由用户指定)。

当然,与 LPA 相比,SLPA 最大的特点在于:它会记录每一个节点在刷新迭代过程中的历史标签序列(例如迭代 T 次,则每个节点将保存一个长度为 T 的序列,如上图所示),当迭代停止后,对每一个节点历史标签序列中各(互异)标签出现的频率做统计,按照某一给定的阀值过滤掉那些出现频率小的标签,剩下的即为该节点的标签(通常有多个)。

  • 3.BMLPA (Balanced Multi-Label Propagation Algorithm)

对每个节点的归属community不做限制,只要求同一节点的标签具有平衡的归属系数

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Madazy/article/details/83863882
今日推荐