1. 标签传播算法(LPA)概述
1.1 什么是标签传播算法?
标签传播算法(Label Propagation Algorithm, LPA)是一种基于图的半监督学习算法,主要用于节点分类任务。它通过利用图结构中节点之间的连接关系,将已知的标签信息从少量标记节点传播到未标记节点,从而实现对整个图中所有节点的标签预测。
LPA 的核心思想是:相邻节点(通过边连接的节点)更可能具有相同的标签。这种假设基于图的 “同质性”(homophily)原理,即网络中相连的节点倾向于具有相似的属性或类别。
1.2 LPA 的应用场景
LPA 广泛应用于以下场景:
- 社区发现:在社交网络、生物网络等图结构中识别社区(即节点聚类)。
- 节点分类:在半监督学习中,利用少量标记数据对未标记节点进行分类(如用户分类、文本分类)。
- 推荐系统:基于用户-物品图进行推荐。
- 生物信息学:分析蛋白质交互网络或基因网络。
- 图像分割:将图像像素视为图节点,利用 LPA 进行区域分割。
1.3 LPA 的特点
- 半监督:只需要少量标记数据即可工作,适合标记数据稀缺的场景。
- 基于图:依赖图结构(节点和边),适用于网络数据。
- 迭代传播:通过迭代更新节点的标签,逐步收敛到稳定状态。
- 高效:计算复杂度较低,适合大规模图数据。
2. LPA 的基本原理
2.1 直观理解:什么是标签传播?
想象一个小型社交网络,比如一个班级里 5 个同学(节点),他们之间通过“朋友关系”(边)连接。有些同学(标记节点)已经明确表示了自己的兴趣,比如喜欢“篮球”或“音乐”。其他同学(未标记节点)还没有表明兴趣,但我们可以通过他们的朋友关系推测:如果 A 和 B 是好朋友,A 喜欢篮球,那么 B 也很可能喜欢篮球。LPA 就是通过这种“朋友关系”把兴趣标签从已知的人传播到未知的人,直到整个网络的标签稳定。
这个传播过程是迭代的,就像谣言在网络中传播一样:
- 最初,只有少数人知道“信息”(标签)。
- 每个人会根据朋友的标签更新自己的标签(倾向于选择朋友中最常见的标签)。
- 这个过程重复多次,直到大家的标签不再变化。
LPA 的核心假设是同质性原理(Homophily):图中通过边连接的节点更可能属于同一类别。这种假设在许多现实场景中是合理的,比如社交网络、生物网络等。
2.2 图的表示:LPA 的“地图”
LPA 工作在一个图上,图是数据的抽象表示,包含:
- 节点(Vertices):表示数据点,比如人、文档、像素等。
- 边(Edges):表示节点之间的关系,比如朋友关系、相似性等。
2.2.1 图的数学表示
图可以用邻接矩阵 AAA 表示:
- 矩阵 AAA 是一个 n×nn \times nn×n 的矩阵,nnn 是节点数。
- 如果节点 iii 和 jjj 之间有边,Aij=wijA_{ij} = w_{ij}Aij=wij,其中 wijw_{ij}wij 是边的权重(表示关系的强度,比如相似度)。
- 如果没有边,Aij=0A_{ij} = 0Aij=0。
- 如果图是无权图(边没有权重),则 wij=1w_{ij} = 1wij=1。
2.2.2 例子:一个简单的图
假设我们有 5 个节点(同学 A, B, C, D, E),他们的朋友关系如下:
- A 和 B 是朋友,A 和 C 是朋友。
- B 和 C 是朋友,B 和 D 是朋友。
- C 和 D 是朋友,C 和 E 是朋友。
这个图的邻接矩阵 AAA 是:
[0110010110110110110000100]\begin{bmatrix} 0 & 1 & 1 & 0 & 0 \\ 1 & 0 & 1 & 1 & 0 \\ 1 & 1 & 0 & 1 & 1 \\ 0 & 1 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 \end{bmatrix} 0110010110110110110000100
- A12=1A_{12} = 1A12=1 表示 A 和 B 有边。
- A15=0A_{15} = 0A15=0 表示 A 和 E 没有直接边。
2.2.3 度矩阵
每个节点的度是它连接的边数。度矩阵 DDD 是一个对角矩阵,DiiD_{ii}Dii 是节点 iii 的度。例如:
- 节点 A 的度是 2(连接 B 和 C)。
- 节点 B 的度是 3(连接 A, C, D)。
度矩阵 DDD 为:
[2000003000004000002000001]\begin{bmatrix} 2 & 0 & 0 & 0 & 0 \\ 0 & 3 & 0 & 0 & 0 \\ 0 & 0 & 4 & 0 & 0 \\ 0 & 0 & 0 & 2 & 0 \\ 0 & 0 & 0 & 0 & 1 \end{bmatrix} 2000003000004000002000001
2.3 标签的表示:节点的状态
每个节点有一个标签,表示它的类别(比如“篮球”或“音乐”)。在半监督学习中:
- 标记节点:少量节点已经有标签,比如 A 是“篮球”(标签 = 0)。
- 未标记节点:其他节点的标签未知,需要通过 LPA 预测。
2.3.1 标签的数学表示
假设有 CCC 个类别(比如 2 个:篮球 = 0,音乐 = 1)。每个节点 iii 的标签用一个向量 FiF_iF

最低0.47元/天 解锁文章
948

被折叠的 条评论
为什么被折叠?



