程序员

神经机器阅读理解综述

2019-08-29  本文已影响0人  是小橙子呀

本文参考了陈丹琦博士的毕业论文《Neural Reading Comprehension and Beyond》以及国防科技大的神经机器阅读理解综述《Neural Machine Reading Comprehension: Methods and Trends》,便于了解神经阅读理解的背景知识、基于深度网络的阅读理解模型和未来的研究趋势。

1、背景知识

机器阅读理解是指让机器根据给定的文本回答与文本相关的问题,来衡量机器对自然语言的理解能力。由于过去的数据集规模较小,多采用基于规则的传统方法,因此机器阅读理解系统发展受限,不能满足需求。后来随着深度学习的发展与,学者们提出了神经阅读理解模型,即利用深度学习完成机器阅读理解任务,相比于传统的机器阅读理解,这类方法更擅长挖掘文本的上下文语义信息,模型效果显著提升。

2、模型

机器阅读理解模型一般由四个模块组成,分别是嵌入编码(Embeddings)、特征提取(Feature Extraction)、文章-问题交互(Context-Question Interaction)和答案预测(Answer Prediction)。

机器阅读理解模型图

嵌入编码:将模型的输入(自然语言形式的文章和问题)编码成固定维度的向量,方便计算机后续处理。

特征提取:接收由嵌入编码层编码得到的文章和问题的词向量表示,对其进行处理,抽取更多的上下文信息。常用于这一模块中的神经网络模型有循环神经网络(RNN)、卷积神经网络(CNN)和基于多头自注意力机制的Transformer 结构。

文章-问题交互:机器可以利用文章和问题之间的交互信息来推测出文章中哪些部分对于回答问题更为重要,为了实现这一目标,文章-问题交互模块常用单向或双向的注意力机制来强调原文中与问题更为相关的部分。同时,为了更深层次的挖掘文章和问题之间的关系,两者之间的交互过程有时可能会执行多次,以此来模拟人类在进行阅读理解时重复阅读的行为。

答案预测:这一模块基于前述三个模块累积得到的信息进行最终的答案预测。

3、常见任务

阅读理解任务可以表述为一个监督学习问题,即给定一组训练实例,目标是学习一个预测器,该预测器以一段文本和一个对应的问题作为输入,生成答案作为输出。根据生成答案类型的不同,现有的阅读理解任务可以分为以下四类:

3.1 完形填空类型(Cloze style)

 任务定义:

  给定文章,将其中的一个词或者实体隐去作为待填空的问题,完形填空任务要求通过最大化概率来选择正确的词或者实体进行填空。类似于英语考试中的完形填空,原文中的某个词被隐去,答案是从一组预定义的候选集中选择,或者从一个完整的词汇表中选择。

评估指标:

  评估答案的准确性,由于答案是从一小组假设答案中选择的,所以可以计算系统给出正确答案的问题的百分比。但是由于这一任务的答案限定为原文中的一个词或实体,所以并不能很好的测试机器对自然语言的理解能力,并且与实际应用相距较远。

3.2 多项选择类型(Multiple choice)

任务定义:

  给定文章、问题 和一系列候选答案集合,多项选择任务通过最大化条件概率来从候选答案集合中挑选出正确答案回答问题。正确答案可以是一个单词,一个短句或者是一句话,并且给出的假设答案中只有一个是正确的。

评估指标:

  评估答案的准确性,通过计算系统给出正确答案的问题的百分比。该任务要求从备选答案中选出正确答案,模型的搜索空间相对较小,对自然语言理解的测试较为局限,提供备选答案与实际应用场景不太相符。

3.3 范围预测类型(Span prediction)

任务定义:

  该类型任务也被称为抽取式回答(Extractive question answering)。给定文章和问题,该任务通过最大化概率来从文章中抽取连续的子序列作为问题的正确答案。即从原文中抽取出一个连续的句子(或词组)作为问题的答案。

评估指标:

  将机器预测的答案与正确答案进行比较,采用精确匹配和F1得分这两种评估指标。精确匹配(Exact match)是指如果预测的答案等于正确答案,则情却匹配将分配满分1.0分,否则将分配0.0分。F1得分计算预测答案和正确答案之间单词重叠的平均数。为了使评估更可靠,通常针对每个问题会收集多个正确答案。因此,精确的匹配分数只需要匹配任何一个正确答案,而F1得分是计算所有正确答案的最大值,然后对所有问题求平均值。该任务的答案限定于原文中的子片段,相比于多项选择任务,有了更大的搜索空间,也在一定程度上能测试机器对自然语言的理解能力。

3.4 自由形式作答类型(Free-form answer)

任务定义: 

 给定文章、问题,自由形式作答的正确答案有时可能不是文章的子序列,即或者 。该任务通过最大化条件概率来预测回答问题 的正确答案 。该答案可以是任意形式的文本,即任意长度的单词序列,与范围预测任务相比,自由形式作答任务的答案不再限制于原文中的句子,更符合人们平时的作答习惯。

