预训练-GCC: Graph Contrastive Coding for Graph Neural Network Pre-Training

预训练-GCC: Graph Contrastive Coding for Graph Neural Network Pre-Training

标签:预训练、神经网络

动机

  • 迄今为止,大多数关于图的表示学习工作都集中在单个图或一组固定的图的表示学习上,能够转移到域外数据和任务的工作非常有限
  • 图表示学习的现有技术侧重于特定领域的问题,并为每个图数据集训练专用模型,该模型通常不可转移到域外数据

贡献

  • 我们设计了图对比编码(GCC)个自监督图神经网络的预训练框架,以捕获跨多个网络的通用网络拓扑特性

核心思想

在 GCC 中,我们将训练前的任务设计为子图实例判别。它的目标是根据顶点的局部结构来区分顶点(参见下图)。对于每个顶点,我们从它的多跳自我网络中抽取子图作为实例。GCC 的目的是区分从某个顶点取样的子图和从其他顶点取样的子图。最后,对于每个子图,我们使用图神经网络(特别是 GIN 模型)作为图编码器,将底层结构模式映射到潜在表示。由于 GCC 不假设顶点和子图来自同一个图,图编码器被迫在不同的输入图中捕捉通用模式。给定预先训练的 GCC 模型,我们将其应用到未见图中,以处理下游任务

由于使用的还是对比学习的思想,主要工作还是在数据加强上和微调,下面主要讨论子图设计何微调

子图设计

r-ego network :给出一个点 \(v\) , 它的邻居集合定义为最短距离不超过 \(r\) 的顶点集合,由这些顶点集合所组成的图成为 r-ego 网络

子图采样的三个步骤

  1. 带有重启的随机游走:给定一个 ego 点 \(v\), 从 \(v\) 进行随机游走,游走距离不超过 \(r\) , 并且在每次游走中都存在一个概率回到点 \(v\)
  2. 子图产生:带有重启的随机游走所所遍历的节点作为一个集合 \(\widetilde{S}_v\) ,然后用 \(\widetilde{S}_v\) 生成的图 \(\widetilde{G}_v\) 作为增广样本
  3. 匿名化:我们以任意顺序将采样图 \(\widetilde{G}_v\) 的顶点重新标记 \(\{1,2,⋅⋅⋅|\widetilde{S}_v\}\),从而匿名化采样图\(\widetilde{G}_v \)

我们重复上述过程两次,以创建两个图数据扩展,它们形成一个相似的实例对 \((x^q,x^{k_+})\)(正样本对)。如果两个子图是由不同的 r-ego 网络增广的,我们将它们视为具有\(k≠k_+\) 的不同实例对 \((x^q,x^{k})\)(负样本对)。值得注意的是,上面所有的图操作—带重启的随机游动、子图产生和匿名化—都可以在DGL包中使用

GCC微调

下游任务。 图学习中的下游任务通常分为两类:图级和节点级,其目标是分别预测图或节点的标签。对于图级任务,输入图本身可以由 GCC 进行编码,以实现表示。对于节点级的任务,节点表示可以通过编码其 r-ego (或从其 r-ego 的子图)来定义。在这两种情况下,编码的表示随后被输入到下游任务中,以预测特定于任务的输出。

Freezing vs. full fine-tuning: GCC 为下游任务提供了两种微调策略——freezing模式和 full fine-tuning 模式。在 freezing 模式下,我们冻结预先训练的图编码器\(f_q\) 的参数,并将其作为静态特征提取器,然后在提取的特征之上训练针对特定下游任务的分类器。在full fine-tuning模式下,将使用预先训练的参数初始化的图编码器 \(f_q\) 与分类器一起对下游任务进行端到端训练。

GCC as a local algorithm:GCC 作为一种图算法,属于局部算法类别,其中该算法只涉及输入(大规模)网络的局部探索,因为 GCC 通过基于随机游走的图采样方法来探索局部结构。这种特性使GCC能够扩展到大规模的图学习任务,并对分布式计算设置非常友好。

实验结果

posted @ 2021-10-13 22:56  owo_owo  阅读(473)  评论(0编辑  收藏  举报