机器阅读理解综述

主要内容

  • 一、Introduction
  • 二、Tasks & Evaluation Metrics
  • 三、General Architecture
  • 四、Methods
  • 五、New Trends

参考论文:

《Neural Machine Reading Comprehension:Methods and Trends》

正文

一、Introduction

机器阅读理解(MRC)是一项任务,用于测试机器通过要求机器根据给定的上下文回答问题来理解自然语言的程度。早期的MRC系统是基于规则的,性能非常差。随着深度学习和大规模数据集的兴起,基于深度学习的MRC显著优于基于规则的MRC。常见的MRC任务可以分为四种类型:完形填空、多项选择、片段抽取、自由回答。一般的MRC架构由以下几个模块组成:Embedding、Feature Extraction、Context-Question Interaction、Answer Prediction。另外,考虑到目前方法的局限性,MRC出现了新的任务,比如,knowledge-based MRC, MRC with unanswerable questions, multi-passage MRC,conversational question answering

figure1.png

Figure 1: The number of research articles concerned with neural MRC in this survey.

二、Tasks & Evaluation Metrics</span>

2.1 Tasks

2.1.1 Cloze Test

给定上下文C,从中移除一个词或实体A(A \in C),完形填空任务要求模型通过学习函数F使用正确的词或实体进行填空,函数F可以表示为A=F(C-\{A\}),即问题(移除某个词的上下文)与答案的映射。

数据集:CNN & Daily Mail 、CBT、LAMBADA、Who-did-What、CLOTH、CliCR


Cloze Tests.jpg
2.1.2 MUltiple Choice

在给定上下文C,问题Q和候选答案列表A=\{A_1,A_2,··,A_n\}的情况下,多项选择任务是通过学习函数FA(A_i\in A)中选择正确的答案A_i,使得A_i=F(C,Q,A)

数据集:MCTest、RACE


Multiple Choice.jpg

Figure 3: A example of Multiple Choice datasets.

2.1.3 Span Extraction

尽管完形填空和多项选择一定程度上可以机器阅读理解的能力,但是这两个任务有一定的局限性。首先,单词或实体可能不足以回答问题,需要完整的句子进行回答;其次,在很多情形是没有提供候选答案的。所以片段抽取任务应运而生。

给定包含有n个单词的上下文C,即C=\{t_1,t_2,\cdots,t_n\},与问题Q,片段抽取任务要求模型学习函数F,来从C中抽取连续的子序列A=\{t_i,t_{i+1},\cdots,t_{i+k}\}(1 \leq i+k \leq n)做为问题Q的正确答案,即A=F(C,Q)

数据集:SQuAD、NewsQA、TriviaQA、DuoRC


Span Extraction.jpg

Figure 4: A example of Span Extraction datasets.

2.1.4 Free Answering

对于答案局限于一段上下文是不现实的,为了回答问题,机器需要在多个上下文中进行推理并总结答案。自由回答任务是四个任务中最复杂的,也更适合现实的应用场景。

给定上下文C和问题Q,自由应答任务中的正确答案A在原始上下文C中不一定是子序列,即A\in CA\notin C。该任务要求通过学习函数F来预测正确答案A,即A=F(C,Q)

数据集:bAbI、MS MARCO 、SearchQA、NarrativeQA、DuReader


Free Answering.jpg

Figure 5: A example of Free Answering datasets.

2.2 Evaluation Metrics

对于不同的MRC任务,有不同的评估指标。一般有Accuracy,F1 Score,ROUGE-L,BLEU

2.2.1 Accuracy

当给定一个问题集Q=\{Q_1,Q_2,\cdots,Q_m\}m个问题时,如果模型正确地预测了n(n<m)个问题的答案,那么Accuracy计算如下:

Accuracy=\frac{n}{m}.\tag{1}

Accuracy指标一般用于Cloze TestMultiple Choice任务。

2.2.2 F1 Score

F1 Score是分类任务中常用的度量标准。在MRC方面,候选答案和参考答案都被视为标记袋,真阳性(TP)、假阳性(FP)、真阴性(TN)和假阴性(FN)如Table1所示。

Table 1: The definition of true positive (TP), true negative (TN), false positive (FP), false negative(FN).


Table 1.jpg

精确率(precision)召回率(recall) 计算如下:

precision=\frac{TP}{TP+FP}.\tag{2}

