KBQA论文笔记(5):Core Techniques of Question Answering Systems over Knowledge (下)

631 阅读14分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第13天,点击查看活动详情

导语

本文是上一篇博客KBQA论文笔记(4):Core Techniques of Question Answering Systems over Knowledge (中)的后续内容,主要记录了原论文章节8到章节12的内容。

8 消岐

可能会出现两个模棱两可的问题。首先,在问题分析阶段,分词和分词之间的依赖关系是有歧义的。例如,在“Give me all european countries.”这个问题中;分词可以对“european countries”一词进行分组或不分组;导致两种可能性。第二个是短语映射步骤为一个短语返回多个可能的资源。在上面的例子中,“european”可以映射到“欧洲”一词的不同含义。本节解释KBQA系统如何处理这些歧义。

8.1 Local Disambiguation

KBQA系统主要使用了两个特征。

第一个是资源标签和相应短语的(字符串或语义)相似性。

第二个是检查属性及其参数之间的类型一致性。

第一个特征用于对可能的解释进行排序,第二个特征用于排除一些解释。这些特征是“local”的;从某种意义上说,只检查直接相关的两个资源之间的一致性。优势在于“本地化”;消歧非常容易和快速。此外,它通常非常强大。一个主要的缺点是实际的KBs通常不包含属性的域和范围信息,因此无法实现类型一致性。

以“谁是《指环王》的导演?”这个问题为例。在这种情况下是《指环王》;很明显是指电影而不是书。如果与director对应的属性没有域/范围信息,那么这个策略将不允许决定是否“指环王”是一本书或一部电影。

8.2 Graph search

QA系统gAnswer, PowerAqua, SemSek和Treo使用知识库的图结构来解决歧义,尽管它们遵循两种不同的策略。我们用下面的问题作为例子来解释:“Who is the wife of the president of the EU?”

image.png

问答系统gAnswer假设在问题分析步骤中,问题q的意图可以转换为图g,见图8。

问题中的每个变量、实体和类都对应一个节点,每个关系都对应一条边。在短语映射步骤中产生的歧义会导致G的顶点和边的歧义。gAnswer的思想是通过搜索与G同构的子图KB来消除G的顶点和边的歧义,使相应的顶点以高概率对应于q的片段。这是通过为每个可能的匹配分配一个分数来实现的,该分数与资源标签和问题片段之间的距离成正比。检索前k个匹配项。PowerAqua以类似的方式探索候选属性,但它使用迭代方法来平衡精度和召回率,首先根据问题分析选择最可能的映射和解释,然后重新迭代,直到找到答案或分析了所有解空间。它根据所选匹配项的得分,以及匹配项是否直接相关(语义距离),为每个查询分配一个分数。

8.3 Hidden Markov Model (HMM)

SINA和RTV使用隐马尔可夫模型(HMM)来解决短语映射阶段出现的歧义。其中假设了两个随机过程Xt,YtX_t, Y_t

image.png

这种技术的优点是不需要知道不同资源之间的依赖关系,只需要知道一组可能的资源即可。

8.4 Integer Linear Program (ILP)

在系统DEANNA中,提出建立整数线性规划(ILP),这是一种优化工具,以解决消歧任务。这种技术解决了短语映射阶段的歧义和分割过程中出现的一些歧义。

8.5 Markov Logic Network

问答系统CASIA使用马尔可夫逻辑网络(MLN)进行消歧任务。MLN用于学习一个模型,以选择正确的分割,将短语映射到资源,并将资源分组为图。其思想是用一阶逻辑公式定义一些约束。

8.6 Structured perceptron

Xser使用结构化感知器来解决消歧任务。其思想是在消歧过程中考虑以下征,例如:

  • 短语和相应资源的相似度,
  • 资源标签的流行度,
  • 属性的范围和域与参数类型的兼容性,
  • 以及问题中处于同一域的短语的数量。

8.7 User feedback

在某些情况下,KBQA系统无法自动进行消歧。出现这种情况的原因可能是方法使用的消歧技术不够用,或者问题确实是模棱两可的。因此,一些系统要求用户通过在一些建议的资源中进行选择来解决歧义。Freya是一个非常依赖用户反馈来消除歧义的系统。

