Semantic Parsing via Staged Query Graph Generation: Question Answering with Knowledge Base【论文笔记】

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32782771/article/details/82773048

一、摘要

  我们对知识库问答提出一个新颖的语义解析框架。我们定义了一个类似于知识库子图的查询图,可以直接映射为逻辑形式。语义解析被简化为查询图生成,被表述为分阶段搜索问题。与传统方法不同,我们的方法在早期就利用知识库来修剪搜索空间,从而简化语义匹配问题。通过应用实体链指系统深度卷积神经网络匹配问题和谓词序列,我们的系统由于之前的方法,在WebQuestion数据集上F1达到了52.5%。

二、介绍

  很多state-of-the-art的KB-QA方法基于语义解析,问题会映射为正式的意义表示(比如:逻辑形式),然后翻译为知识库查询语句。该问题的答案可以通过执行查询语句获得。然而,大多数传统的语义分析方法在很大程度上与知识库分离,因此在适应QA等应用时面临着一些挑战。例如,当逻辑形式使用与KB中定义的谓词不同时,通用意义表示可能具有ontology match问题。即使表示语言与知识库模式密切相关,从KB中的大词汇表中找到正确的谓词到话语中描述的关系仍然是一个难题。
  受到(Yao and Van Durme,2014; Bao et al.,2014)的启发,我们提出了一种语义解析框架,在对输入问题解析时更加紧密地利用知识库。我们首先定义一个查询图,它可以直接映射到λ-calculus中的逻辑形式,并且在语义上与λ-DCS密切相关。然后将语义解析简化为查询图生成,将其表述为具有分阶段状态和动作的搜索问题。 每个状态都是查询图表示中的候选解析,每个动作都定义了一种增长图形的方法。因此,语义解析的表示能力由适用于每个状态的一组合理动作控制。特别地,我们将动作分为三个主要步骤:定位问题中的主题实体,发现答案和主题实体之间的主要关系,并使用描述答案需要的属性的附加约束或问题中答案与其他实体之间的关系来扩展查询图。
  这种分阶段设计的一个关键优势是,通过将某些实体和谓词的部分话语基础接地,我们通过关注空间中最有可能导致正确查询图形的有前途的区域,使搜索更加有效。我们的设计将这个特定的语义解析问题划分为几个子问题,例如实体链接和关系匹配。对每个子问题用最好的解决方法就会提升语义解析的性能。

三、背景

  我们的方法采用图形化的方式表示知识库 K K 和问题 q q ,并将语义分析简化为将问题映射到查询图。 我们将在下面描述基本设计:

1. 知识库
  知识库其实就是subject-predicate-object三元组的集合,知识库通常也称为知识图,由于它的图形化表示,每个实体都是一个节点,两个相关的实体由一条边相连。

2. 查询图
  给定知识图,执行逻辑形式查询等同于查找可以映射到查询的子图,然后解析变量的绑定。为了捕捉这种直觉,我们在图表表示中描述了λ-calculus的受限子集作为我们的查询图。
  查询图由四种类型的节点组成:基础实体(圆角矩形),存在变量(圆形),lambda变量(阴影圆形),聚合函数(钻形)。基础实体是存在于知识库中的实体。存在变量和lambda变量不是基础实体。特别地,我们想要检索最终可以映射到lambda变量的所有实体作为答案。聚合函数旨在对特定实体进行操作,通常捕获一些统计属性。
  举个例子,Figure2显示了问题“Who first voiced Meg on Family Guy?”的查询图。MegGriffin 和 FamilyGuy两个实体由圆角矩形节点表示。圆形节点y表示应该存在一个实体,描述一些构造关系,比如角色,演员和她开始担任角色的时间。阴影圆形节点x,也就是答案节点,用于映射查询检索到的实体。钻形节点argmin约束答案是扮演这个角色最早的演员。λ-calculus对应的逻辑形式如下 (缺少聚合函数), λ x . y . c a s t ( F a m i l y G u y , y ) a c t o r ( y , x ) c h a r a c t e r ( y , M e g G r i f f i n ) \lambda x.\exists y.cast(FamilyGuy,y)\bigwedge actor(y,x)\bigwedge character(y,MegGriffin) 。聚合函数作用前,运行此查询可以匹配到两个答案:LaceyChabert和MilaKunis,但LaceyChabert才是正确答案,因为她扮演这个角色早。

