Neural Machine Reading Comprehension: Methods and Trends
Summary
这篇综述十分详尽地介绍了机器阅读理解(MRC)问题的问题背景,以及经典的MRC,并将大体的模型架构分模块,对每个模块都进行了详尽的方法介绍。然而,我觉得这篇文章并没有涉及预训练语言模型在MRC问题当中的应用,实属可惜。
Introduction
在2015年CNN & Daily Mail数据集发布之后,机器阅读理解问题得以进行深度学习模型的训练。SQuAD数据集的发布更是加快了基于深度学习的机器阅读理解研究的发展。这一点,从15年到18年底这段时期机器阅读理解的研究论文的指数集增长便可以直观地体现出。
本综述的主要贡献包括:
- 把各种各样的MRC任务归类为四类:完形填空类、多项选择类、答案抽取类、自由问答类。为每一类任务都介绍了代表的数据集
- 介绍了基于深度学习的MRC系统的大体模型架构,详细提供每个模块中使用的主要技术的概述和摘要
- 揭示了MRC研究的一些新趋势,讨论了目前存在的挑战和有待解决的问题,希望能找到未来的研究方向,对其他研究者有所启发。
Tasks & Evaluation Metrics
Tasks
Cloze Test(完型填空类)
此类任务类似于常见于英语试题中的完形填空部分。问题是通过删除文章中的一些单词或者命名实体来产生的,要求机器在被删除的空白处填上所缺的单词。任务可以选择提供候选答案,或者不提供候选答案。此类任务的代表数据集有CNN/Daily。Multiple Choice(多项选择类)
此类任务类似于英语试题中的阅读理解部分。要求机器根据所提供的上下文从候选答案中选择问题的正确答案。与完形填空相比,多项选择题的答案并不局限于上下文中的单词或实体。但是,这个任务必须提供候选答案。此类任务的代表数据集有RACESpan Extraction(答案抽取类)
尽管完型填空类和多项选择类的任务可以在某些程度上衡量机器在自然语言理解的能力,但依旧有些缺陷。比如说,单纯的文字或实体不足以回答问题,在某些情况下,需要一个完整的句子来回答问题,而且有些实际情况下,提出的问题可能根本就没有相应的答案。那么答案抽取式的任务就可以很好地解决以上的问题。此类任务给定上下文和问题,要求机器从相应的上下文中提取一段文本作为答案,其次根据数据集的不同,有些任务可能存在一些问题从上下文中无法提取答案,则要求机器判断出“No answer”。此类任务的代表数据集有SQuAD、SQuAD2.0。Free Answering(自由问答类)
此类任务是MRC任务中最复杂的一个,给定上下文和问题,要求机器给出自己的解答,而且这个答案可能并不简单地是原文中的某个子串。此类任务的代表数据集有MS MARCO。其中MS MARCO数据集可以说是SQuAD数据集分布之后的又一个里程碑,MS MARCO数据集有四个主要的特征:一是所有的问题都是用户真实提出的;二是每个问题,都有10个由Bing搜索引擎得到的相关文档;三是问题对应的答案都是人为产生的,所以这些答案不仅仅是相关文档中的内容提取,而会包含对相关内容的研究和总结;四是由于是人为给出的答案,所以有可能有些答案是相矛盾的,这也更为机器的理解增添了难度。
不同任务的比较: 文章从construction, understanding, flexibility, evaluation and application五个方面对以上四类MRC任务做出了对比。
完形填空测试任务是最容易构建和评估数据集的。但是,由于填空的形式仅限于原始上下文中的单个单词或名称实体,所以完形填空不能很好地测试机器对自然语言的理解,与实际应用不符。多项选择题为每个问题提供候选答案,因此即使答案不局限于最初的上下文,也可以很容易地对它们进行评估。建立这个任务的数据集并不难,因为语言考试中的多项选择题很容易利用。然而,候选答案导致了合成数据集和实际应用之间的差距。相比之下,答案抽取式任务是一种适中的选择,因为数据集易于构造和评估。此外,它们可以在某种程度上测试机器对文本的理解。所有这些优点都有助于对这些任务进行大量的研究。答案抽取式任务的缺点是其结果受限于原始上下文的子序列,这与现实世界还有一定的距离。自由应答任务在理解性、灵活性和应用维度上表现出优越性,最接近于实际应用。然而,任何事物都有两面性。由于其答案形式的灵活性,在一定程度上很难构建数据集,如何有效地评估这些任务的性能仍然是一个独特的挑战。
Evaluation Metrics(评价指标)
针对完形填空类和多项选择类的问题常用accuracy也就是准确率,答案抽取类的问题常用Exact Match,精确匹配度,也就是预测结果和ground truth完全相同的比例。
另外,F1 Score也常被用于答案抽取类的任务当中。此时F1的TP、FP、TN、FN定义如下:
tokens in reference | tokens not in reference | |
---|---|---|
tokens in candidate | TP | FP |
tokens not in candidate | FN | TN |
precision = TP / (TP + FP),recall = TP/ (TP + FN),F1 = 2 PR / (P+ R)。相比于EM,F1的评判标准在预测结果和ground truth有所重叠的时候更为松弛。
而对于自由问答类的问题,常用BLEU(常用于MT等文本生成的任务当中)等评价指标进行评价。
General Architecture
目前,经典的基于深度学习的MRC模型主要包括以下几层模块:
- 嵌入模块:因为机器并不能直接理解自然语言,所有在几乎所有NLP任务当中都需要有一个嵌入模块吧输入的单词转换成定长的向量,来作为这个模型的输入。传统的词表征方法如one-hot或者word2vec以及这些方法和其他语言学特征的结合使用,通常会用来表征一个词当中的语义和句法信息。除此之外,最近由大规模语言预训练模型所得到的上下文词表征在编码上下文信息时也表现出显著的优越性。
- 特征提取模块:在嵌入模块把文章和问题作词嵌入之后接着输入到特征提取模块。为了更好理解文章和问题,这个模块旨在提取出更多的上下文信息,常用RNN或者CNN来进行提取。
- 文章-问题交互模块。文章和问题之间的一些相互关系信息在答案预测时常常有举足轻重的作用。这种相互关系的信息可以帮助机器确定文章中的哪一部分的内容是回答问题的关键。此阶段常常使用unidirection或者bidirection的attention机制来完成协同关系信息提取的任务。有时,为了比较完全地提取出文章和问题的相互关系信息,文章和问题之间的交互操作会进行多次,这也正是受到人类进行阅读理解是多次反复阅读来回答问题的经验所启发得出的一种技巧。
- 答案预测模块:答案预测模块是MRC系统当中的最后一个模块,用以估计文章和问题的输入最终输出对于问题答案的预测。这一模块的具体设计依赖于之前所述的不同的MRC任务。
Methods
从上述的四个模块分别详细介绍了这些模块可能使用的方法:
Embeddings
Embedding的方法有三种,分别是传统的词表征、预训练的上下文表征以及多粒度的联合表征。
- 传统的词表征包括One-Hot和Distributed Word Representation。
- 预训练的上下文表征则是由各类语言预训练模型所得到的表征,如CoVE、ELMo、GPT、BERT。
- 多粒度的联合表征是指word-level的嵌入不能够把丰富的语法、句法以及各类语言学信息完整地嵌入到向量当中,比如part-of-speech以及词缀等,那多粒度的联合表征就是从这些方面入手,把多个粒度的信息嵌入到联合表征当种,如Character Embeddings、Part-of-speech Tags、Name-Entity Tags、Binary Feature of Exact Match (whether a context word is in the question)、Query-Category(问题的种类)
Feature Extraction
这个特征提取模块通常位于EMbedding层之后,用于分别对文章和问题进行特征的提取。通常就是一个bi-LSTM、CNN或者Transformer。
- RNN模型:常用bi-LSTM训练得到word-level或者sentence-level(就是把两层LSTM各自最后一个单元的隐层向量拼接在一起),尽管RNNs的方法对于序列信息的获取十分有效,但是由于其不可并行性导致极其难以训练。
- CNNs模型:经典TextCNN得到整个句子的特征提取向量。优点是可以并行训练,且对于局部信息的提出非常精炼有效,但是对于长句子的特征提取能力十分有限。
- Transformer模型:Transformer主要依据attention机制,相比于RNN,此模型更容易训练,相比于CNN,此模型能更有效地提取出文本信息种的全局依赖性。QANet就是一个经典的基于Transformer的MRC模型。
Context-Question Interaction
通过提取文章和问题中的相互关系信息,MRC模型便能够从中挖掘出进行答案预测的线索。用于提取文章和问题的相互关系信息的模型可以分为one-hop和multi-hop。无论是哪种类型的交互模块,attention机制都起着至关重要的的作用。
MRC的attention机制可以分为unidirectional attention和bidirectional attention
- Unidirectional Attention
Unidirectional Attention通常是从问题到文章的一个attention操作,用于突出文章中和问题最相关的部分。通常是使用一个sentenc-level的embedding得到问题句子的嵌入向量,而后以此问题句子嵌入向量和文章中单词的词嵌入作attention操作:。然而这种方法忽略了问题句子中的单词对于答案预测的影响。所以unidirectional attention并不足以充分提取文章和问题之间的相关关系信息。 - Bidirectional Attention
那为了解决上述方法的缺点便引入了Bidirectional Attention即不仅仅做query-to-context的attention,同时也做context-to-query的attention,得到一个pair-wise的matching矩阵M(i,j)。M(i,j)有文章单词嵌入和问题单词嵌入计算。而后根据M矩阵做一个column-wise的softmax用于表示query-to-context的attention权重,row-wise的softmax表示context-to-query的attention权重。
Multi-Hop Interaction:one-hop的模型文章和问题之间的交互只做一次,不能够系统地理解问题和文章之间的相互信息,而导致不足以解决一些复杂的MRC问题,如从多个句子的文章中做答案的预测。因而便引出了multi-hop的交互。multi-hop的交互模块得益于先前文章和问题的记忆,能够深层次地提取出文章和问题的相互关系,从而得到进行答案预测的线索。
Answer Prediction
答案预测模块通常是MRC系统的最后一个模块,这个模块通常是根据不同任务的目标进行定义的,如先前提到的MRC的四类任务。
- Word Predictor:常见的做法是用query-aware的context表征去匹配词表或者候选集。
Option Selector:常见的做法是使用attentive的context表征和候选答案的表征进行相似度计算,并选出和context表征相似度最高的候选答案作为最终预测的答案。
Span Extractor:通常是用一个Boundary Model来预测答案的开始和结束的位置。
- Answer Generator:通常使用文本的生成模型进行答案文本的生成。
Other Tricks
Reinforcement Learning: 大部分的MRC模型只使用极大似然估计来进行训练时的目标决策。然而,这样的目标函数和实际的评价指标并没有直接的联系。这就可能会导致,一些和正确答案有重叠但又不是完全正确的预测结果被模型忽略了,而不能对模型的训练做出一些贡献。而且,当正确答案很长或没有明确的边界时,模型很难提取出完全正确的答案。但是,却不能直接用评价指标如EM、F1等作为目标函数,因为这些评价指标都是不可微分的,不能进行神经网络的训练。因此,Xiong et al.和 Hu et al.便提出使用强化学习的方法,将F1 score作为reward function,把极大似然估计的神经网络的训练和强化学习任务作为多任务学习的问题。除此之外,强化学习的方法也能被用在multi-hop的交互模块决定是否提交交互的进程,如ReasonNets
Answer Ranker: 通常的做法是先提取出一个答案的候选集,之后计算这个答案候选集中的候选答案和问题表征的相似度,选择相似度最大的候选答案作为最终答案。
- Sentence Selector: 通常,MRC问题的文章是一个非常长的文档,在这一整篇文档中寻找答案是一件非常耗时的事情。然而,找到最相关的句子可能会加速后续的训练过程。Min
et al.受此启发,提出了一个句子选择器,来得到真正对回答问题有用的句子最小集。具体来说,这个句子选择器是一个seq2seq的模型,encoder用于计算文章的句子和问题句子的encodings,decoder用来计算文章句子和问题句子的相似度。超过某个阈值的句子将作为最终MRC系统的输入。而且输入句子的数量会根据不同的问题动态选择。
New Trends
SQuAD2.0数据集当中包括了不可回答的问题。对于这些不可回答的问题,就出现了两个新的挑战:
- Unanswerable Question Detection:模型必须知道他们不知道什么。
- Plausible Answer Discrimination:模型必须能从貌似可行的答案中分辨出正确的答案
Open Issues
目前MRC模型还有待解决的问题包括以下几点:
- Lack of world knowledge
- Robustness of MRC systems
- Limitation of given context
- Lack of inference ability