【NLP】第 1 章 :机器阅读理解简介

 大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流

个人主页-Sonhhxg_柒的博客_CSDN博客 

欢迎各位→点赞 + 收藏⭐️ + 留言​

系列专栏 - 机器学习【ML】 自然语言处理【NLP】  深度学习【DL】

​​

 foreword

✔说明⇢本人讲解主要包括Python、机器学习(ML)、深度学习(DL)、自然语言处理(NLP)等内容。

如果你对这个系列感兴趣的话,可以关注订阅哟

文章目录

抽象的

关键词

1.1 机器阅读理解任务

1.1.1 机器阅读理解的历史

1.1.2 机器阅读理解的应用

1.2 自然语言处理

1.2.1 自然语言处理现状

1.2.2 存在的问题

1.3 深度学习

1.3.1 深度学习的特点

1.3.2 深度学习成果

1.4 机器阅读理解评价

1.4.1答题形式

1.4.2 以回忆为导向的要点评估替补:评估自由式答案的指标

1.5 机器阅读理解数据集

1.5.1 单段数据集

1.5.2 多段落数据集

1.5.3 基于语料库的数据集

1.6 如何制作机器阅读理解数据集

1.6.1 文章和问题的生成

1.6.2 正确答案的产生

1.6.3 如何构建高质量的机器阅读理解数据集

1.7 总结


抽象的

机器阅读理解(MRC)是一种使用算法使计算机能够理解文章语义并回答相关问题的技术。由于文章和问题都是人类语言的形式,MRC属于自然语言处理(Natural Language Processing,NLP)范畴,是最新最热门的课题之一。近年来,随着机器学习特别是深度学习的发展,对MRC的研究取得了长足的进步,并在各种应用中崭露头角。

本文将在NLP和深度学习的背景下介绍MRC的概念。然后,我们将讨论 MRC 和相关数据集的评估。

关键词

自然语言处理;深度学习;机器阅读理解;人类平等

1.1 机器阅读理解任务

自计算机问世以来,我们就梦想让机器获得人类水平的智能。在各种形式的智能中,理解语言是人类生活中必不可少的,包括日常交流、概念描述和思想传播。举个著名的例子,艾伦·图灵在 1950 年提出的图灵测试将对话作为人工智能的重要标准。

机器阅读理解(MRC)是语言理解中最重要的任务之一。Snow将阅读理解定义为“通过交互从书面文本中提取和构建文章语义的过程”。MRC的目标是利用人工智能技术,让计算机像人类一样理解文章。

1.1.1 机器阅读理解的历史

MRC 的历史可以追溯到 20 世纪 70 年代,当时研究人员开始认识到文本理解在人工智能中的重要性。第一个阅读理解系统 QUALM于 1977 年提出。该系统建立在手写脚本的基础上,专注于阅读理解的语用问题,包括它与问题回答的关系。

20 年后,1999 年发布了一个包含 3-6 年级学生约 120 个故事的阅读理解数据集,以及基于规则的模型 Deep Read。该模型利用低级语言特征,可以在问答中达到 30%–40% 的准确率。

2013 年,MRC 问题被正式定义为监督学习任务:给定一段文章和一个相关问题,模型应以要求的格式给出答案。随着像 McTest 和 ProcessBank 这样更大的数据集的出现,许多机器学习模型被提出。这些方法中的大多数都利用了语言工具,例如作为依赖解析器和命名实体识别来获取特征并建立统计模型以最大化生成答案的正确概率。

从 2015 年开始,绝大多数 MRC 算法都建立在深度学习和深度神经网络之上。这些方法利用其巨大的模型复杂性来准确地表征语义空间并获得更高的答案准确性。此外,这些模型通常不需要手动设计的功能。相反,可以从数据中自动学习强大且可概括的特征表示。这大大减少了对专家知识和下游语言工具的依赖。深度学习模型的成功也与SQuAD、RACE、MS MARCO等各种大规模MRC数据集的出现密切相关。在本书中,我们将主要关注基于深度学习的 MRC 模型。

1.1.2 机器阅读理解的应用

随着各行各业产生的海量文本数据,传统的人工处理数据方式速度慢、成本高,已成为众多应用的瓶颈。因此,能够自动处理和分析文本数据并从中提取语义知识的MRC技术越来越受欢迎。

例如,传统的搜索引擎只能返回与用户查询相关的文档,而MRC模型可以精确定位文档中的答案,从而提高用户体验。MRC在产品文档中寻找用户问题的解决方案时,也可以大大提高客户服务的效率。在医疗智能领域,阅读理解模型可以分析患者的症状,自动查阅海量病历和文献,找出可能的病因并做出诊断。MRC可以帮助学生修改作文并提出改进建议,让学生随时随地提高写作能力。

因此,在需要自动处理和分析大量文本的场景中,MRC 可以帮助节省大量的人力和时间。即使阅读理解模型的质量没有完全达到人类的水平,也可以通过解决一部分问题空间来节省成本。例如,在客户服务中,计算机可以专注于以高精度解决最常见的问题,同时求助于人工代理解决剩余的问题。由于在各个领域的广泛应用,MRC已经成为人工智能前沿研究的热门方向之一。

1.2 自然语言处理

MRC是自然语言处理(NLP)中的一个重要方向。NLP 分析人类语言的模式和结构,目的是设计计算机模型来理解语言并与人类交流。NLP的历史可以追溯到人工智能的诞生。几十年来,我们在 NLP 的许多领域取得了巨大的进步,例如理解和生成,这为 MRC 研究奠定了坚实的基础。因此,在本节中,我们将介绍 NLP 研究的现状及其对 MRC 的影响。

1.2.1 自然语言处理现状

NLP 已经发展了 70 多年,该领域有许多细化的子任务。下面介绍一下与MRC相关的那些重要研究方向:

  1. 信息检索研究如何在海量文档或网页中查找与用户查询相关的结果。信息检索的研究相对成熟,广泛应用于搜索引擎等产品中。极大地促进了信息的传播和获取。当阅读理解任务涉及大规模文本语料库时,信息检索通常被用作提取相关信息的第一个模块。
  2.  问答系统建立一个自动回答用户问题的系统。问答系统与信息检索系统的区别在于,问答系统需要理解复杂问题的语义,并且通常支持多轮问答。在会话阅读理解任务中,模型应该分析文章和前几轮对话中的信息来回答问题。
  3.  文本分类是指对文章、段落和陈述进行分类的任务,例如按内容和主题对网页进行分类。在 MRC 中,一些模型构建了一个文本分类模块来检查问题是关于时间、位置还是其他类别的信息。这有助于提高答案的准确性。
  4.  机器翻译研究如何让计算机自动将文本翻译成其他语言。这可以应用于跨语言阅读理解任务。例如,我们可以使用机器翻译从流行语言生成训练数据,以训练低资源语言的 MRC 模型。
  5. 文本摘要研究如何在缩略版本中总结文章的显着信息。由于文本摘要涉及对文章语义的深入分析,因此其许多技术已应用于 MRC,包括编码器-解码器架构和指针-生成器网络。

1.2.2 存在的问题

尽管我们在许多 NLP 任务上取得了令人瞩目的成就,但仍有许多问题尚未得到很好的解决,包括对语言结构和语义的理解。许多这些未解决的问题也与 MRC 密切相关。

1.2.2.1 语言的歧义

语言的特点之一就是可以用简洁的语句表达复杂的思想。因此,句子中存在歧义是很常见的,即有许多合理的解释。这里有些例子。

示例 1:The fish is ready to eat.

这可能意味着鱼可以开始进食或可以将鱼提供给某人吃。歧义来自对鱼的主题角色的不同解释:它是“吃”动作的代理人还是病人。

示例 2:David solved the problem too.

没有上下文,很难确定“too”指的是什么事实。可能是其他人解决了问题,而 David 也解决了。也可能是 David 设计了问题并解决了它。

示例 3: I saw a man on the hill with a telescope.

The telescope could be in my hand (which I used to see the man) or with the man (I saw the man and his telescope),因为两者在语法规则下都是有效的。

这些只是语言歧义的众多例子中的一部分。即使是人类,也很难判断说话者的真实意图。但是,如果有足够的上下文信息,则可以消除大部分歧义。例如,如果厨师在晚饭前说“鱼可以吃了”,我们就知道这道菜可以吃了。

尽管如此,许多 NLP 模型仍然难以理解上下文的语义。通过分析各种模型在 MRC 等任务上的结果,研究人员发现现有模型在很大程度上依赖于关键字或短语匹配,这极大地限制了它们理解上下文和处理歧义的能力。

1.2.2.2 常识和推理能力

在许多情况下,人类可以在没有明确解释的情况下从对话中推理得出结论。这是客户通过客户服务预订机票的示例对话:

代理人:您好,请问有什么可以帮到您?

顾客:我想订五月初从旧金山飞往纽约的机票。

代理人:好的,你想什么时候飞?

顾客:嗯,我要去纽约参加一个会议,时间是 4 号到 7 号。

代理人:好的,这是5月3日从旧金山到纽约的直飞航班信息,...

在这里,客户没有直接回答代理商关于出发日期的问题。相反,他给出了他将参加的会议的开始和结束日期。由于航班必须在会议开始前到达纽约,代理人推断出发日期为5月3日。如果客户还需要从纽约返回旧金山的航班,代理人应提供有关航班信息。 5 月 7 日晚上或 5 月 8 日。

因此,自动客户服务模型需要从之前的对话中推断出出发日期等信息。这种推论要求模型具有航班必须在会议之前到达目的地的常识。

近年来,人们在将常识和推理应用于 NLP 方面做出了很多努力。然而,如何为模型配备大规模常识并进行有效推理仍然是一个悬而未决的问题。

1.3 深度学习

深度学习是目前人工智能领域最热门的研究领域之一。基于深度学习的模型在图像识别、语音识别、NLP 和许多其他应用中发挥着重要作用。现在绝大多数 MRC 模型也是基于深度学习的。因此本节将描述深度学习的特点和成功的用例。