8.8 Summary and research challenges for disambiguation

表5概述了QA系统用于消除歧义的不同技术。

image.png

9 查询构建

在本节中,我们将描述每个QA系统如何构建SPARQL查询。在查询构造过程中出现了一个问题,即所谓的“语义鸿沟”(Semantic Gap)。例如,假设用户问这样一个问题:“Which countries are in the European Union?”人们可能会假设在KB中有三元组:

dbr:Greece dbp:member dbr:European_Union .
dbr:France dbp:member dbr:European_Union .

但是,在DBpedia中,这些信息却被编码为下面的样子:

dbr:Greece dct:subject dbc:Member_states_of_the_European_Union .
dbr:France dct:subject dbc:Member_states_of_the_European_Union .

从上面可以看到,DBpedia并没有用属性"dbp:member"而是使用类别"dbc:Member_states_of_the_European _Union"来编码信息。

“语义鸿沟”指的是知识库对信息的编码与人们从问题中推断出的信息不同。这表明,通常只知道问题是不可能推断出SPARQL查询的形式的。因此,根据如何推导SPARQL查询形式,文章对查询构造方法进行了分类。大致有以下几类:

  • 基于模板的SPARQL查询形式的方法,
  • 从问题分析阶段推导出来的方法,
  • 使用机器学习技术推导出来的方法,
  • 或者仅使用语义信息推导出来的方法。

最后一小节描述SemSek和Treo不生成SPARQL查询的方法。

9.1 使用模板方式构建Query

一些KBQA系统使用模板来生成SPARQL查询,即一系列的带有槽位的预定义模板。

QAKiS限制只能选择一个三元组的查询。ISOFT系统使用一小组模板来生成SPARQL查询:包括一个三元组上的ASK查询,一些包含一个或两个三元组的简单SELECT查询,以及使用只包含一个三元组的COUNT、ORDER BY或FILTER表达式的模板。此外,PowerAqua假设输入问题可以按照一组模板简化为一个或两个语言三元组(不超过两个谓词),然后每个语言三元组在语义上匹配成一个或多个KB三元组,这些三元组可以组合成一个选择查询。在进行了一些基于图的消歧之后,构造了SPARQL查询。

这些系统的缺点也很明显,即并不是所有的问题都可以使用模板来处理。

9.2 基于问题分析阶段的信息引导的方式构建Query

大多数系统从问题分析部分得到的信息出发,推导出SPARQL查询的形式。

Freya and Intui3从问题的分割入手。在短语映射阶段,一些问题分段具有相关联的资源。然后,这些资源根据问题中片段的顺序组合成三元组。如果有必要,在标识的分段之间添加一些额外的变量,例如,一个关系后面跟着另一个关系。

DEANNA在问题分析阶段使用正则表达式在POS标签上选择了一些三元组短语候选项。它们在短语映射阶段映射到资源。在消歧阶段,使用ILP算法选择最佳候选短语和最佳短语映射。这些处理将返回一组三元组,然后用于构造一个SELECT查询。

QA系统gAnswer, QAnswer, RTV和SemGraphQA都以依赖树开始。在gAnswer中,首先推导出关系和相关的 参数;构造一个图G,其中每个关系有一条边,每个参数有一个顶点。图G反映了最终SPARQL查询的结构。关系和参数被映射到可能的资源。使用8.2节描述的子同构策略确定正确的资源。然后构造SPARQL查询。

QAnswer首先扫描依赖树以找到与某些资源对应的token的子图。这样就创建了许多具有关联资源的图。然后执行局部消歧。选择排名靠前的图,并根据该图构建SPARQL查询。

RTV使用依赖图来构建交替属性和非属性的有序列表。使用HMM对相应的资源进行搜索和消歧。从这个序列生成SPARQL查询。

Xser使用了三种不同的机器学习算法。第一个和第二个是独立于KB的。第一个用于确定问题中对应于变量、属性、实例和类的部分。第二个用于查找短语之间的依赖关系,如6.3.2节所述。第三种用于消除歧义阶段,将在8.6节中描述,它依赖于KB。由于前两个算法是与知识库无关的,因此该方法通过对问题的分析构造了SPARQL的形式。

9.3 使用语义解析的方式构建Query

