• 论文解读(GGD)《Rethinking and Scaling Up Graph Contrastive Learning: An Extremely Efficient Approach with Group Discrimination》


    论文信息

    论文标题:Rethinking and Scaling Up Graph Contrastive Learning: An Extremely Efficient Approach with Group Discrimination
    论文作者:Yizhen Zheng, Shirui Pan, Vincent Cs Lee, Yu Zheng, Philip S. Yu
    论文来源:2022,NeurIPS
    论文地址:download 
    论文代码:download 

    1 Introduction

      GCL 需要大量的 Epoch 在数据集上训练,本文的启发来自 GCL 的代表性工作 DGI 和 MVGRL,因为 Sigmoid 函数存在的缺陷,因此,本文提出  Group Discrimination (GD) ,并基于此提出本文的模型 Graph Group Discrimination (GGD)。

      Graph ContrastiveLearning 和 Group Discrimination 的区别:

      

    • GD directly discriminates a group of positive nodes from a group of negative nodes.
    • GCL maximise the mutual information (MI) between an anchor node and its positive counterparts, sharing similar semantic information while doing the opposite for negative counterparts.

      贡献:

    • 1) We re-examine existing GCL approaches (e.g., DGI and MVGRL), and we introduce a novel and efficient self-supervised GRL paradigm, namely, Group Discrimination (GD).
    • 2) Based on GD, we propose a new self-supervised GRL model, GGD, which is fast in training and convergence, and possess high scalability.
    • 3) We conduct extensive experiments on eight datasets, including an extremely large dataset, ogbn-papers100M with billion edges.

    2 Rethinking Representative GCL Methods

      本节以经典的 DGI 、MVGRL 为例子,说明了互信息最大化并不是对比学习的贡献因素,而是一个新的范式,群体歧视(group discrimination)。

    2.1 Rethinking GCL Methods

      回顾一下 DGI :

      

      代码:

    reasonml
    class DGI(nn.Module):
        def __init__(self, g, in_feats, n_hidden, n_layers, activation, dropout):
            super(DGI, self).__init__()
            self.encoder = Encoder(g, in_feats, n_hidden, n_layers, activation, dropout)
            self.discriminator = Discriminator(n_hidden)
            self.loss = nn.BCEWithLogitsLoss()
    
        def forward(self, features):
            positive = self.encoder(features, corrupt=False)
            negative = self.encoder(features, corrupt=True)
            summary = torch.sigmoid(positive.mean(dim=0))
            positive = self.discriminator(positive, summary)
            negative = self.discriminator(negative, summary)
            l1 = self.loss(positive, torch.ones_like(positive))
            l2 = self.loss(negative, torch.zeros_like(negative))
            return l1 + l2
    View Code

      本文研究 DGI 结论:一个 Sigmoid 函数不适用于权重被 Xavier 初始化的 GNN 生成的 summary vector,且 summary vector  中的元素非常接近于相同的值。

      接着尝试将 Summary vector 中的数值变换成不同的常量 (from 0 to 1):

      

      结论:

      • 将 summary vector 中的数值变成 0,求解相似度时导致所有的 score 变成 0,也就是 postive 项的损失函数变成 负无穷,无法优化;
      • summary vector 设置其他值,导致 数值不稳定;

      DGI 的简化:

      ① 将 summary vector 设置为 单位向量(缩放对损失不影响);

      ② 去掉 Discriminator (Bilinear​ :先做线性变换,再求内积相似度)的权重向量;【双线性层的 W" role="presentation">W 其实就是一个线性变换层】

        LDGI=12N(i=1NlogD(hi,s)+log(1D(h~i,s)))=12N(i=1Nlog(his)+log(1h~is)))=12N(i=1Nlog(sum(hi))+log(1sum(h~i)))(1)" role="presentation">LDGI=12N(i=1NlogD(hi,s)+log(1D(h~i,s)))=12N(i=1Nlog(his)+log(1h~is)))=12N(i=1Nlog(sum(hi))+log(1sum(h~i)))(1)

      Bilinear :

        D(hi,s)=σsig(hiWs)(2)" role="presentation">D(hi,s)=σsig(hiWs)(2)

      实验:替换 Eq.1" role="presentation">Eq.1 中的 aggregation function ,即 sum 函数

      

      替换形式为:

        LBCE=12N(i=12Nyilogy^i+(1yi)log(1y^i))(3)" role="presentation">LBCE=12N(i=12Nyilogy^i+(1yi)log(1y^i))(3)

      其中,y^i=agg(hi)" role="presentation">y^i=agg(hi)yiR1×1" role="presentation">yiR1×1y^iR1×1" role="presentation">y^iR1×1。论文中阐述 yi" role="presentation">yi 和 y^i" role="presentation">y^i 分别代表 node i" role="presentation">i 是否是 postive sample ,及其预测输出。Q :当 aggregation function 采用 mean" role="presentation">mean 的时候,对于 postive  sample i" role="presentation">iy^i" role="presentation">y^i 值会趋于 1" role="presentation">1 么?

      DGI 真正所做的是区分正确拓扑生成的一组节点和损坏拓扑生成的节点,如 Figure 1 所示。可以这么理解,DGI 是使用一个固定的向量 s" role="presentation">s 去区分两组节点嵌入矩阵(postive and negative)。

      为解决上述 GD 的问题,本文将考虑使用 Eq.3" role="presentation">Eq.3 去替换 DGI 中的损失函数。替换的好处:节省显存和加快计算速度,对于精度没啥改变,说的天花乱坠。

      

      Note:方差大的稍微大一点的 method ,就是容易被诋毁。

      Group Discrimination 定义:GRL method,将不同组别的节点划分给不同的组,对于 postive pair 和 negative pair 分别划分到 "1" 组 和 "0" 组。

    3 Methodology 

      整体框架:

      

      组成部分

      • Siamese Network :模仿 MVGRL 的架构;
      • Data Augmentation :提供相似意义信息,带来的是时间成本;【dropout edge、feature mask】
      • Loss function : Eq.3" role="presentation">Eq.3
      模型推断:

      首先:固定 GNN encoder、MLP predict 的参数,获得初步的节点表示 Hθ" role="presentation">Hθ

      其次:MVGRL 多视图对比工作给本文深刻的启发,所以考虑引入全局信息 :Hθglobal =AnHθ" role="presentation">Hθglobal =AnHθ

      最后:得到局部表示和全局表示的聚合 H=Hθglobal +Hθ" role="presentation">H=Hθglobal +Hθ

    4 Experiments

    4.1 Datasets

      

    4.2 Result

    节点分类

      

    训练时间 和 内存消耗

      

      

    4.3 Evaluating on Large-scale datasets

      

      

      

      

     

    5 Future Work

       For example, can we extend the current binary Group Discrimination scheme (i.e., classifying nodes generated with different topology) to discrimination among multiple groups?

      


    __EOF__

  • 本文作者: Blair
  • 本文链接: https://www.cnblogs.com/BlairGrowing/p/16804037.html
  • 关于博主: I am a good person
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    3D感知(一):初步认识
    代码随想录Day43 | 1049.最后一块石头的重量II | 494. 目标和 | 474. 一和零
    深入探讨TensorFlow:张量与矩阵
    Vue使用ts的枚举类型
    Safari 背景为绿色,设置 Safari 访问页面时的背景颜色 theme-color
    Hutool工具包中BeanUtil的使用
    云服务器2核4G配置,阿里云和腾讯云哪个便宜?性能更好?
    【软考软件评测师】2020综合知识历年真题
    Weblogic SSRF漏洞复现(CVE-2014-4210)【vulhub靶场】
    C和指针 第13章 高级指针话题 13.10 编程练习
  • 原文地址:https://www.cnblogs.com/BlairGrowing/p/16804037.html