摘 要: 针对问答式机器阅读理解中非定长答案的提取问题,本文提出了一种基于关键词扩展的答案块提取模型.该模型首先确定答案所在区块的中心词,即将文本与问题进行联合处理后计算问题关于联合向量的注意力值并按列输入softmax函数,将此概率分布矩阵逐列相加后遍历全文,检索出答案所在区块的中心词.然后,以该词为中心进行答案块扩展,并在每次扩展后计算答案块与问题向量之间的相似程度,相似度开始减小时停止扩展以优化候选答案块的质量.相较于以往的答案块提取模型,该模型一方面不再依赖于词性标注,另一方面大大提高了答案块的生成效率,在简化模型的同时提高了机器阅读理解的准确性.实验结果表明,该模型在SQuAD测试数据集上的EM(Exact Match)和F1值均表现优异,分别获得了65.7%和74.3%的准确度.
关 键 词: 机器阅读理解;非定长答案;关键词扩展;块提取
1 引 言
机器阅读理解是指在给定一篇文本或相关内容(事实)的基础上,要求机器根据文本或内容对相应的问题作出回答.近年来,对机器阅读理解的研究多集中于答案为单个单词或实体且拥有备选答案的完形填空式问答题 [1-4].与相对简单的预测单个单词或实体的阅读理解任务相比,预测任意长度和位置的文本片段显然增加了搜索空间的复杂度.表1中显示了一段样本文本和三个与文本相关的问题,其中第一、二个问题的答案为单个单词或一个实体,第三个问题的答案为文本片段.若文本的长度为L,则可能的候选答案的数量为O(L2),而答案为单个词语或有候选答案的阅读理解任务复杂度分别为O(L)或候选列表的大小(通常不大于5)[4].
针对问答式机器阅读理解中非定长答案的提取问题,学者们提出的基于深度学习的模型大致可以分为两类:边界预测模型和答案块提取模型.这类问题考虑提取的问题答案均为文本中的一个连续片段.边界预测模型一般是根据文本与问题的表征,在全文范围内直接识别答案的起点和终点,并将起点和终点之间的文本片段作为正确答案.答案块提取模型没有直接识别答案的起点和终点,而是先提取若干个候选答案块,然后训练模型,使得正确的答案块排列到候选答案列表的顶部,以此作为问题的最终答案.对于第一类方法,Wang和Jiang等人提出了Match-LSTM模型[5],该模型将段落与问题做匹配,然后使用Pointer Network[6]从文章中选择一个位置列表作为最终答案.但是由于此方法所选取答案单词的位置并不一定是连续的,因此他们进一步修改了Pointer Network来预测答案的起点和终点.Yu等人[7]提出的Dynamic Chunk Reader模型采用了答案块提取方法,文中通过两种方法来提取候选答案块,第一种是在训练过程中对问题和文本进行词性标注(POS-trie),提取所有满足答案对应词性标注模式的候选块;第二种则是先确定候选答案块的最大长度,然后遍历所有可能的候选块.前者虽然可以产生具有任意长度的答案块,但是由于依赖于词性标注,因此不能识别没有预先标注过的文本片段;后者虽然考虑到了全文中所有可能的文本片段,但遍历过程中容易产生大量无效候选答案块.
表1 SQuAD数据集
Table 1 Example of SQuAD Datase
针对上述问题,本文提出了一种基于关键词扩展的答案块提取方法(Keywords′ Expansion,KWE).模型首先将文本向量经过多层推理后与问题向量连接并进行二次编码,获得文本-问题的联合向量.然后,计算问题关于联合向量的注意力值并按列输入softmax函数,将此概率分布矩阵逐列相加后遍历全文,检索出答案所在区块的中心词.最后,以该词为中心进行答案块扩展,并在每次扩展后计算答案块与问题向量之间的相似程度以确定候选答案块的边界.该模型在文本与问题的信息交互过程中引入多层推理结构,使得对答案区块所在中心词的定位更加准确;在训练过程中不需要对文本和问题进行词性标注,且以关键词的扩展代替了从第一个单词进行遍历以提取答案块的方法,在保证答案单词连续性的同时简化了原先的答案块提取模型,在SQuAD测试集[8]上取得了很好的效果.
本文的结构安排如下:第2节介绍了相关工作,第3节描述了模型的整体架构,第4节阐述了提取答案块的具体方法,第5节介绍了实验设置并分析实验结果,第6节总结全文.
2 相关工作
2.1 问题定义
本文的任务是通过阅读和理解一段文本,在上下文中选择一个文本片段来回答与文本相关的问题.训练和测试数据由三元组(Q,P,A)表示,其中,Q=(q1,…,qi,…,q|Q|)表示问题,问题是一个长度为|Q|的单词序列.P=(p1,…,pj,…,p|P|)表示文本,长度为|P|.A=(as,ae)表示预测的最终答案,as和ae为文本P中的一对单词索引,表示预测答案的起点和终点.候选答案块表示为cm,n,m,n分别为所提取的答案块的起点与终点,且1≤m≤n≤|P|.
2.2 BiGRU
为了充分利用上下文信息,KWE模型使用BiGRU 编码器对单词进行编码,BiGRU(Bi-Gated Recurrent Unit)编码器以GRU网络[9]为基础,对每个训练序列按照向前和向后分别训练正向和反向两个GRU网络,则序列中的每个元素由正向GRU的信息表示和反向GRU信息表示拼接来表示.GRU模型包括以下几个部分:输入、更新门zt、重置门rt和输出.其中,更新门控制流入内存的信息,重置门控制流出内存的信息.
图1 Gated Recurrent Unit结构图
Fig.1 Structure of Gated Recurrent Unit
如图1所示,给定一个输入序列X:x1,x2,…,xn,当前单词xt的编码向量ht是由此时刻的候选状态和上一时刻的状态ht-1通过线性差值函数获得:
ht=(1-zt)*ht-1+zt*
(1)
其中,zt是更新门(update gate),它决定了哪些信息需要被更新,zt的计算过程如下:
zt=σ(Wz·[ht-1,xt])
(2)
因此,更新门是对已有状态ht-1和当前单词xt的线性求和.另一方面,候选状态的计算则与传统的循环单元类似:
*ht-1,xt])
(3)
其中,rt是重置门(reset gate),它决定了哪些信息需要被重置,计算过程与更新门类似:
rt=σ(Wr·[ht-1,xt])
(4)
对于输入序列X:x1,x2,…,xn,其正向序列为反向序列为单向GRU如果仅接受正向序列那么网络中的每个单元只能包含该单元之前的文本信息,同理,如果仅接受反向序列,那么网络中的每个单元只能包含该单元之后的文本信息.为了充分利用上下文信息,构建BiGRU编码器,则序列X中的元素xt表示为:其中,为序列X中序列顺序在xt之前的元素{x1,x2,…,xt-1}包含的信息,为序列X中序列顺序在xt之后的元
素{xt+1,xt+2,…,xn}包含的信息.因此,BiGRU的网络输出层能够完整地捕获输入序列中每一个元素关于过去和未来的上下文信息.本文将文本和问题的词向量序列通过BiGRU网络来获得包含上下文信息的单词向量.
3 系统框架
针对问答式阅读理解任务中非定长答案的提取问题,本文提出了一种基于关键词扩展的答案块提取模型.本节重点介绍模型的整体架构及文本和问题的编码,答案所在区块的中心词的确定、候选答案块的提取方法和答案边界预测部分将在第4节详细介绍.
3.1 模型的整体架构
模型的整体架构如图2所示.其中P表示文本,Q表示该文本对应的问题.En-Q网络的输入是问题单词Q,输出是问题Q中每个单词包含上下文信息[10]的向量表示HQ.En-P网络的输入是文本中有序的单词序列,输出是每个单词包含上下文信息的向量表示HP,因此,En-Q和En-P为单词的预处理部分.Net-PQ网络描述了文本与问题的信息交互过程,输入是问题Q和文本P的向量表示,输出是包含问题信息的文本向量表示HPQ.En-PQ网络是文本和问题的联合向量表示,输入是文本向量HPQ和问题向量HQ,输出是联合向量表示VPQ.Net-Ex网络是模型的答案块提取部分,输入是P和Q的联合向量表示,输出是包含所有答案单词的文本片段cm,n,功能是缩小答案的预测范围.Net-Pr网络是模型的最后一部分,即在文本片段cm,n的基础上预测最终的答案,输出为答案的起点位置as和终点位置ae.
图2 KWE模型的整体架构
Fig.2 Overall architecture of the model
模型的主要处理步骤如下:首先,经过预处理将文本和问题单词编码为词向量;然后,通过计算文本和问题之间的注意力关系,获得文本和问题的联合向量表示VPQ以确定答案所在区块的中心词PM;接着,以PM为中心,左右各纳入一个单词形成答案块,动态地扩展答案块,且每次扩展的同时通过余弦相似度计算答案块中文本片段与问题的相似度值以确定候选答案块的边界;最后,将候选答案块cm,n通过前馈神经网络,预测答案的起点和终点,起点和终点及其之间的单词即为答案单词.
3.2 文本和问题的编码
En-P网络和En-Q网络为编码部分,目标是将文本和问题的每个单词表示为包含其本身词义和上下文信息的单词向量,如图3所示.由于En-Q网络的结构和En-P非常类似,因此不再单独描述.
首先,将问题和文本中的每个单词映射为对应的d维向量.此d维向量由两个分量连接而成:词嵌入和字符嵌入.词嵌入是由Glove[11]或Word2vec[12]预先训练好的固定向量,将问题和文本的词嵌入分别表示为和字符嵌入由卷积神经网络CNN[13,14]获得,通过将单词中的每个字符输入到卷积神经网络来计算,分别表示为和将各单词的词嵌入和字符嵌入连接起来,获得问题和文本的单词向量序列Q=(q1,…,qi,…,q|Q|),P=(p1,…,pj,…,p|P|).然后,将文本向量P和问题向量Q分别通过各自的双向GRU网络,每个单词对应GRU序列中的一个时刻的输入,GRU的隐藏层状态代表融合了单词本身词义以及其上下文语义的语言编码.
图3 En-P网络展开图
Fig.3 Expanded view of En-P network
(5)
(6)
(7)
(8)
其中,均为BiGRU网络的隐藏层状态,[·;·]表示两个向量的拼接操作,HP,HQ分别为文本和问题的表征.
4 提取候选答案块
4.1 文本与问题的信息交互
本文通过一种新颖的信息交互方法来计算文本-问题的联合向量,即将文本向量经过多层推理后与问题向量连接并进行二次编码,以使问题与文本、文本与文本间的信息充分交互.此方法下的文本向量能够更加有效地捕捉段落中的整体信息.
图4 Net-PQ网络的展开图
Fig.4 Expanded view of Net-PQ network
Net-PQ网络的展开图如图4所示.为了获得文本-问题的联合表示向量,需要先确定问题单词与文章单词之间的注意力值[15].由于双线性(Bilinear)函数[16]对神经网络的性能有较大的提升[17],且在不加入推理机制的情况下模型也能取得非常好的效果,因此本文将文本向量HP和问题向量HQ通过一个双线性函数计算文本和问题中各个单词之间的关系:
(9)
(10)
其中,ωji=HPWHQ,ωji∈R|P|×|Q|,W为双线性函数的权值矩阵,ωji表示问题关于文章的注意力值,在训练时通过更新矩阵W凸显出问题中与文本密切相关的内容,弱化与文本不相关的内容.αij=(HQ)TWHP,αij表示文章关于问题的注意力值,在训练时通过更新矩阵W凸显出文本中与问题密切相关的内容,弱化与问题不相关的内容.
如图2中虚线框内的部分,本模型在注意力计算模块中引入多层推理结构,此结构以往均是用以推理答案为单个单词或一个实体的问题[18].本文的多层推理结构通过多次叠加注意力层转移注意力,不断更新注意力模块的注意焦点,以实现对文本内容的推理.然后,将包含问题信息的文本向量与问题向量进行连接,获得文本-问题的联合表示.
(11)
(12)
其中,为推理结构的层数,γj为文本向量与问题向量的连接,且γj∈R4d.
最后,将连接向量γj通过第二个BiGRU网络进行编码,使得联合向量的上下文充分融合.由于En-PQ网络的展开图和En-P网络非常类似,因此此处不再单独描述.
(13)
(14)
其中,为BiGRU的隐藏层状态,VPQ为编码后文本-问题的联合向量.
4.2 候选答案块的提取
由于SQuAD数据集的问题答案是任意长度和位置的文本片段,直接检索答案单词较为困难,且准确度不高.因此本文先确定答案所在区块的中心词,将答案单词有选择性地集中在一个候选答案块中,然后进一步优化答案块边界的确定方法,最后以最终提取的答案块为基础预测问题答案.
图5 Net-Ex网络结构展开图
Fig.5 Expanded view of Net-Ex network
如图5所示,计算问题关于联合向量的注意力值并按列输入softmax函数,将得到的联合向量对每个问题单词的概率分布矩阵逐列相加,然后遍历全文,检索出答案所在区块的中心词位置.
S(j,i)=VPQWHQ
(15)
(16)
βM=Maxβj
(17)
其中,βj表示联合向量中每个单词与整个问题的相关程度,βM为βj的最大值,1≤M≤|P|.以此单词为中心设置一个窗口,窗口半径初始化为l(l可自行设置),则窗口内上下文向量可表示为:
(18)
其中,[·;·]是连接操作,分别为前向GRU中第一个单词的隐藏层状态和后向GRU中最后一个单词的隐藏层状态.
为了确保答案单词全都被窗口纳入,将窗口进行扩展,每次向左右各扩展一个单词并计算窗口内文本向量与问题向量之间的相似度,相似度开始减小时停止扩展.若某一端到达文本的开头或结尾,则仅停止此端的扩展.
(19)
其中,为问题单词进行第一次编码时的隐藏层状态,μ为窗口内文本片段与问题向量的相似度.
提取窗口内与问题相似度最高的文本作为本层的输出,即为包含答案片段的候选答案块cm,n.
4.3 答案边界的预测
将包含答案片段的候选答案块cm,n输入两个不同的前馈神经网络,分别预测Pr(as|Q,cm,n)和Pr(ae|Q,cm,n)的概率分布,如图6所示.将cm,n中每个时刻的上下文向量输入前馈神经网络,计算每个时刻的概率值,然后用softmax函数对整个答案块的值进行归一化,获得最终的答案片段.
图6 Net-Pr网络展开图
Fig.6 Expanded view of Net-Pr network
5 实 验
5.1 数据集
本文使用斯坦福大学开发的问答数据集SQuAD进行实验.SQuAD数据集从维基百科的大量文章中提取了10万多个问答对,包含87599个训练样本,10570个验证样本和大量隐藏的测试样本.问答对的答案均为相应文本段落的一部分,从单个单词到多单词文本片段,是可变长度的短语或从句.数据集同时提供几个人工答案,只要模型输出的答案与人工答案之一相符合,模型就被给予一个置信分.本文用两个指标来评估模型:精确匹配(Exact Match,EM)和模糊匹配(F1 score)[8],分别用于表示精确率及精确率和召回率的加权平均值.
5.2 实验设置
实验使用斯坦福大学的CoreNLP工具[19]对文本和问题进行预处理并参照DCR模型[7]的相关参数进行实验设置.对于词向量的构建,选择预先训练好的GloVe方法[11]和卷积神经网络CNN[13]来映射,词向量的维度设置为300,且在训练期间是固定不变的;本模型的网络参数如下,模型的隐藏层维度设置为150,dropout比例为0.2.计算注意力时将双线性函数的权值矩阵随机初始化,其元素均匀分布在[-0.01,0.01]内,BiGRU网络中的参数则随机初始化为符合N(0,0.01)分布的数值.
在训练过程中,我们设置batch大小为32,并使用Adam[20]优化器来更新参数;同时,设置学习率初始值为0.01,在训练过程中每隔10个epoch进行指数衰减.
5.3 实验结果
表2显示了本模型在SQuAD数据集上的主要结果.由于国内外基于答案块提取的模型还比较少,因此本文的对比模型数量不多.如表所示,在不加多层推理结构的情况下,KWE模型的EM值达到了65.0,F1的得分为72.2,与基准线Rajpurkar[8]的LR模型相比,KWE模型在验证集上的EM和F1值分别提升了25.2%和21.2%,在测试集上的EM和F1值分别提升了24.4%和20.4%;与Yu等人的DCR模型相比,KWE模型在验证集上的EM和F1值分别提升了2.5%和1.0%,在测试集上的EM和F1值也更加优秀.
表2 SQuAD数据集上的实验结果
Table 2 Experimental results on the SQuAD dataset
另外,多层推理结构对模型性能的提高也非常重要.在表2的底部,实验显示了加入并改变推理层数k对模型性能的影响.可以发现,当k=1时,模型的准确度与未加推理结构时相差不大.随着层数从k=1增加到k=3,准确度开始有较大的提高,当k>3时保持不变甚至略有下降.因此将推理层数设置为3时,模型结果最为准确,此时模型已经能够实现对文本的充分推理,继续增加推理层只能增加模型的复杂度而不再影响实验结果.
表3为模型在SQuAD验证集上的系统实验结果.与用词性标注(POS-trie)进行块提取的DCR模型相比,KWE模型在不加入推理结构的情况下仍然将EM值提高了2.3%.与用枚举法(Enumeration)进行块提取的DCR模型相比,在计算机硬件配置与模型基本参数相同的情况下,KWE模型由于大大减少了候选答案块的数量,训练一个epoch的平均耗时减少,训练速度得到了很大的提高.
表3 SQuAD验证集的系统实验
Table 3 Detailed system experiments on the SQuAD development set
5.4 实验分析
为了更好地理解模型的性能,实验在验证集上分析了答案长度和问题类型对EM值和F1值的影响.如图7(a)所示,随着答案长度的增加,EM和F1值均有所下降,但速度不同,同时EM值和F1值之间的差距也会扩大.当答案为多个单词的时候,本模型的准确率仍然较高.如图7(b)所示,模型在“When”和“Who”两类问题上性能更好,在“Why”型问题上准确度较低,且“Why”型问题的EM和F1值相差非常大,此现象说明完全确定答案边界比定位答案范围的中心更加困难.
图7 答案长度和问题类型对模型性能的影响
Fig.7 Performance for different answer length and question types
另外,实验选取了验证集中一个文本片段及文本的两个问题进行注意力矩阵的可视化,如图8所示.对每个文本单词来说,注意力越高颜色越深.第一个问题,文本中答案所在区块的中心词为“protect”,因此接下来以“protect”为中心进行答案块提取操作.同样的,第二个问题以文本单词“teacher′s”为中心进行答案块提取.
图9为答案预测部分产生的概率分布可视化图表,此示例问题为“Why would a teacher′s college exist?”,正确答案为“serve and protect the public interest”.由图表可以看出,本文模型预测出的起点和终点的概率最大,起点和终点之间的单词均为答案单词,说明模型较为准确地预测出了正确答案.
图8 文本关于问题的注意力情况
Fig.8 Attention masks from our model
最后,我们对错误答案进行了分析.从验证集中随机选取50个预测出现偏差的答案,其中,预测答案与正确答案关联较大(即使它们不在正确答案的列表中)的占16%,预测答案与正确答案有重叠部分的占22%,需要通过简单推理才能得到正确答案的占14%,其余大部分问题都需要外部知识的引入或比较复杂的推理.
图9 答案预测阶段起点和终点的概率
Fig.9 Probability distributions for the question
6 结 论
本文针对问答式机器阅读理解中非定长答案的提取问题提出了一种基于关键词扩展的答案块提取模型.与以前提出的机器阅读模型不同,该模型不仅仅预测单个单词和实体的答案,或者从预先准备好的候选答案列表中选择答案,而是能够在提取出与问题相匹配的答案块时回答答案长度可变的问题.该模型通过一种新颖的答案块提取方法,将答案片段放在一个小窗口的背景下并基于标准化概率分布预测答案的起点和终点.该模型在SQuAD测试集上取得了良好的效果,今后的工作仍需要加以改进以提高预测更长答案的准确率.