语义解析器是一种将语法规则与语义组合相结合的特殊类型的解析器。在解析了问题之后,人们得到了它的语义解释。在通过QALD评估的QA系统中,语义分析器使用了不同的语法:GFMed使用的GF语法, TR Discover使用的基于特征的上下文无关语法(FCFG) ,Hakimov等人使用的组合范畴语法(CCG),TBSL和BELA 使用的词法树伴随语法(LTAG)。

这里给出了一个使用CCG语法的简单示例。假设一个句子为:

“Barack Obama is married to Michelle Obama”

要解析这个句子,需要下列语法规则:

image.png

第一列表示与规则相关联的短语。其句法类型主要有代表名词短语的NP类和代表句子的S类,以及他们的一些组合。

以句法范畴(S \ NP)/NP为例,说明它可以与左右两个方向的名词短语(NP)组合得到一个句子S。应用这些规则后,可以从句法的角度对句子进行解析。与语法规则相耦合的是语义表示。这里不再赘述,而是使用lambda calculus来表示。例如,短语married to在语义上是一个接受两个参数的二元函数。因为它是属性dbo:spouse的被动形式,所以参数是反向的。

Michelle Obama的语义表示只是一个常量,在DBpedia中是dbr:Michelle Obama。在married to和Michelle Obama之间应用上述语法规则可以得到语义表示:

λx.dbo:spouse(x,dbr:Michelle_Obama)\lambda x.dbo : spouse(x, dbr : Michelle\_Obama)

,即xx是Michelle Obama的配偶。这样整个句子可以被解析为语义表示

dbo:spouse(dbr:Barack_Obama,dbr:Michelle_Obama)dbo : spouse(dbr : Barack\_Obama, dbr : Michelle\_Obama)

,即Barack Obama’s 的配偶是 Michelle Obama。这样,从语义的角度来看,句子也能被完全理解。然后可以将语义表示转换为SPARQL查询。

这种方法的主要优点是可以直接得到问句的语义表示。这也包括这个问题的最高级和比较变体。缺点是问题必须很好地表述,即它们对于格式不正确的问题不够健壮。主要的缺点是需要为每个词汇项提供相应的语义表示。为了生成语义表示,Hakimov等人采用了Zettlemoyer & Collins,从一对问题和相应的语义表示的学习语料库中生成语义表示。Hakimov等人遇到的主要问题是许多词汇项没有出现在训练语料库中,导致召回率低。为了缓解这个问题,TBSL根据未知词汇的POS标签生成候选语义表示。在上面的例子中,如果与married to的词法项是未知的,那么可能的解释将生成,例如两个参数x和y交换的二进制函数。由于不知道married to必须映射到属性dbo: spouse,因此生成了一些模板,即解析器能够解析问题,但仍然需要找到与married to到对应的二进制属性。

9.4 使用机器学习构建Query

CASIA在整个QA过程中使用机器学习方法。问句分析阶段用于对问句进行切分,提取问句的短语位置、短语词性标记、依存关系类型等特征。在短语映射阶段,将资源与片段关联并提取新的特征:资源的类型和片段与资源之间的相似度得分。在消歧阶段,将提取的特征用于MLN(如8.5所述),以找到片段之间最可能的关系,并找到最可能的映射。然后使用检测到的关系生成SPARQL查询。必须针对每个新的知识库重新训练消歧阶段。

9.5 基于语义信息的Query构建

SINA系统主要用于处理关键字查询,而不是问题,比如"What is the capital of Belgium?"用户也可以插入关键词"capital Belgium"。这意味着不同资源之间的关系不像自然语言问题那样明确。在这种情况下,必须使用KB派生资源之间的依赖关系。

9.6 不使用SPARQL的方法

Treo 和SemSek不生成SPARQL查询,而是通过解引用资源在KB中导航。考虑下面的例子:“In which city was the leader of the European Union born?”。SemSek首先确定了一个“central term”;在疑问句中,在这种情况下是“European Union”。使用依赖树,从“central term”开始;生成与资源对应的潜在术语的有序列表。在上面的例子中,列表将是:“European Union”、"leader"、 "born"、 "city"。然后搜索第一个词的候选资源(例如dbr:European_Union),并解引对应的URI dbpedia.org/resource/Eu… 以搜索所有对应的属性。这些值将与列表中的第二项进行比较。如果其中一个属性与列表中的第二项(如dbp:leaderNamedbp:leaderTitle)相似(作为字符串或语义),则考虑该对象。这在算法中产生了两个新的探索方向。否则不进一步分析实际方向。系统像这样继续下去,并在图中搜索正确答案。

