机器阅读理解综述

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器阅读理解综述相关的知识,希望对你有一定的参考价值。

参考技术A

《Neural Machine Reading Comprehension:Methods and Trends》

机器阅读理解 (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

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

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

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

在给定上下文 ,问题 和候选答案列表 的情况下,多项选择任务是通过学习函数 从 中选择正确的答案 ,使得 。

数据集:MCTest、RACE

Figure 3: A example of Multiple Choice datasets.

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

给定包含有 个单词的上下文 ,即 ,与问题 ,片段抽取任务要求模型学习函数 ,来从 中抽取连续的子序列 做为问题 的正确答案,即 。

数据集:SQuAD、NewsQA、TriviaQA、DuoRC

Figure 4: A example of Span Extraction datasets.

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

给定上下文 和问题 ,自由应答任务中的正确答案 在原始上下文 中不一定是子序列,即 或 。该任务要求通过学习函数 来预测正确答案 ,即

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

Figure 5: A example of Free Answering datasets.

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

当给定一个问题集 有 个问题时,如果模型正确地预测了 个问题的答案,那么Accuracy计算如下:

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

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).

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

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

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

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

其中, 是长度为 个词的真实答案, 是长度为 个词的预测答案, 表示 和 的最长公共子序列的长度,所以 和​, 分别表示召回率和准确率, 用于控制指标的准确率和召回率的重要程度。

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

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

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

最后,BLEU score 计算如下:

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

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

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

Figure 7: Typical techniques in neural MRC systems.

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

(1) Conventional Word Representation

(2) Pre-Trained Contextualized Word Representation

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

(3) Multiple Granularity

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

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

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

其中, 和 分别表示双向rnn的前向和后向隐藏状态,该特征提取过程下图所示:

Figure 8: Word-level encoding for questions.

Figure 9: Sentence-level encoding for questions.

其中, 表示问题的长度, 和 分别表示双向rnn的前向和后向的最终输出。

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

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

Figure 10: Using CNNs to extract features of question.

如上图所示,给定一个问题 的词嵌入,其中 代表问题的长度, 代表词嵌入的维度,图中卷积层有两个过滤器,带有 个输出通道(图中 ),大小为 ,每个过滤器产生一个形状为 的feature map,该feature map进一步池化为一个 维向量。最终,两个过滤器产生的feature map经过池化后的两个 维向量连接为一个2 维的向量,用 表示。

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

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

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

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

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

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

不同的模型对 有不同的选择,一般有以下两种:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Table 2: Some Examples in KBMRC

目前KBMRC的主要挑战在于:

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

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

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

Table 3: Unanswerable question example in SQuAD 2.0

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

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

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

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

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

机器阅读理解(Neural Machine Reading Comprehension)综述,相关方法及未来趋势

Neural Machine Reading Comprehension:Methods and Trends

Author:Shanshan Liu , Xin Zhang , Sheng Zhang , Hui Wang , Weiming Zhang

PDF: https://arxiv.org/abs/1907.01118

0.写在前面:

机器阅读理解(MRC)需要机器回答基于给定上下文的问题,在过去几年里,随着各种深度学习技术的融合,它越来越受到关注。本文发表于2019年,主要从以下几个方面对该领域的研究进行了综述:(1)典型MRC任务的定义、差异和代表性数据集;(2)神经MRC的总体结构:主要模块和常用的方法;(3)新趋势:神经MRC的一些新兴领域及其面临的挑战。最后,考虑到迄今所取得的成就,调查还通过讨论有待解决的未决问题,展望了未来的前景。

总体结构图如下:

1. MRC任务简介:

机器阅读理解(MRC)是一项通过让机器回答基于给定上下文的问题来测试机器理解自然语言的程度的任务,它有可能彻底改变人类和机器之间的互动方式。具有MRC技术的搜索引擎可以直接以自然语言返回用户提出的问题的正确答案,而不是返回一系列相关的web页面。

2. MRC分类及相关数据集:

常见的MRC任务分为四种类型:cloze test, multiple choice, span extraction, free answer,相关研究随时间变化趋势如下图。

2.1 Cloze Tests

完形填空测试(Cloze test),也叫空白填空测试(gap-filling test),通常用于评估学生的语言能力的考试中。受此启发,这项任务被用来衡量机器理解自然语言的能力。在完形填空测试中,问题是通过从文章中删除一些单词或实体而产生的。为了回答问题,一个人被要求用缺失的项目填空。有些任务提供候选答案,但这是可选的。完形填空给阅读增加了障碍,需要理解上下文和词汇的使用,对机器阅读理解具有挑战性。

2.2 Multiple Choice

多项选择是另一个受语言能力考试启发的机器阅读理解题。它要求根据所提供的上下文从考生中选择正确的答案。与完形填空相比,多项选择题的答案不局限于上下文中的单词或实体,因此答案形式更加灵活,但本次任务要求考生提供答案。

2.3 Span Extraction

虽然完形填空和多项选择可以在一定程度上衡量机器理解自然语言的能力,但这些任务都有局限性。更具体地说,词汇或实体不足以回答问题。相反,需要一些完整的句子。而且,很多情况下都没有合适的答案。跨度提取任务可以克服这些弱点。给定上下文和问题,这个任务要求机器从相应的上下文中提取一段文本作为答案。

2.4 Free Answering

