锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

【论文阅读|浅读】GCC: Graph Contrastive Coding for Graph Neural Network Pre-Training

时间:2023-08-02 04:37:01 连接器fq18

目录

  • 前言
  • 简介
  • ABSTRACT
  • 1 INTRODUCTION
  • 2 RELATED WORK
    • 2.1 Vertex Similarity
    • 2.2 Contrastive Learning
    • 2.3 Graph Pre-Training
  • 3 GRAPH CONTRASTIVE CODING (GCC)
    • 3.1 The GNN Pre-Training Problem
    • 3.2 GCC Pre-Training
    • 3.3 GCC Fine-Tuning
  • 4 EXPERIMENTS
    • 4.1 Pre-Training
    • 4.2 Downstream Task Evaluation
      • 4.2.1 Node Classification
      • 4.2.2 Graph Classification
      • 4.2.3 Top-k Similarity Search
    • 4.3 Ablation Studies
  • 5 CONCLUSION
  • 读后总结
    • 2022/07/14 第一次阅读
  • 结语

前言

Hello!
非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~

自我介绍 ?(?ˊ?ˋ)?
昵称:海轰
标签:程序猿|C 选手|学生
简介:由于C语言知识编程,然后转到计算机专业,获得国家奖学金,有幸获得一些国家奖、省级奖…已保研。
学习经验:扎实基础 多做笔记 多敲代码 多思考 学好英语!

只有努力,只有努力,只有努力,只有努力,只有努力,只有努力,只有努力,只有努力,只有努力?

知其然 知道为什么!


本文仅记录您感兴趣的内容

简介

原文链接:https://dl.acm.org/doi/10.1145/3394486.3403168

会议:KDD '20: Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (CCF A类)

代码:https://github.com/THUDM/GCC

年度:2020/08/20

ABSTRACT

学习已成为解决实际问题的强大技术

节点分类、相似度搜索、图分类等各种下游图学习任务受益于其最近的发展

然而,现有的图表示学习技术专注于领域特定的问题,并为每个图数据集训练一个专用模型,这通常不可转移到域外数据

受自然语言处理和计算机视觉预训练的最新进展的启发,我们设计了图纸对比编码(GCC) -一个图神经网络神经网络预训练框架,以捕获跨多个网络的通用网络拓扑属性

我们将GCC培训前任务设计为网络 子图实例( subgraph instance) 图神经网络可以通过比较学习来学习内部和可转移的结构表征

我们在三个图学习任务和十个图数据集进行了广泛的实验

结果表明,GCC在不同的数据集中进行预训练,可以与任务特定、从零开始训练的对手竞争或更好的性能
这表明训练前和微调范式为图表学习提供了巨大的潜力

1 INTRODUCTION

Hypothesis

假设:具有代表性的图形结构模式具有通用性和跨网络转移性


在过去的20年里,网络科学研究的重点是发现和抽象不同网络的一般结构特征

  • 例如,Barabasi和Albert指出万维网、社交网络、生物网络等多种网络都具有无标度特征,即其度分布遵循幂律[1]
  • Leskovec等人。[28]发现许多实图符合致密收缩定律。其他常见的网络模式包括小世界[57]motif分布[31]、社区组织[34]和核心-外围结构[6]在概念层面验证了我们的假设

然而,在过去的几年里,随着深度学习的近期进展[4、30],图形学习的范式已经从结构化模式转变为图形学习

具体来说

  • 图表示学习将图表的顶点、边缘或子图转换为低维嵌入,以保留图表的重要结构信息
  • 然后,从输入图中学到的嵌入可以输入到同一图中下游任务的标准机器学习模型中。

然而,到目前为止,大多数图表的学习工作都集中在单个图表或一组固定图表的学习上,非常有限的工作可以转移到域外的数据和任务上


本质上,这些表示学习模型旨在学习特定的网络结构模式,用于每个数据集

例如

  • [39]在Facebook学习社交图片DeepWalk嵌入模型不能应用于其他图片

鉴于(1)图表中学习的局限性和(2)常见结构模式中发现的现有技术

自然问题出现了:我们能从网络中学习可转移的代表性图嵌入吗?

在自然语言处理[10]、计算机视觉[17]等领域也提出和追求了类似的问题

到目前为止,最强大的解决方案是在自我监督的设置下,从大型数据集预训练中表示学习模型

预训练的理念是利用预训练模型作为良好的初始化,以便在看不见的数据集中微调(不同)任务

例如,BERT设计语言模型预训练任务,从大型语料库中学习Transformer编码器[52]
预先训练的Transformer通过微调适应各种编码器NLP任务[55]


Presented work