2. 分阶段查询图生成
  我们专注于生成具有以下属性的查询图。首先,树图包含一个实体节点作为根节点,也就是主题实体。其次,只存在一个lambda变量x作为答案节点,根节点与该节点有一条直连路径,其中有0个或多个存在变量。我们称这条路径为核心推理链,因为它描述答案节点和主题节点的主要关系。变量只可以在这条链中出现,并且这条链只包含变量,除了根节点。最终,0个或多个实体或聚合节点可以与任意一个变量节点相连,包括答案节点。这些分支是答案需要满足的额外的约束。
  给定一个问题,我们将查询图生成过程形式化为搜索问题,具有分阶段状态和动作。 S = { , S e , S p , S c } S = \bigcup \{\emptyset,S_e,S_p,S_c\} 是状态的集合,每一个状态都可以是空图 ( \emptyset ), S e S_e 是有主题节点的单一节点图, S p S_p 是核心推理链, S c S_c 是额外的约束。 A = { A e , A p , A c , A a } A = \bigcup \{A_e,A_p,A_c,A_a\} 表示动作的集合。一个动作通过添加一些边和节点来扩展图。特别地, A e A_e 选择一个实体节点, A p A_p 决定核心推理链, A c A_c A a A_a 添加约束和聚合节点。给定状态,有效动作集可以由图3中的有限状态图定义。

  我们使用log-linear模型在状态空间上定义奖励函数。奖励基本上估计查询图正确解析问题的可能性。使用具有优先级队列的最佳优先策略完成搜索。接下来会举一个例子来描述动作序列。

  2. 1 链接主题实体
   从初始状态 s 0 s_0 开始,有效的动作是创建一个与给定问题中找到的主题实体相对应的单节点图。比如, q e x q_{ex} 中可能的主题实体是FamilyGuy或MegGriffin,如Fig. 4所示。

   我们使用实体链指系统来识别实体。对知识库的每个实体,这个系统首先准备了表面形式的词汇库,列举了文本提到的实体e所有可能的形式。它会考虑词典中出现的所有连续词序列,并与其可能的实体配对。然后,基于表面形式词典中的频率计数,通过统计模型对每对进行评分。为了容忍实体链接系统的潜在错误,以及探索更多可能的查询图,最多10个排名靠前的实体被视为主题实体。 链接分数也将用作reward function的特征。

  2. 2 确定核心推理链
  确定核心推理链,也就是确定主题实体和答案的关系。Fig. 5显示了3条可能的链。给定主题实体e,我们只需要探索可以从e开始的合法谓词序列。当中间存在变量可以与CVT节点相连时,我们探索长度为2的所有路径,如果不是,则探索长度为1的路径。如果在训练数据中观察到组合,我们还考虑更长的谓词序列。
  确定核心推理链,其实就是讲问题映射为正确的谓词序列。我们将这个问题简化为使用神经网络来计算语义相似度。为了处理陈述相同问题的各种语义等价方式,以及知识库中自然语言话语和谓词的不匹配,我们使用Siamese神经网络来识别核心推理链。例如,我们的一个构造将问题映射到模式,方法是将实体替换为通用符号,然后将其与候选链进行比较,例如“who first voiced meg on ” vs. cast-actor。模型由两个神经网络组成,一个处理模式,另一个处理核心推理链。全部都映射到k维向量作为网络的输出。语义相似度通过距离函数计算得到。最近提出了这种连续空间表示方法用于语义解析和问答,并且与词汇匹配方法相比,已经显示出更好的结果。本篇论文采用卷积神经网络框架来解决匹配问题,网络结构Fig. 6所示。
  CNN模型首先对一个单词进行word hashing,将一个单词转换为三元组的向量表示。比如单词“who”的三元组形式为#-w-h,w-h-o,h-o-#,#是单词边界符。然后通过卷积层将3个单词的上下文窗口中的三元组向量进行卷积得到局部上下文特征向量,通过最大池化层提取最显著的局部特征以形成固定长度的全局特征向量,然后将全局特征向量输送到前馈神经网络层以输出最终的非线性语义特征,作为问题模式或核心推理链的向量表示。
  我们的模型与(Bordes et al., 2014a)相比,有两个优点:首先word hashing层控制了输入空间的维度,很容易扩展到大词汇表中,字三元组捕获了更多的语义信息,这使得它特别适合来自现实世界用户的问题;使用卷积池化的深度架构,拥有更强大的表示能力。

