加粗样式WWW24
推荐指数: #paper/⭐⭐
通篇在讲元学习,但是个人觉得和元学习没有关系。因此从个人的理解来记录这篇文章
个人的粗浅的理解:典型的多视图对比,但是套上了元学习的外壳。写作能力真的很强
(个人理解)首先N-way-k-shot可以理解为:假设一个batch有N个样本,那么每个样本有k个相近的样本互为正样本。
模型架构
给定一个图表述为
(
X
,
A
)
(X,A)
(X,A) ,我们可以应用三个不同的图增强:KaTeX parse error: Undefined control sequence: \textasciitilde at position 46: …\mathbf{A}_{3} \̲t̲e̲x̲t̲a̲s̲c̲i̲i̲t̲i̲l̲d̲e̲{}\mathcal{A}
那么,对应的三个增强图为:
(
X
1
,
A
1
)
,
(
X
2
,
A
2
)
,
(
X
3
,
A
3
)
(X_1,\mathrm{A}_1),(X_2,\mathrm{A}_2),(X_3,\mathrm{A}_3)
(X1,A1),(X2,A2),(X3,A3)
L
:
=
f
ema
(
X
1
,
A
1
)
,
S
:
=
f
ema
(
X
2
,
A
2
)
,
Q
:
=
g
(
f
(
X
3
,
A
3
)
)
,
L:=f_\text{ema}(X_1,A_1), S:=f_\text{ema}(X_2,A_2), Q:=g(f(X_3,A_3)),
L:=fema(X1,A1),S:=fema(X2,A2),Q:=g(f(X3,A3)),
lookup emb L以及Support emb S是由动量编码器
f
e
m
b
f_{emb}
femb 生成。Query emb Q是由可训练的图编码器以及映射头g生成。
f
e
m
a
f_{ema}
fema的参数由
f
f
f动量更新(详情可见moco,下也有公式描述)
首先,我们可以得到query node(由lookup emb L得来的)并表示他们为:
{
L
v
1
,
⋯
,
L
v
N
}
\{L_{v_1},\cdots,L_{v_N}\}
{Lv1,⋯,LvN}(相当于一个batch)。对于每一个
i
∈
[
1
,
…
,
N
]
i \in[1,\dots,N]
i∈[1,…,N],我们可以测量得到
L
v
i
L_{vi}
Lvi与所有support节点的嵌入
{
S
1
,
⋯
,
S
∣
V
∣
}
\{S_1,\cdots,S_{|\mathcal{V}|}\}
{S1,⋯,S∣V∣} 之间的相似性。S中最高的k个相似相关的嵌入将会被选取作为support集合。我们表示他们为:
{
S
v
i
1
,
⋯
,
S
v
i
k
}
i
=
1
N
\{S_{v_i^1},\cdots,S_{v_i^k}\}_{i=1}^N
{Svi1,⋯,Svik}i=1N
我的理解:从lookup emb中取一个节点嵌入
L
i
L_{i}
Li,我们查询在
S
S
S中与
L
L
L 最相近的前k个节点集合,表示为
S
v
i
1
,
…
,
S
v
i
k
{S_{vi^1},\dots,S_{vi^k}}
Svi1,…,Svik。由于一个批次有N个样本,整个support set就是:
{
S
v
i
1
,
⋯
,
S
v
i
k
}
i
=
1
N
\{S_{v_i^1},\cdots,S_{v_i^k}\}_{i=1}^N
{Svi1,⋯,Svik}i=1N 。我们可以得到query nodes emb:
{
Q
v
1
,
⋯
,
Q
v
N
}
\{Q_{v_1},\cdots,Q_{v_N}\}
{Qv1,⋯,QvN}。
最终,整个任务可以表示为:
T
=
{
Q
v
i
,
{
S
v
i
j
}
j
=
1
k
}
i
=
1
N
\mathcal{T}=\{Q_{v_{i}},\{S_{v_{i}^{j}}\}_{j=1}^{k}\}_{i=1}^{N}
T={Qvi,{Svij}j=1k}i=1N
(即:可以粗浅理解为:Q集与S集之间的对比)
编码器的参数动量更新:
θ
e
m
a
=
m
θ
e
m
a
+
(
1
−
m
)
θ
\theta_{\mathrm{ema}} = m\theta_{\mathrm{ema}}+(1-m)\theta
θema=mθema+(1−m)θ
m是超参。其借鉴了moco,感兴趣可以自行搜寻
损失函数:
L
C
O
L
A
(
{
Q
v
i
,
{
S
v
i
j
}
j
=
1
k
}
i
=
1
N
)
=
−
∑
i
=
1
N
1
k
∑
i
=
1
k
log
exp
(
Q
v
i
⋅
S
v
i
j
/
τ
)
∑
v
∈
S
t
exp
(
Q
v
i
⋅
v
/
τ
)
,
L_{COLA}(\{Q_{v_i},\{S_{v_i^j}\}_{j=1}^k\}_{i=1}^N)=-\sum_{i=1}^N\frac1k\sum_{i=1}^k\log\frac{\exp(Q_{v_i}\cdot S_{v_i^j}/\tau)}{\sum_{v\in S_t}\exp(Q_{v_i}\cdot v/\tau)},
LCOLA({Qvi,{Svij}j=1k}i=1N)=−i=1∑Nk1i=1∑klog∑v∈Stexp(Qvi⋅v/τ)exp(Qvi⋅Svij/τ),
这可以如何理解呢?可以理解为:Q与S集合中前k近的向量做对比。
总体的理解:
首先,利用Support S找到与集合L的每个节点 v i v_{i} vi前k近的节点集合,记为 { S v i j } j = 1 k \{S_{v_{i}^{j}}\}_{j=1}^{k} {Svij}j=1k。然后将集合里面的节点嵌入与其对应的 Q v i Q_{vi} Qvi进行对比。即:典型的多视图对比