论文详解:Contrastive Multi-View Representation Learning on Graphs
文章介绍
这篇文章发表在ICML2020,介绍了一种通过对比图的结构视图来学习节点和图表征的无监督方法。文章设计了一种编码结构,可以分别实现节点分类和图分类,并在经典数据集中取得了最先进的结果。
研究背景
- 目前深度学习通过神经网络端到端的解决方案,在很多领域得到了广泛应用。
- 但是传统的卷积神经网络只能处理欧几里得数据。
- 作为一种非欧数据,图的应用也非常广泛,他可以自然的表达实际生活中的很多数据。
如下面左图中猫的图像,就是规则的欧几里得数据。右图是图结构,图是由多个节点以及连接节点的边构成的。交通网络、社交网络、分子结构,都可以用图来表示。
目前处理图结构数据大多基于图神经网络,即GNN模型,他在图的表示学习中取得了不错的效果,但是GNN目前还存在一些问题。GNN大多需要任务相关的标签来学习丰富的表示,然而使用领域知识在程序上表示图需要很高的成本。所以我们采用自监督的方法来优化这个问题。接下来介绍一下自监督学习。
自监督学习
自监督的表示学习利用输入数据本身作为监督,不需要人工添加标签。他主要由两类方法来实现,一类是生成、预测学习,另一类是对比学习。
本文中使用的是对比学习的方法,简单介绍一下对比学习方法。
对比学习
对比学习的目标是学习一个特征编码器。给定一个x,将他分别与正样本和负样本对比来学习表征。
模型框架
整篇论文都是围绕着这个框架展开的。首先对图结构进行增强,然后采样,对采样后的子图进行编码,得到节点表示,将编码后的表示送入read out层,汇集成图表示。最后将节点表示与图表示进行对比,学习到更丰富的表征。接下来我们分模块详细介绍这个模型。
数据增强
首先对图进行增强处理。将样本图转换为它的相关视图。我们对图的结构应用增强,将邻接矩阵转换为扩散矩阵,并将这两个矩阵是为同一图结构的两个全等视图。在图结构增强中,我们使用了PPR广义图扩散方法,PPR可以表示节点之间的偏好程度,学习到节点间的相近程度。
S
p
p
r
=
α
(
I
n
−
(
1
−
α
D
−
1
2
A
D
−
1
2
)
−
1
\mathbf{S}^{ppr}=\alpha(\mathbf{I}_{n}-(1-\alpha \mathbf{D}^{-\frac 1 2}\mathbf{A}\mathbf{D}^{-\frac 1 2})^{-1}
Sppr=α(In−(1−αD−21AD−21)−1
采样
接下来是一个采样器,我们从一个视图中随机采样节点和边,并从另一个视图中选择同样的节点和边,来完成采样。
编码
节点表示
接下来对采样的子图进行编码,学习节点表示。我们选择简单、常用的图卷积网络(即GCN)作为我们的基础图编码器。
图卷积为网络主要是对输入图的邻接矩阵和特征矩阵进行处理,使节点学习到相邻节点的信息,让相邻的节点具有相似的信息,最后得到节点表示,便于节点分类。多层卷积层叠加的卷积网络可以学习到丰富的节点信息,得到节点表示,进一步处理得到图表示。
我们为每个视图使用专用的图编码器,学习两组节点表示。把GCN层分别定义为下面两个公式,学习两组节点表示,每组分别对应一个视图。最后将学习到的节点表示馈送到共享的投影头中,他是一个具有两个隐藏层和PReLU的多层感知机。
g
θ
(
.
)
=
σ
(
A
~
X
Θ
)
g
ω
(
.
)
=
σ
(
S
X
Θ
)
g_{\theta}(.)=\sigma(\tilde{A}X\varTheta)\\ g_{\omega}(.)=\sigma(SX\varTheta)
gθ(.)=σ(A~XΘ)gω(.)=σ(SXΘ)
图表示
对于每个视图,我们将GNNs学习到的节点表示聚合成图表示。我们使用read out函数,连接每个层中的节点表示的总和,然后将它们馈送到前馈网络,以在节点和图表示之间具有一致的维度大小。
训练
最后一步,训练。我们将一个视图的节点表示与另一个视图的图表示进行对比,另一组也是这样。利用deep infomax 的方法,最大化两个视图之间的互信息。互信息MI可以看作一个鉴别器模型,对节点表示和图表示之间的一致性进行评分。以上就是正样本的学习过程。在对比学习中,负样本的选取也是极为重要的。我们通过随机特征值换的方法,打乱节点的特征矩阵来生成负样本,完成对比学习。
以上就是模型的全部介绍。
总结
目前在图上的许多方法都是讲视觉中的方法应用到图结构上来,这个方法也不例外。图学习的发展前景还非常广阔,大家一起来探索吧。