Message Passing for Complex Question Answering over Knowledge Graphs

知识图谱上复杂问题回答的消息传递

这篇文章还是没怎么看懂,看到很多NLP的基础和工具不是很理解,这篇论文在实验部分写的感觉还是很精彩的,还是建议看原文

原作者的github: https://github.com/svakulenk0/KBQA

0 Abstract

知识图谱问答(KBQA)已经从简单的单事实问题发展到需要图遍历和聚合的复杂问题。提出一种无监督解析输入问题并将知识图中的术语与一组可能的答案相匹配来传播置信度得分。

  • 提取实体、关系和类名,并将它们映射到图中的对应项。
  • 然后,这些映射的置信度得分通过图结构传播,以定位答案实体。
  • 最后,根据确定的问题类型对这些问题进行汇总。

这种方法可以有效地实现为一系列稀疏矩阵乘法,模拟小局部子图上的连接。在LC-QuAD上SOTA。此外,我们表明,该方法的性能仅取决于问题解释结果的质量,即,给定正确的相关性分数分布,我们的方法总是产生正确的答案排名。我们的错误分析揭示了基准数据集中缺失的正确答案和DBpedia知识图中的不一致。最后,我们对建议的方法进行了综合评估,同时进行了消融研究和误差分析,更详细地展示了每个问题回答组件的缺陷。

1 Introduction

检索系统中,在底层数据结构的表示能力方面受到限制,底层数据结构依赖于单个数据库表的索引。即,共享相同属性集的文本文档的同类集合,例如网页或新闻文章。

知识图谱(KGs),即图形结构的知识库,如DBpedia [27]或Wikidata [48],可以用完全不同的模式链接数据集[4]。此外,SPARQL是一种非常有表现力的查询语言,它允许我们从符合指定图形模式的KG中检索数据。SPARQL中的查询公式在实践中并不容易,因为它需要了解要访问哪些数据集、它们的词汇和结构。自然语言界面可以缓解这些问题,使数据访问更加直观,并且对大多数外行用户也是可用。这种接口的核心功能之一是问答,它超越了关键字或布尔查询,但也不需要专业查询语言的知识。

KGs产生的模型同时是抽象的、紧凑的和可解释的。
基于知识图的问题回答需要将一个输入问题匹配到一个子图中,在最简单的情况下,匹配KG中的一条带标签的边(三边),这一任务也称为简单问题回答。复杂问题回答的任务与简单的KGQA不同,需要在KG中匹配一个以上的三元组。以前提出的复杂KBQA方法将其表述为子图匹配任务,这是一个NP困难问题(非确定性多项式困难问题)(通过简化为子图同构问题)。或者尝试将自然语言问题翻译成基于模板的SPARQL查询,以从KG中检索答案,这需要大量候选模板。

提出无监督消息传递算法,QAmp。允许在不确定性下使用文本相似性和图形结构进行有效的推理。克服KG中的不一致性和训练数据的不完整性,这些条件限制了替代监督方法的应用。

QAmp的一个核心方面是将推理从问题解释过程中分离出来。我们表明,推理中的不确定性仅源于问题解释阶段,这意味着在正确的问题解释下,QAmp总是将正确的答案排在首位。QAmp旨在通过反映自然语言歧义的置信度得分来适应感知和解释过程中固有的不确定性,这取决于正确解释术语的能力。然后,通过我们的消息传递,以一种定义明确的方式汇总这些排序的置信度值,这允许我们同时考虑种子术语的多种可选解释,根据问题上下文和KG中建模的关系,选择最有可能的解释。我们展示了如何通过高效的矩阵运算并行评估多个可选的问题解释,而不是迭代所有可能的排序。

QAmp在实践中被证明有用的另一个假设是故意忽略主客体顺序(subject-object order),即知识图谱中的边方向,从而将该图视为无向图。由于关系的稀疏性,这种模型松弛对于基准数据集中的大多数问题都是足够的。我们还证明,由于基准数据集的关系覆盖不足,任何关于KG中三元组正确顺序的假设都容易过度拟合。要学习和评估预测关系方向性的监督模型,每个关系需要一个以上的问答示例。

我们对LC-QuAD1[45]的评估表明,在不需要将自然语言问题翻译成正式查询语言(如SPARQL)的情况下,QAmp的性能明显优于最新技术。我们还证明了QAmp在激活路径方面是可解释的,同时也是简单、有效和高效的。此外,我们的误差分析证明了使用局部图模式构建的LC-QuAD基准的局限性。

