• 论文解读(MLGCL)《Multi-Level Graph Contrastive Learning》


    论文信息

    论文标题:Structural and Semantic Contrastive Learning for Self-supervised Node Representation Learning
    论文作者: Kaize Ding 、Yancheng Wang 、Yingzhen Yang、Huan Liu
    论文来源:2021, Neurocomputing
    论文地址:download
    论文代码:download

    前言

      本文贡献:

      • 提出多层次图对比学习框架:联合节点级和图级对比学习;
      • 图负样本定义;
      • 引入 KNN 图提取语义信息;

    1 介绍

      本文开发了一个多层次的图对比学习(MLGCL)框架,用于通过对比图的拓扑视图和特征空间视图来学习图数据的鲁棒表示。如 Figure 2 所示,使用 KNN 算法对特征进行编码,从而在特征空间中生成 KNN 视图。KNN 视图不仅提供了互补视图,而且更适合GNN,将两者对比学习结合,可以显著提高 GNN 编码器的鲁棒性和适应性。

      

    2 方法

      框架流程

      • 步骤一:从增强池 ττ 中采样一对图增强函数 τ1τ1τ2τ2,并将其应用于输入图,生成两个视图的增广图;  
      • 步骤二:使用一对共享的 GNN 编码器来提取节点表示,并进一步利用池化层来提取图表示;  
      • 步骤三:利用一个共享参数的 MLP 层来将两个视图中的节点表示投影到计算节点级对比损失的空间中。类似地,还将来自两个视图的图表示投影到计算图级对比损失的空间中;  
      • 步骤四:通过优化所提出的多级损失函数来学习编码器的参数;

      MLGCL主要由以下组成部分组成:

      • 图数据增强:对输入图施加扰动,生成同一图的两个相关图。在本工作中,我们从空间视图中提取增强图结构来进行对比学习;
      • GNN编码器:使用基于GNN的编码器 f()f() 来学习两个增广图的节点表示 z1z1z2z2
      • MLP:投影头 MLP 层 g()g() 将表示法映射到计算对比损失的空间;  
      • 图池化:使用图池化层 R()R() 来学习图的表示;
      • 损失函数:提出了多级损失函数,同时保持“局部”和“全局”信息;

    2.1 图数据增强

      给定 G(AX)G(AX) 的图结构,先利用 GNN 编码器提取拓扑图的编码特征 ZZ,然后利用 KNNKNNZZ 的近邻构造 KNNKNN 图(Gf(Af,X)Gf(Af,X)),其中 AfAf 为 KNNKNN 图的邻接矩阵。

      构建 KNNKNN 图可以描述为两个步骤:

      • 首先,基于 NN 个编码特征 ZZ 计算相似度矩阵 SS
      • 其次,为每个节点选择前 kk 个相似的节点对来设置边,最后得到 KNNKNN 图的邻接矩阵 AfAf ;

      事实上,得到相似度矩阵 SS 有许多方案,如基于距离的相似度计算方法(即欧氏距离,马氏距离),基于余弦的相似度计算(即余弦相似 性,皮尔逊相关性)和基于核的相似性计算(即高斯核,拉普拉斯核)。这里列出三种流行的方法,其中 xixixjxj 是节点 iijj 的 特征向量:

    • 马氏距离

        Sij=(xixj)TM(xixj)

      其中 M 是一个正半定矩阵,它起着逆协方差矩阵的作用。 (如果 M 是单位矩阵,则为欧氏距离)
      正半定矩阵:设 An 阶方阵,如果对任何非零向量 X,都有 XAX0 ,其中 X 表示 X 的转置,就称 A 为半正定矩阵。

    • 余弦相似性

      使用两个向量之间夹角的余弦值来度量相似性:

        Sij=xixj|xi||xj|

    • 高斯核

        Sij=exixj22σ2

      其中, σ 是高斯核的核宽度。

      本文选择余弦相似性来得到相似性矩阵 S

    2.2 编码器

      给定拓扑图 G(A,X)KNNGf(Af,X) ,使用双层 GCN 作为编码器模型获得它们的潜在节点表示矩阵。编码器 f() 表示如下: 

        Zl+1=f(A,X)=σ(˜AZlWl)

      其中:˜A=ˆD1/2ˆAˆD1/2 是对称归一化的邻接矩阵。

      对于每个视图的节点表示 ZaZb ,使用一个图池化层 P():RN×dRd (即读出函数),得到它们的图表示:

        c=P(H)=σ(1NNi=1hi)

      此外,为了对两个视图进行相应的节点表示和图表示对比,使用 MLP 层  gϕ()gφ():RN×dRN×d   将节点和图表示分别投影到计算对比损失的空间中。

    2.3 多级损失函数

      多级损失函数,由两部分组成:两个视图之间低级节点表示的对比,以及两个视图之间高级图表示的对比。

      低级节点表示的对比:给定正对 (zizj),将节点级对比损失函数定义为

        Lnode (zai,zbi)=logexp((zai)Tzbi/τ)Kj=1,jiexp((zai)Tzbi/τ)+exp((zai)Tzaj/τ)+exp((zai)Tzbj/τ)

      由于两个视图是对称的,所以另一个视图的损失被定义为 Lnode(zbi,zai) 。因此,通过优化以下内容,实现最大化两个视图之间的节点的一致性:

        Lnode=Lnode(zai,zbi)+Lnode(zbi,zai)

      高级图表示的对比:给定正例  (sa,sb)  和负例  (sa,˜sa)(sa,˜sb)  ,两个视图之间的图表示对比被定义为:

        Lgraph (sa,sb)=logexp((sa)Tsb/τ)exp((sa)Tsb/τ)+exp((sa)T˜sa/τ)+exp((sa)T˜sb/τ)

      本文为生成图的负样本,随机 shuffle 特征以推导出负邻接矩阵 ˜A˜Af ,然后得到负样本 (sa,˜sa)(sa,˜sb) 。由于对称性,另一个视图的损失被定义为 Lgraph(sb,sa) 。因此,整体图表示对比为:

        Lgraph=Lgraph(sa,sb)+Lgraph(sb,sa)

      最后,通过将节点级对比损失与图级对比损失相结合,模型的多级损失为:

        L=Lnode +λLgraph 

    3 实验

    3.1 数据集

      

    3.2 结果

      

      

      

    4 结论

      学到:

      • 提出多层次图对比学习框架:联合节点级和图级对比学习;
      • 图负样本定义;
      • 引入 KNN 图提取语义信息;  

    5 相关论文

    2016-AAAI——Deep neural networks for learning graph representations
    2021-WWW——Graph structure estimation neural networks
    2017-NIPS——Inductive representation learning on large graphs

     

    __EOF__

  • 本文作者: Blair
  • 本文链接: https://www.cnblogs.com/BlairGrowing/p/16124243.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    IOU和NMS图解(附Python和C++代码)
    Leetcode--剑指Offer
    电机控制——高数基础
    真机测试——关于荣耀Magic UI系列HBuilder真机调试检测不到解决办法
    异步模式之工作线程
    【C++11】std::function 包装器(又叫适配器),std::bind 绑定
    从新零售、物流到广告,搞定指标中台就这么简单!
    机器学习----模型及算法01
    上周热点回顾(10.9-10.15)
    1135 Is It A Red-Black Tree
  • 原文地址:https://www.cnblogs.com/BlairGrowing/p/16124243.html