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

351 阅读7分钟

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

导语

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

4 KBQA系统的选取

本文在进行筛选用于比较分析的KBQA系统时,首先选出了参加QALD比赛,以及引用了QALD文章的系统,然后进行筛选,例如,滤除了一些只能回答形式化问题的系统。

这些系统的性能表现如下表所示:

image.png

5 问答流程

为了对KBQA系统所使用的技术进行分析对比,文章将KBQA流程分为五个任务:

  1. 问题分析。主要是NLP的基础分析:判断问句类型、NER、关系分类、依存句法等。
  2. 短语映射。从问句中找到的短语s,在知识库中找到对应的资源(可能是实体、关系)
  3. 消歧。对之前的映射进行消歧。
  4. 查询构造。生成SPARQL语句,用于查询KB。
  5. 查询分布式知识。问题需要从多个KB中进行搜索才能找到完整答案进行查询。

image.png

下面,我们通过一个简单的示例来解释上述1-4的步骤。

假设用户的question是:

Q: "What is the population of Europe?"

那么,在问题分析步骤,将会使用纯语法特征来提取给定问题信息的技术。例如:

  • 确定问题的类型,例如这是一个“what”类型的问题;
  • 识别命名的实体,如“Europe”;
  • 识别关系和实体(主语和宾语),如关系“the population of”,以及
  • 它们的依赖关系,如在“the population of”和“Europe”之间存在依赖关系

在短语映射步骤,在短语映射任务,将识别的实体/关系短语s映射到所有可能的链接资源。例如,这个短语 “Europe”在DBpedia中可能的资源为是:

  • dbr:Europe _(band) (that refers to a Band called Europe),
  • dbr: Europe (that refers to Europe as a continent) and
  • dbr:Europe _(dinghy) (a particular type of boat).

在消歧任务中,需要进一步确定在短语映射任务期间确定的哪些资源是正确的资源。在上面的例子中,“欧洲”不能指一支乐队或一艘船,因为谈论他们的人口没有意义。因此,这两种资源可以排除在外。

查询构造任务描述如何构造可以执行的SPARQL查询。本部分还介绍了需要特殊操作符(如比较符和最高级)的查询的构造。在上面的例子中,生成的 SPARQL 查询是:

select ?p where 
{ 
    dbr:Europe dbp:populationTotal ?p 
}

在分布式KB中,回答问题的信息必须从几个KBs中检索。

请注意,QA系统通常不会严格按照五个任务进行划分。 然而,KBQA系统通常可以以这种方式分解。这些任务的细分并不是为KBQA系统提供一个通用的体系结构,而是对KBQA系统进行分类和比较。此外,通常没有处理任务的优先顺序,例如Xser首先执行消歧,然后构造查询,而SEMPRE则相反。

接下来的五个章节描述了QA系统用于解决不同任务的技术。这里关注的是可以适应任何知识库的技术,即不使用特定于DBpedia/ wikipedia 的技术。

6 问题分析

6.1 命名实体识别

该部分可以使用现成的NER工具进行识别,该方法的局限是只限于某些特定领域(人名地名等)。同时,还可使用N-gram的方式,将N-gram结果作为各个实体,与KB进行比较。如果有现成的Entity Linking工具,可以直接完成实体识别+与知识库的映射。

6.2 使用词性标注来分割问题

先对句子进行POS标注,有了POS tag,可以辅助进行句子的切分(切出表示实体、关系的短语)。可通过人工构建规则的方式(例如正则表达式等),也可以通过标注训练数据+机器学习的方式。

image.png

image.png

6.3 使用解析器标识依赖关系

可以使用依存句法分析来进行句法层面的解析。不同的KBQA系统,有时使用了不同的依存分析语法。

6.3.1 成分句法分析

可以使用成分句法分析,如下图:

image.png

6.3.2 依存句法分析

同样的,也可以使用依存句法分析

image.png

6.4 问题分析总结和研究挑战

下表显示了不同系统用于问题分析的策略。

image.png

7 短语映射

给定一个短语ss,想要在 KB 中找到它对应的实体/关系/类。

在KB中,资源记作rr,每个资源有对应的label,所以我们的目标是给定ss,找到label与ss相等或包含ss 的所有概率高的rr

注意:s可能对应到一个instance、一个property或者一个class。 例如,短语EU可能对应于DBpedia的资源dbr:European_Uniondbr:University_of_Edinburgh 或者是 dbr:Execution_unit (a part of a CPU).

7.1 Knowledge Base Labels

KB中的知识表示一般使用RDF规范,如下展示了几个三元组示例:

image.png

为了能够快速进行搜索,需要对KB构建索引,可使用某些三元组数据库(例如说virtuoso)内置的索引功能,或者采用Lucene外部搜索工具。

但在映射时,有一些要注意的问题:一是ss可能存在拼写错误或者单复数等形式,导致字符串会不完全一致;二是存在文字书写几乎不相关,但语义非常相似的,例如EU对应欧盟,married对应spouse等。这两个问题非常重要。

7.2 Dealing with string similarity

对于第一个问题,可通过计算字符串相似度,模糊搜索或者英文的stemming(词干化)来解决。这里举个例子: 词干提取主要是采用“缩减”的方法,将词转换为词干,如

  • “cats” --> “cat”
  • “effective” --> “effect”

7.3 Dealing with semantic similarity

对于第二个问题,由于其涉及语义相似度,主要有以下解决思路:

  1. 词库。例如借助WordNet和Wiktionary,或者专门的一个同义词库PATTY,可将ss扩展成多个同义词,拿多个同义词去KB中搜索。带来的一个坏处是由于匹配到了更多的内容,给消歧增大了计算量。

  2. 重定向。开发知识库的sameAs关系,为一个实体增加多个sameAs实体,便于匹配。

  3. 从文本中抽取。例如已知kb中的三元组x,r,y,拿着x,y去文本中,找他俩出现的位置,夹在之间的文本很可能就是关系r对应的文本表示。大致依照这种思路,找到文本与KB资源的对应关系。

  4. 词向量方式。借助word2vec等词向量,找到同义词,或者计算相似度。

7.4. Wikipedia specific approaches

一些系统使用其他工具来完成短语映射任务,即DBpedia lookup和Wikipedia Miner Tool。

7.5 Summary and research challenges for the phrase mapping task

表4概述了哪个引擎使用哪种技术进行短语映射。这一步的关键点在于,人们必须在选择尽可能少的候选资源以提高准确率和时间性能之间找到平衡,同时选择足够多的候选资源以选择相关的资源以提高召回率。

image.png

短语映射步骤中确定的研究挑战是:填补词汇/词汇差距和多语言性。如果用户查询中的词汇表和KB词汇表以不同的语言表示(词汇化),则使用后者。