admin管理员组

文章数量:1561873

Cognitive Graph for Multi-Hop Reading Comprehension at Scale (ACL 2019) 阅读笔记

动机:

为了能让机器能像人类一样拥有阅读理解能力,需要解决三个问题:

1.  推理能力

2. 可解释性

3. 可扩展性

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

贡献:

本文提出一个Cognitive Graph QA (CogQA)框架。
该算法使用两个系统来维护一张认知图谱(Cognitive Graph)

1 . system 1 从文本中抽取与问题相关的实体,和候选答案,并用新抽取到的实体和候选答案来扩展(构建) 认知图谱。此外system1还对节点的语义信息进行编码。

2. system 2 在利用图神经网络在认知图谱上进行推理计算,并收集clues去指引system 1抽取下一跳的实体。system2更新语义信息作为推理结果。

上述两个过程迭代执行,直至所有可能的答案都被抽取出,最终的答案是基于system 2的推理结果进行预测的。

模型:

本文用BERT 作为system 1, GNN 作为system 2. 。

1. System 1

  • BERT模型的输入为

 

Para[x]为关于某个实体x的维基百科文档, clues[x,G]表示x的上一跳节点中包含实体x的那些句子

BERT的输出为

值得注意的是, 在开始first-hop还没构建认知图谱的时候,bert 的输入仅为question。

  • span extraction

对答案和下一跳实体进行分别预测:

第i个输入的token 是start of answer span 的概率

同理可得

先计算概率最大的前k个起始位置,再对应算出k个结束位置:

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

作者使用第三层至最后一层在第0位置的输出([CLS]位置)作为sem[x,Q,clues] (语义向量)。

2、System 2

system 2的第一个作用是产生clues[x,G],即收集包含x前驱节点的句子。

system 2 的第二个作用是更新隐藏层表示X---认知图谱中所有节点的表示。

对于每个节点x, 其初始的隐藏层表示X[x]是system1中的语义向量sem[x,Q,clues]

更新后的隐藏层表示为 【基于谱的更新方法】

其中A为图G的邻接矩阵,

 

3.Predictor

Hotpot QA 中的问题通常被分为三类:special question, alternative question, 和 general question。可以通过问题中的疑问词对这三个问题进行区分。

这三种问题可以通过三个子任务解决,这三个子任务都是以X为输入的。

  • special question的答案为text span (位置,日期,实体名)。利用双层全连接网络实现预测:

  • alternative question 比较实体x 和 y之间的属性,其答案为实体名。general question也是比较实体x和y之间的属性,其答案为yes/no. 这两类问题是一个以X[x]-X[y]为输入的二分类任务,也是通过两个双层全连接网络实现。

 

 

优点:图并不是一次性构成的,而是随着推理过程的推进进行拓展的。这样可以减少空间和时间,也避免噪音的引入。

 


 

本文标签: MultiGraphCognitiveHopScale