受此启发和普遍图结构模式的存在,我们研究了训练前表示学习模式的潜力,特别是图神经网络(GNNs)

理想情况下,给出一组(不同)输入图,如Facebook社交图和DBLP合着者图

我们的目标是在这些输入图上使用自我监督任务预训练GNN,然后对不同的图学习任务进行微调,如US-Airport节点的节点分类

大概意思是:先在一个非常大的数据集上训练,得到一些模型参数,然后在之前的参数基础上对其他数据集进行微调。

在这里,GNN训练前的关键问题是:如何设计培训前任务,使网络和跨网络的一般结构模式被捕获和进一步传输?


在这项工作中,我们提出了图对比编码(GCC)学习跨图结构的框架表示

在概念上,我们利用比较学习[58]的思想,设计了图形训练前任务作为例子来判断

  • 它的基本思想是从输入图中采样实例,将每个实例视为一个独立的类别
  • 学会编码和区分这些实例

具体来说,GCC学习可转移结构模式需要回答三个问题

  • (1)实例是什么?
  • (2)判断规则是什么?
  • (3)如何编码实例?

在GCC中,我们将训练前任务设计为子图实例判别

其目标是根据其局部结构区分顶点(Cf. Figure 1)

我们从每个顶点跳多了ego在网络中提取子图作为例子

GCC旨在区分从某个顶点采样的子图和从其他顶点采样的子图

最后,对于每个子图,我们用一个图神经网络(具体来说,GIN模型[59])作为图编码器,将底层结构模式映射到潜在表示

由于GCC不假设顶点和子图来自同一个图,因此图形编码器被迫在不同的输入图中捕获通用模式

给出了预训练的GCC模型,我们将其应用于不可见的图来解决下游任务。


据我们所知,迄今为止,结构图表示训练前领域的工作非常有限

  • 最近的一个是设计策略,在特定域(分子图)[19]的节点属性标记图上预训练gnn
  • 最近的另一项工作是InfoGraph[46],它专注于学习领域特定的图级表示,特别是用于图分类任务
  • 第三项相关工作由Hu等人[20]完成,他们定义了几个图学习任务,如预测中心性分数,以在合成图上预训练GCN[25]模型

我们进行了大量的实验来证明GCC的性能和可转移性

我们在不同类型的图集合上预训练GCC模型,并将预训练模型应用于10个新的图数据集上的3个下游图学习任务

结果表明,GCC模型取得了与最先进的任务特定图表示学习模型相竞争或更好的结果,这些学习模型是从零开始训练的

例如,对于US-Airport网络的节点分类
GCC在Facebook、IMDB和DBLP图上的预训练优于直接在US-Airport图上训练的GraphWave[12]、ProNE[64]和Struc2vec[43],实证地证明了我们一开始的假设


总结起来,我们的工作有以下四个方面的贡献:

  • 我们将图神经网络跨多个图进行预训练的问题形式化,并确定其设计挑战
  • 我们将训练前任务设计为子图实例判别,从多个输入图中获取通用和可转移的结构模式
  • 我们提出了图对比编码(GCC)框架来学习结构图表示,它利用对比学习来指导训练前的学习
  • 我们进行了大量的实验,以证明对于域外任务,GCC可以提供与专用图特定模型相当或更优越的性能

2 RELATED WORK

2.1 Vertex Similarity

在过去的几年里,网络/图中顶点相似性的量化已经得到了广泛的研究

顶点相似性的目标是回答[26]之类的问题

如“这两个顶点有多相似?”或“其他哪个顶点与这些顶点最相似?”相似的定义在不同的情况下可能是不同的

我们简要回顾了以下三种类型的顶点相似性


Neighborhood similarity

邻域相似性的基本假设,即邻近性,是紧密连接的顶点应该被认为是相似的

  • 早期的邻域相似性度量包括Jaccard相似性(计算共同邻域)、RWR相似性[36]和SimRank[21]等
  • 最近开发的网络嵌入算法,如LINE [47], DeepWalk [39], node2vec[14],也遵循邻域相似性假设

Structural similarity

与邻域相似度通过连通性来衡量相似度不同,结构相似度甚至不假设顶点是连通的

结构相似的基本假设是具有相似局部结构的顶点应该被认为是相似的

关于结构相似性建模的研究有两种方向

  • 第一行定义了基于领域知识的代表性模式。例如顶点度、结构多样性[51]、结构孔[7]、k-core[2]、motif[5,32]等。因此,这种类型的模型,如Struc2vec[43]和RolX[18],通常都包含明确的功能
  • 第二项研究利用谱图理论来模拟结构相似性。最近的一个例子是GraphWave[12]

在这项工作中,我们专注于结构相似性

与上述两种类型不同的是,我们采用对比学习和图神经网络从数据中学习结构相似性

