笔记 Graph-Based Reasoning over Heterogeneous External Knowledge for Commonsense Question Answering

《Graph-Based Reasoning over Heterogeneous External Knowledge for Commonsense Question Answering》

来源:AAAI2020 

关键词:图神经网络、常识问答、知识库、attention

论文链接:https://arxiv.org/abs/1909.05311

 

常识问答:对于一些常识性问题,要求机器采集背景知识并且在知识上推理得到答案。

常用数据集:CommonsenseQA

可以由下图了解一下数据集及相关工作:

通常给定一个自然语言问题,和五个选项,目标是通过证据抽取和推理选择最靠谱的那个选项。

问题中包含的概念是“playing guitar”,从知识库ConceptNet中的证据有助于选出答案A/C,Wikipedia中的文本数据有助于选取出C/E,综合两个数据源的证据,可以得到正确答案C。

近年来提出的证据抽取和推理方法,要么是从人工标注的证据中生成证据,要不就是从同质数据源(只有结构话知识库或者无结构文本)中抽取证据。但是它们没能同时利用这两种数据源。结构化知识库包含便于推理的概念之间的结构化关系,但是覆盖率低。纯文本可以提供丰富的高覆盖率的证据,对结构化知识进行补充。本文同时从结构化数据库ConceptNet和无结构的wiki文本中抽取证据并推理。方法包括两个模块:知识抽取和基于图的推理。

在知识抽取部分,本文自动地从ConceptNet中提取图形路径,从Wikipedia中自动提取句子。为了更好地利用证据的关系结构,本文为两个来源构建了图,包括从ConceptNet中提取的图路径和通过语义角色标记(Semantic Role Labeling,SRL)从Wikipedia句子中提取的三元组。

在推理部分,本文提出了一种基于图的方法来更好地利用图信息,开发了两个基于图的模型,包括(1)基于图的上下文词表示学习模块,该模块利用图结构信息重新定义单词之间的距离,以便更好地学习上下文单词表示;以及(2)基于图的推理模块,该模块首先采用GCN将邻居信息编码到节点的表示中,然后使用图形注意机制进行证据聚合。

整体流程图:

概述:根据问题和选项,从知识库ConceptNet和Wikipedia文本中抽取相关知识。然后将来自两个数据源的知识构建图。再在图上利用基于图的算法进行推理,得到最后的结果。

一、知识抽取

1.从ConceptNet中抽取知识

ConceptNet是一个大规模的常识知识库,包含数百万个节点和关系。ConceptNet中的三元组包含四个部分:两个节点、一个关系和一个关系权重。对于每个问题和选项,首先在给定的ConceptNet中确定它们对应的的实体。然后我们搜索从问题实体到选项实体的路径(少于3跳),并将覆盖到的三元组合并成一个图,其中节点是三元组,边是三元组之间的关系。如果两个三元组si,sj包含相同的实体,将从上一个三元组si到下一个三元组sj添加一个边。为了获得图中节点的上下文词表示,根据ConceptNet中的关系模板将三元组转换成自然语言序列。下图显示一个示例。将这个图叫做Concept-Graph。

2.从Wikipedia抽取知识

通过Spacy从Wikipedia抽取107M个句子,然后采用Elastic Search tools来给Wikipedia句子加索引。我们首先删除给定问题和选项中的停词,然后将剩下的词连接起来作为查询从Elastic Search engine中进行搜索。引擎将查询和所有维基百科句子之间的匹配分数排序,选取top K的句子作为Wikipedia evidence。

为了发现Wikipedia evidence中的结构信息,本文为Wikipedia evidence建了一张图。利用Semantic Role Labeling (SRL)来从一个句子中抽取(subjective, predicate, objective)三元组。参数和谓词(predicate)都是图中的节点。

图中的实线肩头关系包含两种:<subjective, predicate>(主谓关系),<predicate, objective>(谓宾关系)。为了加强图中的连接度,本文去停词,并且根据如下规则添加边:(1)a包含在b中,并且b中的单词数多于3(原文写的a,我觉得有误),如图中虚线箭头所示;(2)a和b只有一个不同的词,并且a和b的单词数都多于3。把这个图叫做Wiki-graph。

二、基于图的推理

基于图的推理模型包括两个模块,第一个模块通过用图信息来重定义单词之间的距离,学习更好的词表示;第二个模块通过GCN来获取图中节点表示。overview图:

1.基于图的上下文表示学习模块

众所周知,预训练模型有很强文本理解能力,在很多NLP任务上都得到了SOTA的效果。本文用XLNet作为主干,这是一个可以捕捉远距离依赖的成功的预训练模型。获取每个词的表示的一个简单方法是把所有的证据给串成单个序列,然后喂入XLNet。但是这样会使在不同证据句子中提及的单词间距离较远,尽管这些单词可能语义相关。因此,我们使用图结构来重新定义证据单词之间的相对位置。这样,语义相关词的相对位置就会变短,而证据中的内部关系结构可以用来获得更好的上下文词表示。

