1. 引言
机器阅读理解(Machine Reading Comprehension, MRC)是一项旨在让机器根据给定的上下文文档回问题,以此来测试机器理解自然语言程度的任务。
随着BERT [1] 等模型的兴起,单跳的简单阅读理解任务取得了重大突破,其效果已经超过人工水平。但是在实际的应用中,还存在大量问题的答案不能由单跳推理来获得,而必须对多个段落整合后进行多跳推理才能回答,因此研究人员开始关注多跳阅读理解的研究。
多跳机器阅读理解(Multi-hop MRC)就是由问题推导出答案需要进行多次推理的阅读理解。为解决多跳机器阅读理解问题,需要搜集支持文档中的多处证据,然后利用搜集到的证据,进行多级跳跃的推理过程确认答案。解决多跳阅读理解问题过程中,人们为了得到更多有效的推理信息需要捕捉到文档中的关键实体词,从而推理出实体间递进的逻辑推理信息。这对于机器来说,存在着极大的难度以及挑战性。
多跳阅读理解的传统模型主要是将单跳阅读理解的模型应用到多跳阅读理解的多个段落中,对每个段落进行分析并抽取可能答案,最后通过比较分析得到可能性最大的答案。例如,Seo等人 [2] 提出双向注意力流(BiDAF)并运用在多跳阅读理解任务上。该注意力流在每次迭代时都会不断根据上一层的信息表示来提取特征信息,保证了模型中在不丢失过多信息基础上更加关注与答案相关的信息。万静等人 [3] 在双向注意力流(BiDAF)模型的基础上,结合双向长短期记忆网络和自注意力机制构建了多段落排序(PR-BiDAF)模型,利用该模型定位答案所在的段落,然后在预测段落中寻找最终答案的始末位置,取得了不错的效果。Wang等人 [4] 提出基于循环神经网络的双向长短期记忆(BiLSTM)模型,并采用问题与文档、候选答案与文档两个注意力向量来提取重要特征,使文档与问题的信息更加紧密地联系起来。Dhingra等人 [5] 在使用外部系统提取共同指代信息基础上,同样采用循环神经网络提取上下文表示和指代信息表示的组合表示信息。Feldman等人 [6] 运用信息检索方法来查找与给定问题最相似的段落,以此实现多跳推理的功能。然而这些模型都是基于单个段落的角度来提取答案,不能很好的处理多跳信息间的连接。Jiang等人 [7] 提出三模块系统,包含以迭代方式选择相关文档的文档浏览器,在单词级别上执行问题至上下文推理并预测答案的答案提议器,以及从每个路径中提取包含建议答案的关键句子,并将其组合以预测最终答案的证据集成器。但是以上各种方法都是将支持文档中的段落看作没有联系的个体,忽视了段落之间可能存在的逻辑关联信息。
针对传统深度学习模型不能有效的提取文档中所存在的逻辑推理关系的问题,还需要一种可以很好的提取推理实体间联系的模型。有学者 [8] 指出图神经网络 [9] 可以提取表示对象之间复杂关系,在捕捉段落间递进的逻辑信息具有显著优势。Ding等人 [10] 参照人类的认知方式,提出了一种新的多跳阅读理解CogQA框架。该框架包含用于扩充信息量的直觉系统和使用图神经网络来执行逻辑推理的决策系统,在实验迭代中不断扩充信息量并执行推理过程。Ye等人 [11] 提出了基于增强信息的图神经网络KGNN,增强信息就是不断融入外部知识来执行推理过程。De Cao等人 [12] 将问题和候选答案中的实体与提取的指代词作为节点,并将支持文档中完全匹配上述实体的实体也提取出来,之后将同一文档中的所有实体、不同文档的同一实体和同一文档中的指代词与实体连接为不同的三种边,构建出实体图(Entity-GCN),以此进行推理。Cao等人 [13] 为了将问题和实体图更紧密联系起来,在图神经网络模型后接了双向注意力层,为最终预测提供更关键的推理信息。Song等人 [14] 把外部知识图谱的知识加入到问答中,并在实体图中提出三种类型的边(相同实体,固定窗口中不同实体,共同指代的实体),以此进行推理。Zhong等人 [15] 提出的异质文档实体图(HDE-Graph)包含不同粒度的节点及节点间不同的链接类型,以此在上下文文档中进行推理。Tang等人 [16] 基于关系图卷积网络,在实体图中加入更多与问题相关的节点,丰富节点数量的同时,给推理提供更多问题相关信息。这些方法应用不同的图神经网络执行多跳推理,大大增强了逻辑推理的能力,但是大都采用了双向注意力的方法来提取问题与图节点的交互信息,问题与节点的交互信息提取还不够充分。
综上所述,针对问题与节点的交互信息提取不充分的问题,提出基于门控思想的改进交互关系提取的多跳阅读理解模型。在提取实体图中节点与问题句子交互信息的传统方法中,吸收门控思想中自适应的调整权重信息的思想,通过与其他模型对比实验验证模型的有效性。
2. 模型概述
模型如图1所示包括5个模块,分别为:1) 图构建模块,2) 多级特征提取模块,3) GCN多跳推理模块,4) 交互信息提取模块,5) 输出预测模块。
2.1. 图构建模块
基于Entity-GCN提出的实体图构建方法,通过字符串匹配的方法提在支持文档中提取与候选答案完全一致的字段作为候选答案节点。根据Welbl等人分析,数据集是沿着可能的推理链生成候选答案,在支持文档中包含了问题相关的实体。通过提取支持文档中与问题实体一致的字段得到一组问题相关节点。图中边的定义是将同一段落中的不同实体相连成边和将不同段落中的同一实体相连成边。
2.2. 多级特征提取模块
通过使用ELMo对所有的节点的信息进行编码,得到具有支持文档上下文语义的实体节点编码信息,从而使图中各个节点不仅包含实体本身具有的编码信息,还包含支持文档中各句子间的逻辑关联信息。此外,通过使用GloVe捕捉单词之间一些语义特性,以此来丰富节点的语义表示信息。
由于每个图节点中实体包含的单词数量长度不一,为保持特征信息向量长度的一致性,对每个节点中的特征向量都进行平均化操作,最后将不同编码平均的节点特征向量进行拼接,得到每个节点最终的表示向量:
(1)
不同于平均池化操作获取节点特征信息的方式,本模型通过双向LSTM模块提取整个问题句的特征信息,该模块可以更好的提取问题句双向的语义依赖信息。最终的问题句信息表示向量为:
(2)
2.3. GCN多跳推理模块
根据多级特征嵌入模块编码后的特征向量,得到图节点的原始向量。由于每个节点都会与多个节点相连,因此要求节点有选择性地获取相邻节点的信息,在进行信息传递时可以在实体图中传递最为相关的信息,所以模型采用门控机制的关系图卷积神经网络(Gate-RGCN)来进行多跳推理。
在关系图神经网络中,按照公式(3)进行节点之间的信息聚合,其中
表示第i个节点在第
层的更新信息,
表示 sigmoid激活函数,
表示第i个节点在第r种边关系下所有邻居节点的集合,R表示第i个节点与其邻居节点的邻接关系矩阵,
为正则化常量,
代表在l层的邻接关系权重矩阵,
是固定的初始化关系矩阵,
表示第j个节点在第l层的隐藏状态。
(3)
门控机制会有选择性在聚合邻居节点的信息,本模型由公式(4)通过门控机制更新关系矩阵,其中
表示关系向量进行线性转换得到各关系向量的权重,经由sigmoid函数标准化后用于更新下一层节点i的隐藏状态。最终使用了Gate-RGCN节点传递信息如公式(5)得到最终的节点隐藏层状态,其中⊙表示哈达马积。
(4)
(5)
传统GCN只能根据相邻节点的聚合信息来更新中心节点,但在信息传播的过程中存在着大量的无关信息,使用带有门控机制的GCN会有选择性地传播更新信息,适当的保留了中心节点的原始状态信息。
2.4. 交互信息提取模块
传统模型在提取问题与节点的交互信息时往往采用双向注意力机制。例如,Cao等人在Entity-GCN模型中引入了双向注意力流模块提出双向注意力图神经模型(BAG),由初始节点特征向量
,经过Gate-RGCN推理得到的最终的输出向量
,计算出问题对于节点的注意力
,以及节点对于问题的注意力
。然后将注意力与原始节点进行拼接运算得到在最终的注意力流输出。
(6)
双向注意力流模型并不能充分的提取节点与问题的交互信息。双向注意力流的输出 AF 中直接将注意力与原始节点信息进行哈达马积运算后拼接,输出中还存在着大量的无关信息。
根据Seo等人在机器阅读理解的任务中对双向注意力进行测试,发现的N2Q注意力更加重要的结论。在得到节点对于问题的注意力
和原始节点向量
的表示技术上,计算二者的门控权重关系
。
(7)
不同于门控机制中将两者的信息相加得到最终输出的方式,本模型定义来一种全新的门控更新单元。
(8)
最终经过与问题对于节点的注意力
聚合,输入至预测模块,进行最后的答案预测。
(9)
2.5. 输出预测模块
通过将交互信息提取模块的最终输出经过两层全连接神经网络的转换之后,得到图中每个节点作为答案的概率值。由于答案选择是一个单项选择问题,本模型选择softmax交叉熵损失作为模型的损失函数,即:
(10)
(11)
其中
表示样本i的标签,正类为1,负类为0。
表示样本i预测为正的概率。
3. 实验结果与分析
3.1. 实验配置
根据以上模型概述,本实验采取在QAngaroo发布的WikiHop数据集上进行验证。WikiHop数据集是需要在多个支持文档中进行多跳推理的多跳阅读理解数据集。每个WikiHop的数据样本包含一个问题 Q,多个支持文档
以及多个候选答案
。支持文档中来源于WIKIREADING,其中包含支持推理过程的正例文档和与问题无关的负例文档,候选答案可能是一个单词或者是一个词组。模型需要根据给定的支持文档进行推理,在所有的候选答案中选出最终的正确答案。WikiHop数据集中,训练集数据共有43,738个样本,验证集共5129个。
实验环境:操作系统为Ubuntu18.04,CUDA版本为CUDA10.0,深度学习框架TensorFlow版本为tensorflow-gpu-13.1,GPU为2块GTX Titan Xp,内存为125G。
为了验证模型在WikiHop数据集上的有效性,需要对模型的各个参数进行调整。实验过程中,尝试了多种不同的超参数组合。例如:多跳层数(4, 5, 6),学习率(0.00005, 0.00002, 0.00001),最大答案长度(200, 300, 400, 450),hidden-size (300, 528, 768)等。根据实验结果,最后选择的最优参数组合见表1。
3.2. 实验结果分析
为了显示本模型的有效性,本研究选取以下多种模型进行对比实验,将实验结果与本研究提出的模型做了比较。对比模型的简要说明如下。
基于注意力机制提取段落与问题交互信息的模型(BiDAF [2] , CFC [17] )、基于循环神经网络提取表示信息的模型(Coref-GRU [5] , EPAr [7] )、基于图神经网络的实体图构建模型(Entity-GCN [12] , BAG [13] , MHQA-GRN [14] )。
在训练集上训练且在验证集及测试集中评定,实验结果见表2,评价指标为准确率。
Table 2. Model performance comparison
表2. 模型性能比较
从表中显示的结果可以看到,与基于图神经网络的模型比较,在验证集中的准确率取得最优水平,说明本模型在不损失泛化能力的基础上,节点与问题的交互信息方面取得了较大的提升。与非图神经网络的模型相比,本模型也为最优模型,这表明了本模型在有效提取问题与答案实体的交互关系基础上,也可以很好的提取实体在段落中的表示信息。通过上述的对比表明使用基于门控思想的改进交互关系提取的模型,可以有效提取节点与问题的交互信息,以此提升了模型预测的准确率。
为了证明本模型各模块的有效性,在WikiHop验证集中进行了消融实验,结果见表3。
(a) 实验去除了本模型的改进交互信息提取模块,可以看到在验证集中准确率下降了1.26%,这证明了本模型在提取问题与实体交互信息的有效性。(b) 实验去除ELMo提取的及节点表示信息,模型准确率下降7.28%,证明了ELMo提取的节点语义表示信息是模型的关键。(c) 实验中将GCN的层级分别调整为如图2所示的2~6层,由图中数据可见,使用Gate-RGCN进行推理时准确率先随着层数的增加而提升,这证明了使用Gate-RGCN推理的有效性。而后因为更多的层数引入了噪声,导致后续准确率的下降,得到最佳的层数为5层。
Figure 2. Comparison of different GCN layers
图2. GCN层数对比
4. 结论
机器阅读理解是自然语言处理中一项具有挑战性的任务。针对现有图神经模型存在节点与问题交互信息提取不充分的问题,提出了一种新的多跳阅读理解模型。首先,采用基于匹配的实体提取方法从支撑文档中提取与候选答案或问题中实体一致的字段作为节点构建实体图。然后通过对图节点进行ELMo及GloVe多级编码后使用Gate-RGCN进行多跳推理。最后根据全新的交互信息提取模型计算节点与问题的交互信息,并进行最终答案预测。通过与已发布模型的实验结果进行比较,表明模型在单模型上比绝大多数模型效果更好。
但是由于本模型中提取的问题相关节点与候选答案节点相互独立,在构建的实体图中存在着较多的未连通的子图,所以模型在图神经推理时还存在信息交互不够充分的问题,需要进一步设计连通更多的图节点的实体图进行图神经推理。