自监督-Self-supervised Training of Graph Convolutional Networks


自监督-Self-supervised Training of Graph Convolutional Networks

标签:自监督、图神经学习

动机

  • GNN 和 CNN 的一个共同点是在网络训练需要大量的标注数据,此外,GCN 需要邻接矩阵 作为输入定义那些非网格数据之间的关系,这导致训练、验证和测试数据在内的所有数据通常之形成一个用于训练的图结构数据
  • 邻接矩阵通常是预定义和固定的,这使得数据扩充策略不能用于构造的图结构数据来扩充训练数据量

贡献

  • 利用输入图结构数据本身的可用信息提出了两种自监督学习策略:随机移除连接 (Randomly Removing Links (RRL)) 和随机随机覆盖特征 (Randomly Covering Features (RCF))
  • 我们提出的自监督学习策略在两个具有代表性的 GCN 模型和三个公共引文网络数据集上进行了检验

思想

定义

无向图: \(G(\mathcal{V}, \mathcal{E})\), \(\mathcal{V}, \mathcal{E}\) 分别表示顶点集和边集 ,\(|\mathcal{V}| = N\) 表示节点的数量, \((v_i, v_j) \in \mathcal{E}\), \(A \in \mathbb{R} ^{N \times N}\) 表示临界矩阵, \(D \in \mathbb{R} ^{N \times N}\) 是度矩阵, \(D_{ii} = \sum_j A_{ij}\), \(x \in \mathbb{R}^{N}\) 属于特征向量

核心

对原图的边和特征的修改并且通过边预测任务进行无监督学习训练模型后在拿训练好的模型用于其他任务.

框架

在这个框架中是存在两个任务---链路预测 (用于训练模型) 和节点分类,首先在自监督训练中, 对于输入图进行了修改,修改方式主要为随机移除边 (RRL) 和随覆盖节点信息 (RCF), 然后通过一个提取器, 就是个 GCN 输出节点表示, 已经节点特征表示进行图重构后原图得到权重交叉熵损失函数后 BP 更新模型的参数. 对于节点分类任务, 使用已经训练好的模型进行节点特征学习表示, 然后进行节点分类。

  • 特征学习

    该模块是整个框架的主要部分,它以具有节点特征的图作为输入,并为每个节点产生潜在的特征表示。在 SSL 阶段,该模块与链路预测模块联合训练,用于链路预测任务;该模块的输入是信息不完整的图数据,如缺少部分边或特征。通过链路预测的自监督学习任务,特征学习模块在训练过程中探索节点表示和图结构信息。在分类阶段,该模块和分类模块以端到端的方式联合训练,用于节点分类。该部分的体系结构由几个图卷积层组成;

  • 分类

? 该模块的任务是在分类阶段将从特征学习模块中学习的节点表示分类为不同的类别。分类模块由几个图卷积层和一个 softmax 函数组成。这个过程可以表述如下:

\[Z = softmax(H^{i}) \\ L_{C} = -\sum_{i \in V_l} \sum_{j = 1} ^ {N} M_{ij} \log (Z_{ij}) \]

? \(M\) 表示标签矩阵

  • 链路预测

    设计了两种类型的 SSL 策略,随机移除链接 (RRL)和随机覆盖特征 (RCF),以使 GCN 从图数据本身学习节点表示。这两个 SSL 过程都是由链路预测模块实现的。该模块的目标是预测两个节点之间是否存在链路,可表述如下:

    \[\hat{A} = sigmoid(H^{i}(H^i)^T) \\ \]

    \(H^i\) 是经过 GCN 得到的节点表示, \(\hat{A}\) 是重构后的邻接矩阵, \(A\) 是邻接矩阵 (稀疏矩阵), 权重交叉熵 \(L_L\) 用于损失函数, 被定义为:

    \[L_L = -\sum_i W(A_i \log (\hat{(A_i)} + (1 - A_i) \log (1 - \hat{A_i})) \]

实验

实验用了三个引文数据集, 分别使用了 GCN 和 GAT 结合进行对比试验, 实验效果比之前的都有所提升.

总结

首先提出两个 SSL 策略, 随机移除边和随机覆盖节点信息, 通过通过设置代理任务边预测进行模型训练, 并用训练好的模型进行其他任务的学习.