9.7 Query Construction任务的研究挑战总结

表6概述了QA系统用于查询构造的不同技术。在这一领域,目前的研究挑战是形容词修饰词和最高级的解释;聚合、比较和求反运算符的实现;句法和范围歧义的消解非合成性和语义易处理性。

image.png

10 Querying distributed knowledge

11 QA systems evaluated over WebQuestions

第6节中介绍的许多关于问题分析的技术也用于在WebQuestion上评估的QA系统。例如,Reddy et al.广泛使用了依赖树,而SEMPRE 和PARASEMPRE使用POS标签作为特征。除了第6节中介绍的技术之外,一些工作还使用了神经网络。这些已经成功地应用于许多NLP领域。已经探索了不同的架构。卷积神经网络和循环神经网络,用于识别或关注问题的特定部分(如指问题中包含的类型、关系或实体的部分)。例如,Dong et al.使用了卷积神经网络,Zhang et al.和Ture & Jojic使用了循环神经网络。

许多KBQA系统使用类似于第7节中介绍的短语映射任务的方法。例如,SEMPRE和GraphPharser 都使用了7.3.5节中介绍的策略。另一个用于缩小词汇差距的数据集是PARALEX语料库。它包含来自wikianswers.com的1800万对问题,这些问题被用户标记为具有相同的含义。这个数据集可以用来学习表达同一关系的不同方式。例如,PARASEMPRE使用了它。此外,与QALD不同的是,许多工作使用第7节中介绍的数据集和策略来为关系和实体创建嵌入(使用神经网络)。例如,STAGG和Ture&Jojic的情况就是这样。

第8节讨论的歧义消除问题在QALD和WebQuestions中都采用了类似的策略。为了消除实体的歧义,许多在WebQuestions上评估的QA系统使用Freebase的EL工具。为了在不同生成的查询之间进行消歧,主要使用机器学习算法,如结构化感知器,Reddy等人2016,以及Aqqu Bast和Haussmann 2015中使用的排序学习。特征基本相同。

第9节讨论的Query construction问题比QALD简单。许多QA系统限制为简单的三元组模式,而大多数系统限制为简单或具化三元组模式,如Aqqu。一些KBQA系统遵循的策略与9.6节中介绍的策略类似。然而,QALD还没有采用一种策略,一般称为“信息检索方法”。

以“When did Avatar release in UK?”。首先,搜索问题的主体实体;在这个例子中,实体是"Avatar"。然后,通过一个简单的或具体化的语句连接到它的所有实体被认为是一个可能的答案。其中包括日期“17-12-2009”,也包括《阿凡达》的导演、电影中的角色等。通过这种方式,问题被简化为一个分类问题,即确定一个实体是否为答案。

WebQuestions没有涉及分布式知识的查询。

综上所述,可以说在WebQuestions中,人们更多地关注的是如何缩小词法上的差距,而在QALD中,人们更多地关注的是查询构造过程。这主要是由于基准测试中包含的问题类型决定。

12 QA systems evaluated over SimpleQuestions

本节将描述基于SimpleQuestions评估的KBQA系统。表8包含了在SimpleQuestions上评估的KBQA系统的列表。

在此数据集上评估的所有系统都使用神经网络架构。事实上,创建这个基准是为了实验这些机器学习技术,因为它需要大量的训练数据才能表现良好。通过简单问题评估的不同QA系统遵循类似的策略。

注意:这个基准中的每个问题都可以通过一个三元组来解决,即只需要找到一个主语和一个谓语。

下列方法可以找到可能的三元组。首先使用n-gram策略(参见6.1节)识别候选实体。然后在知识库中查找包含这些实体作为主题的所有三元组。问题被简化为在三元组列表中选择正确的那一个。最后一步是使用不同的神经网络架构完成的。让我们更详细地看看QA过程的不同阶段是如何处理的。问题分析任务通常不被视为一个单独的任务,而是网络的某些部分专门用于它。Golub和Yin使用了所谓的注意力机制。这意味着网络学习关注问题中涉及主语或谓语的部分。

