跨语言NLU的端到端位置对齐与识别
Abstract
面向目标对话系统中的自然语言理解(NLU)通常包括意图分类和槽标记任务。现有的将NLU系统扩展到新语言的方法是使用机器翻译,从源语到被翻译的话语使用槽标记投影,因此对投影错误很敏感。在这项工作中,我们提出了一个新的端到端模型,联合学习、对齐和预测目标槽标签的跨语言迁移。我们引入了一个新的多语种NLU语料库MultiATIS++,它将多语种ATIS语料库扩展到4个语系的9种语言,并使用该语料库对我们的方法进行了评估。结果表明,在大多数语言上,我们的方法优于使用 fast-align 的简单标签投影方法,并且仅用一半的训练时间就达到了与更复杂、最先进的投影方法相当的性能。我们向社区发布MultiATIS++语料库,以继续开展跨语言NLU的未来研究。
1 Introduction
自然语言理解(NLU)是面向目标对话系统的重要组成部分,负责将话语解析为语义框架,以确定用户的需求。这些语义框架由用户打算做什么(意图)和意图的参数(槽)构成。对于图1中的英文示例,我们将话语的意图标识为“flight”,并标记出空位以提取出发城市和航空公司名称。意图检测可以建模为一个句子分类任务,其中每个话语都有一个意图。插槽填充通常被建模为一个序列标签任务,给定话语 x 1 , … , n x_{1,…,n} x1,…,n,每个单词 x i x_i xi 被标记为一个槽 y i y_i yi 。
尽管神经模型在意图检测和槽填充方面取得了很高的准确性,但在一种新的语言上训练这样的模型需要额外的努力来收集大量的训练数据。可以考虑将学习从高资源语言转移到低资源语言,以减少数据收集和注释的工作量。然而,目前可用的多语言NLU数据集(Upadhyay;Schuster )仅支持分布在两个语系的三种语言,这阻碍了跨语言距离范围内跨语言迁移的研究。在本文中,我们发布了一个新的多语种NLU语料库,除了多语种ATIS语料库中的三种语言外,还包含六种新语言的训练、验证和测试数据。生成的语料库,即MultiA TIS++,共有37,084个训练例和7,859个测试例,涵盖四语系九种语言。
利用我们的语料库,我们探讨了多语言BERT编码器、机器翻译(MT)和标签投影方法在多语言训练和跨语言迁移中的使用。此外,我们提出了一个端到端的联合槽标签对齐和识别模型,使其不再依赖使用外部词对齐工具或工程特征的槽标签投影,这可能不能很好地推广到低资源语言。我们的模型使用注意力模块进行软标签对齐,注意力模块与其他模型组件联合训练意图分类、槽填充和增强重建目标,以改善软标签对齐。
实验结果表明,我们的方法使用了与使用 fast-align 的简单标签投影方法相同的训练时间,但在大多数语言上获得了显著较高的槽位F1。此外,我们的方法在使用一半训练时间的情况下,达到了与更复杂、最先进的标签投影方法相比的性能。最后,在比较不同语言的跨语言迁移方法时,我们的结果显示了不同的趋势,强调有必要对不同语言组合的跨语言迁移方法进行评估,以充分说明每种方法的优缺点。
2 相关工作
跨语言迁移学习已经在一系列序列标注任务中进行了研究,包括词性标注、命名实体识别、自然语言理解。现有的方法大致可分为两类:通过多语言模型的迁移和通过机器翻译的迁移。
多语言模型迁移
对于字母相似、关系密切的语言,通过使用共享字符编码器训练多语言模型来学习共同的基于字符的特征是有益的。然而,当应用于缺乏通用词汇特性的不同语言时,这种技术的效果就不那么有效了。Chen等关注多源迁移场景,并应用对抗训练提取源语言共享的语言不变特征。跨语言表示的最新进展使不同语言之间的迁移成为可能。来自多语言神经机器翻译(NMT)编码器的表征已被证明是跨语言文本分类的有效方法。在这项工作中,我们使用了多语言BERT ,这是一种基于多种语言的单语文本训练的无监督跨语言模型,已被证明提供了强大的句子表征,导致了零资源跨语言理解任务的良好表现。我们将其他最近提出的跨语言模型,如XLM-R的使用留给未来的工作。
机器翻译迁移
要求将源语言训练数据翻译成目标语言或将目标语言测试数据翻译成源语言。尽管它在跨语言文本分类任务上取得了经验上的成功,但在序列标注任务上却面临着一个挑战性的问题:源语言句子上的标签需要投影到翻译句子中。之前的大部分工作依赖于统计MT的无监督词对齐或来自NMT模型的注意力权重。其他启发式方法包括基于符号表面形式匹配符号和更复杂的投影方法,将语言特征与MT系统的信息相结合。相比之下,我们的方法不依赖于外部的词对齐或语言特征,而是通过一个注意力模块进行模型标记投射,该模块可以与机器翻译数据上的其他模型组件联合训练。
3 数据
多语言NLU最流行的数据集之一是ATIS数据集及其多语言扩展(Upadhyay)。ATIS数据集是通过要求每个参与者与一个服务器(访问数据库)交互来创建的,以解决给定的航空旅行规划问题。Upadhyay等人(2018)通过众包手工翻译和注释训练和测试数据子集,将英语ATIS扩展到印度语和土耳其语。
为了在更广泛的语言距离范围内促进跨语言迁移的研究,我们创建了MultiA TIS++语料库,将英语ATIS语料库的训练集和测试集扩展到另外六种语言。最终语料库涵盖四个不同语系的9种语言,包括印欧语系(英语、西班牙语、德语、法语、葡萄牙语和印地语)、汉藏语系(汉语)、日语(日语)和阿尔泰语系(土耳其语)。
对于每一种新语言,我们都聘请专业的母语翻译人员翻译英语发音,同时注释插槽。在翻译时,我们要求译者保留原英语句子的口语情态现象(如犹豫、词语重复等)和风格(如正式程度等),使之更接近真实场景。为了获得翻译后的话语的槽标签,我们要求翻译人员对与相应的英语话语段对齐的话语段进行标记。最后,我们对翻译的话语进行标记,BIO对标记进行标记。为了质量控制,我们要求第三方进行几轮资质检查,直到没有问题报告。
我们在图1中展示了一个英语训练集示例及其其他8种语言的翻译版本,并在表1中报告数据统计数据。我们将英语训练和验证集随机分割,并对所有其他语言保持相同的分割,除了多语种ATIS语料库中的印地语和土耳其语。注意,数据的印地语和土耳其语部分比其他语言要小,只涵盖意图和槽类型的一个子集。
图1:MultiA TIS语料库中的英语训练集示例及其翻译版本。英语话语被手动翻译成其他八种语言,包括西班牙语(ES)、葡萄牙语(PT)、德语(DE)、法语(FR)、汉语(ZH)、日语(JA)、印地语(HI)和土耳其语(TR)。对于每种语言,我们都以BIO格式显示话语,后跟插槽标签。这些话语的意图是 flight 的意图。
表1:MultiATIS++语料库的数据统计。九种语言的训练(train)、验证(dev)和测试集都提供了语言和标记(中文和日文字符)的数量。还提供了(添加BIO标记之前)的入口和插槽总数。
4 跨语言NLU
4.1 联合意图检测与槽填充
继Liu和Lane之后,我们联合建模意图检测和插槽填充。我们在输入序列
x
=
(
x
1
,
x
2
,
…
,
x
T
)
x= (x_1, x_2,…, x_T)
x=(x1,x2,…,xT) 的长度
T
T
T,遵循Devlin et al.(2019)。接下来,使用编码器
Θ
e
n
c
Θ_{enc}
Θenc 生成一个上下文化表示序列
h
0
…
T
h_{0…T}
h0…T,给定输入序列:
对于意图检测,我们将
x
0
x_0
x0 对应的表示
h
0
h_0
h0 作为序列表示,并应用线性变换和softmax函数来预测意图概率:
对于插槽填充,我们使用
h
1
…
T
h_{1…T}
h1…T表示计算每个插槽的概率:
我们探索了两种不同的编码器模型:
- LSTM:我们使用双向LSTM (Schuster and Paliwal,1997)的前向和后向隐藏状态的串联作为编码器表示。我们随机初始化编码器和嵌入。
- 多语BERT:我们使用多语BERT在无监督的方式下预先训练,用于连接104种语言的单语语料库。我们将顶层的隐藏状态作为编码器表示,并在NLU数据上对模型进行微调。
4.2 槽位标签投影问题
过去的工作表明,使用MT系统可以有效地提高跨语言NLU的性能。更具体地说,首先使用MT系统将英语训练数据翻译成目标语言;然后将槽位标签从英语投射到目标语言。之前的工作使用统计MT模型的词对齐或神经MT模型的注意力权重来预测槽标签。在目标语言上的最终表现在很大程度上取决于槽投影的质量。Jain等人指出,提高投影质量可以显著提高跨语言命名实体识别的目标性能。然而,这些改进是以使用工程特性的更复杂和昂贵的投影过程为代价的。
为了解决上述问题,我们提出了一个软对齐模型,该模型使用一个额外的注意模块执行端到端槽对齐和识别(图2),因此它不需要外部槽投影过程。此外,我们还表明,软槽对齐可以通过构建在多语言BERT的强编码器表示之上来加强。
图2:用于端到端槽对齐和识别的软对齐模型的体系结构。模型在没有外部标签投影的情况下进行训练:学习将目标话语的表示与源槽标签软对齐,并联合预测意图和槽标签。虚线表示推理过程中的路径,在这里我们直接将编码器模块连接到意图和槽分类层,对目标话语进行预测。
4.3 注意模块端到端槽对齐和识别
给定一个长度
S
S
S 的源语言片段
s
1
…
S
s_{1…S}
s1…S 和它在目标语言中的长度为
T
T
T 的翻译
t
1...
T
t_{1...T}
t1...T ,模型学习预测目标槽标签,并通过注意将其与源标签软对齐。首先,它将源语言片段编码成一个embedding序列
e
1
…
S
(
s
r
c
)
e^{(src)}_{1…S}
e1…S(src),然后把翻译序列
t
0
…
T
t_{0…T}
t0…T($t_0 $作为分类标记被插入)编码为上下文化表示序列
h
0
…
T
(
t
g
t
)
=
Θ
e
n
c
(
t
0
…
T
)
h^{(tgt)}_{0…T}= Θ_{enc} (t_{0…T})
h0…T(tgt)=Θenc(t0…T),其中
Θ
e
n
c
Θ_{enc}
Θenc 表示编码器。在意图分类方面,我们假设翻译后的话语与源语的话语具有相同的意图。因此我们使用表示
h
(
t
g
t
)
h(tgt)
h(tgt) 来计算意图概率。
以及源语中给定意图标签(src)的意图分类损失:
对于插槽填充,我们引入了一个注意模块来连接源插槽标签
y
1...
S
(
s
r
c
)
y^{(src)}_{1...S}
y1...S(src)和目标序列
t
1...
T
t_{1...T}
t1...T 首先,我们计算每个源位置的隐藏状态作为目标表示的加权平均值:
其中,
z
i
z_i
zi 是源位置
i
i
i 处的隐藏状态,
a
i
j
a_{ij}
aij 是源词
s
i
s_i
si 和翻译词
t
j
t_j
tj 之间的注意权重。为了计算权重
a
i
j
a_{ij}
aij,我们首先线性投影查询向量
e
i
(
s
r
c
)
e^{(src)}_i
ei(src) 和键向量
h
j
(
t
g
t
)
h^{(tgt)}_j
hj(tgt),并使用可学习的参数和维度。然后我们对投影查询和关键向量执行缩放点积注意:
其中投影
W
Q
W^Q
WQ 和
W
K
W^K
WK 为参数矩阵,
τ
\mathcal τ
τ 为控制softmax函数温度的超参数。
接下来,我们使用隐藏状态
z
i
z_i
zi 计算源位置的槽概率:
以及给定槽标签
y
1
…
S
(
s
r
c
)
y^{(src)}_{1…S}
y1…S(src),对源语言的片段:
此外,为了改进注意模块以更好地对齐源语和目标语,我们添加了一个由位置前馈和线性输出层组成的重构模块,利用注意模块输出重建源语言片段。我们计算在位置
i
i
i 的源词汇表的概率分布为:
而重建损失为:
最终的训练损耗为
L
=
L
i
n
t
e
n
t
+
L
s
l
o
t
+
L
r
e
c
\mathcal L= \mathcal L_{intent} + \mathcal L_{slot} + \mathcal L_{rec}
L=Lintent+Lslot+Lrec。
经验表明,在机器翻译的目标数据上使用目标 L \mathcal L L 联合训练模型,与在有监督目标的源数据上使用目标 L \mathcal L L 联合训练模型都是有益的。
注意和重建模块只在训练期间使用。在推理过程中,我们直接输入编码器表示
h
0
…
T
(
t
g
t
)
h^{(tgt)}_{0…T}
h0…T(tgt) 对目的语话语的意图层和槽层进行分类: