论文:Improving Multi-hop Question Answering over Knowledge Graphs using Knowledge Base Embeddings
ACL 2020的一篇论文,涉及multi-hop QA,有完整代码。
作者:Apoorv Saxena∗ Aditay Tripathi∗ Partha Talukdar
github:https://github.com/malllabiisc/EmbedKGQA
文章地址:https://www.aclweb.org/anthology/2020.acl-main.412.pdf
由于知识图谱经常出现链接的缺失,因此对知识图谱的问答(KGQA)很大挑战尤其是多跳KGQA,本文将KG embedding方法引入到知识图谱中(EmbedKGQA),预测缺失的链接,来降低KG的稀疏性,同时,EmbedKGQA避免了采用启发式邻域搜索答案的限制。
在多跳KGQA中,需要在知识图谱的多条边进行推理得出正确答案,但是知识图谱不完整,这就对KGQA有很大挑战
方法一:使用外部语料库,因为启发式搜索领域范围原因,正确答案的可能在范围之外。例如下图,在Gangster No.1 与Crime之间的链接缺失掉,而启发式搜索领域范围是三跳,正确答案在范围之外,无法得到正确答案。
方法二:首次利用KG embedding预测知识图谱中的链接缺失,其方式是将KG中的实体和关系映射到高维度嵌入中,提出EmbedKGQA,避免了采用启发式邻域搜索造成的难以找到正确答案的问题。
知识图谱问答:
知识图谱链路预测【介绍的都是已有的工作】:
首先定义KG->描述链接预测->描述KG embedding->讲解ComplEX embedding模型
##1 问题描述:
根据给定问题q和话题实体,抽取实体
作为问题q的正确答案。
EmbedKGQA answer multi-hop questions steps 大体为:
KG映射到嵌入空间->将问题转为question embedding->连接两个embedding 预测answer
###1.1 模型包括下列模块:知识图谱嵌入模块、问题嵌入模块、答案选择模块
###1.2 知识图谱嵌入模块:利用所有实体和关系,训练ComplEx嵌入。实体嵌入的目标是训练(h, q, a)三元组评分函数。其中h、q、a分别代表头实体、问题和答案实体
###1.3 问题嵌入模块:使用RoBERTa 将问题q映射到768维度的向量中,之后通过4个全连接层用 ReLU激活,最终映射到复数空间;目标是学习问题嵌入神经网络,使ComplEx评分 函数将正确三元组评分为正,错误三元组评分为负,交叉熵损失最低
###1.4答案选择模块:
对于像MetaQA这样相对较小的KG,直接选择高评分的实体,如下公式
对于相对大的KG,采用关系匹配:令r为关系,问题为q,
为r的嵌入,q'为问题的分 词,具体为,将q'输入RoBERTa得到
,
与
点积求sigmoid,将高于0.5的放入集 合
中,公式吐下:
之后选择头实体和候选答案实体中路径长度最短的关系组成列表,最后其关系评分为
与
j交集,公式如下:
关系匹配算法最后结果是ComplEx评分和关系评分的线性叠加,其中γ是超参数,公式如下:
##1、数据集
MetaQA 包含超过40万条数据,1-hop、2-hop、3-hop问题。同时提供QA,包含13.5万条三元组、4.3万个实体、9种关系
WebQuestionsSP 包括1-hop和2-hop 具有4737个问题,QA基于Freebase,为便于实验,将Freebase QA中所有涉及WebQuestionsSP 2-hop以内的实体和关系的部分裁剪下来,组成180万个实体和570万个三元组。
##2、Baselines
在WebQuestionsSP数据集上我们的模型与Key-Value Memory Network、GraftNet以及Pullnet进行对比,对于MetaQA数据库,与VRN对比,除了VRN外,这些方法都是使用多跳KGQA,使用外部文本语料库缓解KG图的稀疏性。
VRN:使用变分学习算法执行多跳QA
Key-Value Memory Network (KVMem):使用外部预料库缓解KG稀疏性的第一个方法,其主要包含一个memory table来储存KB事实,将文本编码到key-value对中进行检索
GraftNet:使用启发式方法获取外部预料库中知识图谱的内容(事实、实体、语句),并使用GNN进行推理。
PullNet:也是用生成特定问题子图的方法,而不是启发式方法,同样也是使用GNN进行推理。
在实验中作者将KG中一半的三元组移除,这个KG称为KG--50,完整的KG称为KG-Full
作者并设置了一些问题,之后章节中进行解答
Q1:KG embedding可以实现多跳QA吗?
Q2:当头部实体和答案实体之间链接缺失的时候,EmbedKGQA可以回答问题吗?
Q3:在提出的模型中,答案选择模块作用多大?
##3、KGQA result
在这个章节中将提出的模型与baseline进行对比
###1、在MetaQA数据集上分析[MetaQA包含QA及其KG]
首先,说一下作者为什么要用这个数据集
这个数据集包括1-hop、2-hop、3-hop问题并且由13.5万个三元组以及4.3万个实体组成,可以看出,KG中关系是非常多的,作者将移除掉一半的三元组之后,这个KG图是非常稀疏的(因此需要多跳才能得到答案)。作者将完整的KG图称为KG-Full,将去掉一半的三元组之后的图称为KG-50。
一方面是在1-hop中, EmbedKGQA和目前最好的模型相比并不差,另一方面,在2-hop和3-hop中,EmbedKGQA完胜baseline,Pullnet 和GraftNet表现较差。如图所示:
###2、在WebQuestionsSP上进行分析
即使是非常小的数据集中,EmbedKGQA仍然表现出比较好的效果:
##4、QA on KG with missing links
第三个实验:仅一跳QA,删掉答案三元组,仅凭链路预测获取答案
实验图示:
EmbedKGQA不仅基于知识图谱信息,而且加入关系评分函数并在问答系统模型上进行训练,效果要优于只包含知识图谱信息的ComplEx
##5、Effect of Answer Selection Module
进行消融试验验证关系匹配重要性,作者将答案的选取限定在2-hop之内,进行消融试验。
试验结果如图所示:
本篇文章提出EmbedKGQA,解决KG的稀疏性,EmbedKGQA首先训练KG实体嵌入->使用实体嵌入学习问题嵌入->在整个预测过程中,计算所有实体的评分->选择最高的分数实体作为答案。EmbedKGQA克服了在已存在的方法中邻域限制问题。