[Datawhale][CS224W]标签传播算法(七)

目录

    • 一、概述
    • 二、半监督节点分类问题-求解方法对比
    • 三、算法——标签传播和集体分类
      • 3.1 Label Propagation(Relational Classification)标签传播算法
        • 3.1.1 简介
        • 3.1.2 LPA算法实现[3]
          • 1.相似矩阵构建
          • 2.LPA算法
          • 3.变身的LP算法
          • 4.LP算法的Python实现
      • 3.2 Iterative Classification
  • 参考文献

一、概述

标签传播算法(Label Propagation)是一种基于图的半监督学习方法,其基本思路是用已标记节点的标签信息去预测未标记节点的标签信息。利用样本间的关系建图,节点包括已标注和未标注数据,其边表示两个节点的相似度,节点的标签按相似度传递给其他节点。标签数据就像是一个源头,可以对无标签数据进行标注,节点的相似度越大,标签越容易传播。

二、半监督节点分类问题-求解方法对比

方法 图嵌入 表示学习 使用属性特征 使用标注 直推式 归纳式
人工特征工程 / /
基于随机游走的方法
基于矩阵分解的方法
标签传播 是/否
图神经网络
  • 人工特征工程:节点重要度、集群系数、Graphlet等。

  • 基于随机游走的方法,构造自监督表示学习任务实现图嵌入。无法泛化到新节点。

    例如:DeepWalk、Node2Vec、LINE、SDNE等。

  • 标签传播:假设“物以类聚,人以群分”,利用邻域节点类别猜测当前节点类别。无法泛化到新节点。

    例如:Label Propagation、Iterative Classification、Belief Propagation、Correct & Smooth等。

  • 图神经网络:利用深度学习和神经网络,构造邻域节点信息聚合计算图,实现节点嵌入和类别预测。

    可泛化到新节点。

    例如:GCN、GraphSAGE、GAT、GIN等。

经常与GCN相对比的模型

[Datawhale][CS224W]标签传播算法(七)_第1张图片

三、算法——标签传播和集体分类

3.1 Label Propagation(Relational Classification)标签传播算法

3.1.1 简介

标签传播算法 (LPA) 是一种用于在图中查找社区的快速迭代算法。它仅使用网络结构作为指导来检测这些社区,并且不需要预定义的目标函数或有关社区的先验信息。 [ 1 ] ^{[1]} [1]我们通过在数据集中传播标签来将标签分配给未标记的点。该算法最早由朱晓进Zoubin Ghahramani [ 2 ] ^{[2]} [2]2002年提出。LPA 属于转导学习,因为我们想要预测已经提供给我们的未标记数据点的标签。

LPA 的工作原理是在整个网络中传播标签,并根据标签传播过程形成社区。 [ 1 ] ^{[1]} [1]

该算法背后的直觉是,单个标签可以在密集连接的节点组中迅速占据主导地位,但难以跨越稀疏连接的区域。标签将被困在一组密集连接的节点中,当算法完成时,那些以相同标签结束的节点可以被视为同一社区的一部分。

在初始条件下,节点带有一个标签,表示它们所属的社区。社区中的成员资格根据相邻节点拥有的标签而变化。此更改受节点一个度内的最大标签数限制。每个节点都用一个唯一的标签初始化,然后标签通过网络传播。因此,密集连接的群体很快就会找到一个共同的标签。当在整个网络中创建许多这样的密集(共识)组时,它们会继续向外扩展,直到无法扩展为止。

该算法的工作原理如下: [ 1 ] ^{[1]} [1]

  • 每个节点都使用唯一的社区标签(标识符)进行初始化。
  • 这些标签通过网络传播。
  • 在每次传播迭代中,每个节点都会将其标签更新为其最大数量的邻居所属的标签。关系被任意但确定性地打破。
  • 当每个节点都拥有其邻居的多数标签时,LPA 达到收敛。
  • 如果达到收敛或用户定义的最大迭代次数,LPA 将停止。

该工作原理的具体实现步骤:

  1. 初始化网络中所有节点的标签。对于给定的节点x, C x ( 0 ) = x C_x(0)=x Cx(0)=x
  2. 设置 t = 1
  3. 将网络中的节点以随机顺序排布,并设置为X
  4. 对于按特定顺序选择的每个 x ∈ X x\in X xX,令 C x ( t ) = f ( X x i 1 ( t ) , X x i 2 ( t ) , . . . , X x i k ( t ) ) C_x(t)=f(X_{x_{i_1}}(t),X_{x_{i_2}}(t),...,X_{x_{i_k}}(t)) Cx(t)=f(Xxi1(t),Xxi2(t),...,X

你可能感兴趣的:(Datawhale,CS224W,图神经网络,图神经网络,Datawhale,CS224W)