摘要
在本文中,我们提出了一个多层次图对比学习(MLGCL)框架,通过对比图的空间视图来学习图数据的鲁棒表示。具体地说,我们引入了一种新的对比视图-拓扑和特征空间视图。原始图为一阶近似结构,包含不确定性或误差,而由编码特征生成的kNN图保持了高阶近似性。因此,通过编码特征生成的kNN图不仅提供了一个互补的视图,而且更适合GNN编码器提取判别表示。此外,我们还开发了一种多层次的对比模式来同时保持图结构数据的局部相似性和语义相似性。大量实验表明,与现有的最先进的图表示学习方法相比,在7个数据集上,MLGCL都取得了良好的结果。
1 引言
图1为四种图的数据增强(第4种为本文用到的):
表1给出了对比模式和数据增强方案的比较:
大多数GNN模型假设相似的节点很可能是连接的,并且属于观察到的图中的同一类。然而,从现实世界中观察到的图包含不确定性或错误,节点以不同的方式连接,如特征相似性、关系,因此不同类的节点可能有链接。这与GNN的想法不一致,因此会导致不令人满意的结果,一个典型的例子是GNNs在分类图上表现良好,但在不分类图上表现不佳。因此,通过特征相似性或删除不同类节点之间的链接来构建kNN图是可行的方法。
本文提出了一个多层次图对比学习(MLGCL)框架,通过对比图的空间视图(拓扑空间视图和特征空间视图),学习图形数据的鲁棒表示。
如图2所示,我们应用kNN算法对特征进行编码,从而在特征空间中生成kNN图。kNN图不仅提供了互补的视图,而且更适合GNN,因此以对比学习的方式将两者结合起来可以显著提高GNN编码器的鲁棒性和适应性。此外,我们还引入了一种多层次对比模式来同时保持图结构数据的局部相似性和语义相似性。
2 准备工作
G ( A , X ) G(A, X) G(A,X)表示一个无向图, V = { v 1 , v 2 , ⋅ ⋅ ⋅ , v N } V=\{v_1,v_2,···,v_N\} V={v1,v2,⋅⋅⋅,vN}是节点集, N = ∣ V ∣ N=|V| N=∣V∣是图中节点的数量, E E E表示边集。邻接矩阵 A ∈ R N × N A ∈ R^{N×N} A∈RN×N表示图 G G G的拓扑结构,其元素表示 v i v_i vi和 v j v_j vj之间的连接强度。 X ∈ R N × F X ∈ R^{N×F} X∈RN×F是特征矩阵。对比学习的目的是学习一个编码器模型 f ( ⋅ ) f(·) f(⋅),该模型可以学习每个节点 v i v_i vi的鲁棒表示,它对数据增强 τ τ τ引起的扰动不敏感。在这里,我们将编码器模型学习到的节点表示形式表示为 Z = f ( A , X ) Z=f(A,X) Z=f(A,X)。学习到的表示然后应用于下游任务,如节点分类。
3 MLGCL框架
首先,从增强池 τ τ τ中采样一对图增强函数 τ 1 τ_1 τ1和 τ 2 τ_2 τ2,并将其应用于输入图,生成两个视图的增强图。然后,使用一对共享的基于GNN的编码器提取节点表示,并进一步利用池化层提取图表示。在此之后,使用一个共享的MLP层,将两个视图中的节点表示投影到计算节点级对比损失的空间中。类似地,我们还将来自两个视图的图表示投影到计算图级对比损失的空间中。最后,我们通过优化所提出的多级损失函数来学习编码器的参数。请注意,第二个视图的增强图是由编码特征生成的,因此 τ 2 τ_2 τ2包括一个编码器和kNN函数。
因此,MLGCL主要由以下组件组成:
- 图数据增强:它的目标是对输入图施加扰动,生成同一图的两个相关图。在这项工作中,我们从空间视图中提取增强图结构来进行对比学习。
- GNN编码器:使用基于GNN的编码器 f ( ⋅ ) f(·) f(⋅)来学习两个增广图的节点表示 z 1 z_1 z1、 z 2 z_2 z2。在推理短语中,我们只使用GNN编码器来学习下游任务的节点表示。
- MLP:投影头MLP层 g ( ⋅ ) g(·) g(⋅)将表示映射到计算对比损失的空间。
- 图池化:图形池化层(即读出) R ( ⋅ ) R(·) R(⋅)被用来学习图表示。
- 损失函数:提出了多级损失函数,以同时保持低级的“局部”一致性和高级的“全局”一致性。
3.1 图数据增强
给定拓扑空间 G ( A , X ) G(A,X) G(A,X)的图结构,首先,利用GNN编码器提取拓扑图的编码特征 Z Z Z。
然后,将k-近邻应用于 Z Z Z,构造具有社区结构 G f ( A f , X ) G_f(A_f,X) Gf(Af,X)的kNN图,其中 A f A_f Af是kNN图的邻接矩阵。
其中,使用kNN构建特征映射可以描述为两个步骤:
- 首先,基于 N N N个编码特征 Z Z Z计算相似度矩阵 S S S。
- 其次,为每个节点选择前 k k k个相似的节点对来设置边,最后得到kNN图的邻接矩阵 A f A_f Af。
事实上,得到相似度矩阵 S S S 有许多方案,如基于距离的相似度计算方法(即欧氏距离,马氏距离),基于余弦的相似度计算(即余弦相似性,皮尔逊相关性)和基于核的相似性计算(即高斯核,拉普拉斯核)。此处,我们列出了三种流行的方法,其中 x i x_i xi和 x j x_j xj是节点 i i i和 j j j的特征向量:
1)马氏距离
其中
M
M
M是一个正半定矩阵,它起着逆协方差矩阵的作用。(如果
M
M
M是单位矩阵,则为欧氏距离)
正半定矩阵:设A是n阶方阵,如果对任何非零向量X,都有X’AX≥0,其中X‘表示X的转置,就称A为半正定矩阵。
2)余弦相似性
使用两个向量之间夹角的余弦值来度量相似性:
3)高斯核
其中,
σ
σ
σ是高斯核的核宽度。
在这里,我们选择余弦相似性来得到相似性矩阵 S S S。
3.2 编码器
给定拓扑图
G
(
A
,
X
)
G(A,X)
G(A,X)和kNN图
G
f
(
A
f
,
X
)
G_f(A_f,X)
Gf(Af,X),我们使用双层GCN作为编码器模型获得它们的潜在节点表示矩阵。编码器
f
(
.
)
f(.)
f(.)表示如下:
其中,
A
~
=
D
^
−
1
/
2
A
^
D
^
−
1
/
2
\widetilde{A}=\hat{D}^{-1/2}\hat{A}\hat{D}^{-1/2}
A
=D^−1/2A^D^−1/2为对称归一化邻接矩阵,
A
^
=
A
+
I
n
\hat{A}=A+I_n
A^=A+In为自环邻接矩阵,
I
n
∈
R
n
×
n
I_n∈\mathbb{R}^{n×n}
In∈Rn×n为单位矩阵,
D
^
=
∑
j
A
^
i
j
\hat{D}=\sum_j\hat{A}_{ij}
D^=∑jA^ij为度矩阵。
Z
l
Z^l
Zl包含图顶点在第
l
l
l层的嵌入(按行排列),
Z
0
=
X
Z^0=X
Z0=X是GCN第一层的输入。
W
l
W^l
Wl为参数矩阵,
σ
(
⋅
)
σ(·)
σ(⋅)为非线性激活函数(即ReLU、Sigmoid)。
对于每个视图的节点表示
Z
a
Z_a
Za,
Z
b
Z_b
Zb,我们使用了一个图池化层
P
(
⋅
)
:
R
N
×
d
→
R
d
P(·):\mathbb{R}^{N×d}→\mathbb{R}^d
P(⋅):RN×d→Rd(即读出函数),以推导出它们的图表示:
此外,为了对两个视图进行相应的节点表示和图表示对比,我们使用MLP层
g
ϕ
(
⋅
)
g_\phi(·)
gϕ(⋅)和
g
φ
(
⋅
)
g_φ(·)
gφ(⋅):
R
N
×
d
→
R
N
×
d
\mathbb{R}^{N×d}→\mathbb{R}^{N×d}
RN×d→RN×d将节点和图表示分别投影到计算对比损失的空间中。
3.3 多级损失函数
多层损失函数,即从局部到全局的联合对比损失函数,由两部分组成:两个视图之间低级节点表示的对比,以及两个视图之间高级图表示的对比。
给定正对
(
z
i
,
z
j
)
(z_i,z_j)
(zi,zj),节点级对比损失函数定义为:
由于这两个视图是对称的,另一个视图的损失被定义为
L
n
o
d
e
(
z
i
b
,
z
i
a
)
L_{node}(z_i^b,z_i^a)
Lnode(zib,zia)。
因此,我们通过优化以下内容,最大化两个视图之间的节点的一致性:
类似地,给定正例
(
s
a
,
s
b
)
(s^a,s^b)
(sa,sb)和负例
(
s
a
,
s
~
a
)
(s^a,\widetilde{s}^a)
(sa,s
a),
(
s
a
,
s
~
b
)
(s^a,\widetilde{s}^b)
(sa,s
b),两个视图之间的图表示对比被定义为:
在这里,为了生成图的负样本,我们随机清洗特征以推导出负邻接矩阵
A
~
\widetilde{A}
A
和
A
~
f
\widetilde{A}_f
A
f,然后得到负样本
(
s
a
,
s
~
a
)
(s^a,\widetilde{s}^a)
(sa,s
a),
(
s
a
,
s
~
b
)
(s^a,\widetilde{s}^b)
(sa,s
b)。另一个视图的损失被定义为
L
g
r
a
p
h
(
s
b
,
s
a
)
L_{graph}(s^b,s^a)
Lgraph(sb,sa)。因此,整体图表示对比为:
最后,通过将节点级对比损失与图级对比损失相结合,我们的模型的多级损失可以为:
4 实验