链接:https://openreview.net/forum?id=rklnDgHtDS
简介
在2019年之前,大多数终身学习(持续学习,LLL)主要应用于分类任务,有固定的输入和输出规模。
本文提出了一种新的持续学习场景:处理语言学习中常见的seq2seq的任务。
构建持续的语言学习模式,提高组合性理解能力,是本文研究的核心。更具体地说,我们通过连续学习来解决开放和增长的词汇问题的挑战。它需要优化两个目标:
- 将以前学到的知识转移,并与新的知识相结合。
- 习得的模型应该抵抗catastrophic forgetting,在这种情况下,适应新分布的模型不再适用于原始分布。
为了实现这些目标,我们使用组合性(compositionality)来分离输入句子的语义和语法,这样我们就可以将标签预测算法转换为序列算法来进行连续学习。
本文主要贡献有:
- 我们提出了一种新的连续学习场景,它处理了语言学习中常见的seq2seq的任务。
- 提出了一种利用组合性利用标签预测连续学习算法进行序列到序列连续学习的方法。据我们所知,这是第一个将组合性应用于序列到序列任务的持续学习的工作,目标是将知识转移到后阶段和预防前阶段的catastrophic forgetting。
- 实验结果表明,该方法在知识迁移和预防catastrophic forgetting两方面均有显著提高,在100个阶段的语言教学任务中准确率接近85%。它在机器翻译任务中也显示出显著的改进。
使用组合性的终身学习
问题定义
传统的连续学习大多运用于标签分类,其输入输出都是固定大小的。然而,在许多任务中,例如语言对话,输入和输出都是序列,其输入输出大小都是不确定的。
本文因此提出了一种将标签预测连续学习(LP-CL)组合成序列到序列连续学习(S2S-CL)的方法。
LP-CL:标签预测持续学习
标签预测是典型的分类问题:输入
x
x
x,输出
y
,
y
∈
V
=
{
c
1
,
c
2
,
.
.
.
,
c
K
}
y, y∈V= \{ c_1,c_2,...,c_K \}
y,y∈V={c1,c2,...,cK}。
举例而言,单词级的机器翻译便是一个标签预测:输入一个英文单词
x
x
x,输出一个中文词汇
y
y
y。
而在标签预测持续学习(LP-CL),在初始训练阶段,
y
y
y属于
K
K
K个类之一,
y
∈
V
i
n
i
t
=
{
c
1
,
c
2
,
.
.
.
,
c
K
}
y∈V_{init}= \{ c_1,c_2,...,c_K \}
y∈Vinit={c1,c2,...,cK}。
在持续学习阶段,我们有一个新类,
y
∈
V
c
o
u
n
t
=
{
c
K
+
1
}
y∈V_{count}= \{ c_{K+1} \}
y∈Vcount={cK+1}。
我们在初始训练阶段训练一个模型,在其余的训练阶段不再使用初始训练数据。然后我们在持续学习阶段切换到数据,并不断更新模型。
在测试阶段,我们评估模型是否可以预测初始和持续学习阶段的标签
y
∈
V
i
n
i
t
∪
V
c
o
u
n
t
y∈V_{init}∪V_{count}
y∈Vinit∪Vcount。
我们将标签预测持续学习表示为 P ( y ∣ x ; θ ) P(y|x;θ) P(y∣x;θ)。
S2S-CL:序列到序列连续学习
对于序列到序列的连续学习(S2S-CL),我们考虑序列输入
X
=
x
1
,
x
2
,
…
,
x
n
X = x_1, x_2,…, x_n
X=x1,x2,…,xn和输出
Y
=
y
1
,
y
2
,
.
.
.
,
y
m
Y = y_1, y_2,...,y_m
Y=y1,y2,...,ym,每个输出标签
y
i
,
i
∈
{
1
,
…
,
m
}
y_i, i∈\{1,…, m\}
yi,i∈{1,…,m}来自标签预测问题中对应的标签集。
我们要做一个模型
P
(
Y
∣
X
)
P(Y |X)
P(Y∣X)用于序列到序列的连续学习。
本文目标:利用标签预测持续学习(LP-CL)模型 P ( Y ∣ X ; θ ) P(Y |X;θ) P(Y∣X;θ),将S2S-CL能力量化为 P ( Y ∣ X ) P(Y |X) P(Y∣X)。
使用LP-CL算法对S2S-CL进行组合
该工作的核心思想是利用组合性分离语义和语法,从而将标签预测算法转化为序列算法,实现连续学习。持续学习可以被概率定义为:
这里,
l
o
g
P
(
D
T
∣
ψ
)
log P(D_T |ψ)
logP(DT∣ψ)是任务
T
T
T中的负损失函数,而
l
o
g
P
(
ψ
∣
D
1
⋅
⋅
⋅
T
−
1
)
log P(ψ|D_{1···T-1})
logP(ψ∣D1⋅⋅⋅T−1)是与任务
1
⋅
⋅
⋅
T
−
1
1···T-1
1⋅⋅⋅T−1中学习到的参数相关的正则化。
我们对
ψ
ψ
ψ进行拆分:
ψ
=
θ
+
φ
ψ = θ+φ
ψ=θ+φ,
θ
θ
θ涉及语义,
φ
φ
φ涉及语法。
由于组合性(Li et al., 2019),我们使
θ
θ
θ和
φ
φ
φ在
D
1
⋅
⋅
⋅
T
−
1
D_{1···T-1}
D1⋅⋅⋅T−1条件下独立。
我们假设语法
φ
φ
φ在初始阶段后不变,因此我们在任务
T
T
T的学习过程中冻结
φ
φ
φ来实现
l
o
g
P
(
φ
∣
D
1
⋅
⋅
T
−
1
)
log P (φ|D_{1··T-1})
logP(φ∣D1⋅⋅T−1)的正则化。
我们使用标签预测连续学习算法对正则化
l
o
g
P
(
θ
∣
D
1
⋅
⋅
T
−
1
)
log P(θ|D_{1··T-1})
logP(θ∣D1⋅⋅T−1)进行学习,如下图所示:
为了将标签预测算法应用于从S2S的问题中,需要从S2S问题中提取出标签预测问题。
而语言通常由语义
p
p
p和语法
f
f
f组成,因此我们将一个输入序列以组合的方式分解成
p
p
p和
f
f
f。
例如,在语言指令任务中,输入
X
X
X是一个单词序列,输出
Y
Y
Y是一个标签序列。我们认为
X
X
X有两种类型的信息:存在哪些标签
(
X
p
)
(X^p)
(Xp),以及标签应该如何排序
(
X
f
)
(X^f)
(Xf)。
Y
Y
Y是由输出标签类型
(
Y
p
)
(Y^p)
(Yp),和输出标签顺序
(
Y
f
)
(Y^f)
(Yf)组成 ,见Eq. 1。
接着在Eq. 2,我们用链式法则。
由于组合性,
Y
f
Y^f
Yf只取决于
X
f
X^f
Xf。并且给出
Y
f
Y^f
Yf后,
Y
p
Y^p
Yp只取决于
X
p
X^p
Xp(Eq. 3)。
我们举一个直观的例子:
- 在机器翻译中,输出顺序只依赖于输入的语音部分信息(语法),给定了顺序,每个输出单词标签(语义)只依赖于相应的输入单词。
我们将输出序列分解为标签,从而使用LP-CL实现S2S-CL(我们的目标)。
我们假设标签
y
1
p
,
.
.
.
,
y
m
p
y^p_1,...,y^p_m
y1p,...,ymp在给定输出语法
Y
f
Y^f
Yf和输入语义信息
X
p
X^p
Xp时条件独立(Eq. 4)。
然后我们使用全概率公式(Eq. 5)。
接着,我们让
x
i
p
x^p_i
xip值取决于
y
j
f
y^f_j
yjf和
X
p
X^p
Xp(attention机制),
y
j
p
y^p_j
yjp只取决于
x
i
p
x^p_i
xip(Eq. 6)。
P
(
x
i
p
∣
y
j
f
,
X
p
)
P(x^p_i |y^f_j, X^p)
P(xip∣yjf,Xp)是一种将attention映射( attention map)
y
j
f
y^f_j
yjf应用于值向量
X
p
X^p
Xp上的操作,使其没有参数。
设
θ
θ
θ为标签预测模块
P
(
y
j
p
∣
x
i
p
;
θ
)
P(y^p_j |x^p_i;θ)
P(yjp∣xip;θ)的参数,
φ
φ
φ为attention映射生成器
P
(
Y
f
∣
X
f
;
φ
)
P(Y^f |X^f;φ)
P(Yf∣Xf;φ)的参数。
由于我们假设持续学习阶段不包含新的语法模式,我们可以在持续学习阶段冻结φ。θ为标签预测模块的参数。因此,我们可以使用标签预测连续学习模型(LP-CL)来实现成分序列到序列连续学习(S2S-CL),我们将在下一小节详细说明。
分离语义和句法表示
我们的S2S-CL方法的灵感来自于用组合性分解语法和语义表示的想法(Li等人,2019)。注意,它不是一个连续的学习方法,而是展示了如何在序列到序列的模型中对组合进行编码。该方法通过使用两种表示方法来分离句法和语义表示。一个产生注意力地图,而另一个则负责文字和行动。它减少了表示法的熵。
假设有输入
x
x
x和输出
y
y
y,
x
x
x包含一个单词序列,其中每个输入单词来自大小为
u
u
u的输入词汇表。
y
y
y包含一个输出符号序列,其中每个输出符号来自大小为
V
V
V的输出词汇表。这两个词汇表都包含一个分别出现在
x
x
x和
y
y
y末尾的句子结束符号。模型输出
y
^
\hat y
y^是
y
y
y的一个预测。假设输入词
x
1
,
.
.
.
,
x
n
x_1,...,x_n
x1,...,xn和输出符号
y
1
,
.
.
.
,
y
m
y_1,...,y_m
y1,...,ym都是one-hot表示。
为了解开信息的纠缠,输入的句子
x
x
x被转换为语义表示
p
p
p和句法表示
f
f
f。具体来说,每个单词都被编码为两个embedding。
然后,将它们连接起来,形成整个输入序列的两种表示形式,即:
引入熵正则化来实现解纠缠,通过正则化表示的
L
2
L_2
L2范数
L
r
e
g
u
l
a
r
i
z
e
=
L
2
(
p
)
+
L
2
(
f
)
L_{regularize} = L_2(p) + L_2(f)
Lregularize=L2(p)+L2(f),然后在表示中加入噪声。
f
′
f'
f′被喂给seq2seq模块进行解码。在每一步
j
j
j,解码器生成
b
j
∈
R
n
b_j∈R^n
bj∈Rn,通过Softmax得到attention映射
a
j
a_j
aj。利用attention映射,计算了带噪声的语义表示
p
′
p'
p′的加权平均
v
j
v_j
vj。然后将其喂到全连通的单层网络
f
p
r
e
d
i
c
t
f_{predict}
fpredict中得到分数
l
j
l_j
lj,并使用Softmax计算输出分布
y
^
j
\hat y_j
y^j。如果
a
r
g
m
a
x
y
^
j
arg\ max\ \hat y_j
arg max y^j是一个句子结束符号,则解码结束。
将
y
y
y和
y
^
\hat y
y^的交叉熵作为预测损失
L
p
r
e
d
i
c
t
L_{predict}
Lpredict,最终的损失函数
L
L
L是预测损失和熵正则化损失的结合。
λ
λ
λ是正则化权值。
连续语言学习的标签预测算法
对于语言问题,由于输入的单词和输出的行动通常都与embedding相关,因此很自然地使用非参数算法作为标签预测持续学习算法。
在每个阶段,由于原来的方法使用两个embedding:
E
r
∈
R
k
r
(
r
∈
{
p
,
f
}
)
E_r∈R^{k_r} (r∈\{ p,f\})
Er∈Rkr(r∈{p,f})用于一个词,另一个embedding
W
W
W用于行动,我们添加新的语义
e
p
e_p
ep,句法
e
f
e_f
ef和行动
W
W
W的embedding(下图)。
因此,我们冻结旧的embedding参数,并且只学习新添加的阶段。