recall=\frac{TP}{TP+FN}.\tag{3}

F1 Score,是精确率和召回率的调和平均值:

F1=\frac{2\times P\times R}{P+R}.\tag{4}

其中PprecisionRrecall,分别表示召回率和准确率。。

2.2.3 ROUGE-L

ROUGE (Recall-Oriented Understudy for Gisting Evaluation)是一种用于评估自动摘要好坏的指标,它有多种变体,其中ROUGE-L广泛用于MRC任务,用于衡量候选答案和参考答案的相似性,“L”表示最长公共子序列(LCS),其计算如下:

R_{lcs}=\frac{LCS(X,Y)}{m}.\tag{5}

P_{lcs}=\frac{LCS(X,Y)}{n}.\tag{6}

F_{lcs}=\frac{(1+\beta)^{2}R_{lcs} P_{lcs}}{P_{lcs}+\beta ^{2}P_{lcs}}.\tag{7}

其中,X是长度为m个词的真实答案,Y是长度为n个词的预测答案,LCS(X,Y)表示XY的最长公共子序列的长度,所以R_lcs和​,P_lcs分别表示召回率和准确率,\beta用于控制指标的准确率和召回率的重要程度。

2.2.4 BLEU

BLEU(Bilingual Evaluation Understudy),被广泛用于评价翻译的表现(可以通俗的理解为两个句子的相似度)。当适应MRC任务时,BLEU评分衡量预测答案和真实答案之间的相似性。其计算方法如下:

P_n(C,R)=\frac{\sum_i \sum_k min(h_k(c_i),max(h_k(r_i)))}{\sum_i \sum_k h_k(c_i)}.\tag{8}

其中h_k(c_i)等于第k个n-gram出现在候选答案c_i中的个数,同理,h_k(r_i)等于第k个n-gram出现在参考答案r_i中的个数。

当预测的候选答案较短时,P_n(C,R)值较高,这种精度不能很好地衡量相似性。因此引入惩罚因子BP来缓解这种情况,即BP用来惩罚较短的预测答案,计算公式如下:

BP=\begin{cases} 1,l_c>l_r\\ e^{1-\frac{l_r}{l_C}}\\ \end{cases}.\tag{9}

最后,BLEU score 计算如下:

BLEU=BP\cdot exp(\sum_{n=1}^{N}w_n logP_n).\tag{10}

三、General Architecture</span>

典型的MRC系统以上下文和问题为输入,然后输入答案,系统包含四个关键模块:Embeddings, Feature Extraction, Context-Question Interaction,Answer Prediction。

  • Embeddings:将单词映射为对应的词向量,可能还会加上POS、NER、question category等信息;
  • Feature Extraction:抽取question和context的上下文信息,可以通过CNN、RNN等模型结构;
  • Context-Question Interaction:context和question之间的相关性在预测答案中起着重要作用。有了这些信息,机器就能够找出context中哪些部分对回答question更为重要。为了实现该目标,在该模块中广泛使用attention机制,单向或双向,以强调与query相关的context的部分。为了充分提取它们的相关性,context和question之间的相互作用有时会执行多跳,这模拟了人类理解的重读过程。
  • Answer Prediction:基于上述模块获得的信息输出最终答案。因为MRC任务根据答案形式分为了很多种,所以该模块与不同任务相关。对于完形填空,该模块输出context中的一个单词或一个实体;对于多项选择,该模块从候选答案中选择正确答案。
Figure 6.jpg

Figure 6: The general architecture of machine reading comprehension system.

四、Methods</span>

以下是对MRC系统四大关键模块所使用的方法的介绍。

Figure 7.jpg

Figure 7: Typical techniques in neural MRC systems.

4.1 Embeddings

Embeddings模块将单词转换为对应的向量表示。如何充分编码context和question是本模块中的关键任务。在目前的MRC模型中,词表示方法可以分为传统的词表示和预训练上下文表示。为了编码更丰富的语义信息,MRC系统在原来的词级别表示的基础上,还会融合字向量、POS、NER、词频、问题类别等信息。

(1) Conventional Word Representation

  • One-Hot:向量长度为词表大小,只有单词的位置为1,其它全0,这种表示方法无法表示两个单词之间的关系;
  • Distributed Word Representation:将单词编码为连续的低维向量,如word2vec、glove;

