Cross-Lingual Machine Reading Comprehension
论文:https://arxiv.org/abs/1909.00361
代码:https://github.com/ymcui/Cross-Lingual-MRC
任务
- 虽然机器阅读理解研究得到了飞速发展,多数工作面向的是英文数据,而忽略了机器阅读理解在其他语言上的表现,其根本原因在于大规模训练数据的缺失。本文提出跨语言机器阅读理解(Cross-Lingual MachineReading Comprehension,CLMRC)任务来解决非英文下的机器阅读理解。
- 本文所提出的方法具有良好的通用性,可适配多种机器阅读理解任务。在本文中将着重解决基于篇章片段抽取的机器阅读理解(Span-Extraction MRC),这也是目前在该领域中研究最为广泛的任务之一。该任务需要对<篇章,问题>进行建模,并从篇章中抽取出一个连续的片段作为答案。最广为熟知的是由斯坦福大学提出的SQuAD(Stanford Question Answering Dataset)数据集。
- 利用英文(源语言)数据来提升中文(目标语言)机器阅读理解系统效果。
方法(模型)
主要贡献:
- 提出了跨语言机器阅读理解任务来进一步提升低资源语言下的机器阅读理解系统效果
- 提出了Dual BERT模型,对输入文本和问题在双语环境中建模,进一步丰富了语义表示
- 所提出的Dual BERT模型在两个中文机器阅读理解数据集上获得state-of-the-art效果
Back-Translation Approaches
- 源语言:具有大规模的语料资源的语种。我们需要从该语种的资源中抽取出丰富的知识。下文中使用下标S来代表源语言变量。
- 目标语言:希望优化系统性能的语种,即目标系统的语种。该语种没有可用或仅有少量的语料资源。下文中使用下标T来代表目标语言变量。
本文利用英文(源语言)数据来提升中文(目标语言)机器阅读理解系统效果。
several back-translation approaches
GNMT
(Google Neural MachineTranslation,GNMT)
使用翻译系统来实现跨语言机器阅读理解是很直接的方法,主要流程(Figure1 left):
- 将目标语言输入<篇章,问题>翻译成源语言
- 通过源语言的阅读理解系统得到一个源语言的答案
- 将源语言答案回译为目标语言
**存在问题:**经过回译的答案不一定是原文中的某个精准片段。
解决方法:
Simple Match
利用滑动窗口在目标语言篇章中进行滑动,假设翻译出的答案与真实答案长度基本相似,由此计算出候选span和翻译答案的F1-score,从这些窗口中选取一个字级别F1-score最高的窗口作为最终的预测答案C。使用所提出的SimpleMatch可以确保预测的答案是目标段落中的精确跨度。
Answer Aligner
Figure 1 middle
如果目标语言有一定量的训练数据,那么可以进一步提升答案对齐的效果。将对齐后的答案C与目标语言篇章P输入到BERT中,并以目标语言真实答案作为目标进行训练,就可以得到答案对齐器(Answer Aligner)。
Answer Verifier
Figure 1 right
在答案对齐器的基础上进一步加入目标语言问题Q,即可成为答案验证器(Answer Verifier),使用翻译答案验证正确性。
Dual BERT
适用于目标语言存在一定的训练数据的情况。
模型结构:
Dual Encoder
本文使用BERT作为文本表示模型,对于给定的目标语言篇章
P
T
P_T
PT?和问题
Q
T
Q_T
QT?,BERT的输入
X
T
X_T
XT?可以表示为:
[
C
L
S
]
?
Q
T
?
[
S
E
P
]
?
P
T
?
[
S
E
P
]
[CLS] \ Q_T \ [SEP]\ P_T\ [SEP]
[CLS]?QT??[SEP]?PT??[SEP] 利用GNMT系统,可以将目标语言数据翻译成源语言,从而获得源语言输入
X
S
X_S
XS?。经过BERT编码后,分别获得目标语言表示
B
T
B_T
BT?和源语言表示
B
S
B_S
BS?。
Bilingual Decoder
双语解码器
为了将源语言表示融合到目标语言表示中,提出了一种自适应注意力机制(Self-Adaptive Attention, SAA)。
在原始Attention矩阵计算:
A
T
S
=
B
T
?
B
S
T
A_{T S}= B_T· B_S^\mathsf{T}
ATS?=BT??BST? 修改后:
A
T
=
s
o
t
m
a
x
(
B
T
?
B
T
T
)
A_{T}= sotmax(B_T· B_T^\mathsf{T})
AT?=sotmax(BT??BTT?)
A
S
=
s
o
t
m
a
x
(
B
S
?
B
S
T
)
A_{S}= sotmax(B_S· B_S^\mathsf{T})
AS?=sotmax(BS??BST?)
A
^
T
S
=
A
T
?
A
T
S
?
A
S
T
\hat{A}_{T S}= A_T· A_{TS}·A_S^\mathsf{T}
A^TS?=AT??ATS??AST?
该操作的目的是,在
B
T
B_T
BT?和
B
S
B_S
BS?计算注意力之前,首先让
B
T
B_T
BT?和
B
S
B_S
BS?先对自身进行Self-attention计算,过滤掉相对无用的部分,然后再计算两者之间的注意力,从而进一步提升注意力计算的精准度。
得到Attended表示
R
’
R’
R’后,并进一步通过残差连接(Residual Connection)和层归一化(Layer Normalization)获得最终的表示
H
T
H_T
HT?。
R
’
=
s
o
f
t
m
a
x
(
A
^
T
S
)
?
B
S
R’=softmax(\hat{A}_{TS})·B_S
R’=softmax(A^TS?)?BS?
R
=
W
r
R
′
+
b
r
R = W_rR'+ b_r
R=Wr?R′+br?
H
T
=
c
o
n
c
a
t
[
B
T
,
L
a
y
e
r
N
o
r
m
(
B
T
+
R
)
]
H_T= concat[B_T, LayerNorm(B_T+ R)]
HT?=concat[BT?,LayerNorm(BT?+R)]
最终利用
H
T
H_T
HT?计算目标语言上的开始和结尾指针并计算对应的交叉熵损失。
Auxiliary Output
辅助损失
同时对源语言进行预测并计算对应的交叉熵
L
a
u
x
L_{aux}
Laux?作为辅助损失。最终的损失函数为
L
=
L
T
+
λ
L
a
u
x
L=L_T+\lambda L_{aux}
L=LT?+λLaux?,其中λ∈[0,1]为比例系数。源语言是经过翻译得到的,存在一定的信息缺失,
λ
\lambda
λ为动态计算,控制辅助损失对主损失的影响。
数据集
两个篇章片段抽取型(Span-Extraction)中文机器阅读理解数据集
CMRC 2018(简体中文)
DRCD(繁体中文)
性能水平
实验结果:
- 基于回译的系统中,简单匹配能够带来显著性能提升;在有一定训练数据的情况下,答案验证器和答案验证器能够进一步带来性能提升
- 采用源语言预训练的模型对目标语言的机器阅读理解系统有显著性能提升
- Dual BERT的双语建模能够在上述基础上带来进一步的性能提升
结论
阅读理解系统性能提升:
在两个中文机器阅读理解数据集上验证得知该方法能够显著提升低资源下的机器阅读理解效果,为未来低资源下的机器阅读理解提供了一种解决方案。
|