1.3.1 深度学习的特点

为什么深度学习作为机器学习的一个分支,能够从众多方向中脱颖而出?有以下几个重要的原因。

首先,大多数深度学习模型都具有较大的模型复杂度。深度学习基于人工神经网络(ANN),而ANN的特点之一是其模型规模可控:即使输入维度固定,也可以通过调整网络层数来调节模型参数的数量,连接数和层大小。因此,深度学习可以很容易地增加模型的复杂性,从而更有效地利用海量数据。同时,研究表明,深度学习模型的准确性可以随着数据量的增加而增加。随着 MRC 领域的不断发展,越来越多的数据集出现,使得深度学习成为阅读理解中最常见的机器学习架构。

二、深度学习具有强大的特征学习能力. 在机器学习中,模型的性能很大程度上取决于它如何学习数据的良好表示,即表示学习。传统的机器学习模型需要一个预定义的过程来提取特定于任务的特征。在深度学习出现之前,特征提取通常是手动的,并且需要领域专家的知识。相反,深度学习依靠神经网络通过对原始数据特征(例如词向量、图片像素)的非线性变换来自动学习有效的特征表示。换句话说,深度学习可以有效地获得对目标任务有帮助的显着特征,而不需要模型设计者具备特殊的领域知识。因此,

三、深度学习赋能端到端学习. 此前,许多机器学习模型以流水线的形式提出多步解决方案,如特征学习→特征分类→对每个类别建模→模型集成。然而,由于每个步骤只能独立优化,很难同时优化整个系统以提高其性能。此外,如果更新模型中的任何步骤,很可能所有下游步骤也必须进行调整,这大大降低了效率。深度学习的一个优势是它可以通过神经网络的特征化能力实现端到端学习:将原始数据作为输入,并输出所需的结果。这种方法可以以协调的方式优化所有参数以提高准确性。例如,在 MRC 中,该模型接收文章和问题文本,并输出答案文本。这大大简化了优化,也易于使用和部署。

四、深度学习的硬件,尤其是图形处理单元GPU)), 正在不断升级中。由于深度学习模型通常很大,计算效率已经成为深度学习进步的一个非常重要的因素。幸运的是,GPU 的改进设计大大加快了计算速度。与CPU相比,GPU具有更强的浮点运算能力、更快的读写速度和更好的并行性。GPU 在过去十年的发展遵循早期 CPU 的摩尔定律,其中计算速度和设备复杂性随时间呈指数级增长。以英伟达、英特尔、谷歌等公司为代表的GPU产业,不断演进和开发深度学习专用GPU,为整个深度学习领域的发展和应用做出了贡献。

第五,深度学习框架和社区的出现和繁荣极大地促进了深度学习的蓬勃发展。随着TensorFlow、PyTorch、Keras等框架的出现,神经网络可以自动优化,预定义最常用的网络模块,深度学习开发变得更加简单。与此同时,深度学习社区迅速蓬勃发展。每次有新的研究成果出现,都会有开发者立即实施、验证和开源模型,使得新技术的普及达到前所未有的水平。学术论文库(如arXiv)和开源代码平台(如GitHub)极大地促进了研究人员和开发人员之间的交流,大大降低了参与深度学习研究的门槛。),利用 BERT 的模型在 SQuAD 和 CoQA 等 MRC 竞赛中名列前茅。

【NLP】第 1 章 :机器阅读理解简介_第1张图片

图 1.1 机器阅读理解竞赛SQuAD 2.0的前三名模型都是基于BERT的。

1.3.2 深度学习成果

深度学习自问世以来,在语音、视觉、自然语言处理等各个领域都取得了很多令人瞩目的成果。

2009 年,深度学习之父杰弗里·辛顿 (Geoffrey Hinton) 与微软研究院合作,通过深度信念网络 (Deep Belief Network) 显着提高了语音识别系统的准确率,该网络很快得到应用由 IBM、Google 和 HKUST 转载。这也是深度学习最早的成功案例之一。七年后,微软进一步使用大规模的深度学习网络,将语音识别的单词错误率降低到5.9%。这是计算机模型首次达到与专业速记员相同的性能。

2012年深度学习模型AlexNet在ILSVRC2012大型图像识别大赛Top-5准确率达到84.6%,比第二名高出10%以上。

2016 年,斯坦福大学推出了 MRC 数据集 SQuAD,其中包括 500 篇文章和超过 100,000 个问题。仅仅 2 年后,谷歌预训练的深度学习模型 BERT 就达到了 87.4% 的精确匹配和 93.2% 的F 1 分数,超越了人类的表现(82.3% 的精确匹配和 91.2% 的F 1 分数),这给人们留下了深刻的印象。整个行业。

2018 年,微软开发了深度学习翻译系统,首次在中英新闻数据集上实现了与人工翻译相同水平的翻译质量和准确性。

