Towards Robust Graph Contrastive Learning

https://arxiv.org/pdf/2102.13085

Towards Robust Graph Contrastive Learning,2021,arxiv preprint

总结:作者提出一种对抗增强策略,然后基于此提出了一种鲁棒性更强的图对比学习方法GROC。robust这个点感觉可以做,这方面文章暂时不多,不过个人感觉这篇文章写得不太行,有点乱,关键点没有介绍清楚。

1. 简介

1.1 摘要

We study the problem of adversarially robust self-supervised learning on graphs. In the contrastive learning framework, we introduce a new method that increases the adversarial robustness of the learned representations through i) adversarial transformations and ii) transformations that not only remove but also insert edges. We evaluate the learned representations in a preliminary set of experiments, obtaining promising results. We believe this work takes an important step towards incorporating robustness as a viable auxiliary task in graph contrastive learning.

我们研究了图上的对抗鲁棒自监督学习。在对比学习框架中,我们提出了一种新的方法,通过(1)对抗转换;(2)同时删除、插入边进行转换来增加表示学习的对抗鲁棒性。我们在多组实验中评估了学习到的表示,得到了很不错的结果。我们相信这项工作朝着将鲁棒性作为图对比学习中可行的额辅助任务迈出重要一步。

1.2 本文工作

背景: 加入给定足够多的的有标签数据,深度学习模型在各个领域都能取得最优表现。但是当有标签数据十分有限的时候呢?情况可能就并非如此了。在互联网时代,解决问题的关键不是获取数据,而是标记数据,而这往往代价昂贵。最近,研究人员视图通过自监督学习来解决这个问题,其中对比学习方法最近得到了很多关注。对比学习尝试对原始数据施加一个转换,但是不改变其本质。对比学习的目标就是让同一样本在不同转化下的表示向量尽可能相似。

动机: 有研究表明即使高精度神经网络模型也容易受到对抗攻击干扰,是不稳定的,难以用于对可靠性要求比较高的领域。因此构建robust模型是深度学习领域很重要的一个话题。“Adversarial self-supervised contrastive learning”这篇论文里证明了在对比学习中使用对抗转换可以学习robust表示。虽然在学习领域也广泛存在对抗攻击问题,但是至今还没有和利用对抗转换学习robust representation相关的研究。作者希望对这方面问题进行相关探索。说白了就是:借鉴“Adversarial self-supervised contrastive learning”这篇文章思想,将其拓展到图领域

本文工作: 作者首次将对抗转换整合到图对比学习框架中,提出了图鲁棒对比学习框架GROC。通过实验证明了,GROC在面对对抗攻击时具有很高的鲁棒性。

2. GROC

2.1 常规图对比

给定图G=(V,X,A)\mathcal{G}=(V, X, A),模型目标就是在无标签情况下利用对比学习训练一个编码器fθ()f_\theta(·)。首先定义一个transformations集合TT,使用两种转换τ1,τ2T\tau_1,\tau_2\in T,生成输入图G\mathcal G的两个新视角。z1=fθ(τ1(v))z_1=f_\theta(\tau_1(v))z2=fθ(τ2(v))z_2=f_\theta(\tau_2(v))Neg(v)={τ1(u)uV\{v}}{τ2(u)uV\{v}}\operatorname{Neg}(v)=\left\{\tau_{1}(u) \mid u \in V \backslash\{v\}\right\} \cup\left\{\tau_{2}(u) \mid u \in V \backslash\{v\}\right\}表示节点vv对应的负样本集合。节点vv对比损失定义如下:

L(v,τ1,τ2)=logexp(σ(z1,z2)/t)exp(σ(z1,z2)/t)+uNeg(v)exp(σ(z1,fθ(u))/t)\mathcal{L}\left(v, \tau_{1}, \tau_{2}\right)=-\log \frac{\exp \left(\sigma\left(z_{1}, z_{2}\right) / t\right)}{\exp \left(\sigma\left(z_{1}, z_{2}\right) / t\right)+\sum_{u \in N e g(v)} \exp \left(\sigma\left(z_{1}, f_{\theta}(u)\right) / t\right)}

上面的损失函数一视角1中节点为锚点和视角2进行对比,反过来可以定义类似的L(v,τ2,τ1)\mathcal{L}\left(v, \tau_{2}, \tau_{1}\right)。这样整个图的对比损失定义为:

12nvV[L(v,τ1,τ2)+L(v,τ2,τ1)]\frac{1}{2 n} \sum_{v \in V}\left[\mathcal{L}\left(v, \tau_{1}, \tau_{2}\right)+\mathcal{L}\left(v, \tau_{2}, \tau_{1}\right)\right]

2.2 作者方法

如前文图1所示,作者把τiT\tau_i\in T拆成两步,即τi=τiτi\tau_i=\tau_i'\circ\tau_i''。对于τi\tau_i'使用随机feature masking,对于τ2\tau_2''使用基于边的数据转换。对于τi\tau_i'没什么好说的,就是正常的feature masking。对于τ2\tau_2''分下面两步:

  • 第一步:edge removal,在执行完τi\tau_i'后,先利用公式1计算对比损失,搞一次初步的forward-backward,得到边的梯度值,然后去除那些梯度值小的边。
  • 第二步:edge insertion,定义一个候选集S+S^+,先给这些边加到图里面取,并给他们分配一个非0权重,然后经过第一步初步的forward-backward后,保留候选集中部分梯度值大的边,其余的丢掉。

注:梯度值?边的梯度值?

这块关于如何增、删边作者说的不是很清楚,基本思想是利用梯度信息指导边的删除与增加。算法伪代码如下图所示:

3. 实验

作者在5个数据集上进行节点分类实验,结果如下表1、2所示:

he其中1~5表示施加扰动(对抗攻击)的等级。可以看到所有模型都是不稳定的,施加扰动后模型性能大幅下降。但是GROC模型和其他方法相比,鲁棒性更强。

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2021-2022 Yin Peng
  • 引擎: Hexo   |  主题:修改自 Ayer
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信