通过知识迁移的图小样本学习
摘要
针对图的半监督学习已经提出了很多的研究方法。GNN作为一个前沿,近年来引起了人们的广泛关注,它通过聚合邻居的信息来更新每个节点的表示。然而,大多数GNN都是通过在一个限定的局部区域内,利用浅层的神经网络进行信息聚合,可能无法达到令人满意的性能,特别是当标签节点的数量相当少时。为了解决这一问题,本文提出了图的小样本学习方法GFL,该方法融合了从辅助图中学习到的先验知识,以提高对目标图的分类精度。具体来说,在辅助图和目标图之间共享一个以节点嵌入和特定图原型嵌入函数为特征的可转移的度量空间,促进结构知识的转移。最后,在四个真实图谱上证明了模型的有效性。
1 引言
在一个图(如Facebook上的社交网络)中,以半监督的方式对一个节点进行分类(例如,预测用户的兴趣)一直是具有挑战性的,但也是必要的,当有标签的数据不足的时候,这种方法计算起来是十分吃力的。通过从传统的基于正则化的和基于嵌入的方法中获得灵感来进行图的半监督学习,GNN已经吸引了相当大的关注,并且取得了不错的计算效果。
GNN通过对邻居的聚合(或消息传递),递归更新每个节点的特征,通过这种方式,既能捕捉到图拓扑的模式,又能捕捉到节点的特征。不过,考虑到增加网络的层数会增加训练的难度,并且使得的节点的特征表示过光滑,大多数已经存在的GNN类的方法使用了限定域内的浅层网络。因此,GNN对于表示全局信息是不足的,并且这类的方法在已标记样本特别少的时候不会产生太好的效果。
过平滑(over-smooth):
在图神经网络的训练过程中,随着网络层数的增加和迭代次数的增加,同一连通分量内的节点的表征会趋向于收敛到同一特征向量(即空间上的同一个位置)
受到小样本学习的启发,作为一个创新点,作者利用从辅助图中学习到的知识来改进感兴趣的目标图中的半监督节点分类。这种方法背后的直觉在于辅助图和目标图可能共享局部的拓扑结构和分类任务所依赖的节点特征。例如,谷歌现有的一个同事社交网络群可以为预测亚马逊新出现的同事社交网络群中用户的兴趣提供有价值的线索。
然而,在图上的小样本学习比一般小样本方法所关注的独立同分布(随机过程中,任何时刻的取值都为随机变量,并且这些随机变量服从同一分布,且互相独立,)的样本更加的复杂。最近,提出了两类小样本的学习方法,包括基于梯度的小样本学习和基于度量空间的小样本学习方法。第一种方法制定了迁移的知识作为参数的初始化(或元优化器),第二种方法制定了一个度量空间。但是,他们都无法直接满足图的关键前提,即迁移图的结构特征。
为此,作者提出了一种新的图的小样本学习方法GFL。建立在度量空间的基础之上,GFL的基本思想是学习一个可转移的度量空间,每一个节点的标签为度量空间中与其最近的类别。度量空间使用两个嵌入函数进行表示,其中包括了对于节点的编码和对于对于每一个类的原型信息进行编码。具体来说,第一步,GFL使用一个图自编码器来学习每一个节点的表示,这种编码方式建立在GNN之上。第二步,为了更好地捕捉到全局信息,我们将对于所有属于同一个类别的节点建立一个关系结构,通过对关系结构应用原型GNN来学习这个类的原型。最重要的是,通过嵌入函数所加密的结构信息将被从辅助图中迁移到目标图中,以此来补救对于未标记数据的缺失。除了两个节点级结构外,我们同样通过一个层级图表示门控机制设计了图级别的表示。
综上所述,我们的主要贡献是:
- 这是第一项利用知识转移来改进图中半监督节点分类的工作
- 提出了一种新的GFL模型来解决问题,该模型同时在图中传递节点级和图级结构
- 通过四个节点分类任务证明了GFL的有效性
2 相关工作
2.1 图神经网络
最近,大量的图神经网络被提出来探索图的结构特征来满足大量的应用。主要有两类方法,一类是频谱方法,另外一个类是非频谱的方法。频谱方法主要学习谱域中的图形表示,其中学习的滤波器基于拉普拉斯矩阵。对于非光谱方法,基本思想是开发一个聚合器来聚合一组局部特征。这些方法在节点分类和图分类等几个基于图的任务中取得了很大的成功。因此,本文将利用GNN作为基本体系结构来学习节点和图表示。
2.2 小样本学习
通过知识迁移的小样本/零样本学习方法在大量的应用中获得了巨大的成功。主要有两类方法:
- 基于梯度的小样本学习方法,其目的是学习一个较好的模型参数初始化,因此可以在任务中使用更少的梯度更新步骤,或者直接使用元优化器来学习优化过程。
- 基于度量空间的方法,这种方法主要是从训练任务中生成一个度量空间和一个匹配函数。本文提出的GFL属于第二类。 这些传统的基于度量的小样本学习方法专门用于独立同分布的数据,其中不存在显式交互。
3 准备工作
3.1 图神经网络
一个图
G
G
G可以被表示为
(
A
,
X
)
(A,X)
(A,X),其中
A
∈
{
0
,
1
}
n
×
n
A∈\{0,1\}^{n×n}
A∈{0,1}n×n表示邻接矩阵,
X
=
{
x
1
,
.
.
.
,
x
n
}
∈
R
n
×
h
X=\{x_1,...,x_n\}∈R^{n×h}
X={x1,...,xn}∈Rn×h表示节点特征矩阵。为了从图
G
G
G中学习到节点的表示信息,定义了一个包含参数
θ
\theta
θ的嵌入函数
f
f
f。在本工作中,遵循“消息传递”体系结构, 嵌入函数
f
θ
f_\theta
fθ是以端到端的方式建立在GNN上的,其表述为:
其中,
M
M
M表示消息传递函数,其具体的实现有很多种形式。
H
(
l
+
1
)
H^{(l+1)}
H(l+1)是第
l
l
l层的隐层单元的结果,
W
(
l
)
W^{(l)}
W(l)是第
l
l
l层的参数。节点特征
X
X
X作为初始节点嵌入
H
(
1
)
H^{(1)}
H(1),即
H
(
1
)
=
X
H^{(1)}=X
H(1)=X。叠加
L
L
L层图神经网络层后,可以得到最终的表示
Z
=
f
θ
(
A
,
X
)
=
H
(
L
+
1
)
Z=f_\theta(A,X)=H^{(L+1)}
Z=fθ(A,X)=H(L+1)∈
R
h
′
R^{h'}
Rh′。为了简单起见,我们将使用
Z
=
G
N
N
(
A
,
X
)
Z=GNN(A,X)
Z=GNN(A,X)表示具有
L
L
L层的GNN。
3.2 图的小样本学习问题
类似于传统的小样本学习方法,在图的小样本学习中,我们得到了一个图序列
{
G
1
,
.
.
.
,
G
n
t
}
\{G_1,...,G_{n_t}\}
{G1,...,Gnt},通过概率
ε
\varepsilon
ε来进行采样,每一个图的采样概率为
ε
\varepsilon
ε。对于每个图
G
i
∽
ε
G_i\backsim\varepsilon
Gi∽ε,我们提供一个小的已标记的支持集
S
S
S,其中支持集中类别
i
i
i的样本数量为
n
s
i
n^{s_i}
nsi,
S
i
=
{
(
x
i
,
j
s
i
,
y
i
,
j
s
i
)
}
j
=
1
n
s
i
S_i=\{(x_{i,j}^{s_i},y_{i,j}^{s_i})\}_{j=1}^{n^{s_i}}
Si={(xi,jsi,yi,jsi)}j=1nsi,并且提供一个查询集
Q
i
=
{
(
x
i
,
j
q
i
,
y
i
,
j
q
i
)
}
j
=
1
n
q
i
Q_i=\{(x_{i,j}^{q_i},y_{i,j}^{q_i})\}_{j=1}^{n^{q_i}}
Qi={(xi,jqi,yi,jqi)}j=1nqi,其中,
y
i
,
j
∈
{
1
,
.
.
.
,
K
}
y_{i,j}∈\{1,...,K\}
yi,j∈{1,...,K}是相应的标签。对于查询集
Q
i
Q_i
Qi中的每个节点
j
j
j,我们应该通过相似性测度
d
d
d将其嵌入
f
θ
(
A
,
x
i
,
j
q
i
)
:
R
→
R
h
′
f_θ(A,x_{i,j}^{q_i}):R→R^{h'}
fθ(A,xi,jqi):R→Rh′与支持集
S
i
S_i
Si中的表示
(
f
θ
(
A
,
x
i
,
j
s
i
)
,
y
i
,
j
s
i
)
(f_θ(A,x_{i,j}^{s_i}),y_{i,j}^{s_i})
(fθ(A,xi,jsi),yi,jsi)关联起来,预测其对应的标签。具体来说,在原型网络中,每个类别
k
k
k的原型
c
i
k
c^k_i
cik被定义为:
其中,
S
i
k
S^k_i
Sik表示第i个图中第k个类别的样本集,
∣
S
i
k
∣
|S^k_i|
∣Sik∣表示
S
i
k
S^k_i
Sik中的样本数。也就是说,我们是通过求和求平均的方式计算每一个类别的原型向量。对于每个图
G
i
G_i
Gi,我们利用查询集
Q
i
Q_i
Qi来定义图
G
i
G_i
Gi的loss函数:
其中,
Q
i
k
Q_i^k
Qik表示图
G
i
G_i
Gi中
k
k
k类的查询集。基于图的小样本学习的目标是学习一个良好的嵌入函数
f
θ
f_\theta
fθ,通过前面的图的小的支持集来生成嵌入函数,然后将函数应用到新的图上。为了实现这个目标,小样本的学习将包含以下两个步骤:元训练和元测试。在元训练阶段,嵌入函数
f
θ
f_\theta
fθ的参数
θ
\theta
θ通过所有图来优化,以最小化期望误差,即
m
i
n
θ
∑
i
=
1
N
t
L
i
min_\theta\sum_{i=1}^{N_t}L_i
minθ∑i=1NtLi。训练结束后,给定一个新的图
G
t
G_t
Gt,嵌入函数
f
θ
f_\theta
fθ可以被用于通过少量的支持节点来提高有效性。
4 方法
GFL整体框架:
根据上图的所示,我们可以将整个框架分为三个部分:
- (a)图结构的原型网络:这一部分提取每个类 k k k的支持集 S i k S_i^k Sik的图关系结构,并使用原型GNN(PGNN)学习其原型表示 c i k c^k_i cik
- (b)层次图表示门控机制: 这一部分的目标是为了学习一个从级别 1 1 1到 R R R的层级表示,即 h i 1 h_i^1 hi1到 h i R h_i^R hiR,然后使用聚合器将表示信息进行聚合来调节PGNN中的参数。
- (c)辅助图:这一部分主要是将图中的节点利用图自编码器进行重构,以此来增加训练的稳定性以及节点表示的有效性。
GFL的目标是利用节点级和图级的关系结构,将从现有图中学习到的图结构知识应用于新的图 G t G_t Gt。在节点级别,GFL捕获不同节点之间的关系结构。在上图的(a)部分中,对于每一个类别K,其相应的关系结构通过支持集 S i k S_i^k Sik来进行构建,同时,使用一个原型GNN网络PGNN来学习原型表示。在图级别,GFL学习一个图的表示信息,并且确认相似的图之间拥有相似的知识可以被迁移。具体来说,如(b)部分所示,PGNN的参数高度依赖于以分层方式表示的整个图形结构。最后通过相似性度量d计算匹配损失。为了提高训练的稳定性和节点表示的质量,我们进一步介绍了辅助图重建结构,即(c)部分。
4.1 图原型网络
在大多数情况下,节点在图中起着两个重要作用: 一个是与可能属于不同类的邻居进行局部交互;另一个是在相对较长的距离内与同一类的节点交互,可以全局观察到。例如,在生物医学知识图上,既要对疾病节点、治疗节点、基因节点和化学节点之间的局部结构建模,又要对描述它们共同发生或进化关系的疾病节点之间的结构,以及描述它们共同表达的基因节点之间的结构建模。图 G i G_i Gi的嵌入结果 Z i Z_i Zi描述了局部异构信息的第一个规则,并且我们需要学习每一个类别的原型来作为第二条规则中的全局信息合成。对支持节点之间的关系结构进行建模并学习它们相应的原型是不容易的,因此我们提出了一个表示为原型GNN模型PGNN来解决这个挑战。
给定每个节点的表示,我们首先提取属于k类的样本的关系结构。对于每个图
G
i
G_i
Gi,支持集
S
i
k
S_i^k
Sik的关系结构
R
i
k
R_i^k
Rik可以基于一些相似度量来构建,如k-hop共邻数、节点间的逆拓扑距离。为了提高
R
i
k
R_i^k
Rik的鲁棒性,减轻离群节点的影响,我们引入了阈值
µ
µ
µ。如果一对节点之间的相似性评分
w
w
w小于
µ
µ
µ,我们将其设置为固定值
µ
0
µ_0
µ0,即
w
=
µ
0
w=µ_0
w=µ0(
µ
0
<
µ
µ_0<µ
µ0<µ)。然后,利用PGNN对支持集
S
i
k
S_i^k
Sik中的样本的相互作用进行建模,即:
此处,PGNN被参数
φ
φ
φ参数化。上述形式的结果是一个表示矩阵,并且我们使用
j
j
j来表示第
j
j
j个节点的表示。因此,这个图结构的原型可以通过下面的形式进行计算:
其中,Pool操作符表示支持节点上最大化或平均化的操作,
n
s
i
k
n^{s_i^k}
nsik表示支持集
S
i
k
S_i^k
Sik中的节点数。
4.2 层次图表示门
上述原型构建过程由具有全局共享参数 φ φ φ的PGNN确定。然而,不同的图有他们自己的拓扑结构,激励我们对每个图定制全局共享的信息。因此,我们学习了一种用于提取图形特定信息的层次图表示,并通过门函数将其与PGNN的参数结合起来。在详细说明结构之前,我们首先说明了层次图表示的重要性:对于许多复杂的图结构,特别是那些广泛存在并在实际应用中有价值的高阶结构,图的简单的节点级表示可能是不够的。
图2说明了层次图表示门的详细结构。首先,遵循层次图建模方法, 每个级别的层次图表示是通过在两个层次阶段之间交替完成的:节点分配和表示融合(参见图2中的(a)部分):
在图2中:
- (a)学习层次表示的基本块 { h i 1 , . . . , h i R } \{h^1_i,...,h^R_i\} {hi1,...,hiR}。
- (b一个聚合器模块用来聚合基础表示 { h i 1 , . . . , h i R } \{h^1_i,...,h^R_i\} {hi1,...,hiR},这里引入一个查询向量 q i q_i qi来计算注意力权重 β 1 . . . β R β^1...β^R β1...βR,即我们使用的是一个基于注意力机制的聚合器。
- (c)特点图门结构,其中, h i h_i hi被用来计算门控 g i g_i gi。
节点分配
在分配步骤中,每一个低级别的节点被分配到高级别的社区中。在图
G
i
G_i
Gi的级别
r
r
r中,
K
r
K^r
Kr为节点数,
A
i
r
A^r_i
Air为邻接矩阵,
X
i
r
X^r_i
Xir为特征矩阵。对于在第
r
r
r个级别的第
k
r
k^r
kr个节点,通过在分配图网络(AGNN)的输出上应用Softmax函数,计算了从节点
k
r
k^r
kr到
r
+
1
r+1
r+1级上的节点
k
r
+
1
k^{r+1}
kr+1的分配值
p
i
k
r
→
k
r
+
1
p_i^{k^r→k^{r+1}}
pikr→kr+1。具体公式如下:
其中, A G N N ( A i r , X i r ) [ k r , k r + 1 ] ∈ R 1 AGNN(A_i^r,X_i^r)[k^r,k^{r+1}]∈R^1 AGNN(Air,Xir)[kr,kr+1]∈R1表示从 r r r级上的 k r k^r kr到 r + 1 r+1 r+1级上的节点 k r + 1 k^{r+1} kr+1的分配值表示。包括了每一个分配概率 p i k r → k r + 1 p_i^{k^r→k^{r+1}} pikr→kr+1的分配矩阵的表示为 P i r → r + 1 ∈ R K r × K r + 1 P^{r→r+1}_i∈R^{K^r×K^{r+1}} Pir→r+1∈RKr×Kr+1。
表示融合
得到分配矩阵
P
i
r
→
r
+
1
∈
R
K
r
×
K
r
+
1
P^{r→r+1}_i∈R^{K^r×K^{r+1}}
Pir→r+1∈RKr×Kr+1后,对于第
r
+
1
r+1
r+1级,相邻矩阵被定义为
A
i
r
+
1
=
(
P
i
r
→
r
+
1
)
T
A
i
r
P
r
→
r
+
1
A^{r+1}_i=(P^{r→r+1}_i)^TA_i^rP^{r→r+1}
Air+1=(Pir→r+1)TAirPr→r+1,并且,特征矩阵通过应用一个聚合函数FGNN和分配矩阵来进行计算,即
X
i
r
+
1
=
(
P
i
r
→
r
+
1
)
T
F
G
N
N
(
A
i
r
,
X
i
r
)
X^{r+1}_i=(P^{r→r+1}_i)^TFGNN(A_i^r,X_i^r)
Xir+1=(Pir→r+1)TFGNN(Air,Xir)。然后,
r
+
1
r+1
r+1级的特征表示
h
i
r
+
1
h_i^{r+1}
hir+1可以通过聚合所有节点的表示来计算,即
其中,
X
i
r
+
1
[
k
r
+
1
]
=
(
P
i
r
→
r
+
1
)
T
F
G
N
N
(
A
i
r
,
X
i
r
)
[
k
r
+
1
]
X^{r+1}_i[k^{r+1}]=(P^{r→r+1}_i)^TFGNN(A_i^r,X_i^r)[k^{r+1}]
Xir+1[kr+1]=(Pir→r+1)TFGNN(Air,Xir)[kr+1]表示节点
k
r
+
1
k^{r+1}
kr+1的特征表示。
通过计算每个层次的表示,我们得到了从不同层次加密图结构的表示集
{
h
i
1
,
.
.
.
,
h
i
R
}
\{h^1_i,...,h^R_i\}
{hi1,...,hiR}。然后,为了得到整个图表示
h
i
h_i
hi,每个级别的表示将通过聚合器AGG来进行聚合。在这项工作中,我们提出了两个候选聚合器,均值池化聚合器和基于注意力机制的聚合器(图2中的(b)部分)。对于均值池化聚合器,其基本的计算公式为:
考虑到不同层次的表示可能对整个表示
h
i
h_i
hi有不同的贡献,对于注意力聚合器,我们首先引入一个可学习的查询向量作为
q
i
q_i
qi,然后公式是:
在聚合过程之后,最终的表示
h
i
h_i
hi将是和具体的图相关联的。受到之前研究的影响,相似的图可能有相似的参数形式(即PGNN的参数
φ
φ
φ),我们引入了一个门函数
g
i
=
T
(
h
i
)
g_i=T(h_i)
gi=T(hi)(图2中的(c)部分)来定制特定图结构的信息。然后,全局可转移知识(即
φ
φ
φ)通过门函数适应特定结构的参数,其定义如下:
其中
◦
◦
◦表示按元素计算的乘法。
g
i
=
T
(
h
i
)
g_i=T(h_i)
gi=T(hi)将图形特定的表示
h
i
h_i
hi映射到参数
φ
φ
φ的相同空间,定义为:
其中,
W
g
W_g
Wg和
b
g
b_g
bg是可学习的参数。
4.3 辅助图重建
实际上,仅仅通过匹配损失来学习一个节点的表示是不够的,这促使我们设计一个新的约束来提高训练稳定性和节点表示的质量。因此,对于节点嵌入函数
f
θ
(
⋅
)
f_θ(·)
fθ(⋅),我们使用图形自动编码器对其进行改善。重构表示的损失函数定义如下:
其中,
A
i
=
G
N
N
e
n
c
(
A
i
,
H
i
)
A_i=GNN_{enc}(A_i,H_i)
Ai=GNNenc(Ai,Hi)是图
G
i
G_i
Gi中每个节点的表示,
∣
∣
⋅
∣
∣
F
||·||_F
∣∣⋅∣∣F表示Frobenius范数。回顾第3节中典型网络的目标,我们得到了GFL的优化问题:
其中,
Θ
Θ
Θ表示所有可学习的参数。
5 算法描述
参考博客:
元学习——通过知识迁移的图小样本学习(Graph Few-shot Learning via Knowledge Transfer)