这些成绩从不同方面体现了深度学习的强大力量,也为其在行业落地打下了坚实的基础。然而,我们也观察到深度学习有一些未解决的问题。例如,许多深度学习模型仍然是一个“黑匣子”,无法解释模型如何为特定输入实例产生输出,并且很难纠正特定错误。此外,大多数深度学习模型缺乏推理、归纳和常识的能力。有许多正在进行的研究来解决这些问题。希望在不久的将来,深度学习能够解决这些问题,让计算机拥有与人类同等的智能水平。

1.4 机器阅读理解评价

MRC 类似于人类的阅读理解任务。因此需要通过模型对文章内容的理解能力来评价。与数学问题不同,阅读理解需要特定的语义理解评估指标。众所周知,对人类阅读理解能力的评估通常采用问答形式,要求读者回答与文章相关的问题。因此,对 MRC 模型的评估可以采取相同的形式:模型回答文章的相关问题,并通过回答质量来评估。在本节中,我们将描述评估 MRC 模型的常用方法。

1.4.1答题形式

大多数 MRC 任务是根据他们对与文章相关的给定问题的回答质量来评估的。评估标准取决于答案的形式。以下是一些常见的回答形式:

  • 多项选择,即模型需要从多个选项中选择正确答案。
  • Extractive,即答案必然是文章内的一段文字,因此模型需要标记答案在文章中的正确起止位置。
  • Freestyle,即对答案的文字没有限制,可以让模型自由生成答案。
  • 完形填空测试,即从文章中删除某些关键词,模型需要用正确的单词或短语填空。

此外,一些数据集设计了“无法回答”的问题,即给定文章可能没有合适答案的问题。在这种情况下,模型应该输出“无法回答”作为答案。

在上述形式中,多项选择和完形填空测试可以通过直接与ground truth进行比较来客观评价。因此,准确度可以作为评价标准。提取答案属于半客观类型。我们可以将模型的输出与正确答案进行比较,如果完全相同则打 1 分,否则打 0 分。此指标称为Exact Match。但是,这会将部分正确的答案视为错误的答案。例如,如果正确答案是“八点钟”而模型的输出是“八点钟”,那么精确匹配分数将为 0,尽管模型的输出与正确答案非常接近。因此对于提取答案,也经常使用F 1 度量,它是精度和召回率的调和平均值:

Precision是指模型输出中的单词也出现在正确答案中的比例,recall是正确答案中单词出现在模型输出中的比例。因此,当模型的输出部分正确时,F 1 度量可以给出部分分数。表 1.1  精确召回和F 1 分数的示例。

表 1.1  精确召回和F 1 指标。

正确答案 模型的输出 完全符合 Precision Recall F1
20 miles is 20 miles 0 2/3=0.66 1/1=1 0.8
20 miles 20 miles 1 1 1

自由式答案是最灵活的形式。当模型的输出与正确答案具有完全相同的含义时,理想的度量标准应该给予完全信任,否则给予部分信任。然而,自动判断两个语句是否表达相同的意思是一个复杂且未解决的问题。另一方面,人工评估非常耗时费力,同时存在高方差。因此,最广泛使用的自由式答案指标是基于模型输出与正确答案之间匹配的单词/短语的比率。这些指标包括 ROUGE、BLEU 和 METEOR。我们将在下一节介绍 ROUGE 指标。

1.4.2 以回忆为导向的要点评估替补:评估自由式答案的指标

ROUGE ( Recall-Oriented Understudy for Gisting Evaluation ) 是一组基于召回率的文本相似度度量。它用于衡量模型输出中出现的正确答案中的单词和短语的比例。因为一个问题可能有不同的正确答案表达方式,ROUGE允许对同一个问题有一套参考答案。

ROUGE 包括 ROUGE-N、ROUGE-S 和 ROUGE-L 等指标。ROUGE-N 测量N -grams的召回率,其计算如下:

其中M是模型的输出,N -gram 是由文本中的N 个相邻单词组成的短语,并且counts(A)是N - gram的出现次数.

ROUGE-S 类似于 ROUGE-2 ( N =2),但不要求两个词相邻。取而代之的是,这两个词最多可以隔开一个 Skip 词,其中 Skip 是一个参数。例如,在“我喜欢晚上跑步”中,如果Skip=2,“我喜欢”、“我去”和“我跑步”在ROUGE-S中都是2-grams。

ROUGE-L 计算模型输出和参考答案之间的最长公共子序列 (LCS)。子序列不需要在原始序列中是连续的。例如,“I want to have lunch”和“I forget lunch to school”之间的 LCS 是“I to lunch”,长度L = 3。然后,ROUGE-L 分数定义为,计算如下:

在那里是一个参数。表1.2 显示了 ROUGE-N、ROUGE-S 和 ROUGE-L 的示例。

表 1.2 不同的ROUGE指标。

Correct answer I like this school
Model’s output I also like that school
ROUGE-1

 (I, like, school)
ROUGE-2
ROUGE-S Skip=1

 (I like, like school)
ROUGE-L 

Longest common subsequence (LCS): I like school

