Paper from KDD 2020:
Abstract
图表示学习在图机器学习任务上表现出了很好的性能,然而现有的工作只在特定域的图数据上训练图网络模型,当迁移到域外的数据时则性能有限。这篇论文中提出了一个跨不同数据集的对比学习方法,可以有效捕捉通用的网络拓扑结构性质。文中的方法可以在多个不同分布的数据集上对图网络模型进行预训练,并在下游任务上进行微调,实验结果表明经过预训练后,模型可以表现出更好的性能。
Methods
对比学习
在这篇文章中,每个点和它周围距离小于等于的点构成了一个子图作为对比学习中的实例,对于每个节点,通过带重启动的随机游走(有一定概率在随机游走的过程中回到出发节点)采样得到一些节点,将这些节点的子图作为对比学习中的正例,其余节点的子图作为负例。在对比学习中,记询问为
,词典由
个键构成,其中正例记为
,则损失函数可写成如下形式:
注意到和
是两个分别对询问
以及键
进行编码的图神经网络。
图编码器
作者将目前sota的图神经网络模型GIN作为图编码器对节点的结构信息进行编码,由于图神经网络需要节点的特征作为输入,受Transformer的启发,这里将节点的位置信息作为输入的特征,令图的邻接矩阵为,度数矩阵为
,对归一化的拉普拉斯矩阵进行特征值分解:
将中top的特征向量作为节点的位置embedding,此外,节点度数的one-hot编码以及是否为该子图的中心节点也作为节点特征和之前得到的位置embedding进行拼接。为了使模型输出的embedding具有可迁移性,文中对所有最后得到的embedding都进行了l2归一化。
MoCo训练方式
论文中利用MoCo作为对比学习的更新策略,在梯度下降时,MoCo只更新的参数
,而
的参数
则通过动量更新的方法进行学习,
,
为动量参数。这样的更新方式缓慢的将
传播到
中,使得
的学习更平滑。
下游任务微调
在进行微调时,文中介绍了两种策略:1、冻结图编码器的参数,只对后面接入的分类器进行训练,例如SVM或者logistic回归。2、将编码器和分类器作为一个整体进行训练。
Experiments
作者用三个学术数据集和三个社交网络数据集进行预训练,并在节点分类、图分类、相似性搜索这3个任务上对预训练后的图神经网络进行了测试:
可以看到即便冻结(freeze)了图编码器的参数,模型仍然可以只训练分类器即达到了和其它方法可比的结果,另外在所有数据集的测试和训练过程中,GCC都采用了同样的超参,而其它的方法例如GIN则在不同数据集上采用了不同的训练参数,这也证明了GCC的鲁棒性。作者也在利用E2E作为对比学习策略的GCC上进行了实验,E2E每次只将同一个minibatch中的样本作为词典,而MoCo的词典大小则不受minibatch大小的限制。
Conclusion
本文提出了一种基于对比学习的图神经网络预训练框架,可以在多个不同域的数据集上同时进行训练,并在实验中取得了和只在特定域上进行训练的模型接近或者超越的效果,有效地挖掘出了不同网络中通用的结构特征信息。