评估指标:

该类任务目前没有最理想的评价指标,仍需更深入的研究。一种常见的评估方法是使用在自然语言生成任务中使用的标准评估指标,如BLEU,Meteor,Rouge等。自由作答任务答案形式非常灵活,能很好的测试机器对自然语言的理解,与现实应用最为贴近。

4 可改进的方面

      现有的大部分机器阅读理解的工作只注重准确性,对模型的速度和可扩展性、鲁棒性和可解释性关注较少,而这些方面对未来的工作也非常重要。

速度和可扩展性:如何构建更快的模型(用于训练和推理),以及如何扩展到更长的文档,这些都是需要研究的重要方向。建立更快的训练模型可以降低实验的周转时间,还可以使我们在更大的数据集上进行训练。在实际应用中部署模型时,为推理构建更快的模型非常有用。为了提升模型的速度和可扩展性,可以训练学习跳过部分文档的模型。这样他们就不需要阅读所有内容。这些模型可以运行得更快,同时仍然保持类似的性能。也可以使用transformer或者更轻的non-recurrent模型取LSTMs。还可以选择合适的优化算法,提升收敛速度。

鲁棒性:现有的模型对于对抗性例子来说是非常脆弱的,因此很难在现实世界中部署这些模型。此外,目前的大多数工作都遵循标准范例:对一个数据集的分割进行训练和评估。众所周知,如果我们在一个数据集上训练我们的模型,并在另一个数据集上进行评估,由于它们的文本来源和构造方法不同,性能将显著下降。对于今后的工作,我们需要考虑:1)如何创造更好的对抗训练示例并且将它们加入到训练过程中;2)对迁移学习和多任务学习进行更多深入的研究,建立跨数据集的高性能模型;3)我们可能需要打破监督学习的标准范式,并考虑如何创建更好的方法来评估我们当前的模型,以便构建更健壮的模型。

可解释性:在目前的系统中,可解释性一直是被忽略的。未来的系统不仅应该能够提供最终的答案,而且还应该提供这样预测的理由,这样用户就可以决定是否可以信任输出并利用它们。众所周知在神经网络中,端到端训练范式使这些模型像一个黑匣子,很难解释它们的预测。如果我们想将这些系统应用到医疗或法律领域,这一点尤其重要。为了解决这个问题,可以采用以下几种方法:1)要求模型学会从文档中提取输入片段作为支持证据。2)我们可以获得哪些训练资源来达到这种可解释性水平。从最终答案中推断出理论依据是可行的,但相当困难。我们应该考虑收集人类的解释作为未来培训理论的监督(标签)。

5、新的研究趋势

5.1 基于知识的机器阅读理解

  类比人类阅读理解的过程,当有些问题不能根据给定文本得出答案时,人们通常会利用尝试或者自身积累的背景知识进行作答。因此,一些学者提出了基于知识的机器阅读理解任务,引入额外的外部知识,以此提高机器预测答案的准确率。与以往任务不同,该任务的输入除了文章和问题,还有从外部知识库中抽取的知识。该任务目前面临着两个主要挑战:1)如何检索相关的外部知识;2)如何将知识库中结构化的知识和非结构化的文本进行融合。

5.2 多文档机器阅读理解

  传统的机器阅读理解任务中,文章是预先给出的,然后再根据文章提出问题,这与实际应用情况不符。人们在进行问答时,通常先提出一个问题,然后引经据典,利用相关的可用资源获取回答问题所需的线索。因此,学者们提出了多文档阅读理解任务,不在仅仅限定于一篇文章,而是要求机器根据多篇文章对问题进行作答。该任务可应用到大规模非结构化文本的开放域问答场景中。该任务目前面临的挑战:

1)如何从多篇文档中检索到与回答问题相关的文档;

2)如何减少噪声文档的干扰,一些文档中的答案与问题可能存在答非所问的情况;

3)检索得到的文档中没有答案;

4)存在多个可能答案;

5)回答问题的线索可能出现在多篇文档中,如何对其进行总结归纳得出正确答案。

5.3 对话式阅读理解

  传统的机器阅读理解任务中,所提的问题之间都是相互独立的,难以获得系统的知识。因此学者提出了对话式阅读理解任务,当给定一篇文章时,对文章进行多轮问答对话,即在得到答案的基础上提出另一个相关的问题,多次迭代。该任务面临的挑战:

1)如何有效利用历史对话信息,生成连贯的对话;

2)如何进行指代消解。

6 总结

  机器阅读理解任务在过去几年内取得了较大的进展,然而要达到真正的人的阅读理解水平还有很长的路要走。一个关键的挑战是,目前没有好的方法来达到更深层次的阅读理解—这些问题需要理解文本的推理和含义。通常这种情况发生在“如何”或“为什么”的问题上。在未来,学者们必须解决所讨论内容的基础科学问题以达到这种阅读理解的水平,而不仅仅是通过文本匹配来回答问题。

上一篇下一篇

猜你喜欢

热点阅读