GraphCL vs GCC
简介GraphCL
Graph Contrastive Learning with Augmentations 介绍了一种新的图对比学习(GraphCL)框架,旨在解决图结构数据中的一些挑战。该方法聚焦于图神经网络(GNNs)的无监督学习,目的是提高模型在各种图任务中的泛化能力、迁移能力和鲁棒性。
有关对比学习的部分内容参看另一篇笔记《GCC学习笔记》。
本文着重对比两个模型的不同。
与GCC差异
1.数据增强的方式不同
- GCC:节点级别的增强,在节点的r-ego网络(节点的r诱导子图)中通过图采样方式(创新了一种图采样方式,大抵属于是随机游走)获取子图。
- GraphCL:图级别的增强,提出针对不同类型的数据集应当采用不同的数据增强方式,共给出四种数据增强方式:
- Node dropping:随机删除图中的部分节点,假设删除的节点不会显著影响图的语义。
- Edge perturbation:随机添加或删除图中的边,假设图的连接性变化不会大幅改变图的语义。
- Attribute masking:随机掩盖图中节点的部分属性,假设丢失的属性可以从其邻居节点的上下文中恢复。
- Subgraph:从图中随机采样子图(也是随机游走啧啧啧),假设图的局部结构包含了全局语义的重要信息。
2.预训练的学习目标不同
- GCC:subgraph instance discrimination,让诱导自同一个图的两个子图实例的潜在表示相近,来自不同图的则相远(下例中即认为
x
q
x^q
xq与
x
k
0
x^{k_0}
xk0是相似的,与
x
k
1
x^{k_1}
xk1
x
k
2
x^{k_2}
xk2是不相似的,因此它们的对应的潜在表示
q
q
q与
k
0
{k_0 }
k0要相近,与
k
1
k
2
{k_1} {k_2}
k1k2要相远)。采用InfoNCE损失函数。对编码器,提到不限制GNN,明确采用了GIN。
- GraphCL:maximizing the agreement between two augmented views,对于来自同一个图的但是采用不同增强方式获得的两个子图,要保证他们的潜在表示相近。(下例中即对于来自同一个图但是采用Node Dropping和Edge Perturbation获取的子图
G
^
i
\hat G_i
G^i和
G
^
j
\hat G_j
G^j,要保证他们最终的表示
z
i
z_i
zi和
z
j
z_j
zj相近)。采用NT-Xent损失函数(即损失函数也不同)。提到不限制GNN,但是没有明确编码器。
3. 预训练的结构不同
此外GraphCL多了Projection Head的结构,它是一种非线性变换,将拿到的encoder的编码向量( h i , h j h_i ,h_j hi,hj)再进行一步了映射( z i , z j z_i,z_j zi,zj),说是可以增强训练过程,我的理解上是多了一步“再精细化”的过程。
4.总结
- GCC是一种数据增强方式应用在不同的图上进行对比学习
- GraphCL是一个图上应用不同的数据增强方式进行对比学习