KDD,2020
GCC目录
一、 简介
作者观点:类似于NLP中的word2vec,现有的图表示学习方法无法迁移,只能在特定的图结构上学习表示,因此图上的预训练模型被提出,学习好图的初始化结果可针对具体下游任务进行微调。
本文预训练策略:一言以蔽之就是,在不同的图之间进行对比表示学习。
即:对某一节点进行多次采样,如果采样来自同一个图的相同节点,则赋予较大的比重,从而得到较小的损失,反之亦然
举个例子,如下图所示:
上图中,红色节点的两个子图来自相同的图,作为对比学习的正例,而蓝色节点的子图来来自于其他的图,作为负例。
二、准备工作
1. 节点相似性
- 邻居相似
相邻的节点具有相似的特征 - 结构相似
不相邻的节点具有相似的局部结构也被认为是相似的 - 属性相似
有些图的节点具有属性,例如分子图,因此相同属性的节点更相似
2. 对比学习
这里作者引用两篇对比学习的文章,在此列出来,方便后续深入学习。
《Representation learning with contrastive predictive coding》
本文作者使用对比学习方法来自于这篇文章:InfoNCE
《Unsupervised feature learning via non-parametric instance discrimination》
3. 图预训练
- 基于Skip-gram的模型
一些受word2vec启发而产生的图embedding方法,例如LINE、DeepWalk、node2vec、metapath2vec,大多基于节点的相似特征,并且不能使用到样本以外的问题。而本文提出的GCC模型是基于结构相似性的,并且能在训练之外的图上进行迁移。 - Pre-training GNN
在这篇文章之前,也有一些针对图的预训练文章,这些文章要么使用了图上节点或者边的属性,要么定义了训练任务。
本文的模型:1)不使用图标签;2)没有需要学习的特征任务。
三、图对比编码(Graph Contrastive Coding, GCC)
1. 图预训练问题
GNN预训练可概括为学习一个映射 f f f,将节点特征表示为一个低维嵌入,它需要满足两个条件:
- 第一,具有相似局部拓扑结构的节点对应的低维向量尽可能接近;
- 第二,具有迁移能力,即,训练数据中没出现的节点或图也可以应用GCC表示学习。
2. GCC预训练
预训练任务(pre-training task):
s
u
b
g
r
a
p
h
i
n
s
t
a
n
c
e
d
i
s
c
r
i
m
i
n
a
t
i
o
n
subgraph \ instance \ discrimination
subgraph instance discrimination
学习目标(learning objective):InfoNCE
InfoNCE:
L
=
−
l
o
g
e
x
p
(
q
T
k
+
/
τ
)
∑
i
=
0
K
e
x
p
(
q
T
k
i
/
τ
)
L=-log\frac{exp(q^Tk_+/\tau)}{\sum\limits_{i=0}^{K}{exp(q^Tk_i/\tau)}}
L=−logi=0∑Kexp(qTki/τ)exp(qTk+/τ)
这里,
τ
\tau
τ是超参数;
k
+
k_+
k+表示与
q
q
q匹配的正例;
k
i
,
i
=
0
…
K
k_i,i=0…K
ki,i=0…K表示正例与负例的集合。
鉴于上述内容,引入三个问题:
- Q1: How to define subgraph instances in graphs?
- Q2: How to define (dis)similar instance pairs in and across graph?
- Q3:What are the proper graph encoders f q f_q fq and f k f_k fk?
回答:
- Q1:Design (subgraph) instances in graphs.
3. GCC微调
待更新……