论文的其余部分组织如下。第2节总结了KGQA的现状。第3节介绍了我们的方法,QAmp,特别关注问题解释和答案推断阶段。在第4节中,我们在LC-QuAD数据集上评估了QAmp,提供了详细的消融、可扩展性和误差研究。最后,第6节总结并列出未来的工作。

2 Related Work

我们基于图的方法的好处是保留了KG的原始结构,可以用来执行精确的形式查询和回答模糊的自然语言问题。与向量空间操作相比,图结构还使得结果可追踪,并因此在相关路径和子图方面是可解释的。其余略

3 Approach

我们的KGQA方法QAmp包括两个阶段:

  1. 问题解释,在问题解释阶段,我们确定我们认为与回答输入问题相关的实体谓词集,以及相应的置信度得分。
  2. 回答推理,这些置信度得分直接在KG的结构上传播和聚集,以提供一组可能答案的置信度分布。我们对KG的概念是从**the Resource Description Framework(RDF)**常见概念中得到启发的,许多大规模知识图谱中使用的标准表示, 如:DBpedia和Wikidata:

Definition 3.1. 定义知识图谱 K = K = K= <E, G, P>作为包含实体集实体 ( e n t i t i e s , E ) (entities ,E) (entitiesE)和属性 ( p r o p e r i t e s , P ) (properites, P) (properites,P)。两者都由唯一资源标识符(URIs)表示,和一组有向标记边< e i , p , e j e_i, p, e_j ei,p,ej> ∈ G \in G G,这里 e i , e j ∈ E e_i, e_j \in E ei,ejE p ∈ P p \in P pP

KG中的边集可以看作是一个(无空白节点的)RDF图,主谓宾三元组< e i , p , e j e_i, p, e_j ei,p,ej>
与RDFs类似,我们指的是作为特殊属性rdf: type as Classes的对象出现的实体 C ∈ E C\in E CE的子集.我们也将类、实体和属性统称为术语。我们忽略RDF文字,除了(RDF:标签),用于将问题与KG中的术语进行匹配。

知识图谱问答的任务是:给定一个自然语言问题q和一个知识图k,产生正确的答案a,它或者是在KG A ∈ E A \in E AE中实体的子集,或者是对这个子集进行计算的结果。例如这个子集中的实体数量(COUNT)或断言(ASK)。这些类型的问题是现有KGQA基准中最常见的。在第一阶段,QAmp将一个自然语言的问题q映射到一个结构化的模型q,然后答案推理算法将对其进行操作。

3.1 Question interpretation

为了生成问题模型 q q q,我们遵循两个步骤:

  1. parse:它从自然语言问题中提取引用(实体、谓词和类提及)并识别问题类型
  2. match:它将每个提取的引用分配给KG中候选实体、谓词和类的排序列表。

实际上,一个复杂的问题需要回答几个子问题,这些子问题可能相互依赖或相互支持。子问题之间的依赖关系意味着一个问题的答案 A 1 A^1 A1需要产生另一个问题的答案 A 2 A^2 A2: A 2 = f ( A 1 , K ) A^2=f(A^1, K) A2=f(A1,K)。我们称这样复杂的问题为复合问题,并在KG中匹配这些问题应该回答跳跃(在本文的上下文中,单变量图形模式——one-variable graph patterns)的顺序。

考虑图1中的示例复合问题,它由两跳组成:

  1. 找到在维多利亚布罗德梅多斯组装的硬顶车型,
  2. 找到生产这些车型的公司。

有一个中间答案(具有指定属性的汽车类型),需要这个中间答案才能得出最终答案(公司)。
因此,我们定义(复合)问题如下:

Definition 3.2. 一个问题模型是一个元组 q = q = q= < t q , S e q q t_q, Se_{qq} tq,Seqq>, t q ∈ T t_q \in T tqT是回答问题Q所需的问题类型,并且, S e q q = ( Se_{qq}=( Seqq=(< E i , P i , C i E^i, P^i, C^i Ei,Pi,Ci > ) t = 1 h )_{t=1}^h )t=1h是KG上的h跳序列。
E i E^i Ei是实体引用集,
P i P^i Pi一组属性引用,
C i C^i Ci与图中i-hop相关的一组类引用,
T T T是一组问题类型。例如{SELECT, ASK, COUNT}