3. 约束和聚合
  如Fig. 7的 s 3 s_3 所示,将会检索到所有FamilyGuy扮演过的演员。很明显这检索结果包含正确答案和错误答案。所以我们需要加上约束信息。为了检索答案实体集,拥有核心推理链的图只可以被两种类型的动作扩展: A c A_c A a A_a A c A_c 是连接一个实体到变量节点可能方式的集合,边表示合法谓词,如 s 6 s_6 所示。有时,通过聚合函数在整个答案集中描述约束,这种动作由 A a A_a 表示,在一个变量节点中连接一个聚合节点,如 s 7 s_7 所示。
  通过核心推理链找到y和x节点的邻居节点,以此获得全部的约束集。这会导致很大的约束集。在这篇论文中,使用简单的规则获得合法的约束集。比如,约束节点是一个同时也出现在问题中的实体。聚合节点可以通过关键词匹配,比如“first”、“latest”等等。

4. 学习奖励函数
  我们使用log-linear模型来学习奖励函数,接下来会描述特征和学习过程。

  • 主题实体 由实体链指系统返回的分数作为一个特征。
  • 核心推理链 我们使用不同CNN模型的相似度分数来衡量核心推理链的质量。PatChain 将模式(将主题实体用实体符号代替)与谓词序列进行比较。QuesEP 将主题实体的规范名称和谓词序列拼接,然后与问题比较。这个特征在概念上尝试验证实体链指的建议。这两个CNN模型是使用问题对和训练数据中的解析的推理链来学习的。除了域内相似性特征外,我们还使用ClueWeb语料库的Freebase注释训练ClueWeb模型。对于可以通过一个或两个谓词链接的句子中的两个实体,我们将句子和谓词配对以形成平行语料库以训练CNN模型。
  • 聚合&约束 当图中存在约束节点时,我们使用一些简单的特征来检查问题中是否存在可与约束实体或属性相关联的单词。相似地,我们在预定义的列表中检查关键词是否存在,比如“first”、“current”、“latest”,作为聚合节点的特征。
  • 其它 将通过查询知识库检索到的答案实体的数量和查询图中的节点数作为特征。

  首先问题被认为是一个排名问题。每一个问题会有多个候选的查询图。假设 g a g_a g b g_b 两张查询图(对应的状态为 s a s_a s b s_b )的候选答案集为 A a A_a A b A_b ,A是问题q的真实答案,我们首先计算 A a A_a A b A_b 的准确率、召回率和F1,然后根据F1对 s a s_a s b s_b 排名。即使查询不完全正确,它仍然比其他一些完全不正确的查询更有用。我们使用一层的神经网络来训练这个排名模型。

四、实验

  使用WebQuestions数据集,包括5810个问答对。其中65%作为训练集,35%作为测试集。系统的性能由问题回答正确的比率来衡量。一个问题可能有不止一个正确答案,对每个问题计算准确率、召回率、F1。平均F1作为主要评价指标。这里不再介绍实验过程,实验结果如Table 1 表示:

  论文还做了不同模块的系统的影响的实验。如Table 2和Table 3所示:

  随机采样100个没有生成完全准确查询图的问题,对错误进行分类。发现有1/3的错误是标签问题导致,并不是真的错误。8%的错误是由于实体链指不准确,然而,有些是问题有歧义,表达不清楚,比如问题“Who founded the AFL?”,AFL是表示“American Football League”或“American Federation of Labor”。35%的错误是不正确的推理链。23%是由于约束不准确或丢失。

五、总结

  作者对知识库问答提出了一个新颖的语义解析框架,将查询图定义为可以直接映射到逻辑形式的意义表示。语义解析被简化为查询图生成,被表述为分阶段搜索问题。在先进的实体链指系统和深度卷积神经网络的基础上,系统的性能是state-of-the-art的。未来可以做的工作是可以扩展查询图以表示更复杂的问题,探索更多特征和模型,研究将其他结构化输出预测方法应用于图生成。

猜你喜欢

转载自blog.csdn.net/qq_32782771/article/details/82773048
今日推荐