目录
论文信息
论文标题:Multi-Scale Contrastive Siamese Networks for Self-Supervised Graph Representation Learning
论文作者:Ming Jin,Yizhen Zheng,Yuan-Fang Li,Chen Gong,Chuan Zhou,Shirui Pan
论文来源: 2021,IJCAI
论文地址:download
论文代码:download
一、Abstract
问题:现有的图表示学习技术严重依赖标记信息。
解决:本文提出了一种新的自监督方法,通过多尺度对比学习增强孪生网络自蒸馏来学习节点表示。具体来说,首先从输入图生成两个增强视图,这两个增强视图分别是基于局部和全局视图的。然后采用两个目标,即跨视图(cross-view)和跨网络(cross-network)的对比性,最大化不同视图和网络的节点表示之间的一致性。
- 多尺度:cross-view中视图内和视图间两种尺度的对比学习,不同视图下cross-network的对比学习。
- 孪生网络:狭义的孪生神经网络(siamese network)由两个结构相同,且权重共享的神经网络拼接而成。广义的孪生神经网络,或伪孪生神经网络(pseudo-siamese network),可由任意两个神经网拼接而成,不共享权值。孪生神经网络用于处理两个输入"比较类似"的情况。伪孪生神经网络适用于处理两个输入"有一定差别"的情况。siamese network的初衷是计算两个输入的相似度,。传统的siamese network使用Contrastive Loss。
- 自蒸馏(Self Distillation)是三种知识蒸馏学习方法的一种:离线蒸馏(Offline Distillation)、在线蒸馏(Online Distillation)、自蒸馏(Self Distillation)。这三种蒸馏方法区别是:
离线蒸馏(Offline Distillation): teacher模型是已经预训练好的,已经有很好的效果。再让teacher模型来指导student模型进行学习,完成知识蒸馏。
在线蒸馏(Online Distillation):teacher模型没有预训练,准备和student模型一同进行训练,在一同训练的过程中来指导student模型进行学习,完成知识蒸馏。
自蒸馏(Self Distillation):teacher模型和student模型是一个模型,也就是一个模型来指导自己进行学习,完成知识蒸馏。
二、Introduction
图表示学习:学习节点或图的低维嵌入,以保存底层的结构和属性信息。
在本文中,为了缓解现有GCL(图对比学习)方法的缺点,并利用孪生网络中的bootstrapping,我们提出了一个简单但强大的框架来学习节点级表示,我们称之为多尺度对比孪生网络(MERIT)。
我们的方法旨在优化两个目标,即跨网络和跨视图的对比。首先,考虑到现有的GCL方法严重依赖于负样本来避免表示崩溃,我们建议使用动量驱动的孪生体系结构作为我们的主干,分别从online network和target network的不同视图最大化节点表示之间的相似性。
背后的直觉是,在我们的框架中缓慢移动的target network充当了一个稳定的“平均教师”来编码历史观察,这引导online network学习探索更丰富和更好的表示,而不依赖额外的负样本来避免表示崩溃。然而,仅仅优化这个目标会忽略丰富的底层图拓扑信息。为了部分地缓解这个问题,我们注入额外的负样本,在两个网络的不同视图中推开不同的节点。
其次,我们建议进一步利用节点连通性,并在online network中引入视图内和视图间的多尺度对比学习,以规范我们方法中上述bootstrapping目标的训练。
bootstrapping:用原样本自身的数据抽样得出新的样本及统计量。在现实问题中,对总体进行多次抽样常常是不方便的甚至是无法实施的,所以就只进行一次抽样得到一个样本,再在这个样本中进行多次有放回地抽样,得到多个“样本的样本”,这样通过统计这些小样本的分布,就能得到总体的估计量(例如方差、标准差等)。
平均教师
三、Notations
四、framework(MERIT)
模型主要由三部分组成:图增强、跨网络对比学习和跨视图对比学习。
(一)Graph Augment
1.Graph Diffusion(GD)
图扩散:
S
=
∑
k
=
0
∞
θ
k
T
k
∈
R
N
×
N
S=\sum_{k=0}^{\infty} \theta_{k} T^{k} \in \mathbb{R}^{N \times N}
S=k=0∑∞θkTk∈RN×N
θ
\theta
θ是控制局部和全局信号分布的参数;
T
∈
R
N
×
N
T \in \mathbb{R}^{N \times N}
T∈RN×N是传递邻接矩阵的转移矩阵。
本文采用Personalized PageRank(PPR)kernel来支持图扩散,上式重新表述为:
S
=
α
(
I
−
(
1
−
α
)
D
−
1
/
2
A
D
−
1
/
2
)
−
1
S=\alpha\left(I-(1-\alpha) D^{-1 / 2} A D^{-1 / 2}\right)^{-1}
S=α(I−(1−α)D−1/2AD−1/2)−1
A
A
A为邻接矩阵,
I
I
I为单位矩阵,
D
D
D为度矩阵,
α
\alpha
α为随机游走传送概率的可调参数。
2.Edge Modification(EM)
在邻接矩阵中删除边,并添加了相同数量的边。通过这种方式,可以保持原始图的属性,同时使用额外的边使增强视图复杂化。具体来说,给定邻接矩阵 A A A和修改率 P P P,我们在原始图中随机删除现有边的 P / 2 P/2 P/2部分,然后在图中随机添加相同部分的新边。我们的边缘下降和添加过程都遵循独立的均匀分布。
3.Subsampling(SS)
在邻接矩阵中随机选择一个节点索引作为拆分点,然后使用它裁剪原始图,创建一个固定大小的子图作为扩充图视图。
4.Node Feature Masking(NFM)
给定特征矩阵 X X X和增强比 P P P,我们随机选择 X X X中节点特征维度的P部分,然后用零屏蔽它们。
SS+EM+NFM应用于第一个视图,并将SS+GD+NFM应用于第二个视图。这样,我们的模型可以通过对比学习对局部和全局信息进行编码。
(二)Cross-Network Contrastive Learning
G
~
1
=
(
X
~
1
,
A
~
1
)
\tilde{\mathcal{G}}_{1}=\left(\tilde{X}_{1}, \tilde{A}_{1}\right)
G~1=(X~1,A~1)经过online network的Encoder:
Z
1
=
p
θ
(
g
θ
(
X
~
1
,
A
~
1
)
)
Z^{1}=p_{\theta}\left(g_{\theta}\left(\tilde{X}_{1}, \tilde{A}_{1}\right)\right)
Z1=pθ(gθ(X~1,A~1)),再经过Predictor:
H
1
=
q
θ
(
Z
1
)
H^{1}=q_{\theta}\left(Z^{1}\right)
H1=qθ(Z1)。
同理, Z 2 Z^{2} Z2为 G 2 ~ \tilde{\mathcal{G}_{2}} G2~经过online network的Encoder的表示, H 2 H^{2} H2为再经过online network后的表示。
Z
^
1
=
p
ζ
(
g
ζ
(
X
~
1
,
A
~
1
)
)
\hat{Z}^{1}=p_{\zeta}\left(g_{\zeta}\left(\tilde{X}_{1}, \tilde{A}_{1}\right)\right)
Z^1=pζ(gζ(X~1,A~1))为
G
1
~
\tilde{\mathcal{G}_{1}}
G1~经过Target Network后的表示,
Z
^
2
=
p
ζ
(
g
ζ
(
X
~
2
,
A
~
2
)
)
\hat{Z}^{2}=p_{\zeta}\left(g_{\zeta}\left(\tilde{X}_{2}, \tilde{A}_{2}\right)\right)
Z^2=pζ(gζ(X~2,A~2))为
G
2
~
\tilde{\mathcal{G}_{2}}
G2~经过Target Network后的表示。
positive pair:
(
h
v
1
1
,
z
^
v
1
2
)
+
\left(h_{v_{1}}^{1}, \hat{z}_{v_{1}}^{2}\right)^{+}
(hv11,z^v12)+,背后的直觉是通过两个网络将同一节点从不同视图的表示拉近,从历史观察中提取知识,并稳定的online encoder训练。为了便于实现这一点,target network在训练期间不会直接接收梯度。相反,通过利用动量更新机制来更新其参数:
ζ
t
=
m
⋅
ζ
t
−
1
+
(
1
−
m
)
⋅
θ
t
\zeta^{t}=m \cdot \zeta^{t-1}+(1-m) \cdot \theta^{t}
ζt=m⋅ζt−1+(1−m)⋅θt
其中
m
m
m、
ζ
ζ
ζ和
θ
θ
θ分别是动量、target network参数和onlie network参数。
为了进一步探索
H
1
H^{1}
H1和
Z
^
2
\hat Z^{2}
Z^2中节点表示之间的丰富对比关系,我们构建了额外的负样本来调整基本的bootstrapping损失,即图中红色锚节点和蓝色节点之间的蓝色虚线,即
(
h
v
1
1
,
z
^
v
j
2
)
−
\left(h_{v_{1}}^{1}, \hat{z}_{v_{j}}^{2}\right)^{-}
(hv11,z^vj2)−, 我们的目标是彼此推开。因此,上述过程可以用以下损失函数表示:
L
c
n
1
(
v
i
)
=
−
log
exp
(
sim
(
h
v
i
1
,
z
^
v
i
2
)
)
∑
j
=
1
N
exp
(
sim
(
h
v
i
1
,
z
^
v
j
2
)
)
\mathcal{L}_{c n}^{1}\left(v_{i}\right)=-\log \frac{\exp \left(\operatorname{sim}\left(h_{v_{i}}^{1}, \hat{z}_{v_{i}}^{2}\right)\right)}{\sum_{j=1}^{N} \exp \left(\operatorname{sim}\left(h_{v_{i}}^{1}, \hat{z}_{v_{j}}^{2}\right)\right)}
Lcn1(vi)=−log∑j=1Nexp(sim(hvi1,z^vj2))exp(sim(hvi1,z^vi2))
L
c
n
2
(
v
i
)
=
−
log
exp
(
sim
(
h
v
i
2
,
z
^
v
i
1
)
)
∑
j
=
1
N
exp
(
sim
(
h
v
i
2
,
z
^
v
j
1
)
)
\mathcal{L}_{c n}^{2}\left(v_{i}\right)=-\log \frac{\exp \left(\operatorname{sim}\left(h_{v_{i}}^{2}, \hat{z}_{v_{i}}^{1}\right)\right)}{\sum_{j=1}^{N} \exp \left(\operatorname{sim}\left(h_{v_{i}}^{2}, \hat{z}_{v_{j}}^{1}\right)\right)}
Lcn2(vi)=−log∑j=1Nexp(sim(hvi2,z^vj1))exp(sim(hvi2,z^vi1))
L
c
n
1
\mathcal{L}_{cn}^{1}
Lcn1和
L
c
n
2
\mathcal{L}_{cn}^{2}
Lcn2是代表了不同视图下的多尺度跨网络对比。
s
i
m
(
⋅
)
sim \left( \cdot \right)
sim(⋅)表示余弦相似性。
最后,结合上述两种损失,最终确定了跨网络对比目标函数,定义如下:
L
c
n
=
1
2
N
∑
i
=
1
N
(
L
c
n
1
(
v
i
)
+
L
c
n
2
(
v
i
)
)
\mathcal{L}_{c n}=\frac{1}{2 N} \sum_{i=1}^{N}\left(\mathcal{L}_{c n}^{1}\left(v_{i}\right)+\mathcal{L}_{c n}^{2}\left(v_{i}\right)\right)
Lcn=2N1i=1∑N(Lcn1(vi)+Lcn2(vi))
(三)Cross-View Contrastive Learning
除了两个网络之间的对比关系外,还没有考虑到Online Network中两个视图之间的联系,这对增强我们方法的学习能力起到了很强的调节作用。我们不必在Target Network中包含这种对比关系,因为它不会直接接收梯度,我们的最终目标是在Online Network的编码器中训练
g
θ
g_{\theta}
gθ。
视图间的 正对(红色虚线):
(
h
v
1
1
,
h
v
1
2
)
+
\left(h_{v_{1}}^{1}, h_{v_{1}}^{2}\right)^{+}
(hv11,hv12)+,负对(蓝色虚线):
(
h
v
1
1
,
h
v
j
2
)
−
\left(h_{v_{1}}^{1}, h_{v_{j}}^{2}\right)^{-}
(hv11,hvj2)−
视图间view 1:
L
inter
1
(
v
i
)
=
−
log
exp
(
sim
(
h
v
i
1
,
h
v
i
2
)
)
∑
j
=
1
N
exp
(
sim
(
h
v
i
1
,
h
v
j
2
)
)
\mathcal{L}_{\text {inter }}^{1}\left(v_{i}\right)=-\log \frac{\exp \left(\operatorname{sim}\left(h_{v_{i}}^{1}, h_{v_{i}}^{2}\right)\right)}{\sum_{j=1}^{N} \exp \left(\operatorname{sim}\left(h_{v_{i}}^{1}, h_{v_{j}}^{2}\right)\right)}
Linter 1(vi)=−log∑j=1Nexp(sim(hvi1,hvj2))exp(sim(hvi1,hvi2))
视图间view 2:
L
inter
2
(
v
i
)
\mathcal{L}_{\text {inter }}^{2}\left(v_{i}\right)
Linter 2(vi)
视图内的 正对(红色虚线):
(
h
v
1
1
,
h
v
1
2
)
+
\left(h_{v_{1}}^{1}, h_{v_{1}}^{2}\right)^{+}
(hv11,hv12)+,负对(绿色虚线):
(
h
v
1
1
,
h
v
j
1
)
−
\left(h_{v_{1}}^{1}, h_{v_{j}}^{1}\right)^{-}
(hv11,hvj1)−
视图内view 1:
L
i
n
t
r
a
1
(
v
i
)
=
−
log
exp
(
sim
(
h
v
i
1
,
h
v
i
2
)
)
exp
(
sim
(
h
v
i
1
,
h
v
i
2
)
)
+
Φ
Φ
=
∑
j
=
1
N
1
i
≠
j
exp
(
sim
(
h
v
i
1
,
h
v
j
1
)
)
\begin{aligned} \mathcal{L}_{i n t r a}^{1}\left(v_{i}\right) &=-\log \frac{\exp \left(\operatorname{sim}\left(h_{v_{i}}^{1}, h_{v_{i}}^{2}\right)\right)}{\exp \left(\operatorname{sim}\left(h_{v_{i}}^{1}, h_{v_{i}}^{2}\right)\right)+\Phi} \\ \Phi &=\sum_{j=1}^{N} \mathbb{1}_{i \neq j} \exp \left(\operatorname{sim}\left(h_{v_{i}}^{1}, h_{v_{j}}^{1}\right)\right) \end{aligned}
Lintra1(vi)Φ=−logexp(sim(hvi1,hvi2))+Φexp(sim(hvi1,hvi2))=j=1∑N1i=jexp(sim(hvi1,hvj1))
视图内view 2:
L
i
n
t
r
a
2
\mathcal{L}_{i n t r a}^{2}
Lintra2
综上,跨视图对比目标函数公式如下:
L
c
v
=
1
2
N
∑
i
=
1
N
(
L
c
v
1
(
v
i
)
+
L
c
v
2
(
v
i
)
)
\mathcal{L}_{c v}=\frac{1}{2 N} \sum_{i=1}^{N}\left(\mathcal{L}_{c v}^{1}\left(v_{i}\right)+\mathcal{L}_{c v}^{2}\left(v_{i}\right)\right)
Lcv=2N1i=1∑N(Lcv1(vi)+Lcv2(vi))
L
c
v
k
(
v
i
)
=
L
intra
k
(
v
i
)
+
L
inter
k
(
v
i
)
,
k
∈
{
1
,
2
}
\mathcal{L}_{c v}^{k}\left(v_{i}\right)=\mathcal{L}_{\text {intra }}^{k}\left(v_{i}\right)+\mathcal{L}_{\text {inter }}^{k}\left(v_{i}\right), \quad k \in\{1,2\}
Lcvk(vi)=Lintra k(vi)+Linter k(vi),k∈{1,2}
(四)Model Training
总体目标函数定义为:
L
=
β
L
c
v
+
(
1
−
β
)
L
c
n
\mathcal{L}=\beta \mathcal{L}_{c v}+(1-\beta) \mathcal{L}_{c n}
L=βLcv+(1−β)Lcn
在推理过程中,我们将在线图编码器
g
θ
g_{\theta}
gθ生成的表示进行聚合,同时将图邻接矩阵和扩散矩阵作为输入:
H
~
=
H
1
+
H
2
∈
R
N
×
D
′
\tilde{H}=H^{1}+H^{2} \in \mathbb{R}^{N \times D^{\prime}}
H~=H1+H2∈RN×D′,用于下游任务。