一种基于显式定位的机器阅读理解方法
2021-07-26邓超宇肖晓强蔡志平
邓超宇,赵 山,肖晓强,蔡志平
(国防科技大学 计算机学院 湖南 长沙 410073)
0 引言
基于文档的自动问答(document-based question-answering,DBQA),也称机器阅读理解(machine reading comprehension, MRC),是自然语言处理领域一项十分重要的任务。机器阅读理解旨在让机器能像人类一样阅读文章和理解其中的具体含义,并据此回答指定的相关问题,以自然语言的形式给出答案[1]。早期因受数据集限制,机器阅读理解一直被视为一种很困难的任务而没有得到太大的发展。2013年左右,由于机器学习技术的迅速发展,出现了一批以MCTest[2]为代表的监督数据集,许多机器学习模型也由此诞生。但是,一方面这些模型十分依赖基于规则手工构造的特征,另一方面数据集本身规模不够庞大,因此训练结果不佳且模型泛化能力较差。随着深度学习技术的不断成熟以及硬件技术进步带来的算力提升,机器阅读理解技术在2015年出现了实质性的突破进展。从2015年开始,机器阅读理解的子任务体系逐步确立,针对各种特定任务的高质量数据集也不断涌现。
目前,机器阅读理解一般被划分为以下四个子任务。① 完形填空。该类任务会从文章中挖去部分词汇,通过训练模型去填补这些空缺。此任务相关数据集有CNN/Daily Mail[3],是从新闻报道中选取的文章。② 多项选择。给定一篇文章,提供相关问题并给出几个候选答案,让机器从中选择正确答案。此任务相关数据集有RACE[4],文章与问题从中学生英语考试阅读理解题目中选取。③ 片段抽取。给定背景文章,提供相关问题,要求从文章中抽取连续的词汇序列作为答案。此任务相关数据集有SQuAD[5],由斯坦福大学研究人员基于维基百科词条内容手工构造而成。④ 自由问答。提供文章与相关问题,要求机器自动生成一段文本作为答案。由于没有候选答案,最终答案也不一定能从文章中抽取,因此是目前最困难的子任务。此任务相关数据集有百度的DuReader[6]和微软的MS MARCO,分别针对中文问答与英文问答,数据集基于搜索引擎与互联网内容生成。
片段选择式阅读理解是研究热度较高的一项任务,该任务对应的SQuAD1.1及SQuAD2.0版本问答数据集近年来获得了大量关注,带动了一大批基于神经网络的机器阅读理解模型的发展。然而,当前的片段选择式机器阅读理解领域的通用方法框架及数据集存在以下问题:SQuAD数据集中的大部分问题只需要基于对应文章中的某几个甚至一个句子即可给出答案,而文章中的其余部分对于回答问题并无必要。因此,本文对基于SQuAD数据集的片段选择式阅读理解任务进行划分,定位到文章中与问题最相关的部分,在据此提升了文本的问题相关度后,再进行下一步的答案提取,研究机器阅读理解模型在探究语义中所起到的具体作用。实验结果表明,在定位了相关句子后预测性能得到提升。
1 相关工作
片段选择式阅读理解任务发展至今,已经有了相对较为统一的算法框架。图1为片段选择式机器阅读理解模型框架,其中包括嵌入编码层、上下文层、注意力层、答案预测层四个模块。嵌入编码层负责将自然语言转化成可操作的向量,具体方法由早期的one-hot、word2vec[7]等逐渐发展为基于上下文训练的ELMo[8]、GPT[9]、Cove等模型;上下文层负责处理编码层输出的词向量,抽取更多的上下文特征信息,该模块常用的结构包括CNN、RNN与Transformer[10]等;注意力层的主要作用是计算文章各部分与问题之间的关联度,该模块是传统框架主要创新工作所在,如今已发展了层次融合注意力、位置注意力等多种注意力机制;答案预测层负责输出结果,为了便于训练及预测,片段选择式机器阅读理解模型只负责输出答案在文章中的起始位置与结束位置,这样可以将该任务转化为分类问题。
图1 片段选择式机器阅读理解模型框架
文献[3]基于CNN和Daily Mail构建了完形填空式的机器阅读理解数据集,并将深度神经网络应用于机器阅读理解任务中,开启了机器阅读理解领域的新时代;文献[11]提出BiDAF模型,构建了片段选择式阅读理解模型的分层结构,即嵌入层、上下文层、注意力层与预测层;文献[12]提出QANet模型,将自注意力和批次归一化等技巧应用到机器阅读理解中。自2018年谷歌团队提出BERT模型开始,多种预训练语言模型[13-14]在机器阅读理解领域中取得了显著的效果。本文对机器阅读理解任务和数据集进行层次划分,将传统算法的“文章-单词”结构变为“文章-句子-单词”结构。
2 数据集处理与任务定义
原始的SQuAD1.1版本数据集是由文献[5]提出的片段选择式阅读理解数据集。该数据集包含 10 万多个问题,文本来自于 536 篇维基百科文章,而问题和答案的构建主要是通过众包的方式,让标注人员提出最多 5 个基于文章内容的问题并提供正确答案,且答案出现在原文中。SQuAD 和其他类别的机器阅读理解数据集如 CNN/Daily Mail等最大的区别在于:SQuAD 中的答案并非一定是单个实体,也可能是一段短语,这增加了答案预测的难度。正如上文所述,SQuAD数据集中的大多数问题都可以基于文章中的某几句甚至某一句即可作答。而当前针对该数据集设计的机器阅读理解模型,大多是基于整篇文章与问题进行答案预测的端到端系统,即便文章中大多数内容对于回答给定问题并无意义。如此,这类阅读理解模型的发展方向与当前阶段的阅读理解任务是存在出入的,当给定的文章整体内容和问题高度相关时,训练模型的语义分析和推理能力才更有价值。
本文出于以下两点考虑将数据集重新整理。① 按人类习惯进行阅读理解的过程中,往往会基于问题迅速定位到文章中可能与之相关的句子。以此作为参考,可以设计与之近似的注意力机制。② 现有阅读理解模型通常会将文章进行令牌化处理从而形成令牌序列,这种将文章级别降维到词级别的处理方式会导致所有单词处于同等地位。事实上,处于不同句子中的单词对于答案推断的贡献是不同的,虽然现有做法中后续也会通过注意力机制关注到文章中的相关部分,但却会损失“句子”这个中间级别的语义信息。
图2为SQuAD数据集的一个问答示例。图3为原始SQuAD数据集结构及划分后的两个数据集结构。在原始数据集中,每个样本包含一篇文章全文P、据此提出的数个问题Qi以及各自对应的答案Ai,答案内容包含其自然语言形式及其在文章中的位置Li。其中,答案位置指答案起始字符在全文字符序列中的顺序值。划分后的第1个数据集中,每个样本包含一篇文章全文P、数个问题Qi以及答案所在句子的位置L′i,并舍弃原本的答案内容。其中,答案所在句子位置L′i的确定方式为:统计P中各个句子在字符层次的起始位置与结束位置,形成句子的区间集合,根据原数据集中的答案位置判定答案起始字符所处的区间,由此记录答案所在句子的句子层次的顺序值。划分后的第2个数据集不再保留文章全文P,而是将针对每一个问题提取出的答案相关内容作为新的文章P′,考虑到原数据集中仍有少部分问题需要不止一个相关句子作答,以答案所在句子为中心进行不同程度的扩展:各保留其左右n个句子(实验中n=0,1,2),以观察不同规模的文章对于模型训练及预测的影响。进而可以将原始规模的片段选择式阅读理解任务转换成两个新任务:根据问题选取文章中与之最相关的句子;根据预测的相关句子及其周围若干句子组成的相关内容进行答案的抽取。第1个任务可以形式定义为:给定一个问题q和与之对应的背景文章P={s1,s2,…,sn,…,st},s为文章的句子, 1≤n≤t,t为文章的句子数,目标是利用模型得到文章中句子与问题的相关度ri(si,q),1≤i≤t,以及文章中的问题最相关句子s=arg max(ri),并依据实验设置获取其周边句子与之共同构成新的文章P′。第2个任务可以形式定义为:给定显示定位到的答案相关内容P′={p1,p2,…,pm,…,pu},pm是新文章的单词,1≤m≤u,目标是获取每个单词作为答案起始位置的概率start_pj和结束位置的概率end_pj,并从最优结果获得答案起点astart和终点aend,1≤astart≤aend≤u,进而生成答案A={pastart,pastart+1,…,paend}。
图2 SQuAD数据集的一个问答示例
图3 原始SQuAD数据集结构及划分后的两个数据集结构
3 实验结果分析
为探究将机器阅读理解任务及其模型进行分层后,在显式定位了文章中与答案相关内容的情况下模型的训练与预测效果,使用不同长度的文章对模型进行了训练,并测试了在给定不同长度相关内容的情况下模型的答案预测效果。使用QANet作为本实验的基础模型,采用模糊匹配值F1_score与精确匹配值EM作为测试指标。其中,每个问题的EM值可以表示为
(1)
式中:strg指真实答案;strp指预测答案。将所有问题的EM值相加除以问题总数即为预测的总EM值。在使用EM指标时,只有当预测答案与真实答案完全一致时才认定预测成功。
F1_score可以表示为
(2)
式中:wp为预测答案片段所包含单词数量;wg为真实答案片段所包含单词数量;wc为预测答案与真实答案重合的单词数量。不同规模训练样本与测试样本下模型的收敛过程如图4所示。i_to_j(i,j∈{all,1,3,5})表示训练文本与测试文本的不同规模。其中:all表示用原文长度进行训练或预测;1表示训练与测试所使用的文章中相关内容只包含答案所在的句子;3表示答案的相关内容包含答案所在句子及其左右的各一个句子;5表示答案的相关内容包含答案所在句子及其左右的各两个句子。当答案所在句子位于文章起始或结束位置时,则截去超出文章范围的部分。从图4可以看出,在使用原文本进行训练后,预测时若界定了答案的相关内容范围,测试效果明显要比不给定范围时好,且界定范围越小,预测越准确。表1展示了不同规模样本的预测性能结果。
图4 不同规模训练样本与测试样本下模型的收敛过程
表1 不同规模样本的预测性能结果
从表1可以看出,在all_to_1情况下,即预测时只给定答案相关句子,所得F1_score和EM值分别比all_to_all(原始的训练与测试)高出4.22%和3.72%。在同时缩短训练及预测文本的长度时,最终的预测效果同样要比原文本好,其中预测准确度最高的是3_to_3,而非1_to_1或5_to_5。该结果表明,SQuAD数据集中的确含有少量问题只靠单个句子无法得出正确答案,需要联动其周边的句子信息进行简单的推理,而周边句子范围限定在3个时便足以保证预测效果;当句子范围上升为5个时,因内容整体相关度有所降低,反而对模型预测造成干扰,导致精度下降。上述实验结果证实了提高文章内容与问题相关度对于机器阅读理解模型预测性能的提升,并且将传统的端到端系统分为两层后,提高了模型的可解释性。未来机器阅读理解研究可将重点放在如何迅速准确地定位到文章的问题相关内容,以及如何在已知文本和问题强相关时设计出能够充分进行语义分析和推理的阅读理解模型。
4 小结
本文提出将传统的机器阅读理解任务划分为两个层次的子任务,即根据所给文章和问题选择文章中与问题相关的内容,并根据缩小规模后的文章进行答案的预测。实验结果表明,在显式界定了答案相关内容后,机器阅读理解模型的预测性能有所提升。此外,探究了不同规模训练文本和测试文本下模型的表现。未来将继续研究利用基于本体的语义相似度等对文章中合适规模的答案相关内容进行准确定位,并基于此探究SQuAD2.0版本中不可回答问题的判定方式。