ROUGE 指标与人类评估之间存在一定程度的相关性。但是,也存在差异,因为它仅测量词汇重叠。因此,除了像 ROUGE 这样的自动指标之外,自由式答案通常会根据其正确性和自然性进行人工评估。

1.5 机器阅读理解数据集

各个 NLP 领域都有许多公共数据集。通过对这些数据集的评估,可以检验模型的质量并比较优劣。因此,这些数据集极大地促进了相关研究的发展。

在 MRC 中,也有很多数据集和比赛。根据文章的形式,我们将这些数据集分为三种类型:单段、多段和语料库。对于单段和多段文章,模型可以直接在文章内部寻找答案。对于基于语料库的文章,需要一个信息检索模块。该模块根据问题在语料库中寻找最相关的段落或陈述,然后模型在检索到的结果中得到答案。下面,我们将举例说明这三种类型的 MRC 数据集。

1.5.1 单段数据集

单段 MRC 数据集要求模型回答有关给定段落的问题。在此过程中,模型不需要参考任何外部信息。因此,这种数据集检查了模型的核心阅读理解能力。由于单段数据集的构建相对简单,是MRC中最常见的类型。

1.5.1.1 RACE

RACE是CMU在2017年推出的大规模英语MRC数据集,该数据集来自中国学生的英语测试。RACE 包含 28,000 篇文章和近 100,000 道选择题。模型需要从选项中选择正确的答案。RACE数据集分为针对中学生的RACE-M和针对高中生的RACE-H。值得一提的是,在答案收集过程中,RACE使用光学字符识别系统从公开的图像中识别答案。

1.5.1.2 NewsQA

NewsQA 是 2016 年来自 Maluuba 的新闻阅读理解数据集,包含 12,000 多篇卷积神经网络 (CNN) 新闻文章和近 120,000 个人工编辑的带有提取答案的问题。NewsQA 数据集的关键目标之一是访问模型的推理和归纳能力,即根据文章中不同地方的信息得出最终答案。此外,它还提供了“无法回答”的问题。

1.5.1.3 CNN/DailyMail

CNN/DailyMail 是 DeepMind 在 2015 年推出的阅读理解数据集,文章来自 CNN 和 DailyMail。该数据集包含大约 140 万个实例,每个实例包含一篇文章、一个问题和一个答案。CNN/DailyMail 数据集采用完形填空式设计。为了让模型专注于语义理解,将文章中的人物、地点等实体替换为id。因此模型只需要从文章中选择正确的实体 id 来填充问题中的占位符。

1.5.1.4 SQuAD

SQuAD 是最具影响力和最受欢迎的 MRC 竞赛,由斯坦福大学于 2016 年发起。SQuAD 数据集来自 536 篇维基百科文章,包含超过 100,000 个问题和提取的答案。2018 年推出的 SQuAD v2.0 包含大量“无法回答”的问题,总共有 150,000 个问题。SQuAD 数据集以其庞大的规模和高质量受到了学术界和工业界的广泛关注。截至 2019 年 12 月,全球团队向 SQuAD 提交了 294 份作品。2018 年 10 月 5 日,谷歌的 BERT 模型在 SQuAD v1.1 中的得分首次超过人类水平,成为 MRC 领域的头条新闻。

1.5.1.5 CoQA

辅酶 QA 是斯坦福大学于2018年推出的多轮会话MRC竞赛,其显着特点是在QA对话中加入上下文,即每篇文章进行多轮问答。需要理解文章和前几轮问答才能回答每个问题。这就要求模型具有理解上下文的能力。这个数据集中有 8000 多篇文章和 120,000 多个问题,每篇文章平均有 15 轮问答。此外,CoQA 的测试集包含了训练集中未出现的领域问题(Reddit 论坛和科学问题),以测试模型的泛化能力。CoQA 包含抽取式、“是/否”、“无法回答”和少量自由式答案。F 1 得分为 89.4%,首次超越人类 88.8% 的水平,再次证明了 MRC 模型的有效性。

1.5.2 多段落数据集

多段落 MRC 数据集要求模型阅读多个段落并回答相关问题。正确答案可能在一个段落中,因此模型需要计算问题与每个段落之间的相关性;或者答案是从多个段落中收集线索得到的,所以模型必须进行多步推理。

1.5.2.1 MS MARCO

MS MARCO 是微软在 2016 年推出的大型 MRC 数据集,包含超过 100 万个问题和超过 800 万篇文章。该数据集中的问题来自真实用户提交的查询,而相关段落则来自 Bing 针对该查询的搜索结果。MS MARCO采用freestyle答案,它有三个任务:

  • 判断是否可以从给定的段落中得到答案;
  • 生成答案文本;和
  • 根据与问题的相关性对多个给定段落进行排序。

1.5.2.2 DuReader

DuReader 是百度于 2017 年推出的中文 MRC 数据集。DuReader 使用来自用户查询的数据和来自百度搜索引擎的检索文档。在 DuReader 中,文章是来自网页的全文,而不是像 MS MARCO 中那样提取段落,使任务更具挑战性。另外,由于各个文章的立场不同,DuReader针对一些问题提供了多个备选答案,更贴合实际场景。DuReader 包含 200,000 个问题和 100 万份文档,包括自由式和是/否类型的答案。

