题目:使用知识库嵌入改进知识图上的多跳问答
作者:Apoorv Saxena、 Aditay Tripathi、Partha Talukdar
发布地方:ACL
面向任务:知识图谱问答
论文地址:https://malllabiisc.github.io/publications/papers/final_embedkgqa.pdf
论文代码:https://github.com/malllabiisc/EmbedKGQA
目录
1 介绍
●知识图谱(KG):现实世界到数据世界的映射,是由数百万个实体(例如,苏州和江苏)和它们之间的关系(或属性)(例如,苏州-省中的地级市-江苏)组成的多关系图。大型KG有Wikidata、DBPedia、Yago和NELL。
知识图谱问答(KGQA):给定一个自然语言(NL)问题和一个KG,基于在KG下对问题进行分析得出正确答案。
多跳知识图谱问答(KGQA):需要对KG上的多个边进行推理才能得出正确的答案。
局限性:KG通常是不完整的,缺少许多链接(两个实体虽然存在语义关系,但没有边相连),这给KGQA尤其是对于多跳KGQA带来挑战。
●最近相关的研究
①从KG构造一个特定于问题的子图,然后用外部文本文档对其进行扩充以解决KG稀疏性,然后将图CNN应用于这个增强的子图以得出最终答案。但外部文本不容易获得,且受推理领域大小约束(跳数约束)。例如在实例图1中,Louis Mellis是问题中的头部(主要)实体,Crime是答案实体。若Gangster No.1与Crime有直接边相连,这个问题很容易回答。但没有直接边相连,此时模型需要进行更长路径的推理(Gangster No.1->gangs->The Departed->Crime),且此方法施加了推理的邻域大小限制(例如图中阴影区域,只能进行3跳,Crime是3跳之外的实体),因此该方法答案实体可能推理不到。
图1:在稀疏和不完整KG中多跳KGQA实例
②提出了KG嵌入方法,通过执行缺失链接预测来减少KG稀疏性。即学习KG中实体和关系的高维嵌入,然后用于链接预测。但这种KG嵌入方法还没有用于多跳KGQA。
本文:提出了EmbedKGQA。贡献:
①在稀疏KG上执行多跳KGQA时特别有效。
②不受推理时领域大小限制的约束。
③在多个数据集的实验,证明了EmbedKGQA的先进性。
更多详细信息,参阅图2和第4节。
2 相关工作
KGQA:
①TransE被用于回答基于事实的问题,但这需要对每个问题进行基本事实关系标记,并且不适用于多跳问答。
②提取一个特定的子图来回答这个问题。即为头部实体生成的子图被投影在高维空间中以进行问答。
③使用记忆网络学习KG中存在的事实的高维嵌入以执行QA。
④在训练期间学习问题与对应三元组之间的相似性函数,并在测试时用所有候选三元组对问题进行评分。
⑤使用基于嵌入的方法将自然语言问题映射到逻辑形式。
⑥利用神经网络学习评分函数来对候选答案进行排名。
⑦将每个关系视为一个标签,并将QA任务模型视为一个分类问题。
⑧在KG不完整的情况下将外部文本语料库作为知识源来回答KG的复杂问题,但这会增加QA系统的复杂程度,且文本语料库并不总是可用。
KG补全方法:使用KG嵌入进行链接预测以补全KG,框架是为KG中的一组三元组(h,r,t)定义一个评分函数,正确三元组的分数高于不正确三元组。
RESCAL和DistMult学习包含头实体和尾实体向量之间的双线性乘积和关系矩阵的得分函数。ComplEx表示复杂空间中的实体向量和关系矩阵。 SimplE和TuckER分别基于典型多坐标(CP)分解和Tucker分解。TransE(Translating Embeddings for Modeling Multi-relational Data)将实体嵌入高维真实空间中作为头部和尾部实体之间的平移的关系。另一方面,RotatE(Knowledge Graph Embedding by Relational Rotation in Complex Space)将实体投影在复杂空间中,关系表示为复平面中的旋转。ConvE利用卷积神经网络来学习头部实体、尾部实体和关系之间的评分函数。InteractE(Improving Convolution-based Knowledge Graph Embeddings by Increasing)通过增加特征交互来改进ConvE。
3背景
3.1 知识图谱
符号表示:
知识图谱:G(E,R,K);
实体集:E;
关系集:R;
三元组集:K;
三元组:(h,r,t),其中h,t∈E分别表示主实体和对象实体,r∈R表示实体间的关系。
3.2 链接预测
给定一个不完整的知识图,判断哪些未知链接是有效的。KG嵌入模型通过评分函数φ实现,即分数s=φ(h,r,t)
3.3 知识图嵌入(ComplEx嵌入)
ComplEx是一种将关系和实体嵌入复杂空间的张量分解方法,能捕获更全面的特征。给定h,t,r,ComplEx生成,, ∈ (复数范围内的d维向量),并定义一个评分函数:
对于真三元组:φ(h,r,t)>0,对于假三元组:φ(h,r,t)<0。Re表示复数的实部。
4 EmbedKGQA
4.1 EmbedKGQA概述
图2:EmbedKGQA概述模型框架
EmbedKGQA使用知识图嵌入来回答多跳问题。首先,它学习KG在嵌入空间中的表示,然后再学习问题嵌入,最后它结合这些嵌入来预测答案。即由3个模块组成:
①KG嵌入模块:为KG中的所有实体创建嵌入(4.2节)
②问题嵌入模块:为问题创建嵌入(4.3节)
③答案选择模块:将所有实体都视为候选答案,通过结合问题和关系相似度得分找到答案( 4.4节)。这样的方法不会受到现有多跳KGQA方法推理时领域大小约束。
4.2 KG 嵌入模块
使用ComplEx嵌入将KG中的所有h、r、t表示为,,。实体嵌入后边用于学习头部实体、问题和答案实体之间的三重评分函数(4.3)。基于QA训练集中 KG 实体的覆盖范围,这里学习的实体嵌入要么保持冻结(5.3.2节),要么允许在后续步骤中进行微调。
4.3 问题嵌入模块
该模块使用前馈神经网络将问题q嵌入到固定维度向量∈ 中。该网络首先使用RoBERTa(2019)将问题q嵌入到768维向量中,然后通过4个全连接层(激活函数为ReLU),最后投影到复杂空间上。
给定一个问题q,主实体h和一组答案实体A⊆E,它以如下方式学习问题嵌入,其中φ是ComplEx评分函数(1), 是在先前步骤中学习的实体嵌入。
对于每个问题,使用所有候选答案实体a'∈E计算分数φ(.)。通过最小化sigmoid得分和目标标签(正确1、错误0)之间的二元交叉熵损失来学习模型。当实体的总数很大时,会进行标签平滑(一种损失函数的修正)。
4.4 答案选择模块
推理时,模型将所有可能的答案a' 与(head,question)对进行打分。像MetaQA这样相对较小的KG,只需选择得分最高的实体。
但若知识图很大,修剪候选实体可以显着提高EmbedKGQA的性能。剪枝策略将在下一节中描述。
4.4.1关系匹配(剪枝)
与PullNet类似,模型学习了一个评分函数S(r,q),它对给定问题q的每个问题主实体的关系r进行排序。设是关系r的嵌入,问题q中输入到RoBERTa的单词序列q'=(<s>,,..,,,</s>),取RoBERTa的最后一个隐藏层的最终输出为。评分函数定义为与的点积的sigmoid。
在所有关系中,选择那些得分大于0.5的关系,记为集合Ra。对于获得的每个候选实体a'(4.4节),找到头部实体h和a'之间的最短路径中的关系,记为Ra'。每个候选答案实体的关系分数为它们的交集的大小(得分函数S(r,q)筛选的关系Ra在候选答案对应关系集合Ra'中出现的数量越多,说明该评分函数筛选关系的能力越高):
使用关系分数和ComplEx分数的线性组合来找到答案实体,其中γ是一个可调的超参数:
5 实验细节
5.1 数据集
①MetaQA(2018)是一个超过400k问题的在电影领域的多跳KGQA大规模数据集,其中包含1跳、2跳和3跳问题。在我们的实验中,我们使用了“vanilla”版本的问题。除了QA数据,MetaQA还提供了一个包含135k三元组、43k实体和9个关系的KG。
②WebQuestionsSP(2016)是一个有4737个问题的小规模的多跳数据集,其中包含1跳和2跳问题,KG为Freebase(Freebase来源于开放社区,例如开放网页的抽取等)。将KB限制为Freebase的子集以便于实验,包含WebQuestionsSP问题中提到的任何实体的2跳内的所有事实及关系。于是这个KB有1800k个实体和5700k个三元组。
表1:MetaQA和WebQuestionsSP的数据集
5.2 基线
基线模型:
①VRN(2018)使用变分学习算法在KG上执行多跳QA。
②Key-Value Memory Network(KVMem)(2016)是通过增加文本对不完整KB进行QA的模型。它维护一个内存表,存储KB事实和编码为键值对的文本,并将其用于检索。
③GraftNet(2018)使用启发式方法创建包含来自文本语料库的知识图谱事实、实体和句子的特定问题子图,然后使用CNN的变体对其进行推理。
④PullNet(2019)创建了一个特定于问题的子图(非启发),从数据中“pull”事实和句子以创建一个更相关的子图,然后使用CNN方法来执行推理。
本文模型在MetaQA数据集上与Key-Value Memory Network、GraftNet、Pullnet和VRN进行比较。本文模型在WebQuestionsSP数据集与的Key-Value Memory Network、GraftNet和Pullnet进行比较。这些方法实现了多跳KGQA,都使用额外的文本语料库来缓解KG稀疏问题(除VRN)。
其他设置:
通过随机删除KB中一半的三元组来模拟不完整的KB(因为实际上的KG是不完整的),称此设置为KG-50,全KG为KG-Full。
下面,文章将回答以下问题:
Q1:知识图嵌入能否用于执行多跳KGQA?(第5.3节)
Q2:当头部实体和答案实体之间没有直接路径时,是否可以使用 EmbedKGQA 来回答问题?(第5.4节)
Q3:答案选择模块对我们模型的最终性能有多大帮助?(第5.5节)
5.3 KGQA结果
在本节中,我们在MetaQA和WebQuestionsSP数据集上将我们的模型与的基线模型进行了比较。
5.3.1 在MetaQA上的分析
在KG-Full中,本文模型与基线模型在2跳及以内性能相当,在3跳问题上达到了最高,表明EmbedKGQA能够从相邻边缘推断出正确的关系,因为KG嵌入可以对关系的组合进行建模。
在KG-50中,所有基线的准确性降低,因为MetaQA KG稀疏,当删除50%的三元组时,图变得更稀疏,每个实体节点平均只有1.66个链接,导致问题的头部实体节点到其答案节点需更长的路径(>3),于是对特定问题进行子图构造(GraftNet、PullNet)的模型无法在其生成的子图中找到答案实体,但在包含额外的文本语料库后它们的性能才会有所提高。而EmbedKGQA有最先进的性能另一方面,它利用KG嵌入的链接预测属性,能够推断缺失链接的关系。
表2:模型在MetaQA KG-Full和KG-50的结果。括号中的数字对应于使用文本来增加KG-50的设置。评价指标为hits@1,可以参考https://blog.csdn.net/zcs2632008/article/details/123258206?spm=1001.2014.3001.5502
5.3.2 WebQuestionsSP分析
WebQuestionsSP的训练数据相对较少,但使用大量的Freebase KG,使得多跳KGQA变得更加困难。由于KG的所有实体都没有包含在训练集中,因此在学习KG实体(第4.2节)嵌入后冻结它们是必要的。表3表明,即使使用少量训练数据,EmbedKGQA也可以学习很好的问题嵌入,从而可以推断出回答问题所需的多跳路径,例如在KG-50上优于所有基线。
表3:模型在WebQuestionsSP KG-Full和KG-50的结果。括号中的数字对应于使用文本来增加增加KG-50的设置。评价指标为hits@1。
现在可以回答问题Q1,由5.3.1和5.3.2可知,本文模型可以执行多跳KGQA。
5.4 缺少链接的KG情况
PullNet和GraftNet需要根据知识图中头部实体和答案实体之间的路径来回答问题。例如PullNet中,答案被限制为提取的特定于问题子图中。对于不完整KG(50%),经实验发现PullNet在MetaQA 1跳数据集召回为0.544,说明只有54.4%的答案实体都存在于提取的问题子图中。
而EmbedKGQA使用头部实体嵌入和问题嵌入,隐含地捕获头节点周围所有观察到和未观察到的链接的知识。因此即使头部和答案实体之间没有路径,如果KG中有足够的信息能够预测该路径,本文模型也能够回答问题(图1)。
又进行了一个实验来测试本文模型的这种能力,从MetaQA 1跳的验证集中的所有问题,删除了所有可以直接用于回答问题的三元组(即不可能显式地与目标实体相连)。例如,对原问题'what language is [PK] in',从KG中删除了三元组(PK,in language,Hindi)。数据集还包含差不多的问题,例如“what language is the movie [PK] in’和‘what is the language spoken in the movie’,作者还从训练数据集中删除了和验证集问题差不多的问题,因为作者不想评估模型的语言概括而是KG的完整属性。
作者预想的是仅依赖传统的基于路径的方法为0 hits@1。但本文模型在这种设置中到达了更高的29.9 hits@1。表明本文模型可以捕获ComplEx嵌入的KG完整属性,并将其应用于回答原本不可能的问题(即通过知识表示的学习去预测出对应的边)。在1跳KGQA中如果知道每个问题对应的关系,即主实体与答案相连,那么只预测尾实体(答案)。ComplEx最终获得了20.1的hits@1。较低分数原因是ComplEx嵌入仅使用KG而本文模型还使用QA数据(QA嵌入本身就代表知识)。
表4:在MetaQA 1跳的头实体和答案实体之间没有链接实验的结果。
现在回答问题Q2,当头部实体和答案实体之间没有直接路径时,可以使用 EmbedKGQA 来回答问题。
5.5 答案选择模块的效果
通过对关系匹配模块的消融研究来分析答案选择模块(4.4节)对WebQuestionsSP数据集中EmbedKGQA的影响。将候选答案实体集限制为头实体的2跳邻域实体。表5所示,关系匹配对EmbedKGQA在WebQSP KG-full和KG-50上的性能都有显着影响。
表5:该表显示关系匹配模块(4.4.1节)的重要性以及基于邻域的过滤对WebQuestionsSP数据集中EmbedKGQA的影响。EmbedKGQA本身包含关系匹配模块,查看消融关系匹配模块并在答案选择期间添加2跳邻域过滤的效果。
WebQSP KG(Freebase子集)的实体数量比MetaQA 多,并且可能的答案数量大。所以在WebQSP KG-Full中,减少头部实体的2跳邻域的答案集性能提高。但会导致WebQSP KG-50的性能下降,这是因为将答案限制在不完整KG上的2跳邻域会导致答案不存在于候选者中(请参见图1)。
现在回答问题Q3,答案选择模块对本文模型的最终性能有很大帮助。作者建议可以在EmbedKGQA基础上进行答案选泽时进行n-hop过滤,以用于相当完整的KG。
6 结论
本文提出了一种用于多跳KGQA的新方法EmbedKGQA。KG通常不完整且稀疏,这对多跳KGQA带来了额外的挑战。最近相关工作通过利用额外的文本语料库来解决不完整性问题,但相关文本语料库的可用性通常是有限的。本文EmbedKGQA利用KG嵌入的链接预测特性来缓解KG不完整性问题,而无需使用任何额外的数据。它训练KG实体嵌入并用它来学习问题嵌入,在推理时,它对所有实体进行评分(头部实体,问题),并选择得分最高的实体作为答案。EmbedKGQA也不受跳数约束的限制。其在多个KGQA设置中实现了最先进的性能。