• 论文解读(GCC)《GCC: Graph Contrastive Coding for Graph Neural Network Pre-Training》


    论文信息

    论文标题:GCC: Graph Contrastive Coding for Graph Neural Network Pre-Training
    论文作者:Jiezhong Qiu, Qibin Chen, Yuxiao Dong, Jing Zhang, Hongxia Yang, Ming Ding, Kuansan Wang, Jie Tang
    论文来源:2020, KDD
    论文地址:download
    论文代码:download

    1 Introduction

      本文的预训练任务:子图实例判别(subgraph instance discrimination)。对于每个顶点,将其 r-ego networks 作为采样子图实例,GCC 的目的是区分从特定顶点采样的子图和从其他顶点采样的子图。

    2 Related work

      接下来介绍几种顶点相似性:

    Neighborhood similarity

      有边相连的节点被认为是相似的,邻居相似性方法有:

      • Jaccard similarity (counting common neighbors)
      • RWR similarity [36]
      • SimRank [21]

    Structural similarity

      结构相似性的基本假设是,具有相似局部结构的顶点被认为是相似的。

      第一种基于领域知识:

      • vertex degree  
      • structural diversity [51]  
      • structural hole [7]  
      • k-core [2]  
      • motif [5, 32]  

      第二种基于谱图理论。

    Attribute similarity

      利用图数据属性,进一步度量相似性。

    3 Method

      Figure 2 展示了GCC的 pre-training 和 fine-tuning 阶段的概述。

      

    3.1 The GNN Pre-Training Problem

      GNN 的训练目标是学习一个函数 ff,将节点映射到一个低维的特征向量,具有以下两个属性:

      • 首先,structural similarity,具有相似拓扑结构的节点在向量空间种映射相近;
      • 其次,transferability,对于图中不可见的节点任然可以预测;

    3.2 GCC Pre-Training

      pre-training task 将其他子图实例视为自己的不同类,并学习区分这些实例。

      从字典查找的角度来看,给定一个 query qq 和一个包含 K+1K+1 个 keys {k0,,kK}{k0,,kK} 的字典,对比学习查找 qq 在字典中匹配的键  k+k+ 。本文采用了 InfoNCE :

        L=logexp(qk+/τ)Ki=0exp(qki/τ)L=logexp(qk+/τ)i=0Kexp(qki/τ)

      其中,ττ 为温度超参数。fqfqfkfk 是两个 GNN encoder ,将 query xqxq 和 keys xkxk 编码为 dd 维表示,用 q=fq(xq)q=fq(xq)k=fk(xk)k=fk(xk) 表示。

    Q1: Design (subgraph) instances in graphs

      Definition 3.1. A r-ego network. Let  G=(V,E)G=(V,E)  be a graph, where  VV  denotes the set of vertices and  EV×VEV×V  denotes the set of edges . For a vertex  vv , its  r -neighbors are defined as  Sv={u:d(u,v)r}Sv={u:d(u,v)r}  where  d(u,v)d(u,v)  is the shortest path distance between  uu  and  vv  in the graph  GG . The  r -ego network of vertex  vv , denoted by  GvGv , is the sub-graph induced by  SvSv .

      Figure 3 的左面板显示了两个 2-ego networks 的例子。GCC将其他 r-ego network 视为不同的类,并鼓励模型将相似的实例与不同的实例区分开来。
      

    Q2: Define (dis)similar instances

      在GCC中,将相同节点的 r-ego 网络作为一个相似的实例对,负样本通过图抽样生成。

      GCC 的图采样遵循以下三个步骤:

      • Random walk with restart。从顶点 vv 开始在 GG 上随机游走。该游走以与边权值成正比的概率迭代地移动到它的邻域。此外,在每一步中,游走有一定概率返回到起始顶点 vv
      • Subgraph induction。根据上述游走路径获得顶点 vv 的顶点子集,用 ˜SvS˜v 表示。然后,用 ˜SvS˜v 生成诱导子图 ˜GvG˜v (ISRW 方法)。
      • Anonymization。将上述采样的图节点重新打上标记 {1,2,,|˜Sv|}{1,2,,S˜v} ,即将采样图的 ˜GvG˜v 匿名化。

      重复上述过程两次来创建两个数据增强,形成一个正实例对 (xq,xk+)(xq,xk+)。如果两个子图从不同的 r-ego networks 中获得,将它们视为一个具有 kk+kk+ 的不同实例对 (xq,xk)(xq,xk)

      回想一下,我们关注于结构表示预训练,而大多数GNN模型需要顶点特征/属性作为输入。为了弥合差距,我们利用每个采样子图的图结构来初始化顶点特征。具体来说,我们将广义位置嵌入定义如下:

      Definition 3.2. Generalized positional embedding.For each subgraph, its generalized positional embedding is defined to be the top eigenvectors of its normalized graph Laplacian. Formally, suppose one subgraph has adjacency matrix  AA  and degree matrix  DD , we conduct eigen-decomposition on its normalized graph Laplacian s.t.  ID1/2AD1/2=UΛUID1/2AD1/2=UΛU , where the top eigenvectors in  UU  are defined as generalized positional embedding.

      FACT. The Laplacian of path graph has eigenvectors:  uk(i)=cos(πki/nπk/2n)uk(i)=cos(πki/nπk/2n) , for  1kn,1in1kn,1in . Here  nn  is the number of vertices in the path graph, and  uk(i)uk(i)  is the entry at  ithith row and  kthkth column of  UU , i.e.,  U=[u1un] .

      以上事实表明,在序列模型中的位置嵌入可以看作是路径图的拉普拉斯特征向量。这激发了我们将位置嵌入从路径图推广到任意图。使用标准化图拉普拉斯图而非非标准化图的原因是路径图是一个正则图(即常度),而现实世界的图通常是不规则的,有倾斜的度分布。除了广义位置嵌入外,我们还添加了顶点度[59]的独热编码和自我顶点的二进制指标作为顶点特征。在由图编码器编码后,最终的 d 维输出向量然后用它们的 L2-Norm 进行归一化。

      MoCo 旨在增加字典的大小,而不需要额外的反向传播成本。具体地说,MoCo 维护了来自之前小批次的样本队列。在优化过程中,MoCo 只通过反向传播来更新 fq 的参数(用 θq 表示)。fk 的参数(用 θk 表示)没有通过梯度下降进行更新。[17]等人为 θk 提出了一个基于动量的更新规则。形式上,MoCo 由 θkmθk+(1m)θq 更新 θk,其中 m[0,1) 是一个动量超参数。上述动量更新规则在 θq 中逐步将更新传播到 θk,使 θk 平稳、一致地发展。综上所述,MoCo以牺牲字典一致性为代价实现了更大的字典规模,即字典中的密钥表示由一个平滑变化的密钥编码器进行编码。

    3.3 GCC Fine-Tuning

      图学习中的下游任务通常可分为图级和节点级两类,其目标分别是预测图级或节点的标签。对于图级任务,输入图本身可以由 GCC 进行编码,以实现表示。对于节点级的任务,节点表示可以通过编码其 r-ego 网络(或从其 r-ego 网络增强的子图)来定义。

    Freezing vs. full fine-tuning

      GCC为下游任务提供了两种微调策略——freezing mode 和 fine-tuning mode。

      • 在 freezing mode 下,冻结预先训练的图编码器 fq 的参数,并将其作为静态特征提取器,然后在提取的特征之上训练针对特定下游任务的分类器。
      • 在 fine-tuning mode 下,将用预先训练好的参数初始化的图编码器 fq 与分类器一起对下游任务进行端到端训练。
    GCC as a local algorithm

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

    4 Experiments

    数据集

       

    节点分类

      

    图分类

      

    Top-k Similarity Search

      

    5 Conclusion

      在本研究中,我们研究了图神经网络的预训练,目的是表征和转移社会和信息网络中的结构表征。我们提出了图对比编码(GCC),这是一个基于图的对比学习框架,用于从多个图数据集。预先训练的图神经网络在10个图数据集上的三个图学习任务中实现了与监督训练的从头开始的竞争性能。在未来,我们计划在更多样化的图形数据集上基准测试更多的图形学习任务,比如蛋白质-蛋白质关联网络。


    __EOF__

  • 本文作者: Blair
  • 本文链接: https://www.cnblogs.com/BlairGrowing/p/16324075.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    JAVA面试技巧之自我介绍
    飞机大战小游戏
    ISO体系认证办理流程
    优化预算管理流程:Web端实现预算编制的利器
    JAVA微信小程序影视交流评论小程序系统毕业设计 开题报告
    Flutter pubspec.yaml 配置文件
    Redis夺命十二问,你能扛到第几问?
    为什么弹幕可以不挡人物?怎么实现的?Python带你来实现。
    java计算机毕业设计ssm+vue基本微信小程序的手机预约维修系统
    CoreWCF 1.0 正式发布,支持 .NET Core 和 .NET 5+ 的 WCF
  • 原文地址:https://www.cnblogs.com/BlairGrowing/p/16324075.html