(2) Pre-Trained Contextualized Word Representation

尽管分布式词表示可以在编码低维空间中编码单词,并且反映了不同单词之间的相关性,但是它们不能有效地挖掘上下文信息。具体来说,就是词的分布式表示在不同上下文中都是一个常量。为了解决这个问题,研究学者提出了上下文的词表示,在大规模数据集预训练,直接当做传统的词表示来使用或者在特定任务finetune。

  • CoVE:利用大规模语料训练Seq2Seq模型,将Encoder的输出拿出来作为CoVE。
  • ELMo:在大规模文本语料预训练双向语言模型,特征抽取模块为LSTM。
  • GPT:采用单向的Transformer在大规模语料上预训练;
  • BERT:采用双向的Transformer在大规模语料上预训练,目标任务为masked language model (MLM)和next sentence prediction(NSP)。

(3) Multiple Granularity

Word2Vec或GloVe预先训练的词级嵌入不能编码丰富的句法和语言信息,如词性、词缀和语法,这可能不足以进行深入的机器理解。为了将细粒度的语义信息整合到单词表示中,一些研究人员引入了不同粒度的上下文和问题编码方法。

  • Character Embeddings:与词级表示(word-level representations)相比,它们不仅更适合于子词形态的建模,而且可以缓解词汇表外(OOV)问题。
  • Part-of-Speech Tags:词性(POS)是一类特殊的语法词汇,如名词、形容词或动词。在NLP任务中标记POS标签可以说明单词使用的复杂特征,进而有助于消除歧义。为了将POS标签转换成固定长度的向量,将POS标签作为变量,在训练过程中随机初始化并更新。
  • Name-Entity Tags:名称实体是信息检索中的一个概念,是指一个真实世界中的对象,如一个人、一个地点或一个组织,它有一个合适的名称。当询问这些对象时,名称实体可能是候选答案。因此,嵌入上下文单词的名称实体标记可以提高答案预测的准确性。名称实体标签的编码方法类似于上述POS标签的编码方法。
  • Binary Feature of Exact Match (EM):如果context中的一个单词在query中存在,那么值为1,否则为0;
  • Query-Category:问题的类型(what,where,who,when,why,how)通常可以提供线索来寻找答案。
4.2 Feature Extraction

特征提取模块通常放置在嵌入层之后,分别提取上下文和问题的特征。它进一步关注基于嵌入模块所编码的各种句法和语言信息在句子层次上挖掘上下文信息。该模块采用了RNNs、CNNs和Transformer architecture。

4.2.1 Recurrent Neural Networks

在问题方面,双向RNNs的特征提取过程可以分为两类:词级(word-level)句子级(sentence-level)

  • 在词级编码中,在第j个时间步处嵌入的问题x_{qj}的特征提取输出可以表示为:

Q_j=[\overrightarrow{RNN}(x_{qj});\overleftarrow{RNN}(x_{qj})].\tag{11}

其中,\overrightarrow{RNN}(x_{qj})\overleftarrow{RNN}(x_{qj})分别表示双向rnn的前向和后向隐藏状态,该特征提取过程下图所示:

Figure 8.jpg

Figure 8: Word-level encoding for questions.

  • 相比之下,句子级编码将疑问句视为一个整体。特征提取过程可以表示为:
Figure 9.jpg

Figure 9: Sentence-level encoding for questions.

Q=[\overrightarrow{RNN}(x_{q|l|});\overleftarrow{RNN}(x_{q0})].\tag{12}

其中,|l|表示问题的长度,\overrightarrow {RNN}(x_{q|l|})\overleftarrow {RNN}(x_{q0})分别表示双向rnn的前向和后向的最终输出。

因为MRC任务中的上下文通常是一个长句子,所以研究者一般使用词级特征提取法来编码上文信息。和问题在词级编码中类似,在第j个时间步处嵌入的上下文x_{pj}的特征提取输出可以表示为:

P_i=[\overrightarrow{RNN}(x_{pi});\overleftarrow{RNN}(x_{pi})].\tag{13}

4.2.2 Convolution Neural Networks

CNNs广泛应用于计算机视觉领域。应用于NLP任务时,一维cnn在利用滑动窗口挖掘局部上下文信息方面显示出其优越性。在CNNs中,每个卷积层应用不同尺度的特征映射来提取不同窗口大小的局部特征。然后将输出反馈到池化层以降低维数,但最大程度地保留最重要的信息。图10显示了特征提取模块如何使用CNN挖掘问题的本地上下文信息。