1.5.2.3 QAngaroo

QAngaroo 是伦敦大学学院于 2017 年推出的多文档推理 MRC 数据集。它由两个子集组成:来自维基百科的 WikiHop 和来自医学论文档案 PubMed 的摘要的 MedHop。QAngaroo 最大的特点是不能从单个段落中得出答案。必须收集分散在多个段落中的线索。因此,QAngaroo 要求模型分析多个段落并使用多跳推理来获得答案。该数据集包含 50,000 多个问题和相关文档,以及多项选择答案。

1.5.2.4 HotpotQA

HotpotQA 是卡内基梅隆大学、斯坦福大学、蒙特利尔大学和谷歌于2018年推出的多段推理MRC数据集。与QAngaroo类似,HotpotQA需要模型在多段中搜索线索,并使用多步推理得到答案。HotpotQA 包含 110,000 个问题和带有提取答案的相关维基百科段落。

1.5.3 基于语料库的数据集

基于语料库的 MRC 数据集通常提供大型文本语料库。模型应该首先在给定问题的语料库中找到相关的段落/文章,然后分析检索到的结果以获得答案。在三种类型的 MRC 数据集中,基于语料库的数据集最接近在线搜索中的 QA 等实际应用。由于基于语料库的数据集不限制答案的来源,因此也被称为Open Domain Machine Reading Comprehension

1.5.3.1 AI2 reasoning challenge

AI2 reasoning challenge (ARC) 是一个基于语料库的 MRC 科学数据集,由艾伦人工智能研究所于 2018 年推出。ARC 中的问题来自美国 3-9 年级学生的 7800 个科学问题。所有答案均采用多项选择的形式。ARC 提供了一个包含 1400 万个句子的大型科学文本语料库,这些句子是搜索引擎对科学查询的检索结果。允许模型使用语料库和外部信息来回答问题。

1.6 如何制作机器阅读理解数据集

上一节描述了 MRC 的流行数据集和竞赛。为了保证数据质量,数据集的生成和答案的获取往往需要人工处理和验证。一种常见的方法是众包,即聘请标注员来生成和注释数据。

1.6.1 文章和问题的生成

任何机器阅读理解数据集中的三个核心概念是文章、问题和答案。因为可以根据问题从文章中推导出答案,所以我们往往关注的是如何收集文章和问题。文章和问题都可以自动生成的情况并不常见(例如,通过随机删除关键字来生成完形填空数据集,或者通过为学生转换阅读理解测试来生成 QA 数据集)。在大多数情况下,只有文章或问题可供数据集制作者使用。因此需要使用标签器或使用算法来获取另一部分信息,或者从文章中生成问题,或者从问题中生成文章。

1.6.1.1 从文章生成问题

MRC 数据集通常利用公开可用的语料库作为文章来源,例如维基百科和新闻报道。然而,这些文章中的大多数都没有相关问题。因此,数据集制作者需要使用标签来生成与文章相关的问题。这些标注者可以决定问题的语言,但必须保证质量和难度,以及与文章的相关性。例如,SQuAD 数据集使用维基百科的段落作为文章,并利用众包平台 Amazon Mechanical Turk雇用贴标签者为每篇文章生成最多五个问题。为确保标签质量,每个标签商对其历史标签任务的至少 1000 个标签的批准率应至少达到 97%。贴标签者会看到详细的说明,其中包含高质量和低质量问题的示例。例如,他们必须使用自己的语言来表述问题,而不是直接从文章中复制语句。每个标注者的报酬是根据花费的时间和产生的问题的数量来计算的。在 SQuAD 数据集中,每个标注者每小时支付 9 美元,以生成至少 15 个段落的问题。

从文章中生成问题的好处是问题与文章的相关性很强,不包含外部信息。因此该方法适用于生成单段和多段 MRC 数据集。但由于题型是人为制作的,难免有些题型不自然。这可能会导致生成的问题与用户在实际应用中提出的问题在关注点和语言模式上存在差异。

1.6.1.2 从问题生成文章

随着论坛和搜索引擎的普及,在线用户每天都会发出大量的问题和查询。通过从历史日志中过滤适当的问题,可以为 MRC 任务收集大量问题库。接下来,通过搜索网络或大文本语料库获得相关文章。可以在数据集中使用检索到的排名靠前的文档和段落。

问题生成文章的好处是所有的问题都来自真实的用户查询,类似于真实应用中的问题。但是,这种方法不能保证检索到的文章中存在正确答案,因此需要众包验证。

1.6.2 正确答案的产生

大多数 MRC 理解数据集采用手动答案生成,通常采用众包的形式。标注者需要以要求的形式提供简明的答案,例如,提取式和自由式。为了保证答案的质量,往往需要多个标注者对同一个问题的答案进行标注。然而,由于标注者的主观偏见,很难保证所有候选答案之间的一致性。一种解决方案是多数表决,即使用大多数人同意的答案。但是,如果分歧太大在贴标签者中,答案必须重新贴标签。在这里,答案之间的一致程度可以通过1.4 节中介绍的精确召回、 F 1 分数或 ROUGE来估计。

