自监督-Contrastive Multi-View Representation Learning on Graphs
标签:自监督,图神经网络
动机
- GNN 大多数需要依赖于任务的标签来学习丰富的表示,尽管如此,与视频、图像、文本和音频等更常见形式相比,给图打上标签是一项挑战
- 最近关于通过最大化节点和图表示之间的互信息 (MI) 进行对比学习的工作已经在节点分类和图分类任务上取得了最先进的结果。然而,这些方法需要专门的编码器来学习图形或节点级表示
贡献
思想
核心
通过对原图使用扩散技术并且采样得到两个视图,然后通过 GNN 编码和一个投影头得到节点的表示,对于图表示,通过 GNN 编码后首先进行一个池化 Pool 后在接上投影头输出得到图表示。
框架
在这个框架中首先对原始图数据进行数据加强(diffuse: 扩散技术)得到增广图并且采样生成两个两个图,利用两个 GNN \(g_{\theta}(·)、g_{\omega}(·)\) 编码器进行编码,在节点表示中,经过编码后在经过一个共享参数的 MLP 投影头得到节点表示,在图表示中,经过编码后在经过一个共享参数的 Pool 池化和一个共享参数的 MLP 得到图表示,一个鉴别器 (discriminator) 对比来自同一个图的节点表示和对比来自不同图的的图表示
数据增强
数据增强:
在增强的时候考虑的是两个方面的增强:
- 特征方面:通过对特征进行 masking 和加入高斯噪声进行增强
- 在结构上:通过增删边、子采样或者是使用最短距离或扩散矩阵生成局部视图,以达到对图的破坏而生成全局视图
最终在论文中数据增强时候,使用的是扩散技术对空间结构进行增强,扩散技术增强如下:
\[S = \sum_{k = 0} ^{\infty} {\Theta}_kT^k ~~\in \mathbb{R}^{n×n} \\
T = AD^{-1} ~~~~~~~~~~~ \theta_k = \alpha(1 - \alpha)^k \\
heat~~~ diffusion : ~~ S^{head} = exp(tAD^{-1} - t) \\
PPR ~~~ diffusion: ~~ S^{PPR} = \alpha(I_n-(1 - \alpha)D^{-\frac{1}{2}}AD^{-\frac{1}{2}})^{-1}\\
t~~ is ~~ diffsion ~~ time
\]
采样: 在一个图中随机采样一些节点和及其对应边在另外的图中精确选择一些节点和其对应的边(选择相同的节点和边)
编码
GCN : \(z = f(X,A) = softmax(\tilde{A}ReLU(\tilde{A}ReLU(\tilde{A}XW^{(0)})W^{(1)})\)
在本文中为每个视图提供专门的编码器进行编码:
\[g_{\theta}(·)、g_{\omega}(·) ~~~\mathbb{R}^{n×d_x} × \mathbb{R}^{n×n} \longmapsto \mathbb{R}^{n×d_h}\\
GCN ~~~ layers: ~~~ \sigma(\tilde{A}X\Theta) ~~~ and ~~~ \sigma(SX\Theta) ~~ to ~~ two ~~ congruent ~~ structural ~~ views\\
\tilde{A} = \hat{D}^{-\frac{1}{2}}\hat{A}\hat{D}^{-\frac{1}{2}} ~~~~ \in G^{n×n} \\
\hat{D}: ~~ ~~ degree ~~ matrix ~~~~~~ and ~~~~~~ \hat{A} = A + I_N ~~~~ I_N: identity ~~~ matrix\\
S \in \mathbb{R}^{n×n}: diffusion ~~ matrix ~~~~ X \in \mathbb{R}^{n×d_x}: node ~~ features\\
\]
GCN 和扩散技术相结合得每个视图设计专门的编码器
投影头:
\[f_{\psi}(·): \mathbb{R}^{n×d_h} \longmapsto \mathbb{R}^{n×d_h} \\
two~~hidden~~layers~~and ~~ PReLU ~~ non-linearity \\
results~~node~~representations:H^{\alpha}、H^{\beta} \in \mathbb{R}^{n×d_h}
\]
专门编码器 + 两层隐藏层 MLP 投影头 = 节点表示
池化:
\[p(·) : \mathbb{R}^{n\times d_h} \longmapsto \mathbb{R}^{d_h} \\
\overrightarrow {h_g} = \sigma({||}_{l = 1}^{L}[\sum_{i = 1}^n\overrightarrow{h_i^{(l)}}]W) \in \mathbb{R}^{h_d} \\
\overrightarrow{h_i^{(l)}}: the ~~ latent ~~ representation ~~ of ~~ node ~~ i ~~ in ~~ layer ~~ l \\
{||}: concatenation ~~ operator \\
L : the~~number~~of~~ layers \\
W \in \mathbb{R}^{(L\times d_h)\times d_h}: parameters \\
\sigma: PReLU ~~ non-linearity \\
\]
专门编码器 + 池化(读出函数)+ 两层隐藏层 MLP 投影头 = 图表示
对于原图的表示我们用两个增强视图进行聚合得到其表示:
\[\overrightarrow{h} = \overrightarrow{h^\alpha} + \overrightarrow{h^\beta} ~~ \in ~~ \mathbb{R}^{n}\\
H = H^\alpha + H^\beta ~~ \in ~~ \mathbb{R}^{n \times d_h}
\]
并利用此作为下游任务的输入。
训练
目标函数:
\[max_{\theta、\omega、\phi、\psi} \frac{1}{|G|}\sum_{g\in G} [\frac{1}{|g|}\sum_{i = 1}^{|g|}[MI(\overrightarrow {h_i^\alpha},\overrightarrow {h_g^\beta}) + MI(\overrightarrow {h_i^\beta},\overrightarrow {h_g^\alpha})]] \\
|G|:~~ ~~the~~ number ~~of ~~graphs~~ in~~ train ~~set ~~or ~~number ~~of~~ sub-sampled~~ graphs~~ in~~ transductive ~~setting\\
|g| : ~~the~~ number~~ of~~ nodes~~ in~~ graph~~ g \\
\overrightarrow {h_i^\alpha},\overrightarrow {h_g^\beta} ~~representations ~~of~~ node~~ i~~ and~~ graph ~~g~~ encoded ~~from~~ views~~ α,~~ β,~~ respectively
\]
对比的是在每个不同增强 \(\alpha、\beta\) 下的两个图中节点 \(i\) 表示和图 \(g\) 的图表示,使节点表示和图表示的互信息最大化。
鉴别器 (discriminator):
\[D(.,.):\mathbb{R}^{d_h} \times \mathbb{R}^{d_h} \longmapsto \mathbb{R} \\
D(\overrightarrow {h_i^\alpha},\overrightarrow {h_g^\beta})= \overrightarrow {h_i^\alpha}.\overrightarrow {h_g^\beta}^T
\]
最大化互信息作为鉴别器,其中 \(\overrightarrow {h_i^\alpha},\overrightarrow {h_g^\beta}\) 利用原图以 \(\alpha 、 \beta\) 增强的得到的两个图,\(\overrightarrow {h_i^\alpha}\) 表示为节点表示,\(\overrightarrow {h_g^\beta}\) 表示为图表示。
伪代码
实验