自监督- Multi-Stage Self-Supervised Learning for Graph Convolutional Networks on Graphs with Few Labele
标签: 自监督、 图神经
动机
-
首先, 由于很难改变
GCNs
固有的浅层结构, 如何设计一种基于GCNs
的一致高效的训练算法来提高其在标签节点较少的图上的泛化性能? -
其次, 如何利用基于大量未标记数据的自监督学习方法的优势, 来提高所提出的训练算法的性能?
贡献
- 我们首先探讨了在标签节点较少的图上
GCNs
的层效应的存在性, 揭示了GCNs
需要更多的层来维持标签率较低的性能 - 结合多阶段训练框架和深度聚类方法, 我们提出了一种有效的训练算法, 称为
M3S
算法. 它在低标签率的图形上表现出最先进的性能. - 事实上,我们的
M3S
训练算法可以提供一个更通用的框架, 该框架利用自监督学习方法来改进多阶段训练框架, 从而在只有少量标记数据的学习任务上设计高效的算法.
思想
框架
对于一个原图, 首先利用 GCN
进行训练, 得到每一个节点的表示. 利用 DeepCluster
将没有标签的数据进行分成 \(K\) 类, 然后利用对齐策略将他们聚类的数据进行标签, 然后将每个类中的置信最高的进行 self-checking
, 通过的节点则加入原始数据, 然后重复知道所有的数据都有标签.
算法
Multi-Stage Training Framework
原始的自训练是将置信度最高的预测的节点标签加入到虚拟节点中且只加入一次, 而多阶段训练算法执行 \(K\) 次, 在标签的有限的图上, 该算法重复添加置信度高的标签数据, 并促进标签信息的传播, 与原始方法相比性能更好. 而多阶段训练框架的可信在于基于置信度的虚拟标签选择节点的准确性, 因此很自然的引入了能够保证所选标签数据的准确性的自检机制.
DeepCluster
DeepCluster
是 2018 年提出的自监督的方法, 其主要是由 ConvNet F
产生的一组 embedding
作为输入, 并基于几何标准将其分组为 \(k\) 个不同的聚类, DeepCluster
共同学习一个 \(d \times k\)
质心矩阵 \(C\) 和每个数据点 \(n\) 的聚类分配 \(y_n\), 通过解决下列问题:
\[\min_{C \in \mathcal{R}^{d \times k}} \frac{1}{N} \sum_{n = 1}^{N} min_{y_n \in \{0, 1\}^k} ||F(x_n) - C_{y_n}||^2_2 \]解决这个问题提供了一组最优赋值 \((y_n^*)_{n≤N}\) 和质心矩阵 \(C^*\). 这些赋值被用作伪标签. 具体来说, DeepCluster
在将从 ConvNet
产生的嵌入向量聚类成伪标签和通过预测这些伪标签来更新 ConvNet
的参数之间交替. 对于图中的节点分类任务, 表示过程也可以看作是图嵌入 因此, 我们利用图嵌入的内在特性, 在嵌入向量上执行 k-means
, 根据嵌入距离将所有节点聚类成不同的类别. 接下来, 引入对齐机制, 将每个簇中的节点分类到嵌入空间上分类中最近的类. 最后, 利用获得的伪标签构建多阶段自监督算法的对齐机制.
Aligning Mechanism
对齐机制目标是根据嵌入距离将聚类中的类别转化为分类中的类别, 经过 k-means
后将未标记的数据进行聚类后得到聚类 \(l\) , 其计算如下:
其中 \(\mu_m\) 表示类 (有标记的数据) \(m\) 中的质心, \(v_l\) 表示类 \(l\) (未标记的数据)中的质心, \(c^{(l)}\) 表示在原始标记数据中与类的所有质心距离最近的对齐类. 通过对齐机制, 我们能够将每个簇的节点分类到一个特定的类别, 然后根据它们的嵌入距离为所有未标记的节点构造伪标签.
伪码
实验
节点分类任务, 在 Cora
上的分类准确率.
总结
在标签少的图上, 提出了多阶段训练算法框架, 将带有虚拟标签的自信数据加入到标签集中, 扩大训练集. 此外, 将深度聚类应用于遗传神经网络的图嵌入过程, 并设计了一种新的对齐机制来构造自检机制, 以改进多阶段训练框架.