标注者通常会获得软件或网络环境,以指定格式对答案进行注释。例如,会话 MRC 数据集 CoQA 的标签接口包括前几轮的文章、问题和答案、答案规范(例如,更喜欢较短的答案、重复使用文章中的单词)和补偿信息。

由于 MRC 数据集是人工标注的,所以我们经常会在相关报告中看到“人的表现”或“人的水平”等描述。在 SQuAD 和 CoQA 等一些数据集中,最好的机器学习模型已经取得了超越人类水平的性能。那么,人的层次是如何定义的呢?

首先,我们永远不可能得到所有问题的绝对正确答案,因为每个标注者都有主观偏见,不可能统一所有答案的长度和变化。即使有多个标注者投票,也不能保证答案是准确的。因此,绝对正确的答案,即真正准确度为 100% 的结果是无法实现的。

因此,在需要人工标注的数据集中,多个标注者的一组答案或投票结果被认为是正确答案,准确率为 100%。而人的水平是指单个贴标机的准确率。例如,在 SQuAD v1.1 中,三个标注者为每个问题写下答案,人类水平是指第二个标注者的答案与第一和第三个标注者的答案相比的准确性。

因为单个标注者比多个标注者更容易在答案上出错,人类水平得分一般低于 100%,这意味着一个好的机器学习模型有可能超过人类水平。图 1.2显示了计算机模型的准确性和人类水平的准确性。请注意,如果使用不同的标注员组,正确答案可能会改变,计算机模型的定义精度和人类水平的精度也会相应改变。

【NLP】第 1 章 :机器阅读理解简介_第2张图片图 1.2 计算机模型精度与人类精度的比较。

1.6.3 如何构建高质量的机器阅读理解数据集

一个成功的 MRC 数据集应该能够准确评估模型是否具有与人类相当的阅读能力。它还应该有效地识别和比较不同模型的优缺点。高质量的数据集可以极大地促进 MRC 研究的发展。在本节中,我们将分析一个高质量的 MRC 数据集应该具备哪些特征。

1.6.3.1 区分基于理解和基于匹配的模型

在模型在各种 MRC 竞赛中取得优异成绩后,研究人员分析了模型生成答案的机制。结果表明,大多数模型严重依赖问题和文章之间的词汇匹配,而不是对内容的理解,这往往会导致理解错误。这些错误表明 MRC 模型在寻求答案时过度依赖问题和文章之间的文本匹配。

研究人员进一步发现,如果将包含问题关键字但在语义上与问题无关的误导性句子附加到 SQuAD 数据集中的每篇文章,则所有模型的F 1 分数下降多达 20%–40% [15]。然而,这种误导性的说法对人的表现影响不大。

因此,如果数据集主要包含可以通过简单文本匹配回答的问题,则很难区分高质量模型和文本匹配算法。因此,高质量的 MRC 数据集应该在评估中惩罚文本匹配模型。例如,在构建 SQuAD v2.0 数据集时,标注人员被要求使用文章中的关键字组合生成“无法回答”的问题。这些问题占数据集中所有问题的 35%,这有效地降低了文本匹配模型的准确性。这种设计已被许多 MRC 数据集采用为新标准。

1.6.3.2 评估推理能力

人类在阅读文章时可以进行推理和归纳。一个例子是他们可以收集和总结文章中的各种线索并推断出答案。例如,一篇文章在一个地方提到“David is from California”,在另一个地方提到“California is a state in US”。所以“大卫来自哪个国家”这个问题的答案应该是“美国”。这类问题需要多步推理,不能通过基于匹配的模型进行推断。因此,推理是 MRC 数据集应该评估模型的关键因素之一。

在目前促进推理的 MRC 数据集中,例如1.5 节中的 HotpotQA ,大多数问题都是由标注者手动生成的,以包含来自多个段落的信息。但是,以这种方式创建的问题可能不自然并且与真实用户的问题有很大不同。另一种可能的方法是在真实用户查询中挑选需要推理的问题,检索相关文档,然后将文本分成段落进行多步推理。

1.6.3.3 评估常识

常识是人类最重要的认知能力之一。常识包括空间知识如“大的物体不能放入较小的空间”,时间知识如“2016 年在 2019 年之前”,物理知识如“在正常情况下,水加热到 212 时会沸腾”华氏度。” 常识的理解和应用是迄今为止NLP和机器学习的薄弱环节。究其原因,(1)常识知识规模庞大,定义模糊,难以完整概括;(2)常识难以有效表达和应用。

在阅读理解中,很多题目都涉及到常识逻辑。例如,假设文章是“大卫在家里和玛丽和汤姆玩得很开心。过了一会儿汤姆离开了”,问题是“大卫家里现在有多少人?” 要回答这个问题,模型应该理解“离开”意味着汤姆不再在大卫的家里,它需要做一些数学运算才能得出答案是“两个人”。再比如,文章是“Kevin 上午9:00要去公司面试,现在是午餐时间,但他还在家”,问题是“Kevin去面试了吗?” 显然,该模型必须了解“午餐时间”是在“上午 9:00”之后,而“在家”表示凯文没有去过公司。因此正确答案是“否”。

