• 论文解读(GRACE)《Deep Graph Contrastive Representation Learning》


    Paper Information

    论文标题:Deep Graph Contrastive Representation Learning
    论文作者:Yanqiao Zhu, Yichen Xu, Feng Yu, Q. Liu, Shu Wu, Liang Wang
    论文来源:2020, ArXiv
    论文地址:download 
    代码地址:download

    Abstract

      在本文中,作者提出了一个利用节点级对比目标的无监督图表示学习框架。具体来说,通过破坏原始图去生成两个视图,并通过最大化这两个视图中节点表示的一致性来学习节点表示。

      为了为对比目标提供不同的节点上下文,提出了一种在结构和属性层次上生成视图的混合方案。

      此外,作者从互信息和三元组损失( triplet loss)两个角度提供了理论证明。并使用真实的数据集对归纳式和直推式学习任务进行了实验。

    1 Introduction

      图表示学习的目的是学习一个编码函数,将节点转换为低维密集嵌入,以保留图的属性和结构特征。

      阐述 DGI 的缺点:

      • DGI 使用平均池化的 readout 函数,不能保证图嵌入可以从节点中提取有用的信息,因为它不足以从节点级嵌入中保存独特的特征。
      • DGI 使用特征变换来生成损坏的视图。然而,该方案在生成负节点样本时,在粗粒度级别考虑损坏节点特征。当特征矩阵稀疏时,只执行特征变换不足以为损坏图中的节点生成不同的邻域(即上下文),导致对比目标的学习困难。

      GRACE 框架如下:

      

      在本文提出的 GRACE 中,作者首先通过随机执行 corruption 来生成两个相关的视图。然后,使用对比损失来训练模型,以最大化这两个视图中节点嵌入之间的一致性。

      对于如何进行 corruption ,本文从拓扑结构和节点属性考虑,即 removing edges 和 masking features ,以为不同视图中的节点提供不同的上下文,从而促进对比目标的优化。

      贡献总结如下:

      • 首先,我们提出了一个用于无监督图表示学习的一般对比框架。所提出的 GRACE 框架简化了以前的工作,并通过最大化两个图视图之间的节点嵌入的一致性来进行工作。
      • 其次,我们提出了两种特定的方案,removing edges 和 masking features,以生成视图。
      • 最后,我们利用 6 个流行的公共基准数据集,在常用的线性评估协议下,对转换和归纳节点分类进行了全面的实证研究。GRACE 始终优于现有的方法,我们的无监督方法在转换任务上甚至超过了有监督的方法,展示了它在现实应用中的巨大潜力。

    2 Related Work

      Contrastive learning of visual representations

      Graph representation learning

    3 Deep Graph Contrastive Representation Learning

    3.1 Preliminaries

      G=(V,E),V={v1,v2,,vN},EV×VG=(V,E),V={v1,v2,,vN},EV×V

      特征矩阵: XRN×F,其中 xiRF

      邻接矩阵: A{0,1}N×N ,当 (vi,vj)E 时, Aij=1

      在训练过程中,没有给 G 的节点类别信息。

      目标是学习一个 GNN 编码器 f(X,A)RN×F ,输入图的特征矩阵 X 和邻接矩阵 A,输出低维节点嵌入,即 F<<F

      将 H=f(X,A) 作为编码器学到的节点表示,其中 hi 是节点 vi 的表示。这些表示可以用于下游任务中,如节点分类。

    3.2 Contrastive Learning of Node Representations

    3.2.1 The Contrastive Learning Framework

      与之前利用 local-global 关系来学习表示的工作相反,在 GRACE 中,通过直接最大化节点表示之间的一致性来学习表示。

      首先通过随机破坏原始图来生成两个视图。然后,采用一个对比目标使得在两个不同视图中对应节点彼此一致,并与其他节点的表示区分开来。

      在 GRACE 模型中,每次迭代生成两个视图,分别为  G1  和  G2  。两个视图生成的节点表示分别为 U=f(˜X1,˜A1) 和  V=f(˜X2,˜A2) , 其中  ˜X˜A 是这些视图的特征矩阵和邻接矩阵。

      作者使用一个对比目标(即一个判别器),将这两个不同视图中同一节点的表示与其他节点的表示区分开来。

      对于任何节点  vi,它在一 个视图中生成的嵌入  ui  被视为 anchor,在另一个视图中生成的节点嵌入 vi 为正样本,在两个视图中除  vi  以外的节点表示【假设有  M  个 节点,则负样本为  (2M2x)  个】被视为负样本。定义  θ(u,v)=s(g(u),g(v)) ,其中  s  为余弦相似度,  g  是一个非线性映射(两层的MLP)。

      我们将每个正对  (ui,vi)  的成对目标定义为:

        (ui,vi)=logeθ(ui,vi)/τeθ(ui,vi)/τthe positive pair +Nk=11[ki]eθ(ui,vk)/τinter-view negative pairs +Nk=11[ki]eθ(ui,uk)/τintra-view negative pairs (1)

      其中:

      • 1[ki]{0,1} 是指示函数,当 ki 值为 1 ;  
      • τ 是温度参数;  

      强调一下,本文并没有进行负采样,而是给定正对,负样本对自然而然有其他节点给出。

      由于两个视图的节点一样,所以另一个视图节点之间的相似性定义为 (vi,ui)

      最终要最大化的总体目标定义为所有正对的平均值:

        J=12NNi=1[(ui,vi)+(vi,ui)](2)

      GRACE 算法流程:

      

    3.2.2 Graph View Generation

      作者设计了两种图损坏的方法:removing edges 和 masking features 。

    Removing edges (RE)

      在原始图中随机地删除一部分边。形式上,只删除现有的边。

      首先采样一个随机掩蔽矩阵 ˜R{0,1}N×N,矩阵中每个元素依据伯努利分布生成。如果 Aij=1 ,则它的值来自伯努利分布 ˜RijB(1pr) ,否则 ˜Rij=0 。这里的 pr 是每条边被删除的概率。所得到的邻接矩阵可以计算为

        ˜A=A˜R(3)

      其中:(xy)i=xiyi 代表着 Hadamard product 。

    Masking node features (MF)

      除了去除边外,我们还在节点特征中用 0 随机屏蔽部分维度\特征。

      形式上,首先对随机向量  ˜m{0,1}F  进行采样,其中它的每个维度值都独立地从概率为  1pm  的伯努利分布中提取,即  ˜miB(1pm) 。然后,生成的节点特征  ˜X  为:

        ˜X=[x1˜m;x2˜m;;xN˜m](4)

      其中:[;] 代表着拼接操作。

      本文提出的 RE 和 MF 方案在技术上与 Dropout 和 DropEdge 相似,但我们的 GRACE 模型和这两种方法的目的存在根本不同。

      • Dropout 是一种通用的技术,它在训练期间随机屏蔽神经元,以防止大规模模型的过拟合。
      • 在图域中,提出了 DropEdge 来防止 GNN 体系结构过深时的过拟合和缓解过平滑。
      • 然而,我们的 GRACE 框架随机应用 RE 和 MF 生成图拓扑和节点特征层次的对比学习图。此外,在GRACE中使用的GNN编码器是一个相当浅的模型,通常只包含两到三层。

      在我们的补充内容中,我们共同利用这两种方法来生成视图。  ˜G1  和  ˜G2  的生成由两个超参数  pr  和  pm  控制。为了在这两个视图中提供不同的上下文,这两个视图的生成过程使用了两组不同的超参数  pr,1pm,1  和  pr,2pm,2  。实验表明,我们的模型对  pr  和  pm  的选择不敏感,因此原始图没有过度损坏,例如,pr0.8  和  pm0.8  。

    3.3 Theoretical Justification

      Theorem 1. Let  Xi={xk}kN(i)  be the neighborhood of node  vi  that collectively maps to its output embedding, where  N(i)  denotes the set of neighbors of node  vi  specified by GNN architectures, and  X  be the corresponding random variable with a uniform distribution  p(Xi)=1N . Given two random variables  U,VRF  being the embedding in the two views, with their joint distribution denoted as  p(U,V), our objective  J  is a lower bound of  M I  between encoder input  X  and node representations in two graph views  U, V. Formally,

        JI(X;U,V)(2)

    4 Experiments

    4.1 Datasets

      

    4.2 Experimental Setup

    Transductive learning

      在 Transductive learning 中,使用 2 层的 GCN 作为 encoder:

        GCi(X,A)=σ(ˆD12ˆAˆD12XWi)(7)

        f(X,A)=GC2(GC1(X,A),A)(8)

    Inductive learning on large graphs

      考虑到 Reddit 数据的大规模,本文采用具有残差连接的三层 GraphSAGE-GCN 作为编码器,其表述为

        ^MPi(X,A)=σ([ˆD1ˆAX;X]Wi)(9)

        f(X,A)=^MP3(^MP2(^MP1(X,A),A),A)(10)

      这里使用平均池化传播规则,作为 ˆD1 对节点特征的平均值。由于 Reddit 的大规模,它不能完全融入 GPU 内存。因此,我们应用子采样方法,首先随机选择一批节点,然后通过对节点邻居进行替换,得到以每个所选节点为中心的子图。具体来说,我们分别在 first-, second-, 和 third-hop 采样 30、25、20 个邻居。为了在这种基于采样的设置下生成图视图,RE 和 MF 都可以毫不费力地适应于采样的子图。 

    Inductive learning on multiple graphs.

      对于多图 PPI 的归纳学习,我们叠加了三个具有跳跃连接的平均池化层,类似于 DGI 。图卷积编码器可以表示为

        H1=^MP1(X,A)(11)

        H2=^MP2(XWskip+H1,A)(12)

        f(X,A)=H3=^MP3(XWskip+H1+H2,A)(13)

    4.3 Results and Analysis

      

    5 Conclusion

      在本文中,我们开发了一种基于节点级一致性最大化的图对比表示学习框架。我们的模型通过首先使用两种提出的方案生成图视图来学习表示,去除边和屏蔽节点特征,然后应用对比损失来最大限度地提高这两个视图中节点嵌入的一致性。理论分析揭示了从我们的对比目标与互信息最大化和经典的三重态损失之间的联系,这证明了我们的动机。我们在转换和感应设置下使用各种真实数据集进行了全面的实验。实验结果表明,我们提出的方法能够始终大大超过现有的先进方法,甚至超过有监督的转换方法。

     

    ——————————————————————————————————————————————————

    Dataset download links

    Cora 
    Citeseer 
    Pubmed 
    DBLP 
    Reddit 
    PPI 

     


    __EOF__

  • 本文作者: Blair
  • 本文链接: https://www.cnblogs.com/BlairGrowing/p/16063426.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    基于思维进化算法优化BP神经网络(Matlab代码实现)
    优雅的操作文件:java.nio.file 库介绍
    JAVA三元表达式详解
    通讯录管理系统JAVA版本
    6+孟德尔随机化。
    怎么才能写好技术文档——这是我的全部经验
    Docker搭建Plex流媒体服务并播放自己本地视频
    简单的镜面反射
    前端Vue项目如何集成百度地图实现地图选址功能
    正则表达式re总结
  • 原文地址:https://www.cnblogs.com/BlairGrowing/p/16063426.html