崔一鸣,车万翔,刘挺,秦兵,王士进,胡国平论文作者

EMNLP 2019 跨语言机器阅读理解

论文名称:Cross-Lingual Machine Reading Comprehension

论文作者:崔一鸣,车万翔,刘挺,秦兵,王士进,胡国平

原创作者:崔一鸣

下载链接:https://arxiv.org/abs/1909.00361

项目地址:https://github.com/ymcui/Cross-Lingual-MRC

1. 简介

虽然机器阅读理解研究得到了飞速发展,多数工作面向的是英文数据,而忽略了机器阅读理解在其他语言上的表现,其根本原因在于大规模训练数据的缺失。在这篇论文中,我们提出跨语言机器阅读理解Cross-Lingual MachineReading Comprehension,CLMRC)任务来解决非英文下的机器阅读理解。首先我们给出了若干传统方法来实现跨语言机器阅读理解,其中包括一些零资源(zero-shot)方法。紧接着我们创新地提出了Dual BERT模型,对<篇章,问题>在双语环境中建模,同时利用富资源语言来帮助低资源语言下的机器阅读理解。我们在两个中文机器阅读理解数据集上验证得知该方法能够显著提升低资源下的机器阅读理解效果,为未来低资源下的机器阅读理解提供了一种解决方案。

2. 动机

机器阅读理解Machine Reading Comprehension, MRC)是让机器阅读文本材料并回答与文本相关问题的一个任务,在近些年受到了广泛的关注和研究。从早期的填空型阅读理解、篇章片段抽取型阅读理解,到现在的对话型阅读理解、多段推理阅读理解,我们可以看到相关的数据集不断涌现,与之配套的神经网络模型也层出不穷。但尽管这个领域的研究如此活跃,多数的工作建立在英文机器阅读理解任务上而忽略了在其他语种上的表现,其主要原因在于大规模训练数据的缺失。

为了进一步提升其他语种上的机器阅读理解效果,在本文中我们提出了跨语言机器阅读理解任务。首先我们给出了基于回译(Back-Translation)的跨语言阅读理解方法来解决目标语言没有训练数据的情况。对于目标语言存在一定的训练数据时,我们创新地提出了Dual BERT模型来进一步借用富资源语言(例如:英文)的训练数据来帮助低资源语言下的机器阅读理解效果。该模型能够对<篇章,问题>在双语环境中建模,并且最终融合成一种统一的语义表示,进而得到更加精准的答案预测。

本文的主要贡献:

1)提出了跨语言机器阅读理解任务来进一步提升低资源语言下的机器阅读理解系统效果

2)提出了Dual BERT模型,对输入文本和问题在双语环境中建模,进一步丰富了语义表示

3)所提出的Dual BERT模型在两个中文机器阅读理解数据集上获得state-of-the-art效果

3. 基于回译的方法

3.1 术语

我们将介绍在本文中最重要的两个术语:

  • 源语言:具有大规模的语料资源的语种。我们需要从该语种的资源中抽取出丰富的知识。下文中使用上标S来代表源语言变量。
  • 目标语言:希望优化系统性能的语种,即目标系统的语种。该语种没有可用或仅有少量的语料资源。下文中使用上标T来代表目标语言变量。

在本文中,我们将利用英文(源语言)数据来提升中文(目标语言)机器阅读理解系统效果。

3.2 任务

本文所提出的方法具有良好的通用性,可适配多种机器阅读理解任务。为了更加明确的介绍我们的方法,在本文中将着重解决基于篇章片段抽取的机器阅读理解(Span-Extraction MRC),这也是目前在该领域中研究最为广泛的任务之一。该任务需要对<篇章,问题>进行建模,并从篇章中抽取出一个连续的片段作为答案。最广为熟知的是由斯坦福大学提出的SQuAD(Stanford Question Answering Dataset)数据集。

3.3 方法

在本节中,我们简要介绍几种基于回译的跨语言机器阅读理解方法。

3.3.1 GNMT + 简单匹配

使用翻译系统来实现跨语言机器阅读理解是很直接的方法(Asai et al., 2018)。其流程可以简要归纳为(如图1左):

1)将目标语言输入<篇章,问题>翻译成源语言