尽管常识通常用于阅读理解,但很少有 MRC 数据集可以用来研究这一领域。2018 年来自 Tel 的研究人员艾维夫大学和艾伦人工智能研究所推出了基于知识图谱 ConceptNet 的常识 MRC 数据集 CommonsenseQA,包含 12,000 个问题。因此,CommonsenseQA 检查模型对结构化知识的理解。

用于常识的 MRC 数据集还需要辨别和惩罚简单的文本匹配方法。一种可能的做法是让模型在给出答案时给出所采用的常识。

1.6.3.4 其他理解能力

2017年有研究者指出MRC模型应该具备理解共指、逻辑推理、常识、数学知识等10项基本技能。表 1.3给出了一个完整的列表。

表 1.3

机器阅读理解模型的十大技巧 .
技能 细节
列表/枚举 实体或状态的跟踪、保留和列表/枚举
数学运算 四种算术运算和几何理解
共指消解 共指的检测和解决
逻辑推理 归纳、演绎、条件语句和量词
比喻 修辞格中的比喻,例如隐喻
时空关系 事件的空间和/或时间关系
因果关系 用为什么、因为、原因等表达的事件关系。
常识推理 分类学和定性知识、行动和事件变化
示意图/修辞从句关系 句子中从句的并列或从属
特殊句型 修辞格、结构和标点符号的方案

1.6.3.4.1 列表/枚举

模型需要识别、归纳并顺序输出文章中的相关概念,例如“地球上的生物有哪些类别?”这个问题的答案。

1.6.3.4.2 数学运算

一些 MRC 问题需要基本的数学知识。例如,假设文章是“詹姆斯和琳达加入时布莱恩正在打篮球。然后琳达和她妈妈一起离开了。” 问题是“现在有多少人在打篮球?” 显然,答案不能简单地从文本中提取,而必须通过数学计算才能得到。

1.6.3.4.3 共指解析

共指消解是 NLP 中的一项重要任务。其目标是理解代词的所指对象,例如this、that、he、she,从而回答问题。

1.6.3.4.4 逻辑推理

模型需要从文章中推导出推断的事实,通过推理得到答案。例如,从“我问Wendy是想在家吃饭还是去饭店吃饭,她说想出去走走”这句话,我们可以推断出Wendy选择了去饭店吃饭。

1.6.3.4.5类比

为了回答某些问题,模型应该理解常见的修辞技巧,如隐喻和类比。

1.6.3.4.6 时空关系

时空关系是常见的问题主题。例如,假设文章是“我请鲍勃星期三来公司。因为他有一些私事,鲍勃第二天就来了。” 该模型应该推断 Bob 星期四来到公司。

1.6.3.4.7 因果关系

理解因果关系对于回答为什么的问题很重要。

1.6.3.4.8 常识推理

涉及常识和逻辑的问题需要模型进行常识推理。

1.6.3.4.9 示意性/修辞性从句关系

子句等语言结构包含丰富的语义信息,例如实体和引用的描述,这对 MRC 模型具有挑战性。

1.6.3.4.10 特殊句子结构

一些不太常见的语言结构,如倒序和虚拟语气,使文章难以理解。

这些阅读理解能力涵盖了人类在语言、修辞和外部知识等方面获得的许多阅读技能。因此 MRC 任务应该从所有这些方面评估模型的技能。目前的研究,尤其是与深度学习相关的研究,仍然严重依赖于统计模式识别和匹配。因此,大多数模型缺乏上述许多技能,因此无法对给定的答案做出合理的解释。这些是 MRC 研究中需要解决的重要课题。

1.7 总结

  • • 机器阅读理解MRC ) 类似于人类的阅读理解任务,其中通过回答相关问题来评估模型理解文章的能力。
  • • MRC 可以应用于需要自动处理大量文本数据并理解语义的场景。
  • • 自然语言处理有许多与 MRC 密切相关的子领域,例如信息检索和问答系统。
  • • 深度学习是人工智能领域最热门的研究方向之一。它极大地提高了模型在许多领域的准确性。当前的大多数 MRC 模型都基于深度学习。
  • • 在 MRC 中,答案类型包括多项选择、抽取式、自由式和完形填空测试。
  • • 根据文章的形式,MRC 数据集可以分为三种类型:单段落多段落语料库
  • • 要构建 MRC 数据集,可以根据来自公共资源的文章手动生成问题。另一种方法是使用来自搜索引擎和论坛的问题来检索文章。
  • • 人类水平是指单个标注者的准确性,由来自多个标注者的一组带注释的答案来判断。
  • • 高质量的 MRC 数据集应该有效地区分基于理解的模型和基于匹配的模型。它还应该访问模型的推理和常识能力。

你可能感兴趣的:(基于Transformer,的,NLP,人工智能,机器学习,python)