Graph Self-Supervised Learning 之 Contrastive Learning
DGI,Deep Graph Infomax,模仿 Deep Infomax,原始图 用 encoder 学图节点的表示
h
h
h,然后 readout 出图级表示
g
g
g;打乱 X 的行,让图的拓扑结构不变,但是节点的 feature vector 随机重排(corrupted)了,用相同的 encoder 学习出被 corrupted 后图的点表示
h
′
h'
h′。然后用 bilinear 评分 -> sigmoid 变成概率 -> BCE Loss 得到,让
h
h
h 和
g
g
g 近一些,让
h
′
h'
h′ 和
g
g
g 远一些,与训练后 freeze 住 encoder,只用它对输入得到的 graph embeddings 进行下游任务的训练,只更新下游学习器的参数。
DGI 像是个开创者,提到 DGI 都是指上述侠义的算法,但广义上,很多相关算法都算上是在把 graph 搞得 infomax;正如很多 graph 的 encoder 都是 做 convolution,但是只有 GCN 被叫 GCN(这与 GNN 不同,GNN 提出来是个循环的模型,后来不特指那个了)。
GMI,Graphical Mutual Information,把每个点经 encoder 得到的表示
h
i
h_i
hi? 和该点所有 k-hop neighbors 的 raw feature 即
x
j
x_j
xj? 做互信息最大化,用 bilinear 评分 -> sigmoid -> soft-plus;负样本对随机采样自非邻居的两个节点。除此之外,做边预测,
σ
(
h
i
T
h
j
)
\sigma(h_i^Th_j)
σ(hiT?hj?) 。idea 没啥难的,感觉就是给了数学证明(让这个策略有信息论的基础支撑),且实验做得很足,直推、归纳、边预测都有,监督、其他自监督都有。不必深入了解,因为没给代码,看看 idea 就可。
|