2)通过源语言的阅读理解系统得到一个源语言的答案

3)将源语言答案回译为目标语言

在本文中,我们使用的是谷歌NMT系统(Google Neural MachineTranslation,GNMT)。但这里会有一个问题:经过回译的答案不一定是原文中的某个精准片段。Asai等人提出使用NMT的注意力机制将源语言答案映射到目标语言。在本文中,我们提出一种简单匹配(SimpleMatch)的方法来替代该方案:利用滑动窗口在目标语言篇章中进行滑动,窗口大小为len(Atrans)±δ,其中δ∈[0,5]为松弛变量,因为我们假定翻译出的答案Atrans与真实答案之间的长度应该基本相近。这样,对比Atrans,我们从这些窗口中选取一个字级别F1值最高的窗口作为最终的预测C。通过实验证明,在日语和法语的SQuAD数据上该方法效果更优(感兴趣的读者请阅读论文的5.3节)。

3.3.2 答案对齐器

如果目标语言有一定量的训练数据,那么我们可以进一步提升答案对齐的效果。将对齐后的答案C与目标语言篇章P输入到BERT中,并以目标语言真实答案作为目标进行训练,就可以得到答案对齐器(Answer Aligner)。其示意图如图1中所示。

3.3.3 答案验证器

在答案对齐器的基础上进一步加入目标语言问题Q,即可成为答案验证器(Answer Verifier)。因为该模型相比仅使用目标语言数据<P, Q>多了一个对齐后的答案C,相当于验证C是否与<P,Q>相容。

图1 基于回译的跨语言机器阅读理解方法(左:GNMT,中:答案对齐器,右:答案验证器)

4. Dual BERT

接下来我们介绍Dual BERT,适用于目标语言存在一定的训练数据的情况。

4.1 双通道编码器

在本文中我们使用BERT作为文本表示模型。对于给定的目标语言篇章PT和问题QT,BERT的输入XT可以表示为

同理,利用GNMT系统,我们可以将目标语言数据翻译成源语言,从而获得源语言输入XS。经过BERT编码后,分别获得目标语言表示BT和源语言表示BS(大小均为batch*length*hidden_size)。

4.2 双语解码器

为了将源语言表示融合到目标语言表示中,我们提出了一种自适应注意力机制Self-Adaptive Attention, SAA)。SAA基于Transformer中的Multi-head Attention,其中包含Dot Attention的计算。在原始的Dot Attention中,Attention矩阵计算为

我们修改为

在Multi-head Attention中将ATS替换为A~TS即可。该操作的目的是,在BT和BS计算注意力之前,首先让BT和BS先对自身进行Self-attention计算,过滤掉相对无用的部分,然后再计算两者之间的注意力,从而进一步提升注意力计算的精准度。

接下来我们即可得到Attended表示R’,并进一步通过残差连接(Residual Connection)和层归一化(Layer Normalization)获得最终的表示HT

最终我们利用HT计算目标语言上的开始和结尾指针并计算对应的交叉熵损失。

图2 基于Dual BERT的跨语言机器阅读理解方法

4.3 辅助损失

我们同时对源语言进行预测并计算对应的交叉熵Laux作为辅助损失。最终的损失函数为,其中λ∈[0,1]为比例系数。

在本文中,我们采用了一种动态计算的机制,取代了手工设定λ值。由于源语言样本是经过翻译得来的,存在一定的信息缺失。我们希望如果翻译的质量很高,那么辅助损失就越可靠;反之则希望辅助损失不要影响到主损失LT。基于这个思想,我们计算通过计算<源语言答案表示,目标语言答案表示>的余弦相似度来决定λ值。这两个表示计算如下,

即每一个表示由开始节点、结尾节点对应的BERT表示以及答案片段的表示拼接而成。感兴趣的读者可阅读源代码进一步了解具体的计算方法。

5. 实验

5.1 数据集

我们在两个公开的篇章片段抽取型(Span-Extraction)中文机器阅读理解数据集验证了我们的方法,其中包括CMRC 2018(简体中文),DRCD(繁体中文)。数据集相关统计信息如表1所示。关于实验设置在这里不再赘述,请参考论文中的5.1节。

