Cognitive Graph for Multi-Hop Reading Comprehension at Scale
认知图在多跳阅读理解中的应用
paper链接: https://arxiv.org/abs/1905.05460
Codes are avaliable at https://github.com/
THUDM/CogQA
摘要
提出了一种新的面向web文档多跳问答的CogQA框架。该框架以认知科学中的双过程理论为基础,通过协调隐式提取模块(系统1)和显式推理模块(系统2),在迭代过程中逐步构建认知图。在给出准确答案的同时,我们的框架还提供了可解释的推理路径。具体地说,我们的1基于BERT和图形神经网络(GNN)的实现可以有效地处理HotpotQA-fullwiki数据集中的数百万个多跳推理问题文档,在排行榜上取得了34.9的联合分数,而在最佳竞争对手中只有23.6分。
1. 简介
深度学习模型在机器阅读理解方面取得了长足的进步,甚至在包括SQuAD在内的单段问答(QA)基准测试中甚至超过了人类(Wang等人,2018b;Devlin等人,2018;Rajpurkar等人,2016)。然而,要跨越机器与人类阅读理解能力的鸿沟,还有三个主要挑战摆在面前:
1)推理能力。正如对抗性测试(Jia和Liang,2017)所揭示的那样,单段问答模型倾向于在与问题匹配的句子中寻找答案,这并不涉及复杂的推理。因此,多跳QA成为下一个需要攻克的前沿(Yang et al.,2018)。
2) 可解释性。显式推理路径能够验证逻辑的严密性,对于QA系统的可靠性至关重要。HotpotQA(Yang等人,2018)要求模型提供支持句子,这意味着无序和句子级的解释能力,然而人类可以用一步一步的解决方案来解释答案,这表明了一种有序和整体性的解释能力。
3) 可扩展性。对于任何实用的QA系统,可伸缩性是必不可少的。现有的基于机器理解的问答系统一般遵循DrQA中的检索抽取框架(Chen et al.,2017),通过预检索将源的范围缩小到几个段落。
与人类在海量内存中通过知识进行推理的能力相比,该框架是单段问答和可伸缩信息检索之间的简单折衷(Wang等人,2003)。
因此,对这些挑战的解决方案的见解可以从人类的认知过程中获得。双过程理论(Evans,
198420032008;Sloman,1996)表明,我们的大脑首先通过一个被称为系统1的隐式、无意识和直觉的过程,即系统1,在这个过程的基础上进行另一个显式、有意识和可控的推理过程,即系统2,来检索相关信息。系统1可以根据请求提供资源,而系统2可以通过在工作记忆中执行顺序思维来深入研究关系信息,后者速度较慢,但具有人类独特的理性(Baddeley,1992)。对于复杂的推理,这两个系统是协调的,以执行快速和缓慢的思考迭代(Kahneman和Egan,2011)。在本文中,我们提出了一个认知图问答(CogQA)框架,有助于解决上述所有问题。受双重过程理论的启发,该框架由功能不同的系统1和2模块组成。系统1从段落中提取与问题相关的实体和答案,并对其语义信息进行编码。提取的实体被组织成一个认知图(图1),类似于工作记忆。然后系统2在图上执行推理过程,并收集线索以指导系统1更好地提取下一跳实体。重复上述过程直到找到所有可能的答案,然后根据系统2的推理结果选择最终答案。介绍了一种基于BERT(Devlin et al.,2018)和图神经网络(GNN)(Battaglia et al.,2018)的高效实现。我们的贡献如下:•我们提出了一种新的基于人类认知的多跳阅读理解问答框架。•我们表明,我们框架中的认知图结构提供了有序和整体的可解释性,适合于关系推理。•我们基于BERT和GNN的实现在所有指标上大大超过了以前的工作和其他竞争对手。
图1:多跳问答的认知图示例。每个跳节点对应于一个实体(例如“洛杉矶”),后跟其介绍性段落。圆圈表示ans节点,回答问题的候选项。认知图模拟了人类的推理过程。当把一个实体称为“心智”时,就形成了边缘。实心的黑色边是正确的推理路径。
2. 认知图问答框架
人类的推理能力主要依赖于信息的关系结构。直观地,我们采用有向图结构,对多跳问答的认知过程进行逐步推理和探索。在我们的阅读理解设置中,该认知图G中的每个节点对应于一个实体或可能的答案x,也可以互换地表示为节点x。ex牵引模块系统1读取实体x的介绍性段落para[x],并从段落中提取候选答案和有用的下一跳实体。然后用这些新节点扩展G,为推理模块system2提供显式结构。在本文中,我们假设系统2通过计算节点的隐藏表示X来进行基于深度学习的而不是基于规则的推理。因此,系统1还需要在提取跨度时将para[x]归纳为一个语义向量作为初始隐藏表示。然后系统2基于图结构更新X作为下游预测的推理结果。
由于认知图中明确的推理路径,可解释性得到了享受。除了简单的路径,认知图还可以清楚地显示联合或循环的推理过程,新的前辈可能会带来关于答案的新线索。在我们的框架中,线索是一个形式灵活的概念,参考前人的资料,为指导系统1更好地提取跨度。除了新添加的节点外,具有新的引入边的节点也需要根据新的线索进行重新访问。我们把它们都称为边界节点。可伸缩性意味着QA的时间消耗不会随着段落数的增加而显著增加。我们的框架在本质上可以伸缩,因为所有段落的唯一操作是通过标题索引访问某些特定段落。对于多跳问题,传统的检索抽取框架可能会牺牲后续模型的潜力,因为距离问题多跳的段落共享的常用词很少,与问题的语义关系也很少,导致检索失败。然而,这些段落可以通过在我们的框架中使用线索进行迭代扩展来发现。算法1描述了框架CogQA的过程。初始化之后,开始一个迭代的图形展开和推理过程。在每个步骤中,我们访问一个前沿节点x,系统1在线索和问题Q的指导下读取段落[x],提取跨度并生成语义向量sem[x,Q,线索]。同时,系统2更新隐藏表示X,并为任何后续节点y准备线索[y,G],最终预测基于X。
3. 实现
实现CogQA框架的主要部分是确定系统1和2的具体模型,以及线索的形式。我们的实现使用BERT作为system1,GNN作为system2。同时,线索[x,G]是x的前导节点的段落中的句子,从中提取x。为了便于系统1的训练,我们直接传递原始句子作为线索,而不是任何形式的计算隐藏状态。由于原始句子是自包含的,并且与先前迭代步骤的计算无关,因此在不同迭代步骤的训练被解耦,从而在训练过程中提高效率。详见§3.4。图节点的隐藏表示X每次通过GNN的传播步骤进行更新。我们的整体模型如图2所示。
图2:CogQA实现概述。当访问节点x时,系统1根据系统2发现的线索[x,G]生成新的跳和应答节点。它还创建初始表示sem[x,Q,clues],系统2中的GNN基于此更新隐藏的表示x[x]。
3.1 系统1
系统1模型的抽取能力是构建认知图的基础,因此需要一个强大的模型。最近,BERT(Devlin et al.,2018)已经成为各种NLP任务中最成功的语言表示模型之一,包括SQuAD(Rajpurkar et al.,2016)。BERT由多层Transformer(V aswani et al.,2017)组成,这是一种基于自我注意的架构,并在大型语料库上进行了精心的预训练。输入句由A和B两个不同的功能部分组成。
我们使用BERT作为系统1,它在访问节点x时的输入如下:
其中线索[x,G]是从前一个节点传递的句子。BERT的输出向量表示为T∈RL×H,其中L是输入序列的长度,H是隐藏表示的维数。值得注意的是,对于应答节点x,Para[x]可能丢失。因此,我们不提取跨度,但仍然可以根据“句子A”部分计算sem[x,Q,线索]。在从问题中提取1跳节点初始化G时,不计算语义向量,输入中只存在问题部分。跨度提取答案和下一跳实体具有不同的属性。答案提取很大程度上依赖于问题所指示的字符。例如,“New York City”比“2019”更可能是where问题的答案,而next hop实体通常是描述与问题中的语句匹配的实体。因此,我们分别预测答案跨距和下一跳跨度。
我们引入“指针向量”Shop、Ehop、Sans、eans作为额外的可学习参数来预测目标跨度。i输入令牌作为应答span Pstarans[i]开始的概率计算如下:
让Pstarans[i]是i输入令牌成为应答范围末尾的概率,可以按照相同的公式计算。我们只关注具有前K开始概率{startk}的位置。对于每个k,末端位置endk由以下公式给出:
其中maxL是跨度的最大可能长度。为了识别不相关的段落,我们利用§3.4.1中引入的负采样来训练系统1,以生成一个负阈值。在前K跨中,开始概率小于负阈值的将被丢弃。因为0thtoken[CLS]经过预先训练,可以为下一个句子预测任务合成所有输入标记(Devlin等人,2018),Pstarans[0]在我们的实现中充当阈值。
我们扩展认知图,将剩余的预测答案跨度作为新的“答案节点”。通过替换Sans、Eanswith Shop、Ehop来扩展“下一跳节点”也遵循相同的过程。语义生成如上所述,在位置0处的BERT的输出具有总结序列的能力。因此,最直接的方法是使用T0作为sem[x,Q,线索]。然而,BERT中的最后几层主要负责转换跨度预测的隐藏表示。在我们的实验中,在0位置使用第三层到最后一层的输出作为sem[x,Q,线索]的效果最好。
3.2 系统2
系统2的第一个功能是为前沿节点准备线索[x,G],我们将其实现为收集x的前代节点提到x的原始句子。第二个功能是更新隐藏表示x,这是系统2的核心功能。隐表示X∈Rn×hs表示G中所有n个实体的理解。要充分理解一个实体X与问题Q之间的关系,仅仅分析语义sem[X,Q,线索]是不够的。GNN被提议对图进行深度学习(Kipf和Welling,2017),特别是由于图结构的归纳偏差而导致的关系推理(Battaglia等人,2018)。在我们的实现中,GNN的一个变体被设计成充当system2。对于每个节点x,初始隐藏表示x[x]∈RH是来自系统1的语义向量[x,Q,线索]。设x0为GNN传播一步后的新隐藏表示,且∆∈Rn×H为在传播过程中从相邻的集合向量传递。X的更新公式如下:
其中σ为激活函数,W1,W2∈RH×H为权矩阵。A是G的相邻矩阵,G列规范化为AD−1,其中Djj=ΣiAij。变换后的隐藏向量σ(XW1)左乘以(AD−1)T,这可以解释为Defferrard等人的局部化光谱滤波器。(2016年)。在访问前沿节点x的迭代步骤中,其隐藏表示x[x]根据等式(3)(4)更新。在实验中我们观察到,这种“异步更新”在G完成后,通过多个步骤一起更新所有节点的X,在性能上没有明显的差异,这是一种更有效的方法,在实践中得到了应用。
3.3 预测器
HotpotQA数据集中的问题一般分为三类:特殊问题、替代问题和一般问题,它们被视为三个不同的下游预测任务,以X为输入。在测试集中,他们也可以很容易地根据疑问词进行分类。特殊问题是最常见的情况,要求查找段落中的位置、日期或实体名称等跨距。我们使用两层完全连接网络(FCN)作为预测因子F:
备选问题和一般问题都是为了比较HotpotQA中实体x和y的某个属性,分别回答实体名称和“是或否”。这些问题被视为输入X[X]−X[y]的二元分类问题,并由另外两个相同的FCNs来解决。
3.4 训练
我们的模型是在负抽样的监督范式下训练的。在训练集中,下一跳和答案跨度在段落中预先提取。更确切地说,对于与问题Q相关的每个段落[x],我们有跨度数据D[x,Q]={(y1,start1,end1),…,(yn,startn,endn)}其中para[x]中从starti到endi 的跨度与实体或答案yi的名称模糊匹配。详见§4.1。
3.4.1 任务#1:跨度提取
为了能够区分无关段落,在G中预先加入不相关的负跳节点。如§3.1所述,[CLS]的输出T0负责产生负阈值。因此,每个负跳节点的Pstart ans是一个热向量,其中gtstart ans[0]=1。系统1采用交叉熵损失训练跨度提取任务。末端位置和下一跳跨距的损耗定义如下。
3.4.2 任务#2:答案节点预测
要掌握推理能力,我们的模型必须学会从认知图中识别出正确的答案节点。对于训练集中的每个问题,我们为这个任务构造一个训练样本。每一个训练样本是goldonly图的一个组合,goldonly图是所有正确推理路径和负节点的结合。负节点包括任务1中使用的负跃点节点和两个否定应答节点。从随机选择的跳节点中随机抽取一个跨度,构造一个否定应答节点。对于特殊问题,我们首先通过对F的输出进行softmax来计算每个节点的最终回答概率,损失L定义为应答节点ans的概率与一个热向量之间的交叉熵。
二元交叉熵以相似的方式优化备选问题和一般问题。该任务的损失不仅反向传播到优化预测器和系统2,而且通过语义向量sem[x,Q,clues]对系统1进行微调。
4. 实验
4.1 数据集
我们使用HotpotQA的完整wiki设置来进行我们的实验。众包根据维基百科文档的第一段收集了112779个问题,其中84%需要多跳推理。数据分为训练集(90564个问题)、开发集(7405个问题)和测试集(7405个问题)。开发和测试集中的所有问题都是硬的多跳案例。
在训练集中,每个问题都有一个答案和两个黄金(有用)实体的段落,有多个支持事实,句子包含推理的关键信息,标记出来。也有8个消极的段落对培训毫无帮助。在评估过程中,只提供问题,同时除了答案外还需要支持事实。为了构造训练用的认知图,基于Levenshtein距离的模糊匹配从支持事实中推断出黄金认知图的边缘(Navarro,2001)。对于第[x]段中的每个支持事实,如果任何黄金实体或表示为y的答案与支持事实中的跨度模糊匹配,则添加边缘(x,y)。
4.2 实验细节
我们在系统1中使用(Devlin et al.,2018)发布的预训练BERT base模型。节点中隐藏向量的大小为768。我们模型中的所有激活函数都是gelu(Hendrycks和Gimpel,2016)。我们在任务1上训练模型1个历元,然后在任务1和任务2上联合训练1个历元。训练中的超参数如下:
BERT和GNN由两个不同的Adam优化器进行优化,其中β1=0.9,β2=0.999。预测器与GNN共享同一个优化器。BERT中参数的学习速率在前10%的步数上预热,然后线性衰减到零。在选择支持事实时,我们将图中任何节点的线索中的句子作为支持事实。在G的初始化过程中,问题中存在这些单跳跨度,并且可以通过训练集中支持事实的模糊匹配来检测。该框架提取的1-hop实体可以改善其他模型的检索阶段(见§4.3),这促使我们将1-hop实体的提取分离到另一个BERT基模型中,以便在实现中重用。
4.3 基线
第一类是以前的工作或竞争对手:
•Yang等人。(2018)原始HotpotQA论文中提出的强基线模型(Yang等人,2018)。它遵循DrQA(2017)的检索抽取框架,吸收了QA中的一些先进技术,如自我注意、字符级模型、bi注意等。
•GRN、QFE、Decompc、MultiQA——排行榜上的其他模型。
3•BERT单跳QA的最新模型。在最初的文章中,BERT需要单段输入,并且经过预训练的BERT几乎不能处理最多512个标记的段落,远远小于连接段落的平均长度。我们将认知图中前导节点的相关句子添加到每个段落中,并以最大的开始概率报告所有段落的答案跨度。
•Yang等人。(2018年)-IR Yang等人。(2018)改进了检索。Yang等人。(2018)使用传统的反向索引过滤策略检索相关段落。其有效性有时可能会因为未能找到所需注意的问题而受到挑战。究其原因,检索中的词级匹配往往忽略了语言模型,这反映了词的重要性和地位。我们通过在问题中添加1-hop实体来改进检索,将支持事实的覆盖率从56%提高到72%。
另一类是消融研究:
•CogQA onlyR模型使用Yang等人检索到的相同实体初始化G。(2018)作为1-hop实体,主要用于公平比较。
•CogQA onlyQ仅使用从问题中提取的1跳实体初始化G,无检索到的段落。完整的CogQA实现同时使用这两者。
•CogQA-sys1仅保留系统1,在系统2中缺乏级联推理。
4.4 结果
遵循Yang等人(2018)答案和支持事实的评估包括两个指标:精确匹配(EM)和F1分数。只有当答案字符串和支持事实都严格正确时,联合EM才是1。联合精度和召回率是Ans和Sup的乘积,然后计算联合F1。这些度量的所有结果都在测试集中取平均值。实验结果显示了我们的方法在多个方面的优越性:
表1:HotpotQA(fullwiki设置)的结果。测试集不是公共的。HotpotQA的维护者只对每个提交的内容提供EM和f1。N/A表示模型无法找到支持事实。
总体性能我们的CogQA在所有指标上都优于所有基线(见表1)。性能的飞跃主要是由于CogQA框架优于传统的检索抽取方法。由于多跳距离的段落在字面上可能没有共同的词汇,甚至没有语义上的联系,因此检索抽取框架无法在找到与之相关的推理线索后找到与之相关的段落。然而,我们的框架根据线索逐渐发现相关实体。
逻辑严谨的QA系统经常被批评为用浅显的模式匹配来回答问题,而不是基于推理。为了评估问答的逻辑严密性,我们使用了jointEM/ansEM,即“联合正确答案”在正确答案中的比例。联合正确答案是从所有必要和正确的支持事实中推导出来的答案。因此,这个比例代表逻辑推理的严谨性。我们的方法所占比例高达33.4%,远远超过Yang等人的7.9%。(2018年)和QFE的30.3%。
多跳推理图3显示了8类问题的联合F1分数和平均跳数,包括一般问题、替代问题和特殊问题,它们带有不同的疑问词。随着跳数的增加,Yang等人的表现。(2018)和Yang等人。(2018年)-IR急剧下降,而我们的方法却出人意料地强大。但是,替代性和一般性的问题并没有得到改善,因为判断的证据无法从支持的事实中推断出来,导致缺乏监督。要回答这些问题,还需要进一步的人体标记。烧蚀研究为了研究认知图中初始实体的影响,CogQA onlyR以与(Yang et al.,2018)相同的首段开头。我们发现CogQA onlyR仍然表现得更好。与CogQA相比,性能稍有下降,说明贡献主要来自于框架。为了与检索抽取框架进行比较,CogQA onlyQ被设计成只从问题中出现的实体开始。由于没有复杂的检索方法,这种设置可以看作是人类的一种自然思维模式,在这种模式中,推理只需要明确可靠的关系。CogQA-onlyQ仍然优于所有的基线,这可能揭示了CogQA框架相对于检索抽取框架的优越性。BERT并不是改善的关键因素,尽管它起着必要的作用。Vanilla BERT在这个多跳QA任务中的表现与(Yang et al.,2018)相似甚至稍差,这可能是因为Yang等人针对性地设计了架构。(2018)更好地利用支持事实的监督。
为了研究系统2缺失的影响,我们设计了一个仅系统1的方法,CogQA-sys1,它继承了迭代框架,但以最大预测概率输出答案跨度。在Ans指标上,相对于最佳竞争对手的改进降低了约50%,突出了GNN在认知图上的推理能力。
图4:案例研究。结果中认知图的不同形式,即树、有向无环图(DAG)、循环图。圆是候选答案节点,而圆角矩形是跳节点。绿色圆圈是CogQA给出的最终答案,复选标记代表了注释的基本事实。
CogQA-sys1,它继承了迭代框架,但以最大的预测概率输出答案跨度。在Ans指标上,相对于最佳竞争对手的改进降低了约50%,突出了GNN在认知图上的推理能力。案例研究在图4中,我们展示了认知图如何清楚地解释我们实验中复杂的推理过程。
认知图突出了案例(1)中问题的核心——即在两个众议院的成员数量之间进行选择。CogQA基于“参议院”和“上院”的语义相似性做出了正确的选择。案例(2)说明了探索并行推理路径可以提高答案的鲁棒性。案例(3)是一个没有提及任何实体的语义检索问题,仅对CogQA甚至人类来说都是难以解决的问题。一旦与信息检索相结合,我们的模型最终得到答案“Marijus Adomaitis”,而注释的地面真相是“十面墙”。然而,当回溯认知图中的推理过程时,我们发现该模型已经达到了“十面墙”,并用真名回答,这是可以接受的,甚至更准确。这种可以解释的优点并不是黑匣子模型所享受的。
5. 相关工作
机器阅读理解近年来,机器阅读理解(MRC)的研究重点逐渐从完形填空式任务(Hermann et al.,2015;Hill et al.,2015)转移到更复杂的QA任务(Rajpurkar et al.,2016)。
与传统的计算语言管道(Hermann et al.,2015)相比,神经网络模型,例如BiDAF(Seo et al.,2017a)和R-net(Wang et al.,2017)在文本中的答案提取方面表现出突出的能力。最近的基于bert的模型在大型corpra上进行了预先训练,几乎解决了单段MRC-QA问题,其性能超出了人类的水平,促使研究人员更多地关注多跳推理。多跳QA开创性的多跳QA数据集要么基于有限的知识库模式(Talmor和Berant,2018),要么基于多选择设置(Welbl et al.,2018)。在最近发布高质量HotpotQA(Yang et al.,2018)之前,这些数据集中的噪声也限制了多跳QA的发展。“多步推理”的思想也催生了单段问答中的多转方法(Kumar等人,2016;Seo等人,2017b;Shen等人,2017),假设模型可以通过再次阅读文本来隐含地获取更深层次的信息。开放域QA是指支持证据的搜索空间非常大的设置。信息检索界已经对获取段落级答案的方法进行了彻底的研究,这可以追溯到20世纪90年代(Belkin,1993;V oorhees等人,1999;Moldovan等人,2000)。最近,DrQA(Chen et al.,2017)利用一种神经模型从检索到的段落中提取出准确的答案,通常称为检索抽取框架,极大地推进了这一古老的研究课题。
通过启发式抽样(Clark and Gardner,2018)或强化学习(Hu et al.,2018;Wang et al.,2018a)来增强检索,而对于复杂推理,忽略了对框架的必要重访。
6.讨论与结论
我们提出了一个新的框架CogQA来解决大规模的多跳机器阅读问题。推理过程被组织成认知图,达到了前所未有的实体层次的可解释性。我们基于BERT和GNN的实现在HotpotQA数据集上获得了最新的结果,这表明了我们的框架的有效性。未来可能会有多种研究方向。得益于认知图的显式结构,CogQA中的system2有可能利用神经逻辑技术来提高可靠性。此外,我们期望通过优化系统之间的交互,结合注意力和递归机制的未来架构将大大提高系统1的容量。最后,我们相信我们的框架可以推广到其他认知任务,例如会话人工智能和顺序推荐。