具体来说,本文用拓扑排序算法来对输入证据进行排序。

(1)用ConceptNet的关系模板把三元组转换为一个自然语言句子。比如“mammals HasA hair”会被转换成“mammals has hair”,这样就可以基于抽取到的三元组的得到一个句子集合。然后再根据如下图的算法1,来reorder这些句子:

比如在上边的图三中,输出是<“people has eyes”, “eyes is related to cry”, “people can do singing”, “cry is a kind of sound”, “singsing requires sound”, “sound is related to playing guitar”>,缩短更相似的三元组之间的距离。

对于Wikipedia的句子证据,构建一个句子图。证据句子是图中的节点。对于两个句子,如果两个句子分别包含p和q。并且<p,q>在Wiki-Graph中,那么在句子图中两个句子节点连边。然后通过算法1得到排序的句子证据。

最终XLNet的输入是排序的ConceptNet证据句子、排序的Wikipedia证据句子、问题和选项的串联。XLNet的输出就是上下文的词表示还有输入表示<cls>。通过将提取的图转换为自然语言文本,可以将这两种不同的异构知识源融合到同一表示空间中。

2.基于图的推理模块

上一小节提到的基于XLNet的模型为做出预测提供了有效的word-level线索。图在更抽象的层次上提供了更多的语义层次的信息,例如关系的主语/宾语。一种更可取的方法是在图的层次上聚合证据以做出最终的预测。具体而言,我们将两个证据图Concept-Graph和Wiki-graph视为一个图,并采用GCN编码图结构信息来获取节点表示。

为了在证据间传递信息并在图上推理,GCN通过合并相邻节点的特征来更新节点表示。但是关系GCN通常会出现参数过多的问题,因此我们在无向图上使用GCN。

第i 个节点的初始表示通过平均XLNet输出中相应证据的隐藏状态向量并通过非线性变换降维得到。其中Si是第i 个对应的证据。

为了在图上进行推理,通过两步在证据间传播信息:

(1)聚合,从每个节点的邻居节点聚合信息。

(2)合并

然后利用图注意力机制来进行预测。

我认为这个hg是整张图的表示向量,因为它用加权求和了所有的节点,其与输入表示hc串联之后送入多层感知机MLP来计算置信分数score(q,a),选项a是问题q的答案的概率可以用如下公式得到:

其中A是所有候选答案的集合。最终选择概率最高的作为答案。

我的理解:总体来说,对于问题+一个选项,我们从异质信息源抽取证据,构建一张图,然后用GCN+ATT得到最后的预测分数。这样对于每个问题+选项,我们都会得到一个置信分数,选取置信分数最高的预测为答案。

三、实验部分

数据集:CommonsenseQA包含12102个examples,9741训练,1221验证,1140测试。

给每个选项前加“The answer is”来使选项变成一个句子。对应于每个选项的输入格式是“<evidence> <sep> ques- tion <sep> The answer is <choice> <cls>”.最后,五个选项得到五个置信分数,然后再利用Softmax函数来计算ground truth和预测之间的loss,使用交叉熵损失函数。

(1)与baseline对比实验结果:

 

其中Groups 1: 不使用描述或者论文的模型;

Groups 2: 不抽取知识的模型;

Groups 3: 抽取结构化知识的模型;

Groups 4: 抽取无结构知识的模型。

(2)消融实验:

消融实验可以验证拓扑排序和图推理的有效性。

(3)case study

展示本文的模型可以利用异质知识源来回答问题。问题是“Animals who have hair and don’t lay eggs are what”,答案是“mammals”。上边三个节点来自于Concept-Graph,“mammals is animals” 和 “mammals has hair” 可以提供“mammals” 和两个概念“animals” 和“hair”之间的关系。还需要展示“lay eggs”和“mammals” 之间的联系。来自Wiki-graph的后三个证据可以提供信息“very few mammals lay eggs”,这展示了两个知识源对于推测出答案都是有必要的。

(4)误差分析

从验证集中选出了50个错误例子,分成了三类:缺少证据,相似的证据和数据噪声。

 

缺少证据:第一个例子从ConceptNet中没有抽取到三元组,在Wiki中抽取的知识也不足以支持找到正确答案。这个问题可以通过改进知识抽取策略或者添加更多的数据源来缓解。

相似证据:第二个例子“injury” 和 “puncture wound”两个选项,两个来源的知识都提供相似的证据,难以很好的区分两个答案。需要来自其他知识源的更多信息来缓解这个问题。

还有一些就是数据本身的噪声,比如说有两个完全一样的选项。

四、结论

本文的主要贡献是在常识问答上从两个异质数据源抽取知识,并且利用图神经网络算法在抽取的知识上推理答案。

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值