论文名称:Graph Contrastive Learning with Augmentations
论文地址:https://arxiv.org/pdf/2010.13902
论文来源:NeurIPS 2020
论文作者:Yuning You,Tianlong Chen,Yongduo Sui,Ting Chen, Zhangyang Wang,Yang Shen
代码地址:https://github.com/Shen-Lab/GraphCL
1.问题引入
- 泛化性、可转移性和鲁棒性:现有的图神经网络(GNNs)在这些方面的表现仍有待提高。与图像数据上的卷积神经网络(CNNs)相比,GNNs的自监督学习和预训练探索较少。
- 图数据集差异大:图数据来自不同的领域,如生物化学分子、社交网络等,设计一个通用的GNN预训练方案非常困难。
- 数据增强的缺乏:在图数据上,数据增强(data augmentation)的应用还不够广泛,且现有的方法计算成本高昂。数据增强是对比学习(contrastive learning)的前提,但在图数据上尚未得到充分探索。
- 预训练的挑战:尽管预训练在卷积神经网络中是一种常见且有效的技术,但在GNNs中却很少被探索。预训练可以帮助模型在下游任务中更好地泛化,尤其是在标签稀缺的情况下。
- 对抗性攻击的鲁棒性:GNNs在面对对抗性攻击时的鲁棒性也是一个需要解决的问题。
2.本文贡献
1.图数据增强:设计了4类的图数据增强方法,每种方法都引入了特定的数据分布先验,包括节点丢弃、边扰动、特征掩码和子图采样。默认的增强(节点丢弃、边扰动、特征掩码和子图采样)比例设置为0.2。
2.图对比学习框架(GraphCL):利用数据增强方法获得的相关视图,提出了一种新颖的图对比学习框架,通过最大化两个增强视图之间的一致性来学习表示。
3.系统性研究:对不同数据增强组合在多个数据集上的影响进行了系统性研究,揭示了不同增强方法的性能和指导如何为特定数据集选择合适的框架。
4.实验验证:通过实验验证了GraphCL框架在半监督学习、无监督表示学习和迁移学习中的性能,并且展示了其在对抗常见对抗性攻击时的鲁棒性。
3.方法详解
3.1 图数据增强
- 节点丢弃 Node dropping
随机丢弃图G中的某些节点及其连接,以生成一个新的、结构上有所变化的图。
这种方法背后的直观先验是,即使图中缺失了一部分节点,其语义信息或整体结构的表示仍然不会发生根本性的变化。每个节点的丢弃概率遵循默认的i.i.d.均匀分布(或任何其他分布)。 - 边扰动 Edge perturbation
通过随机增加或减少一定比例的边来扰动G中的连通性。
边扰动背后的直观先验是,尽管图中的连接模式发生了变化,但图的基本语义或结构信息仍然保持稳定。这种方法可以帮助模型学习到对连接模式变化具有鲁棒性的表示。每个边的丢弃概率也遵循默认的i.i.d.均匀分布(或任何其他分布)。 - 特征掩码 Attribute masking
特征掩码促使模型利用其上下文信息恢复被掩码的节点特征。其基本假设是缺失部分节点特征对模型预测的影响不大。 - 子图采样 Subgraph
该算法利用随机游走从G中采样一个子图。它假设G的语义可以在其(部分)局部结构中得到很好的保持。
3.2 GraphCL
在图对比学习中,预训练通过在隐空间中通过对比损失最大化同一图的两个增强视图之间的一致性来完成,如图1所示。该框架由以下4大部分组成:
1.数据增强
给定图G经过图数据增强得到两个相关的视图
G
^
i
,
G
^
j
\hat{\mathcal{G}}_i,\hat{\mathcal{G}}_j
G^i,G^j作为正对,其中
G
^
i
∼
q
i
(
⋅
∣
G
)
,
G
^
j
∼
q
j
(
⋅
∣
G
)
\hat{\mathcal{G}}_i\sim q_i(\cdot|\mathcal{G}),\hat{\mathcal{G}}_j\sim q_j(\cdot|\mathcal{G})
G^i∼qi(⋅∣G),G^j∼qj(⋅∣G)。
2.GNN编码器
f
(
⋅
)
f(\cdot)
f(⋅)
使用基于图神经网络(GNN)的编码器来提取增强图的图级表示向量
h
i
,
h
j
h_i,h_j
hi,hj。这个编码器可以是任何类型的GNN。
3.投影头
g
(
⋅
)
g(\cdot)
g(⋅)
通过一个非线性变换(投影头),将增强的表示映射到另一个潜在空间,以便在该空间中计算对比损失。在GraphCL中,通常使用两层感知机(MLP)来实现这一映射(将
h
i
,
h
j
h_i,h_j
hi,hj映射为
z
i
,
z
j
z_i,z_j
zi,zj)。
4.损失函数
L
(
⋅
)
\mathcal{L}(\cdot)
L(⋅)
定义一个对比损失函数来强制正样本对
z
i
,
z
j
z_i,z_j
zi,zj(即同一图的两个增强视图)的表示比负样本对(即不同图的表示)更一致。GraphCL使用的是归一化温度缩放交叉熵损失(NT-Xent)。
在GNN预训练期间,随机采样一个包含N个图的小批量,并通过对每个图应用对比学习来生成2N个增强图和相应的对比损失。负样本对不是显式采样的,而是从同一小批量中的其他N-1个增强图中生成。
对于小批量中的每个图,计算其增强视图的表示之间的一致性,并使用NT-Xent损失函数来优化这些一致性。损失函数的形式如下:
ℓ
n
=
−
l
o
g
exp
(
s
i
m
(
z
n
,
i
,
z
n
,
j
)
/
τ
)
∑
n
′
=
1
,
n
′
≠
n
N
exp
(
s
i
m
(
z
n
,
i
,
z
n
′
,
j
)
/
τ
)
\ell_n=-\mathrm{log}\frac{\exp(sim(\boldsymbol{z}_{n,i},\boldsymbol{z}_{n,j})/\tau)}{\sum_{n^{\prime}=1,n^{\prime}\neq n}^N\exp(sim(\boldsymbol{z}_{n,i},\boldsymbol{z}_{n^{\prime},j})/\tau)}
ℓn=−log∑n′=1,n′=nNexp(sim(zn,i,zn′,j)/τ)exp(sim(zn,i,zn,j)/τ)
s
i
m
(
z
n
,
i
,
z
n
,
j
)
=
z
n
,
i
T
z
n
,
j
/
∥
z
n
,
i
∥
∥
z
n
,
j
∥
sim(z_{n,i},z_{n,j})=z_{n,i}^{\mathsf{T}}z_{n,j}/\|z_{n,i}\|\|z_{n,j}\|
sim(zn,i,zn,j)=zn,iTzn,j/∥zn,i∥∥zn,j∥是两个表示的余弦相似度,
τ
\tau
τ是温度系数。
互信息最大化
GraphCL框架还可以被解释为一种互信息最大化方法。通过最大化两个增强图视图的潜在表示之间的互信息,GraphCL能够学习到对特定扰动不变的表示。损失函数可以进一步表示为:
ℓ
=
E
P
G
^
i
{
−
E
P
(
G
^
j
∣
G
^
i
)
T
(
f
1
(
G
^
i
)
,
f
2
(
G
^
j
)
)
+
log
(
E
P
G
^
j
e
T
(
f
1
(
G
^
i
)
,
f
2
(
G
^
j
)
)
)
}
\ell=\mathbb{E}_{\mathbb{P}_{\hat{\mathcal{G}}_i}}\{-\mathbb{E}_{\mathbb{P}_{(\hat{\mathcal{G}}_j|\hat{\mathcal{G}}_i)}}T(f_1(\hat{\mathcal{G}}_i),f_2(\hat{\mathcal{G}}_j))+\log(\mathbb{E}_{\mathbb{P}_{\hat{\mathcal{G}}_j}}e^{T(f_1(\hat{\mathcal{G}}_i),f_2(\hat{\mathcal{G}}_j))})\}
ℓ=EPG^i{−EP(G^j∣G^i)T(f1(G^i),f2(G^j))+log(EPG^jeT(f1(G^i),f2(G^j)))}
其中,
h
i
=
f
1
(
G
^
i
)
h_i = f_1(\hat{\mathcal{G}}_i)
hi=f1(G^i),
h
j
=
f
2
(
G
^
j
)
h_j = f_2(\hat{\mathcal{G}}_j)
hj=f2(G^j),T是一个度量函数,度量
f
1
(
G
^
i
)
f_1(\hat{\mathcal{G}}_i)
f1(G^i)和
f
2
(
G
^
j
)
f_2(\hat{\mathcal{G}}_j)
f2(G^j)之间的相似性。
在实验中,选择
f
1
=
f
2
f_1=f_2
f1=f2通过数据增强生成视图
G
^
i
,
G
^
j
\hat{\mathcal{G}}_i,\hat{\mathcal{G}}_j
G^i,G^j。
4.实验
4.1 数据集
4.2 组合数据增强对比
"Identical"表示无数据增强的GraphCL,如果没有应用数据增强,则将原始图作为正样本对进行比较,那么正样本损失为0,模型将无法从这种比较中学习到有用的信息。
组合图增强进一步提高了性能:最大精度增益为2.10 % ( NCI1 ),3.15 % ( PROTEINS ),7.11 % ( COLLAB )和1.85 % ( RDT-B )。并且发现,与不同类型的增强对(非对角线)相比,应用相同类型的增强对(见图2的对角线)通常不会导致最佳性能(节点丢弃除外)。
相同增强的组合对比损失总是更快收敛,但这可能不利于模型学习到深层次的、泛化的特征表示。
4.3 有效图增强的类型、程度和模式
左边两图说明:边扰动有利于社交网络数据集,不利于分子结构数据集,会破坏分子结构。
右边两图说明:在稠密图中应用特征掩码可以获得更好的性能。
节点丢弃和子图采样在所有数据集中通常都是有益的。
4.4 与SOTA方法比较
- 半监督学习
- 无监督学习
- 迁移学习
- 对抗鲁棒性
在三种攻击下,与从头训练相比,GraphCL提高了GNN的鲁棒性。
碎碎念
1.GraphCL的效果在很大程度上依赖于选择合适的数据增强策略。引文网络数据集适合哪种增强策略?
2.论文主要的实验和讨论集中在图级别的表示学习上。节点级的表示?执行节点分类任务?