文章目录
论文标题:统一检索与推理解决知识图谱多跳问答
论文链接:https://arxiv.org/abs/2212.00959
arXiv:2212.00959v2 [cs.CL] 1 Mar 2023
摘要
多跳知识图谱问答(KGQA)的目标是在大规模知识图谱(KG)中找到与问题相关的答案实体,这些实体距离问题中提到的主题实体有多步的距离。为了应对庞大的搜索空间,现有工作通常采用两阶段方法:首先检索与问题相关的一个相对较小的子图,然后在子图上进行推理以准确找到答案实体。尽管这两个阶段密切相关,但之前的工作在开发检索和推理模型时采用了非常不同的技术解决方案,忽视了它们在任务本质上的相关性。在这篇论文中,我们提出了一种用于多跳知识图谱问答任务的新型方法——UniKGQA,通过在模型架构和参数学习方面统一检索和推理。对于模型架构,UniKGQA包括一个基于预训练语言模型(PLM)的语义匹配模块,用于问题关系语义匹配,以及一个匹配信息传播模块,用于沿着知识图谱上的有向边传播匹配信息。对于参数学习,我们设计了一个基于问题关系匹配的共享预训练任务,适用于检索和推理模型,然后提出检索和推理导向的微调策略。与以前的研究相比,我们的方法更加统一,紧密关联检索和推理阶段。在三个基准数据集上的大量实验已经证明了我们的方法在多跳知识图谱问答任务中的有效性。我们的代码和数据可以在https://github.com/RUCAIBox/UniKGQA上公开获取。
1 简介
随着大规模知识图谱(KG)的出现,例如Freebase(Bollacker等人,2008年)和Wikidata(Tanon等人,2016年),知识图谱问答(KGQA)已成为一个重要的研究课题,旨在从KG中找到自然语言问题的答案实体。最近的研究(Lan等人,2021)主要关注多跳KGQA,这是一种更复杂的场景,需要复杂的多跳推理来推断KG上的正确答案。我们在图1(a)中展示了一个示例。给定问题“谁是《杰夫·普罗布斯特秀》的提名人妻子”,任务目标是从主题实体“《杰夫·普罗布斯特秀》”找到一条推理路径到答案实体“雪莱·赖特”和“丽莎·安·拉塞尔”。
面对大规模知识图谱中庞大的搜索空间,之前的研究(Sun等,2018;2019)通常采用检索然后推理的方法,以实现良好的折衷。一般来说,检索阶段旨在从大规模知识图谱中提取与问题相关的三元组,组成一个相对较小的问题相关子图,而推理阶段则专注于准确地从检索到的子图中找到答案实体。尽管两个阶段的目的不同,但两个阶段都需要评估候选实体与问题的语义相关性(用于删除或重新排序),这本质上可以被视为一个语义匹配问题。为了衡量实体的相关性,基于关系的特征,无论是直接关系(Miller等人,2016)还是复合关系路径(Sun等人,2018),都被证明对于构建语义匹配模型特别有用。如图1(a)所示,给定问题,识别语义匹配的关系和知识图谱中组成的 relation path(例如,“提名人 → 配偶”)是找到正确答案实体的关键。由于这两个阶段在知识图谱上处理不同规模的搜索空间(例如,数百万与数千),它们通常采用特定的技术解决方案:前者更喜欢更高效的聚焦于召回性能的方法(Sun等,2018),而后者更喜欢更有能力的方法来建模细粒度匹配信号(He等,2021)。
图1:我们工作的说明性示例和学习过程。
考虑到两个阶段的相同本质,本工作旨在通过研究以下问题来推动多跳知识图谱问答(KGQA)的研究:我们是否可以为两个阶段设计一个统一的模型结构以获得更好的性能?为了开发一个多跳KGQA的统一模型结构,一个主要的优点是我们可以紧密关联这两个阶段并增强相关信息的共享。尽管这两个阶段高度相关,但以往的研究通常在模型学习中将它们分开处理:只将检索到的三元组从检索阶段传递到推理阶段,而忽略了在流水线框架中其他有用的语义匹配信号。这种方法可能会导致次优或劣质的性能,因为多跳知识图谱问答是一项非常具有挑战性的任务,需要精心设计的解决方案,充分利用两个阶段的各种相关信息。
然而,在为多跳知识图谱问答(KGQA)开发统一模型架构时,存在两个主要问题:(1)如何应对两个阶段非常不同的搜索空间规模?(2)如何有效地在两个阶段之间共享或传递有用的关联信息? 针对第一个问题,我们提出了一种新的子图形式来减少检索阶段的节点规模,即抽象子图。这种子图由合并知识图谱中具有相同关系的节点构成(如图1(b)所示)。对于第二个问题,我们基于相同的模型架构设计了一种有效的学习方法,以便我们可以共享相同的预训练参数,并使用学到的检索模型来初始化推理模型(见图1c))。
为此,本文提出了一种用于多跳知识图谱问答任务的统一模型——UniKGQA。具体来说,UniKGQA包括一个基于预训练语言模型(PLM)的问题关系语义匹配模块,以及一个匹配信息传播模块,用于沿着知识图谱上的有向边传播匹配信息。为了学习这些参数,我们基于统一的架构设计了预训练(即问题关系匹配)和微调(即检索和推理导向的学习)策略。与以前关于多跳KQGA的工作相比,我们的方法更加统一和简化,紧密地关联了检索和推理阶段。
据我们所知,这是第一项在模型架构和学习方面统一检索与推理的工作,适用于多跳知识图谱问答任务。为了评估我们的方法,我们在三个基准数据集上进行了大量实验。在难度较大的数据集WebQSP和CWQ上,我们大幅度超过了现有最先进的基线(例如,在WebQSP上,Hits@1提高了8.1%,在CWQ上,Hits@1提高了2.0%)。
2 预备知识
在这部分,我们将介绍本文中使用的符号,并正式定义多跳知识图谱问答任务。
知识图谱(KG)。知识图谱通常由一组三元组组成,表示为G = {⟨e, r, e′⟩|e, e′ ∈ ε \varepsilon ε, r ∈ R},其中E和R分别表示实体集和关系集。一个三元组⟨e, r, e′⟩描述了一个事实,即头实体e和尾实体e′之间存在一个关系r。此外,我们用Ne表示属于实体e的所有邻近三元组集合,即Ne = {⟨e, r, e′⟩ ∈ G} ∪ {⟨e′, r, e⟩ ∈ G}。让r-1表示r的逆关系,我们可以将一个三元组⟨e, r, e’⟩表示为它的逆三元组⟨e’, r-1, e⟩。这样,我们可以简化实体e的邻近三元组的定义为Ne = {⟨e’, r, e⟩ ∈ G}。我们进一步使用 E ∈ R d × ∣ ε ∣ {\mathbf{E}} \in { {\mathbb{R}}^{d \times {|\varepsilon|}}} E∈Rd×∣ε∣和 R ∈ R d × ∣ R ∣ {\mathbf{R}} \in { {\mathbb{R}}^{d \times {|R|}}} R∈Rd×∣R∣分别表示知识图中实体和关系的嵌入矩阵。
多跳知识图谱问题回答(Multi-hop KGQA)。给定一个自然语言问题q和一个知识图G,知识图问答的任务旨在在知识图中找到问题的答案实体,表示为答案集Aq ∈ ε \varepsilon ε。遵循之前的工作(Sun等,2018;2019),我们假设问题中提到的实体(例如,“The Jeff Probst Show”在图1(a)中)被标记并与知识图上的实体链接,即主题实体,表示为Tq ⊂ ε \varepsilon ε。 在这项工作中, 我们关注解决多跳知识图谱问答任务,其中答案实体在知识图谱中距离主题实体有多次跳转。 考虑到效率和准确性的权衡,我们遵循现有工作(Sun等,2018;2019),使用检索-推理框架来解决这个任务。在两阶段框架中,给定一个问题q和主题实体Tq,检索模型的目标是从大规模输入的知识图谱G中检索出一个小的子图Gq,而推理模型则通过在检索到的子图Gq上进行推理来搜索答案实体Aq。
摘要子图。基于知识图谱,我们进一步引入了抽象图的概念,它是通过对原始子图的简化而得出的。具体来说,给定与问题q相关的一个子图Gq,它在G中是子集,我们合并来自相同前缀(即,相同的头实体和关系:<e,r,?>)的尾部实体,然后生成一个相应的抽象节点~e来表示尾部实体集合,所以我们有 e ~ \widetilde{e} e = {e’ | <e,r,e’> ∈ G}。同样,我们也可以对头实体执行相同的操作。为了统一表示法,我们将一个不能合并的原始节点转换为一个抽象节点,方法是创建一个仅包含该节点自身的集合。通过这种方式,相应的抽象子图Gq可以表示为: G q ~ \widetilde{G_q} Gq = {⟨ e ~ \widetilde{e} e