与完形填空和多项选择题相比,跨度提取任务在允许机器给出更灵活的答案方面取得了很大的进步,但这还不够,因为在限定的语境范围内给出答案仍然是不现实的。要回答这些问题,机器需要对文本的多个片段进行推理,并总结证据。在这四个任务中,自由回答是最复杂的,因为它的答题形式没有限制,更适合真实的应用场景。

2.5 MRC datasets



2.6 Comparison of Different Tasks

这五个维度的分数因不同的任务而不同。更具体地说,构建数据集和评估完形填空测试是最容易的。然而,由于答案形式在原始上下文中仅限于单个单词或名称实体,完形填空测试不能很好地测试机器的理解能力,也不符合实际应用。多项选择题会为每个问题提供考生的答案,这样即使答案不局限在原来的语境中,也可以很容易地进行评估。由于语言考试中的多项选择题很容易使用,因此构建数据集并不难。然而,候选答案导致了合成数据集和现实应用之间的差距。相反,跨度提取任务是一个适度的选择,数据集可以很容易地构建和评估。此外,在某种程度上,它们还可以测试机器对文本的理解能力。所有这些优点都有助于对这些任务进行大量的研究。跨度提取的缺点是将答案限制在原始上下文的子序列中,这与现实世界仍然有一些距离。自由回答的优势体现在理解、灵活和应用三个维度上,这些维度与实际应用最为接近。然而,任何事物都有两面性。由于答案形式的灵活性,构建数据集有些困难,如何有效地评估这些任务的性能仍然是一个挑战。

3. 神经MRC主要架构

神经MRC主要划分为四个模块,embeddings, feature extraction, context-question interaction 以及answer prediction 。

3.1 Embedding

嵌入模块是MRC系统的重要组成部分,通常放置在系统的开始部分,将输入的自然语言词编码成固定长度的向量,机器可以理解和处理这些向量。

3.1.1 传统单词表示

主要包括 one-hot 和Distributed Word Representation两种,one-hot使用二进制向量表示单词,它的大小与字典中的单词数相同。在这些向量中,一个位置是1表示对应单词,而其他所有位置都是0。作为一种早期的词汇表示方法,它可以在词汇量不是很大的情况下对词汇进行编码。然而,这种表示是稀疏的,会导致维度爆炸。Distributed Word Representation常见的有Word2Vec和GloVe[,对词之间的相关性具有很好的表示。

3.1.2 预训练的上下文相关的单词表示

预先用大型语料库进行训练,然后直接作为传统的词汇表征或根据特定任务进行微调。这是一种迁移学习,在包括机器阅读理解在内的一系列自然语言处理任务中表现出了良好的性能。即使是一个简单的神经网络模型也可以很好地使用这种预先训练好的单词表示方法进行答案预测。

常见的主要有CoVE,ELMo,GPT,BERT等。

3.2 Feature Extraction

特征提取所用的结构主要有CNN,RNN以及Transformer

3.3 Context-question interaction

主要分为单跳(one-hop)和多跳交互(multi-hop )

单跳交互是一种较浅的体系结构,其中上下文和问题之间的交互只计算一次。早期的上下文-查询交互在许多MRC系统中是一种单跳结构。与单跳交互相比,多跳交互要复杂得多;它试图通过多次计算上下文和问题之间的交互来模拟人类的重读现象。

3.4 Answer Prediction

针对四种不同的阅读理解任务,此处答案预测方法也分为四种与任务对应,Word Predictor,option selector, span extractor, and answer generator。

3.5 Additional Tricks

以上为一些典型的深度学习方法,但还有一些额外的技巧,如强化学习、答案排序器和句子选择器,这些都不能包含在通用MRC体系结构中。然而,这些技巧也有助于提高性能。

强化学习可以看作是MRC系统的一种改进方法,它不仅可以缩小优化目标与评估指标之间的差距,而且可以动态地决定是否停止推理。有了强化学习,即使某些状态是离散的,模型也可以被训练并提炼出更好的答案。使用答案排序器可以在一定程度上提高答案预测的准确性。句子选择器目标为找到回答一个问题所需的最小句子集,从而提高精度和效率。

4. 评估方法

对于不同的MRC任务,有不同的评估指标。在评估完形填空题和多项选择题时,最常用的衡量标准是准确率(Accuracy)。在跨度提取方面,使用精确匹配(EM)和F1-score来衡量模型的性能。由于自由回答题的答案不受原语境的限制,故广泛使用ROUGE-L和BLEU来评估。

5. 未来趋势

  1. Knowledge-Based Machine Reading Comprehension

  2. Machine Reading Comprehension with Unanswerable Questions

  1. Multi-Passage Machine Reading Comprehension

  1. Conversational Machine Reading Comprehension

6. 结语

目前的MRC模型虽然在某些给定的任务上已经超过了人类,但是还有很多的不足之处,如鲁棒性不足,可解释性差,推理能力的不足等等,表明机器并非具有真正的阅读理解能力,未来还将进行更加深入的研究探讨。

以上是关于机器阅读理解综述的主要内容,如果未能解决你的问题,请参考以下文章

机器阅读理解(Neural Machine Reading Comprehension)综述,相关方法及未来趋势

机器阅读理解(Neural Machine Reading Comprehension)综述,相关方法及未来趋势

重磅综述 | 神经网络机器学习的数学理解

[人工智能-综述-4]:白话深度学习-- 无基础小白都能理解机器学习的核心概念

[转]目标检测入门之综述(上)

视频理解综述:动作识别时序动作定位视频Embedding