论文题目
GCC: Graph Contrastive Coding for Graph Neural Network Pre-Training
发表日期、所属会议/期刊/预印本
KDD 2020
做得什么
使用自监督任务对GNN进行预训练,然后针对不同的图学习任务对其进行微调。使用图形对比编码(GCC)框架来学习跨图形的结构表示。
怎么做的(重点)
-
GCC的预训练和微调阶段,如图:
-
预训练
- 目标: 预先训练一个通用图神经网络编码器,以捕获这些图背后的结构模式。
- 采用InfoNCE Loss,q,k为编码查询实例和密钥实例( NCE 的核心思想就是通过学习数据分布样本和噪声分布样本之间的区别,从而发现数据中的一些特性。),如图:
- r-ego网络:对于某个顶点v,定义了一个实例为其r-ego网络, 而子图是由不同邻居节点产生的图。GCC将每个ego网络视为其自身的一个独特类,并鼓励模型区分相似实例和不同实例。如图:
-
将子图作为对比实例,将每个顶点扩展到其局部结构。当字典为3时,对子图r-ego网络随机增加两个子图q、k0,而另一个子图产生的子图为噪声图k1、k2,对两个部分{(q), {k0,k1,k2}}用图编码器f_q与f_k进行编码,用 1 中的损失模型进行区分,如图:
- 实际的字典会很大,则采用端到端(E2E)和动量对比(MoCo)有效构建和维护字典。E2E采样小批量的实例,并将相同小批量中的样本视为字典。MoCo旨在增加字典的大小,而没有额外的反向传播成本。
-
微调
- 下游任务分为:图级和节点级,目标为预测图或节点的标签。图级任务,输入图本身可以由GCC进行编码;节点级的任务,节点表示可以通过编码其 r-ego 网络。然后将编码后的数据输入到下游任务中。
- 微调策略:freezing 和 full fine-tuning。
- GCC通过基于随机游走的图采样方法来探索局部结,使得GCC能扩展到大规模的图学习任务,并对分布式计算非常友好。
-
实验
- 在十个图形数据集上,预训练的图形神经网络在三个图形学习任务(点分类、图分类和相似性搜索)中取得了与监督训练的从头开始的网络相当的性能。