Cognitive Graph for Multi-Hop Reading Comprehension at Scale(ACL2019) 阅读笔记及代码解析

1.摘要

提出了一个新的CogQA框架来解决web文档中的多跳问题。该框架以认知科学中的双过程理论为基础,通过协调隐式提取模块(系统1)和显式推理模块(系统2),在迭代过程中逐步构建认知图。在给出准确答案的同时,我们的框架还提供了可解释的推理路径。具体地说,我们的1基于BERT和图形神经网络(GNN)的实现可以有效地处理HotpotQA-fullwiki数据集中的数百万个多跳推理问题文档

2.研究背景

假设你手边有一个维基百科的搜索引擎,可以用来获取实体对应的文本段落,那么如何来回答下面这个复杂的问题呢? 

“谁是某部在2003年取景于洛杉矶Quality cafe的电影的导演?”

Cognitive Graph for Multi-Hop Reading Comprehension at Scale(ACL2019) 阅读笔记及代码解析_第1张图片

很自然地,我们将会从例如Quality cafe这样的“相关实体”入手,通过维基百科查询相关介绍,并在其中讲到好莱坞电影的时候迅速定位到“Old School”“Gone in 60 Seconds”这两部电影,通过继续查询两部电影相关的介绍,我们找到他们的导演。最后一步是判断到底是哪位导演,这需要我们自己分析句子的语意和限定词,在了解到电影是2003年之后,我们可以做出最后判断——Todd Phillips是我们想要的答案。

事实上,“快速将注意力定位到相关实体”和“分析句子语意进行推断”是两种不同的思维过程。

在认知学里,著名的“双过程理论(dual process theory)”认为,人的认知分为两个系统,系统一(System 1)是基于直觉的、无知觉的思考系统,其运作依赖于经验和关联;而系统二(System 2)则是人类特有的逻辑推理能力,此系统利用工作记忆(working memory)中的知识进行慢速但是可靠的逻辑推理,系统二是显式的,需要意识控制的,是人类高级智能的体现。

3.论文精读

本文提出一种新颖的迭代框架:算法使用两个系统来维护一张认知图谱(Cognitive Graph):

  • 系统一在文本中抽取与问题相关的实体名称并扩展节点和汇总语义向量,
  • 系统二利用图神经网络在认知图谱上进行推理计算。

正如之前提到的,人类的系统一是无知觉(unconscious),CogQA中的系统一也是流行的NLP黑盒模型,例如BERT。

在文章的实现中,系统一的输入分为三部分:

  1. 问题本身
  2. 从前面段落中找到的“线索(clues)”
  3. 关于某个实体x的维基百科文档

系统一的目标是抽取文档中的“下一跳实体名称(hop span)”和“答案候选(ans span)”。

这些抽取的到的实体和答案候选将作为节点添加到认知图谱中。此外,系统一还将计算当前实体 x 的语意向量,这将在系统二中用作关系推理的初始值。

论文模型架构图:

Cognitive Graph for Multi-Hop Reading Comprehension at Scale(ACL2019) 阅读笔记及代码解析_第2张图片

 BERT模型

Cognitive Graph for Multi-Hop Reading Comprehension at Scale(ACL2019) 阅读笔记及代码解析_第3张图片

 

    输入:问题本身、从前面段落中找到的“线索(clues)”、关于某个实体x的维基百科文档

    系统一的作用:

    抽取文档中的“下一跳实体名称(hop span)”和“答案候选(ans span)”,这部分做法和正常的阅读理解一样,使用pointer network输出每个位置是“下一跳实体名称”或者“答案候选”开始或者结束的概率,但CogQA认为“下一跳实体名称”更多关注语意相关性,“答案候选”则需要匹配疑问词,故CogQA使用4类标签对每个位置进行标注:Shop,Shop​ , EhopEhop​ , SansSans​, Eans

Eans​,另外使用第0个位置的输出被用来产生一个阈值,判断段落内是否有有意义的“下一跳实体名称”或者“答案候选”。

生成实体的语义向量,文中是使用BERT的third-to-last layer output at position 0作为其向量表示

图卷积网络
Cognitive Graph for Multi-Hop Reading Comprehension at Scale(ACL2019) 阅读笔记及代码解析_第4张图片

 

系统一抽取出的“下一跳实体名称”或“答案候选”都将在认知图谱中建立一个新的点,并进行下一步迭代。系统二在认知图谱上进行推理计算,文中使用图神经网络(GNN)实现的隐式推理计算——每一步迭代,前续节点将变换过的信息传递(Graph MessagePassing)给下一跳节点,并更新目前的隐表示(Hidden Representation)。最终所有的“答案候选”点的隐表示将通过一个带有softmax函数的全连接网络来判断哪个是最终答案。

在认知图谱扩展过程中,如果某被访问节点出现新的父节点(环状结构或汇集状结构),表明此点获得新的线索信息(clues),需要重新扩展计算。最终算法流程借助前沿点(frontier nodes)队列形式实现,具体描述如下:
 

Cognitive Graph for Multi-Hop Reading Comprehension at Scale(ACL2019) 阅读笔记及代码解析_第5张图片

 实验结果:

Cognitive Graph for Multi-Hop Reading Comprehension at Scale(ACL2019) 阅读笔记及代码解析_第6张图片

 Cognitive Graph for Multi-Hop Reading Comprehension at Scale(ACL2019) 阅读笔记及代码解析_第7张图片

 结果中认知图的不同形式,即树、有向无环图(DAG)、循环图。圆是候选答案节点,而圆角矩形是跳节点。绿色圆圈是CogQA给出的最终答案,复选标记代表了注释的基本事实。

你可能感兴趣的:(机器学习)