因此图一可以建模表示为,< S E L E C T , ( SELECT,( SELECT(< E 1 { “ h a r d t o p ” , “ B r o a d m e a d o w s , V i c t o r i a ” } , P 1 = { “ a s s e m b l e s ” , “ s t y l e ” } , C 1 = { “ c a r s ” } E^1\{“hardtop”, “Broadmeadows, Victoria”\}, P^1 = \{ “assembles”, “style”\}, C^1 = \{“cars”\} E1{hardtop,Broadmeadows,Victoria},P1={assembles,style},C1={cars} > , < E 2 = ϕ , P 2 = { “ c o m p a n y ” } , C 2 = ϕ E^2 = \phi, P^2 = \{“company”\}, C^2 = \phi E2=ϕ,P2={company},C2=ϕ > ) > 这里 E i , P i , C i E^i, P^i, C^i Ei,Pi,Ci指的是实体,谓词和类 在第 i i i跳。
在这里插入图片描述

此外,我们描述了问题模型Q是如何通过解析输入问题Q产生的,之后我们将Q中的引用与图 K K K中的实体和谓词进行匹配。

Parsing: 给定一个自然语言问题Q,目标是根据定义3.2对其类型 t q t_q tq进行分类,并将其解析为参考集序列 S e q q Se_{qq} Seqq。问题类型检测被实现为在带注释的问题类型对的数据集上训练的监督分类模型,其学习将输入问题分配给预定义类型 t q ∈ T t_q \in T tqT之一

我们将参考(提及)提取 S e q q Se_qq Seqq建模为序列标记任务[26],其中一个问题被表示为一系列标记(单词或字符)。然后,在一个带注释的数据集上训练一个有监督的机器学习模型,为标记分配标签,我们用它来提取对实体、谓词和类的引用(提及)。此外,我们定义了标签集,将问题中引用的实体、属性和类分组到 h h h跳中。

Matching: 接下来,定义3.2的问题模型使用* interpreted question model*问题解释模型: I ( q ) = ( t q , S E Q q ) I(q)=(t_q, SEQ_q) I(q)=(tq,SEQq)。其中 S e q q Se_{qq} Seqq的每个组成部分由 ( E ∪ P ∪ C ) × [ 0 , 1 ] (E ∪ P ∪ C) × [0,1] (EPC)×[01]的成对集合表示,这些成对集合是通过匹配对K中具体术语的引用(通过它们的URIs)获得的,如下所示:对于每个实体(或属性、类、响应。)参考在 S e q q Se_{qq} Seqq中,我们从KG中检索最相似实体的排名列表以及匹配的置信度得分。

图1还显示了我们的示例中的匹配步骤的结果。例如,第一跳的属性引用被候选URIs集合替换: P 1 = { P 1 1 , P 2 1 } ∈ S E Q q P^1 = \{ P_1^1, P_2^1 \} \in SEQ_q P1={P11,P21}SEQq,在 I ( q ) I(q) I(q),这里 P 1 1 = { ( d b o : a s s e m b l y , 0.9 ) , ( d b p : a s s e m b l y , 0.9 ) } P_1^1=\{(dbo:assembly,0.9), (dbp:assembly,0.9)\} P11={(dbo:assembly,0.9),(dbp:assembly,0.9)} P 2 1 = { ( d b o : b o d y S t y l e , 0.5 ) } P_2^1 = \{(dbo:bodyStyle,0.5)\} P21={(dbo:bodyStyle,0.5)}
在这里插入图片描述

3.2 Answer inference

我们的答案推断方法基于来自的初始分配,迭代地遍历和聚合图中的置信度得分 I ( q ) I(q) I(q)。一个答案集 A i A^i Ai,即一组实体以及它们的置信度分值 E×[0,1],在每一跳 i i i之后产生,并与 I ( q ) I(q) I(q)中与该跳匹配的项一起用作下一跳 i + 1 i+1 i+1的输入的一部分,例如,$SEQ_q(i+1) = $ < E i + 1 , P i + 1 , C i + 1 E^{i+1}, P^{i+1}, C^{i+1} Ei+1,Pi+1,Ci+1 > 在最后一跳 h h h之后产生的实体集 A h A^h Ah可以被进一步变换以产生最终答案: A q = f t q ( A h ) A_q = f_{tq}(A^h) Aq=ftq(Ah) 通过聚集函数 f t q ∈ F f_{tq} \in F ftqF来自为每个问题类型 t q ∈ T t_q∈ T tqT定义的一组预定义的可用聚合函数 F F F。我们分两步归纳计算每一跳的答案集 A i A_i Ai:(1)子图提取和(2)消息传递。

Subgraph extraction 这一步指的是从构成子图的KG中检索相关的三元组.因此,查询中匹配实体和谓词的URIs被用作种子来检索KG中的三元组,该三元组包含至少一个实体(在主题或对象位置)和来自相应引用集的一个谓词。因此,提取的子图将包含n个实体,这包括来自 E i E^i Ei的所有实体和通过来自 P i P^i Pi的属性与它们相邻的实体。

子图表示为一组k个邻接矩阵,子图中有n个实体: S k × n × n S^{k×n×n} Sk×n×n,k是匹配属性URIs的总数,对于用作种子的k个属性中的每一个,都有一个单独的 n × n n×n n×n矩阵,如果在实体i和j之间的标签p,这里 S p i j = 1 S_{pij} = 1 Spij=1,否则0。邻接矩阵是对称的,对角线条目被指定为0以忽略自循环。

Message passing答案推断阶段的第二步涉及消息传递,即,将在问题解释阶段匹配的实体 E i E_i Ei和谓词 P i P_i Pi的置信度得分传播到所提取的子图中的相邻实体。该过程分三步进行,(1)属性更新,(2)实体更新,以及(3)分数聚合.算法1述了过程,细节如下:

对于m个属性引用中的每一个 P j ∈ p m × k , j ∈ { 1 , 2 , . . . , n } P_j \in p^{m×k}, j \in \{1,2, ...,n\} Pjpm×k,j{1,2,...,n},这里 m = ∣ p i ∣ m=|p^i| m=pi

  1. 如果 p i j > 0 p_{ij} > 0 pij>0, 从属性URIs的 S k × n × n S^{k×n×n} Sk×n×n中选择邻接矩阵的子集,这里 p i j ∈ P j p_{ij} \in P_j pijPj,并且通过逐元素乘法将置信度得分传播到相应邻接矩阵的边。然后,将所有邻接矩阵合并成一个邻接矩阵 S j n × n S_j^{n×n} Sjn×n。如果边重叠,则包含它们的所有边以及置信度得分的总和。(property update: line 3, Algorithm 1).

  2. 通过和积更新执行主要的消息传递步骤,其中来自 l l l个实体引用的置信度得分,这里 l = ∣ E i ∣ l=|E^i| l=Ei。通过 S j n × n S_j^{n×n} Sjn×n中的所有边传递给相邻的实体。(entity update: line 4, Algorithm 1)

  3. 通过将所有置信度得分的总和与接收非零置信度得分的实体和谓词参考集的数量相结合,将子图中所有n个实体的置信度得分聚合到单个向量A中。这个分数聚合公式(第11行,算法1)背后的直觉是,从问题中的大多数实体和谓词引用中获得置信度的答案应该是首选的。我们的运行示例的答案分数的计算如图2所示。

候选答案的最小置信度由阈值来调节,以排除部分和低置信度匹配。最后,我们还有一个选项,通过只考虑答案集 A i A^i Ai中那些在配置项中有一个类 C i C_i Ci的实体来过滤答案。

使用 S E Q q ( i ) = SEQ_q(i) = SEQq(i)= < E i , P i , C i Ei,Pi,Ci Ei,Pi,Ci >中建模的实体、属性和类的相应URI激活,对序列中的每一跳重复相同的过程,并使用为前一跳ai-1生成的中间答案进行扩充。最后,问题 A q A_q Aq的答案是基于实体集 A h A_h Ah产生的,实体集 A h A_h Ah要么按原样返回,要么通过以问题类型 t q t_q tq为条件的聚合函数 f t q f_{tq} ftq
在这里插入图片描述

4 EVALUATION SETUP

评估QAmp在LC-QuAD数据集上

首先,我们报告端到端方法的评估结果,该方法除了初始问题解释(问题解析器和匹配函数)之外,还结合了我们的消息传递算法。

其次,我们分析了由不同的KGQA组件产生的错误的比例和来源,这提供了一个关于KGQA的当前技术状态的局限性、任务的复杂性和基准的局限性的全面视角。我们的实现和评估脚本是开源的。

Baseline:WDAqua

Metrics
对召回率和准确率等于0的情况
1 对于选择问题,不返回答案(空答案集),而在真值注释中有一个答案(非空答案集);
2 对于计数问题或ASK问题,与真实答案不同
3 对于所有的问题,预测的答案类型都不同于真是答案
在消融研究中,我们还分别分析了每一部分有误差的问题的比例,其中误差与基本事实答案不完全匹配。
Hardware

4.1 The LC-QuAD dataset

5k问题对,这些问题是使用一组SPARQL模板生成的,通过用DBpedia实体和关系播种它们,然后由人类注释者解释。有ASK SELECT和COUNT三种类型,所有问题对需要两条,包含一到三个实体和1-3种属性

我们使用数据集提供的训练和测试分割(表1)。排除了图中没有答案的两个查询。所有问题也用基本事实参考跨度进行注释,以评估实体链接和关系检测的性能

4.2 Implementation details

数据集有个1B的元组,26M个实体,68687属性。通过Python HDT应用编程接口实现了对用于子图提取和类约束查找的KG的访问。

我们的端到端KGQA解决方案集成了几个可以独立培训和评估的组件。两个有监督神经网络,(1)问题类型检测和(2)提及抽取;(3)无监督函数抽取实体和(4)谓词匹配,以及(5)消息传递。

Parsing BiLSTM对问题分类,BiLSTM+crf提取实体、类和谓词的提及,最多两跳,分别使用六个标签 :{“E1”、“P1”、“C1”、“E2”、“P2”、“C2”},词向量用GloVe

Matching KG中所有实体和谓词的标签(rdfs:标签链接)被索引到两个独立的目录中,并使用在维基百科上训练的英语快速文本模型嵌入到两个独立的向量空间中.我们使用两个排序函数来匹配和分配相应的置信度得分:实体基于索引,谓词基于嵌入。
后面这一段看的不是很懂,大体上讲了如何用谓词匹配到实体

5 EVALUATION RESULTS

在这里插入图片描述
在这里插入图片描述

5.1 Ablation study

在这里插入图片描述

表3 我们报告所有问题中部分有一个答案偏离基本事实的部分(总列)、缺少术语匹配的问题(不匹配)和其他错误。修正误差是在手动误差分析中被认为是真实误差的其他误差的子集。

首先,我们通过向答案推理模块(表3中的设置1)提供所有基本事实实体、类和属性URIs,确保我们的问题解释模型中的松弛对于基准数据集(95%)中的大多数问题都成立。我们发现只有53个测试问题(5%)需要一个来模拟实体在三元组中的确切顺序,即主语和谓语位置。这些问题明确指的是实体关系的层次结构,比如dbp:doctoralStudents和dbp:doctoralAdvisor(见图312,13),并且必须解释它们的方向性才能正确回答这些问题。对于本质上对称的关系,我们还找到了基准中缺少的一组正确答案,但基准只考虑了一个方向,例如,dbo:related、dbo:associatedBand和dbo:sisterStation(参见图4)。-----模型存在部分缺点,不能为双向关系建模由于问题解释模型中默认的无方向性假设,QAmp能够检索到这个假阴性样本。

这些结果表明,当在该数据集上训练时,试图根据期望的边和它们的方向(解析图或λ演算)来反映问题的结构语义的更复杂的问题模型可能达不到要求:53个样本问题不足以训练能够从文本中识别关系方向的可靠的监督模型,这解释了在该数据集上报告的子图排序的槽匹配模型的不良结果

只有8个错误(1%)是由于拼写错误或语法不正确的问题导致的错误问题类型(表3中的第2行)。接下来,我们尝试移除类约束,发现虽然它们通常有助于过滤掉不正确的答案(第3行),但我们的匹配函数遗漏了许多正确的类,即使使用了基准注释中的基本事实跨度(第4行)。

表3中的最后四个评估设置(5–8)显示了从解析和匹配引用跨度到KG中的实体和谓词的错误。大多数错误是由于缺少术语匹配(10-34%的问题),这表明解析和匹配功能构成了端到端KGQA的瓶颈。即使使用谓词引用的基本事实跨度注释,性能也低于0.6 (34%的问题),这表明关系检测比实体链接任务更难,这与Dubey等人[9]和Singh等人[42]报告的结果一致。
在这里插入图片描述

5.2 Scalability analysis

对解析时间进行考察分析,大部分在两秒以内,少部分是需要查询大量替代解释

5.3 Error analysis

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值