image.png

对于短语映射任务,KBQA系统依赖于由知识库提供的标签,如第7.1小节所述。此外,问题是在字符级别或者词级别编码的差异。按照7.3.5小节的思路,词嵌入用于弥合词汇鸿沟。字符编码用于解决未登录词问题,即问题中可能出现的单词数量太大,无法全部包含在词汇表中。

消歧问题被处理为一个排序问题。这里使用不同的神经网络架构来计算一对问题以及一个主语和谓语的元组之间的分数。得分最高的一对是token。查询构造问题非常简单,因为只需要生成具有一个三元组模式的SPARQL查询。没有解决查询多个KBs的问题。

在这个基准测试中解决的主要问题是消歧问题。

13 Evolution of research challenges of Question Answering over KBs

14 总结

对QA系统的分析表明,大多数系统具有许多通用技术。例如,许多系统在问题分析和短语映射任务中使用类似的技术。此外,它还表明,QA系统通常只专注于改进某些技术,而忽略了其他一些技术。例如,许多系统只使用局部消歧技术,而其他系统只使用基本的短语映射技术。

几乎不可能单独比较现有的技术。原因有很多。从单体系统的性能来看,是不可能推断出单个部件的贡献的。仅仅比较解决相同任务的技术是不够的,因为QA系统是许多组件的组合,考虑到所有步骤,必须找到精度和召回率之间的平衡。一个高召回率和低准确率的组件是好是坏取决于接下来的步骤。因此,只能通过比较整个管道中不同技术的组合来进行比较。

解决这些问题的一个方法是使用模块化方法开发未来的QA系统。这将允许社区为新的插件做出贡献,以便替换现有方法或创建新的方法。我们的目标是,QA系统不应该总是从头开始构建,这样研究就可以更多地专注于单一任务。作为副作用,它将变得更容易比较解决相同任务的技术。这些插件应该满足语义Web的约束条件。它们应该是KB独立的,可扩展的,可能是多语言的,并且需要尽可能少的工作来在新数据集上建立QA系统。我们知道有四个框架试图为QA系统提供可重用的架构。这种集成还允许围绕QA系统构建和重用服务,如语音识别模块和可重用前端。这样,学术界就能够解决新的研究方向,如开发专门为回答KBs上的问题而设计的语音识别系统,以及研究QA系统与用户的交互。

对QALD 和 WebQuestions 的比较表明,这些基准测试非常相似。尽管如此,这两个基准都是由两个相当孤立的社区解决的。这一点可以从QA系统不是通过QALD,就是通过网络提问来评估的事实中看出。我们希望未来这些社区能够相聚一堂,互相学习。一个可能的交汇点是Wikidata KB。有几个原因。Freebase知识库不再更新,所有相关服务都关闭了。Wikidata转储包含信息的具体化和非具体化版本,因此从DBpedia和Freebase迁移到Wikidata非常简单。此外,Wikidata周围有越来越多维护良好的服务,可以用来开发新的QA系统。

同时,大多数QA系统仅在一个KB上进行评估,这表明创建真正独立于KB的QA系统需要更多的工作。这也可以让我们对知识库的质量如何影响QA系统的质量有新的认识。这些问题应该由QA社区来解决。最后一个问题是QA系统与用户的交互。我们不知道有研究开放域基于KBs的QA系统可用性的工作,有一些工作在真实场景中应用KBs的QA。随着时间的推移,与用户的交互也可以是一个改进QA系统的好机会,并收集训练数据,这些数据对于提高这些系统的性能和理解越来越重要。

参考

  1. 论文阅读:Core techniques of question answering systems over knowledge bases: a survey

后记

终于粗略的啃完了一遍这篇42页的综述,这里的大部分内容基本都是对照原文翻译加上了一些个人理解写成的。整体来看,我觉得这篇综述类文章基本涵盖到了KBQA的各个部分的内容,可以作为一篇很好的文章来拓宽视野。希望这篇博客对您有帮助。