Paper : FEW-SHOT LEARNING WITH GRAPH NEURAL NETWORKS
Code : official
摘要
作者使用GNN建模少样本学习任务中的消息传递过程,将每个样本看作是图中的节点,少样本学习转化为图中给出部分节点的标签以后进行训练的点分类任务。作者提出的GNN建模方法还可以扩展到半监督学习或主动学习的任务上。
问题设定
首先给出少样本学习,主动学习和半监督学习的通用描述,考虑输入输出对
(
T
,
Y
)
(\mathcal T,\mathcal Y)
(T,Y)
T
=
{
{
(
x
1
,
l
1
)
,
.
.
.
,
(
x
s
,
l
s
)
}
,
{
x
~
1
,
.
.
.
,
x
~
r
}
,
{
x
‾
1
,
.
.
.
,
x
‾
t
}
}
subject to
l
i
∈
{
1
,
.
.
.
,
K
}
Y
=
(
y
1
,
.
.
.
,
y
t
)
subject to
y
i
∈
{
1
,
.
.
.
,
K
}
\mathcal T = \{\{(x_1,l_1),...,(x_s,l_s)\},\{\widetilde x_1,...,\widetilde x_r\},\{\overline x_1,...,\overline x_t\}\} \\\text{subject to } l_i \in \{1,...,K\} \\\mathcal Y = (y_1,...,y_t) \\\text{subject to } y_i \in \{1,...,K\}
T={{(x1,l1),...,(xs,ls)},{x
1,...,x
r},{x1,...,xt}}subject to li∈{1,...,K}Y=(y1,...,yt)subject to yi∈{1,...,K}
其中符号含义如下
- s s s 表示有标签的样本个数
- t t t 表示无标签的样本个数
- t t t 测试集大小
- K K K 样本的种类数
在本篇文章中,我们固定 t = 1 t=1 t=1,即每次只使用一个测试样本
考虑标准的监督学习的训练目标为
min θ 1 L ∑ i = 1 L L ( f θ ( T i ) , Y i ) + Reg ( θ ) \min_\theta \frac{1}{L} \sum_{i=1}^L \mathcal L(f_\theta(\mathcal T_i),\mathcal Y_i) + \text{Reg}(\theta) θminL1i=1∑LL(fθ(Ti),Yi)+Reg(θ)
- 少样本学习: r = 0 , s = q K r=0,s=qK r=0,s=qK ,被称为 q-shot K-way learning
- 半监督学习: r > 0 r>0 r>0
- 主动学习: r > 0 r>0 r>0,学习器可以询问 x ~ i \widetilde x_i x i 的标签
方法
少样本学习的任务就是把标签信息从标签样本上传递到未标记的询问图片上,这种信息传递的方法可以通过GNN进行建模。我们根据任务 T \mathcal T T 建立全连接网络 G T = ( V , E ) G_\mathcal T =(V,E) GT=(V,E),将任务 T \mathcal T T 中出现的所有样本作为节点,边的权重使用类似孪生神经网络的可学习的参数模型进行计算。
本文中使用MLP与绝对值来衡量点与点之间的距离
A ~ i , j ( k ) = φ θ ~ ( x i ( k ) , x j ( k ) ) = MLP θ ~ ( abs ( x i ( k ) − x j ( k ) ) ) \widetilde A_{i,j}^{(k)} = \varphi_{\widetilde \theta}(x_i^{(k)},x_j^{(k)}) = \text{MLP}_{\widetilde \theta}(\text{abs}(x_i^{(k)}-x_j^{(k)})) A i,j(k)=φθ (xi(k),xj(k))=MLPθ (abs(xi(k)−xj(k)))
训练过程如下所示
通过对在每一行上进行softmax将可训练的邻接矩阵归一化为随机核。 通过将邻接矩阵 A ~ \widetilde A A 添加到邻接矩阵族 A = { A ~ ( k ) , 1 ∣ T ∣ × ∣ T ∣ } \mathcal A = \{\widetilde A^{(k)},\text 1_{|\mathcal T|\times |\mathcal T|}\} A={A (k),1∣T∣×∣T∣}中并应用
其中 Θ = { θ 1 ( k ) , . . . , θ ∣ A ∣ ( k ) } \Theta = \{\theta_1^{(k)},...,\theta_{|\mathcal A|}^{(k)}\} Θ={θ1(k),...,θ∣A∣(k)} 表示训练参数,根据该式可以获得节点特征的更新规则。 由于图中边具有稠密性,因此深度被简单地解释为赋予模型更多的表达能力。
初始点特征定义为
x i ( 0 ) = ( ϕ ( x i ) , h ( l i ) ) x_i^{(0)} = (\phi(x_i),h(l_i)) xi(0)=(ϕ(xi),h(li))
其中 ϕ ( ⋅ ) \phi(\cdot) ϕ(⋅) 为一个CNN,从图片中提取语义特征, h ( ⋅ ) h(\cdot) h(⋅) 表示将标签转化为one-hot向量,对于无标签的节点,使用
x i ( 0 ) = ( ϕ ( x i ) , 1 K 1 K ) x_i^{(0)} = (\phi(x_i),\frac{1}{K}\text 1_K) xi(0)=(ϕ(xi),K11K)
作者论述了孪生神经网络,原型网络和匹配网络都是本文提出的网络结构的一种特例。
对于主动学习,模型可以询问 x ~ 1 ∼ x ~ r \widetilde x_1\sim \widetilde x_r x 1∼x r 中信息量最大的一个样本的标签。使用两层NN将点特征映射到标量上,使用 g g g 来表示,在GNN的第一层后即可进行询问,那么询问的样本为
Attention = Softmax ( g ( x { 1... r } ( 1 ) ) ) \text{Attention} = \text{Softmax}(g(x^{(1)}_{\{1...r\}})) Attention=Softmax(g(x{1...r}(1)))
在测试时选择值最大的一个样本,在训练时任意选择一个样本。最后将查询结果加到点特征上
其中
总体结构
总结
本文主要探索了针对少样本,半监督和主动学习的图神经表示,转化为有监督的学习问题,其中输入是由元素或集合提供的,它们的关系结构可以通过神经消息传递模型来建模。未来的方向包括推广主动学习的范围,例如提出问题的能力或扩展算法到强化学习任务,其中少样本学习对于非平稳环境下学习至关重要。