Figure 10.jpg

Figure 10: Using CNNs to extract features of question.

如上图所示,给定一个问题x_q \in \mathbb{R}^{|l| \times d}的词嵌入,其中|l|代表问题的长度,d代表词嵌入的维度,图中卷积层有两个过滤器,带有k个输出通道(图中k=2),大小为f_{t}\times d(\forall{t}=2,3),每个过滤器产生一个形状为(|l|-t+1)\times{k}的feature map,该feature map进一步池化为一个k维向量。最终,两个过滤器产生的feature map经过池化后的两个k维向量连接为一个2k维的向量,用Q表示。

尽管n-gram模型和CNNs都可以关注句子的局部特征,但n-gram模型中的训练参数随着词汇量的增加呈指数增长。相比之下,无论词汇量大小如何,CNNs都可以更紧凑、更有效地提取局部信息,因为CNNs不需要表示词汇量中的每一个n-gram。此外,CNNs可以并行训练15次,比RNNs快。CNNs的一个主要缺点是只能提取局部信息,不能处理长序列。

4.2.3 Transformer

Transformer是一个强大的神经网络模型,在各种NLP任务中显示出了良好的性能。与基于RNN或cnn的模型相比,该模型主要基于注意机制,既没有递归,也没有卷积。多个头部的注意力结构不仅在对齐方面有优势,而且可以并行运行。与RNNs相比,Transformer需要更少的训练时间,同时它更关注全局依赖性。但是,如果没有递归和卷积,模型就不能利用序列的位置信息。为了整合位置信息,Transformer添加由正弦和余弦函数计算的位置编码。位置和字嵌入的总和作为输入。图10展示了Transformer架构。在实际应用中,模型通常采用多头自关注和前馈网络来叠加多个块。

Figure 11.jpg

Figure 11: Using the Transformer to extract features of question.

4.3 Context-Question Interaction

通过提取context和question之间的相关性,模型能够找到答案预测的证据。根据模型是如何抽取相关性的方式,目前的工作可以分为两类,一跳交互和多条交互。无论哪种交互方式,在MRC模型中,attention机制在强调context哪部分信息在回答问题方面更重要发挥着关键作用。在机器阅读理解中,attention机制可以分为无向和双向的。

4.3.1 Unidirectional Attention

单向的attention主要是根据问题关注context中最相关的部分。如果context中的单词与问题更相似,那么该单词更可能是答案。通过计算公式S_i=f(P_i,Q)得到context中的单词与question的相似度,其中f(\cdot)表示计算相似度的函数,P_i是context中的单词的embedding,Q是question的句子表示,最后通过softmax进行权重归一化,获得上下文中每个词的注意力权重\alpha_i:

\alpha_i=\frac{expS_i}{\sum_{j}expS_j}\tag{14}

Figure 12.jpg

Figure 12: Using unidirectional attention to mine correlation between the context and question.

不同的模型对f(\cdot)有不同的选择,一般有以下两种:

S_i=tanh(W_{P}P_{i}+W_{Q}Q.\tag{15}

S_i=Q^{T}W_{S}P_{i}.\tag{16}

其中,W_P,W_Q,W_S是训练可得的参数。

单向的attention可以关注context中最重要的词来回答问题,但是该方法无法关注对答案预测也至关重要的question的词。因此,单向的attention不足以抽取context和query之间的交互信息。

4.3.2 Bidirectional Attention

同时计算query-to-context attention和context-to-query attention

图13显示了计算Bidirectional Attention的过程。首先,通过计算上下文语义嵌入P_i和问题语义嵌入Q_j之间的匹配分数,得到成对匹配矩阵M(i,j)。然后,column-wise SoftMax函数的输出可以被视为query-to-context注意力的权重,用\alpha表示,row-wise SoftMax函数的输出表示context-to-query注意力权重\beta

Figure 13.jpg

Figure 13: Using bidirectional attention to mine correlation between the context and question.

4.3.3 One-Hop Interaction

单跳交互是一种浅层架构,上下文和问题之间的交互只计算一次。虽然这种方法可以很好地处理简单的完形填空测试,但当问题需要在上下文中对多个句子进行推理时,这种单跳交互方法很难预测正确答案。

4.3.4 Multi-Hop Interaction

Multi-Hop Interaction可以记住之前的context和question信息,能够深度提取相关性并聚合答案预测的证据。

4.4 Answer Prediction

该模块与任务高度相关,之前我们将MRC分为四类,分别是完形填空、多项选择、片段抽取、自由回答,那么对应的答案预测方法也有四种,分别是word predictor,option selector,span extractor,answer generator。

4.4.1 Word Predictor

完形填空要求模型预测单词或实体进行填空,该单词或实体来自给定的context。这方面的工作有Attentive Reader、Attention Sum Reader。

4.4.2 Option Selector

对于多选任务,模型从候选答案列表中选择一个正确答案。很普遍的做法是衡量attentive context representations和候选答案表示之间的相似度,选择相似度最高的作为预测答案。

4.4.3 Span Extractor

片段抽取任务是完形填空任务的扩展,要求模型从context中抽取一个子串,而不是一个单词。目前的工作有Sequence Model、Boundary Model。

4.4.4 Answer Generator

自由回答任务中答案不再局限于context中的一个片段,而是需要根据context和question合成答案。目前的工作有S-Net。

4.5 Additional Tricks

4.5.1 Reinforcement Learning
4.5.2 Answer Ranker
4.5.3 Sentence Selector

实际上,如果给MRC模型一个很长的文档,那么理解全部上下文来回答问题是很费时的。但是,事先找到问题中最相关的句子是加速后续训练过程的一种可能方法。有研究学者提出了sentence selector来选择回答问题需要的最小句子集合。

五、New Trends</span>

5.1 Knowledge-Based Machine Reading Comprehension

有时候,我们只根据context是无法回答问题的,需要借助外部知识。因此,基于外部知识的MRC应运而生。KBMRC和MRC的不同主要在输入部分,MRC的输入是context和question,而KBMRC的输入是context、question、knowledge。

Table 2: Some Examples in KBMRC

Table 2.jpg

目前KBMRC的主要挑战在于:

  • Relevant External Knowledge Retrieval

知识库中存储着各种各样的知识,实体有时可能因为多义词而产生误导,例如,“苹果”可以指水果或公司。抽取与上下文和问题密切相关的知识决定了基于知识的答案预测的性能。

  • External Knowledge Integration

与语境中的文本和问题相比,外部知识库中的知识有其独特的结构。如何对这些知识进行编码,并将其与上下文和问题的表示结合起来,仍然是一个正在进行的研究挑战。

5.2 Unanswerable Questions

有一个潜在的假设就是MRC任务中正确答案总是存在于给定的上下文中。显然这是不现实的,上下文覆盖的知识是有限的,存在一些问题是无法只根据上下文就可以回答的。因此,MRC系统应该区分这些无法回答的问题。

Table 3: Unanswerable question example in SQuAD 2.0

Table 3.jpg

关于不可回答的问题,相比传统的MRC,在该新任务上又有新的挑战:

  • Unanswerable Question Detection

模型应该知道它不知道的东西。在通过文章理解问题和推理之后,MRC模型应该根据给定的上下文判断哪些问题是不可能回答的,并将它们标记为不可回答的。

  • Plausible Answer Discrimination

为了避免假答案的影响,MRC模型必须验证预测的答案,并从正确的答案中说出可信的答案。

5.3 Multi-Passage Machine Reading Comprehension

在MRC任务中,相关的段落是预定义好的,这与人类的问答流程矛盾。因为人们通常先提出一个问题,然后再去找所有相关的段落,最后在这些段落中找答案。因此研究学者提出了multi-passage machine reading comprehension,相关数据集有MS MARCO、TriviaQA、SearchQA、Dureader、QUASAR。

5.4 Conversational Question Answering

MRC系统理解了给定段落的语义后回答问题,问题之间是相互独立的。然而,人们获取知识的最自然方式是通过一系列相互关联的问答过程。比如,给定一个问答,A提问题,B回复答案,然后A根据答案继续提问题。这个方式有点类似多轮对话。

转载请注明如下内容:

文章来源:https://wumingyao.github.io/2020/04/11/Machine-Reading-Comprehension-introduce/
github: https://github.com/wumingyao
简书: Anunnaki
CSDN: 吴明耀の博客

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355