Attribute similarity

现实世界的图形数据往往具有丰富的属性,如引文网络中的文本、社会网络中的人口统计信息、分子图中的化学特征等

最近的图神经网络模型,如GCN [25], GAT [53], GraphSAGE[16,62]和MPNN[13],利用附加属性作为边信息或监督信号来学习进一步用于度量顶点相似性的表示

2.2 Contrastive Learning

对比学习是一种从数据中获取相似性的自然选择

  • 在自然语言处理中,Word2vec[30]模型利用拟合词和负采样来学习词嵌入
  • 在计算机视觉中,大量的工作[15,17,49,58]通过最小化同一图像的两个视图之间的距离来学习自我监督图像表示

在这项工作中,我们采用了Oord等人[35]的InfoNCE损失和Wu等人[58]的实例识别任务

2.3 Graph Pre-Training

Skip-gram based model

早期对预训练图表示的尝试是受Word2vec[30]启发的基于跳跃图的网络嵌入模型

如LINE [47], DeepWalk [39], node2vec[14]和metapath2vec[11]

它们大多数遵循邻域相似性假设

上述方法学习到的表示与用于训练模型的图捆绑在一起,不能处理样本外问题

我们的图对比编码(GCC)在两个方面不同于这些方法

  • 首先,GCC关注结构相似性,结构相似性与邻域相似性正交
  • 其次,GCC可以跨图形转移,甚至转移到训练前从未见过的图形

Pre-training graph neural networks

最近有几项研究将语言训练前的[10]引入了训练前的图神经网络(GNN)

  • 例如,Hu等。[19]在标记图上预训练GNN,特别是分子图,其中每个顶点(原子)有一个原子类型(如C、N、O),每个边(化学键)有一个键类型(如单键和双键)。训练前的任务是恢复隐藏分子图中的原子类型和化学键类型
  • 另一项相关的工作是Hu等人[20]的,它定义了几个图学习任务来预训练GCN[25]

我们的GCC框架在两个方面与上述方法有所不同

  • 首先,GCC适用于一般的未标记图,特别是社会和信息网络
  • 其次,GCC不涉及显式的特征化和预定义的图学习任务

3 GRAPH CONTRASTIVE CODING (GCC)

在本节中,我们形式化了图神经网络(GNN)的预训练问题

为了解决这个问题,我们提出了图形对比编码(GCC)框架

图2展示了GCC的训练前微调阶段的概述

3.1 The GNN Pre-Training Problem

从概念上讲,给定一组来自不同领域的图,我们的目标是预先训练一个GNN模型,以一种自我监督的方式捕获这些图的结构模式

该模型应该能够受益于不同数据集上的下游任务

潜在的假设是,在不同的图中存在共同的和可转移的结构模式

如motifs,,这在网络科学文献[28,32]中很明显

一个示例场景是,我们在带有自我监督的Facebook、IMDB和DBLP图上预训练GNN模型,并将其应用于US-Airport网络进行节点分类,如图2所示


形式上,GNN预训练问题是学习一个函数 f f f,它将一个顶点映射到一个低维特征向量,使 f f f具有以下两个性质:

  • 首先是结构相似性,它将具有相似局部网络拓扑的顶点在向量空间中相互靠近;
  • 二是可转移性,可兼容预训练时不可见的顶点和图

因此,嵌入函数 f f f可用于各种图学习任务,如社会角色预测、节点分类、图分类等

值得注意的是,这项工作的重点是在没有节点属性和节点标签的结构表示学习,这使得它不同于图神经网络研究中常见的问题设置

此外,我们的目标是预训练一个结构表示模型并将其应用于不可见的图,这与传统的网络嵌入[14,39 - 41,47]和最近的尝试不同(将带属性的图作为输入并将其应用于特定域[19]的预训练图神经网络)

3.2 GCC Pre-Training

给定一组图,我们的目标是预先训练一个通用图神经网络编码器,以捕获这些图背后的结构模式

为了实现这一点,我们需要为图结构数据设计适当的自我监督任务和学习目标


受最近CV[17,58]和NLP[9,30]成功的对比学习的启发,我们建议使用子图实例区分作为我们的训练前任务InfoNCE[35]作为我们的学习目标

训练前任务将每个子图实例视为自己的一个不同类,并学习区分这些实例

  • 其承诺是,它可以输出捕获这些子图实例之间相似性的表示[17,58]。
  • 从字典查找的角度来看,给定一个 编码查询 q q q 和一个包含 K + 1 K + 1 K+1个编码键 { k 0 , ⋅ ⋅ ⋅ , k K } \{k_0,···,k_K\} { k0⋅⋅⋅kK}的字典,对比学习查找 q q q在字典中匹配的单个键(用 k + k_+ k+表示)