表1 CMRC 2018和DRCD数据集的统计信息

5.2 实验结果

整体实验结果如表2所示,我们可以得出一些主要结论:

1)基于回译的系统中,简单匹配能够带来显著性能提升;在有一定训练数据的情况下,答案验证器和答案验证器能够进一步带来性能提升;

2)采用源语言预训练的模型对目标语言的机器阅读理解系统有显著性能提升;

3)Dual BERT的双语建模能够在上述基础上带来进一步的性能提升。

表2 CMRC 2018和DRCD数据上的整体结果

5.3 消融实验

为了进一步了解各个模块所带来的提升,我们在Dual BERT (w/ SQuAD) 模型上进行了消融实验,其结果如表3所示。我们可以看到去掉SQuAD预训练(倒数第一行)或者退化为连续训练(Cascade Training,即不使用双语建模)会显著降低模型效果,说明与数据相关的组件对于整体性能影响最大。其他的组件,例如辅助损失、自适应注意力(SAA),均会带来一定的性能下降,但不及数据相关的组件,说明在跨语言机器阅读理解中需要重点思考如何有效地利用数据。

表3 Dual BERT模型上的消融实验结果

6. 讨论

在上述的实验中,我们使用了英文数据来提升中文机器阅读理解系统的效果。但这里有一个实际的问题需要深入讨论:

假设我们的目标是提升简体中文机器阅读理解系统的效果,那么在源语言的选择上应该选用具有大规模数据的远距离语种(例如:英文SQuAD),还是应该选用具有小规模数据的近距离语种(例如:繁体中文DRCD)?

为了探究这个问题,我们使用了不同源语言及大小的训练数据进行预训练,观测下游简体中文机器阅读理解系统(CMRC 2018)的效果变化。相关结果如图3所示,其中横轴代表源语言训练数据的规模,纵轴代表平均评价指标(EM和F1的平均值)。

图3 目标语言系统在不同源语言及预训练数据大小下的效果变化

由此我们可以得出如下结论:

1)在数据量差异不大的情况下,无需根据语种的远近选择源语言数据;

2)在数据量差异较大的情况下,应首要考虑源语言数据的规模而非语种的远近。从上图的例子中可以看出,虽然英文(相比繁体中文)与简体中文相对较远,但其规模更大,可以对简体中文系统带来进一步性能提升。

7. 结论

在本文中,我们提出了跨语言机器阅读理解任务。对于目标语言没有训练数据的情况,我们提出了若干个零资源方法将源语言系统迁移至目标语言。对于目标语言有少量训练数据的情况,我们创新地提出了Dual BERT,利用了源语言的大规模训练数据进行预训练,同时使用Multilingual BERT将<篇章,问题,答案>在双语空间中建模,进一步丰富了文本的语义表示。实验结果证明所提出的方法能够显著提升低资源语种的机器阅读理解系统效果,同时也为未来跨语言机器阅读理解研究提供了基线系统。

哈工大SCIR
哈工大SCIR

哈尔滨工业大学社会计算与信息检索研究中心

理论EMNLP 2019机器阅读理解
2
相关数据
刘挺人物

哈工大人工智能研究院副院长,国内NLP方向领军人物。

交叉熵技术

交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

层归一化技术

深度神经网络的训练是具有高度的计算复杂性的。减少训练的时间成本的一种方法是对神经元的输入进行规范化处理进而加快网络的收敛速度。层规范化是在训练时和测试时对数据同时进行处理,通过对输入同一层的数据进行汇总,计算平均值和方差,来对每一层的输入数据做规范化处理。层规范化是基于批规范化进行优化得到的。相比较而言,批规范化是对一个神经元输入的数据以mini-batch为单位来进行汇总,计算平均值和方法,再用这个数据对每个训练样例的输入进行规整。层规范化在面对RNN等问题的时候效果更加优越,也不会受到mini-batch选值的影响。

F1值技术

为了能够评价不同算法的优劣,在Precision和Recall的基础上提出了F1值的概念,来对Precision和Recall进行整体评价。F1的定义如下: F1值 = 正确率 * 召回率 * 2 / (正确率 + 召回率)

暂无评论
暂无评论~