论文地址:https://arxiv.org/abs/2006.10141 代码地址: https://github.com/ChandlerBang/SelfTask-GNN
0 摘要
GNN可以通过简单的邻域聚合自然地利用未标记的节点,而邻域聚合无法彻底利用未标记的节点。
本文:
- 我们首先通过实证研究图上的许多基本SSL辅助任务,加深了我们对SSL何时、为何以及哪些策略对GNN有效的理解。
- 受到实证研究的深刻见解的启发,我们提出了一个新方向 SelfTask 来构建能够在各种真实世界数据集上实现最先进性能的高级借口任务。
2 问题描述
半监督节点分类将节点分为有标签节点
D
L
=
(
V
L
,
Y
L
)
\mathcal{D}_L = (\mathcal{V}_L,\mathcal{Y}_L)
DL?=(VL?,YL?)和无标签节点
D
U
\mathcal{D}_U
DU?。让
f
θ
:
V
L
→
Y
L
f_\theta:\mathcal{V}_L \rightarrow \mathcal{Y}_L
fθ?:VL?→YL?,将节点映射到标签集,使得GNN可以推断出未标记数据的特征。半监督节点分类的目标函数是:
min
?
θ
L
t
a
s
k
(
θ
,
A
,
X
,
D
L
)
=
∑
(
v
i
,
y
i
)
∈
D
L
l
(
f
θ
(
G
)
v
i
,
y
i
)
\min_\theta \mathcal{L}_{task}(\theta,A,X, \mathcal{D}_L) = \sum_{(v_i,y_i)\in \mathcal{D}_L} l(f_\theta(\mathcal{G})_{v_i},y_i)
θmin?Ltask?(θ,A,X,DL?)=(vi?,yi?)∈DL?∑?l(fθ?(G)vi??,yi?)
我们将图神经网络的自我监督学习问题正式定义为节点分类的任务
目标是构建一个自监督辅助任务,该任务具有相应的损失
L
s
e
l
f
\mathcal{L}_{self}
Lself?,可以与任务的损失
L
t
a
s
k
\mathcal{L}_{task}
Ltask?相结合去学习图神经网络,可以更好地概括无标签的数据
3 图上的基本辅助任务
3.1 结构信息
在图中提取自监督信息的第一个自然选择是数据背后的固有结构。因为图中数据是相关的,节点是被连接在一起。一个主要的方向是根据无标签节点的局部结构信息,或它们与图的其他部分的关系,为其构建自监督信息。换句话说,用于建立自监督的辅助任务的结构信息可以分类为本地或全局结构信息。
3.1.1 局部结构信息
局部结构自监督信息,它既可以来自于节点本身,也可以来自于该节点在其周围邻居中的结构关系。此外,辅助任务可以在单个节点上定义,也可以以配对/对比的方式开发,包括结合/比较多个节点的信息。
我们介绍了两个基于局部结构的SSL辅助任务的代表性例子
-
NodeProperty(节点属性) 在这项任务中,我们旨在预测图中每个节点的属性,如他们的度、局部节点重要性和局部聚类系数。这个辅助任务的目的是为了(进一步)鼓励GNN除了学习被优化的具体任务之外,还学习局部结构信息。构造自监督任务的损失
L
s
e
l
f
(
θ
′
,
A
,
X
,
D
U
)
=
1
∣
D
U
∣
∑
v
i
∈
D
U
(
f
θ
′
(
G
)
v
i
?
d
i
)
2
\mathcal{L}_{self}(\theta',A,X,\mathcal{D}_U) = \frac {1} {|\mathcal{D}_U|} \sum_{v_i \in \mathcal{D}_U}(f_{\theta'}(\mathcal{G})_{v_i} - d_i)^2
Lself?(θ′,A,X,DU?)=∣DU?∣1?vi?∈DU?∑?(fθ′?(G)vi???di?)2
-
f
θ
′
f_{\theta'}
fθ′?:预测节点度
-
EdgeMask(边遮蔽) 对于边缘掩码任务,我们寻求发展不仅基于单个节点本身的自我监督,而是基于图中两个节点之间的连接,成对地进行自我监督。我们首先随机屏蔽一些边,然后要求模型重建被屏蔽的边。然后,这里的 SSL 辅助任务是预测给定节点对之间是否存在链接。损失函数为:
L
s
e
l
f
(
θ
′
,
A
,
X
,
D
U
)
=
1
∣
M
e
∣
∑
(
v
i
,
v
j
)
∈
M
e
l
(
f
w
(
∣
f
θ
′
(
G
)
v
i
?
f
θ
′
(
G
)
v
j
∣
)
,
1
)
+
1
∣
M
 ̄
e
∣
∑
(
v
i
,
v
j
)
∈
M
 ̄
e
l
(
f
w
(
∣
f
θ
′
(
G
)
v
i
?
f
θ
′
(
G
)
v
j
∣
)
,
1
)
\mathcal{L}_{self}(\theta',A,X,\mathcal{D}_U) = \frac {1} {|\mathcal{M}_e|} \sum_{(v_i,v_j) \in \mathcal{M}_e} l(f_w(|f_{\theta'}(\mathcal{G})_{v_i} - f_{\theta'}(\mathcal{G})_{v_j}|),1) + \frac {1} {|\overline{\mathcal{M}}_e|} \sum_{(v_i,v_j) \in \overline{\mathcal{M}}_e} l(f_w(|f_{\theta'}(\mathcal{G})_{v_i} - f_{\theta'}(\mathcal{G})_{v_j}|),1)
Lself?(θ′,A,X,DU?)=∣Me?∣1?(vi?,vj?)∈Me?∑?l(fw?(∣fθ′?(G)vi???fθ′?(G)vj??∣),1)+∣Me?∣1?(vi?,vj?)∈Me?∑?l(fw?(∣fθ′?(G)vi???fθ′?(G)vj??∣),1)
3.1.2 全局结构信息
给定节点的全局自监督信息不仅基于节点本身或仅限于其最近的局部ling’ju,而且还可以鸟瞰图中节点的位置。与局部视角类似,我们还提出了两个具有代表性的 SSL 借口任务,其中一个基于两个节点之间的全局成对比较,另一个来自单个节点如何在图中全局定位。
-
PairwiseDistance 辅助任务旨在能够区分/预测不同节点对之间的距离。距离的衡量方式有:是否在同一类中、个性化PageRank等计算节点相似度的链路预测方法。在本文中,选择使用最短路作为节点之间距离的衡量标准。首先计算所有节点对的最短路径长度将长度按1,2,3,其他分为四类。 不选择更多类的原因:
- 需要更多的计算来发现所有实际的节点对的最短路径长度
- 较长的成对距离可能会过度拟合,使得变得有噪音
- 计算所有节点需要的计算成本较高
SSL损失被表述为多分类问题:
L
self?
(
θ
′
,
A
,
X
,
D
U
)
=
1
∣
S
∣
∑
(
v
i
,
v
j
)
∈
S
?
(
f
w
(
∣
f
θ
′
(
G
)
v
i
?
f
θ
′
(
G
)
v
j
∣
)
,
C
p
i
j
)
\mathcal{L}_{\text {self }}\left(\theta^{\prime}, \mathbf{A}, \mathbf{X}, \mathcal{D}_{U}\right)=\quad \frac{1}{|\mathcal{S}|} \sum_{\left(v_{i}, v_{j}\right) \in \mathcal{S}} \ell\left(f_{w}\left(\left|f_{\theta^{\prime}}(\mathcal{G})_{v_{i}}-f_{\theta^{\prime}}(\mathcal{G})_{v_{j}}\right|\right), C_{p_{i j}}\right)
Lself??(θ′,A,X,DU?)=∣S∣1?(vi?,vj?)∈S∑??(fw?(∣∣?fθ′?(G)vi???fθ′?(G)vj??∣∣?),Cpij??)
-
C
p
i
j
C_{p_{ij}}
Cpij??:距离
p
i
j
p_{ij}
pij?对应的分类
-
Distance2Clusters: 通过预测无标签的节点到预定的聚类的距离来探索全局结构信息。学习每个节点的全局位置向量。不需要节点计算到图中每个节点的距离,只需要计算到简历的聚类中心的距离即可。首先应用METI算法将图划分为k类。在每类中我们将高度节点作为聚类中心,记为
c
j
c_j
cj?。使用向量
d
i
d_i
di?中第
j
j
j个值记录节点
v
i
v_i
vi?到第
j
j
j类的聚类中心的距离。该任务的目标的优化问题可以表示为一个多元回归问题:
L
self?
(
θ
′
,
A
,
X
,
D
U
)
=
1
∣
D
U
∣
∑
v
i
∈
D
U
∥
f
θ
′
(
G
)
v
i
?
d
i
∥
2
\mathcal{L}_{\text {self }}\left(\theta^{\prime}, \mathbf{A}, \mathbf{X}, \mathcal{D}_{U}\right)=\frac{1}{\left|\mathcal{D}_{U}\right|} \sum_{v_{i} \in \mathcal{D}_{U}}\left\|f_{\theta^{\prime}}(\mathcal{G})_{v_{i}}-\mathbf{d}_{i}\right\|^{2}
Lself??(θ′,A,X,DU?)=∣DU?∣1?vi?∈DU?∑?∥fθ′?(G)vi???di?∥2
3.2 属性信息
属性信息背后的关键点是帮助指导GNN,以确保节点/邻域属性信息的某些方面在自我监督的基于属性的辅助任务之后被编码在节点嵌入中。
-
**AttributeMask:**与EdgeMask相似,随机的遮掩一些特征之后重建这些特征
L
self?
(
θ
′
,
A
,
X
,
D
U
)
=
1
∣
M
a
∣
∑
v
i
∈
M
a
∥
f
θ
′
(
G
)
v
i
?
x
i
∥
2
\mathcal{L}_{\text {self }}\left(\theta^{\prime}, \mathbf{A}, \mathbf{X}, \mathcal{D}_{U}\right)=\frac{1}{\left|\mathcal{M}_{a}\right|} \sum_{v_{i} \in \mathcal{M}_{a}}\left\|f_{\theta^{\prime}}(\mathcal{G})_{v_{i}}-\mathbf{x}_{i}\right\|^{2}
Lself??(θ′,A,X,DU?)=∣Ma?∣1?vi?∈Ma?∑?∥fθ′?(G)vi???xi?∥2 由于现实中的数据集都是高维稀疏的,所以在应用AttributeMask之前,先使用PCA来获得降维的特征。 -
PairwiseAttrSim: 建立基于属性的节点属性相似性的SSL辅助任务。由于大部分成对相似性接近于0,我们开发了一下采样策略。
- 首先让
T
s
\mathcal{T}_s
Ts?和
T
d
\mathcal{T}_d
Td?表示具有最高相似度和不相似度的节点对集合,定义为:
T
s
=
{
(
v
i
,
v
j
)
∣
s
i
j
?in?top-K?of?
{
s
i
k
}
k
=
1
N
\
{
s
i
i
}
,
?
v
i
∈
V
U
}
T
d
=
{
(
v
i
,
v
j
)
∣
s
i
j
?in?bottom-K?of?
{
s
i
k
}
k
=
1
N
\
{
s
i
i
}
,
?
v
i
∈
V
U
}
\begin{aligned} \mathcal{T}_{s} &=\left\{\left(v_{i}, v_{j}\right) \mid s_{i j} \text { in top-K of }\left\{s_{i k}\right\}_{k=1}^{N} \backslash\left\{s_{i i}\right\}, \forall v_{i} \in \mathcal{V}_{U}\right\} \\ \mathcal{T}_{d} &=\left\{\left(v_{i}, v_{j}\right) \mid s_{i j} \text { in bottom-K of }\left\{s_{i k}\right\}_{k=1}^{N} \backslash\left\{s_{i i}\right\}, \forall v_{i} \in \mathcal{V}_{U}\right\} \end{aligned}
Ts?Td??={(vi?,vj?)∣sij??in?top-K?of?{sik?}k=1N?\{sii?},?vi?∈VU?}={(vi?,vj?)∣sij??in?bottom-K?of?{sik?}k=1N?\{sii?},?vi?∈VU?}?
-
s
i
j
s_{ij}
sij?:度量两个节点之间的相似性,采用余弦相似度
我们可以将回归问题形式化为:
L
self?
(
θ
′
,
A
,
X
,
D
U
)
=
1
∣
T
∣
∑
(
v
i
,
v
j
)
∈
T
∥
f
w
(
∣
f
θ
′
(
G
)
v
i
?
f
θ
′
(
G
)
v
j
∣
)
?
s
i
j
∥
2
\mathcal{L}_{\text {self }}\left(\theta^{\prime}, \mathbf{A}, \mathbf{X}, \mathcal{D}_{U}\right)=\frac{1}{|\mathcal{T}|} \sum_{\left(v_{i}, v_{j}\right) \in \mathcal{T}}\left\|f_{w}\left(\left|f_{\theta^{\prime}}(\mathcal{G})_{v_{i}}-f_{\theta^{\prime}}(\mathcal{G})_{v_{j}}\right|\right)-s_{i j}\right\|^{2}
Lself??(θ′,A,X,DU?)=∣T∣1?(vi?,vj?)∈T∑?∥∥?fw?(∣∣?fθ′?(G)vi???fθ′?(G)vj??∣∣?)?sij?∥∥?2
4 Preliminary Analysis
在本节中,我们提出了两种将这些辅助任务合并到GNN中的策略,即联合训练和两阶段训练,然后实证分析了辅助任务对GNN的影响。
4.1 联合训练
对图神经网络采用自我监督学习的一个自然思路是联合训练相应的损失。我们的目标是同时优化自监督损失
L
s
e
l
f
\mathcal{L}_{self}
Lself?和监督损失
L
t
a
s
k
\mathcal{L}_{task}
Ltask?.
可以分为两个阶段:
- 特征提取过程:在输入图上进行特征提取,可以是多种图卷积层
-
f
θ
z
(
G
)
→
Z
f_{\theta_{z}}(\mathcal{G}) \rightarrow Z
fθz??(G)→Z表示特征提取器部分,其中
Z
Z
Z是节点的嵌入,
z
i
=
f
θ
z
(
G
)
v
i
z_i = f_{\theta_z}(\mathcal{G})_{v_i}
zi?=fθz??(G)vi??
- 下游任务和自监督辅助任务的适应过程:可以是图卷积层或线性层
-
f
θ
y
(
z
i
)
→
y
^
i
f_{\theta_{y}}(z_i) \rightarrow \hat{y}_i
fθy??(zi?)→y^?i?表示适配器部分,将节点
v
i
v_i
vi?的嵌入
z
i
z_i
zi?映射到预测的类别
y
^
i
\hat{y}_i
y^?i?
自监督的辅助任务可以被制定为相同的特征提取器
f
θ
z
f_{\theta_z}
fθz??和一个额外的适配器
f
θ
s
f_{\theta_s}
fθs??。因此整体目标可以定义为
min
?
θ
,
θ
′
L
t
a
s
k
(
θ
,
A
,
X
,
D
L
)
+
λ
L
s
e
l
f
(
θ
′
,
A
,
X
,
D
U
)
\min_{\theta, \theta'} \mathcal{L}_{task}(\theta, A, X, \mathcal{D}_L) + \lambda \mathcal{L}_{self}(\theta', A, X, \mathcal{D}_U)
θ,θ′min?Ltask?(θ,A,X,DL?)+λLself?(θ′,A,X,DU?)
4.2 两阶段训练
与联合训练类似,自监督模型由一个特征提取模块
f
θ
z
(
G
)
f_{\theta_z}(\mathcal{G})
fθz??(G)和一个自适应模块
f
θ
s
(
G
)
f_{\theta_s}(\mathcal{G})
fθs??(G)组成,这些模块的优化与下游任务无关。在自监督模型完全训练后,再开始训练下游任务模型。下游任务模型也有一个自适应模块
f
θ
y
(
G
)
f_{\theta_y}(\mathcal{G})
fθy??(G),但它特征提取模块与自监督模块
f
θ
z
(
G
)
f_{\theta_z}(\mathcal{G})
fθz??(G)共享参数。如图所示,首先为辅助任务预训练自监督模型,然后使用自监督模型的特征提取模块作为下游任务的初始化。初始化后可以为下游任务固定它或者微调它。
4.3 实证研究
根据基本的辅助任务进行了广泛的实验,了解哪些SSL信息对GNN有效,哪些策略可以更好地为GNN集成SSL,并进一步分析SSL能够改善GNN的原因。
|