在这项工作中,我们采用InfoNCE,这样:

其中

  • τ τ τ为 temperature hyper-parameter
  • f q f_q fq f k f_k fk是两个图神经网络,将查询实例 x q x^q xq和每个密钥实例 x k x^k xk 编码为 d d d维表示,用 q = f q ( x q ) q = f_q (x^q) q=fq(xq) k = f k ( x k ) k = f_k (x^k) k=fk(xk)表示

要在GCC中实例化每个组件,我们需要回答以下三个问题:

  • Q1:如何在图中定义子图实例?
  • Q2:如何在图中或图中定义(不)相似实例对,例如,对于查询 x q x^q xq,哪个键 x k x^k xk是匹配的?
  • Q3:什么是合适的图形编码器 f q f_q fq f k f_k fk ?

值得注意的是,在我们的问题设置中,并没有假设 x q x^q xq x k x^k xk来自同一个图

接下来,我们通过相应的回答上述问题,提出GCC训练前框架的设计策略


Q1: Design (subgraph) instances in graphs.

对比学习框架的成功很大程度上依赖于数据实例的定义

CV和NLP任务可以直接将实例定义为图像或句子

但是,这种思想不能直接扩展到图数据,因为图中的实例没有明确的定义

此外,我们训练前的重点是纯粹的结构化表示,没有额外的输入特性/属性,这使得自然选择单个顶点作为实例是不可行的

因为它不适用于区分两个顶点

为了解决这个问题,我们建议使用子图作为对比实例,将每个单个顶点扩展到其局部结构

具体来说,对于某个顶点 v v v,我们定义一个实例为它的 r − e g o r-ego rego网络:

Definition 3.1. A r-ego network

G = ( V , E ) G = (V, E) G=(V,E)是一个图

  • 其中 V V V表示顶点的集合
  • E ⊆ V × V E⊆V × V EV×V表示边的集合

对于一个顶点 v v v,其 r − n e i g h b o r s r-neighbors rneighbors定义为 S v = { u : d ( u , v ) ≤ r } S_v = \{u:d(u, v)≤r\} Sv={ u:d(u,v)r}

  • 其中 d ( u , v ) d(u, v) d(u,v)是图 G G G u u u v v v之间的最短路径距离
  • 顶点 v v v r − e g o r-ego rego网络,用 G v G_v Gv表示,是由 S v S_v Sv诱导的子图

图3的左面板显示了 2-ego 网络的两个例子

注意: r − e g o r-ego rego网络是 S v S_v Sv诱导的子图

GCC将每个 r − e g o r-ego rego网络视为自己的一个不同类别,并鼓励模型区分相似实例和不同实例


Q2: Define (dis)similar instances

接下来,我们将介绍如何定义(不)相似实例

  • 一对是相似实例
  • 一对是不相似实例

在计算机视觉[17]中,同一幅图像的两个随机数据增强(例如,随机裁剪、随机调整大小、随机颜色抖动、随机翻转等)被视为一个类似的实例对

在GCC中,我们将同一个 r − e g o r-ego rego网络的两个随机数据增强作为一个相似的实例对,并将数据增强定义为图采样[27]

图采样是一种从原始图中获得代表性子图样本的技术

假设我们想要扩充顶点 v v v r − e g o r-ego rego网络( G v G_v Gv), GCC的图采样遵循三个步骤:

  • 重启随机漫步(RWR)[50]
  • 子图归纳
  • 匿名化[22,29]

(1) Random walk with restart.

我们从ego顶点 v v v开始在 G G G上进行随机游走,游走以与边权值成比例的概率迭代到它的邻域

此外,在每一步中,步数返回起始顶点 v v v的概率为正

每一次游走,会有一定的概率会到起点

(2) Subgraph induction

带重启的随机遍历收集了 v v v周围的一个顶点子集,用 S ~ v \tilde S_v S~v表示

S ~ v \tilde S_v S~v诱导的子图 G ~ v \tilde G_v G~v 被认为是 r − e g o r-ego rego网络 G v G_v Gv的增强版

这一步也被称为诱导子图随机游走抽样(ISRW)

(3) Anonymization

我们匿名化采样图 G ~ v \tilde G_v G~v以任意顺序将其顶点重新标记为 { 1 , 2 , ⋅ ⋅ ⋅ , ∣ S ~ v ∣ } \{1,2,···,|\tilde S_v |\} { 1,2⋅⋅⋅S~v}

我们重复上述过程两次,以创建两个数据扩展

它们形成一个类似的实例对 ( x q , x k + ) (x^q, x^{k+}) (xq,

相关文章