自由讨论 | KBQA从入门到放弃—入门篇

本文转载自公众号 PaperWeekly 。


本期问题清单

  • KBQA 的定义/概念/应用前景是什么?

  • KBQA 和 DBQA 的区别以及各自的应用场景是什么?

  • KBQA 传统方法框架及经典系统结构(问题解析,生成查询,答案检索及评分等)包括哪些子模块?涉及哪些技术点?代表系统在测试集上效果如何?

  • IBM Watson/Microsoft DeepQA 等成熟业界问答系统 KBQA 部分的解决方案

  • 值得读的论文和开源项目(侧重于工程实用)

 

话题讨论精选

KBQA 的定义/概念/应用前景是什么

 

知识库问答(knowledge base question answering, KB-QA)即给定自然语言问题,通过对问题进行语义理解和解析,进而利用知识库进行查询、推理得出答案。具体的,从应用领域的角度划分,知识库问答可以分为开放域的知识问答,如百科知识问答,和特定域的知识问答,如金融领域,医疗领域,宗教领域等,以客服机器人,教育/考试机器人或搜索引擎等形式服务于我们的日常生活。

 

 

KBQA 和 DBQA 的区别以及各自的应用场景是什么?

 

KBQA 是基于知识库的问答,DBQA 是基于文档的问答。换言之,KBQA 利用的是结构化的知识,而 DBQA 所利用的是非结构化的文本。数据源的不同决定了他们不同的擅长领域,KBQA 更适合回答 what,when 等事实性问题;DBQA 更适合回答 why,how 等解释性、 述性问题。

KBQA 传统方法框架及经典系统结构(问题解析,生成查询,答案检索及评分等)包括哪些子模块?涉及哪些技术点?代表系统在测试集上效果如何?

 

传统的 KBQA 系统根据其框架共同特征,都可以大概分为四个模块。这四个模块形成的整体框架,可以视为一个粗糙而通用的 pipeline。四个模块为:问题分析(Question Analysis)、短语映射(Phrase Mapping)、消歧(Disambiguation)和查询构建(Query Construction)。

 

3.1 在问题理解模块中,使用所有可能的语言学特征,来抽取所需要的信息, 具体的包括识别命名实体、词性标注、句法分析等子任务。 

 

3.2 在短语映射模块中,是将短语与知识库中的资源,通过概率计算,进行映射和链接,可以从语义相似度和字符串相似度等两个角度进行计算。从字符串相似度的角度可以使用编辑距离,jaccard 距离进行计算,或是使用 Lucene 提供的 FUZZY 模糊查询来找出与问句短语最相近的 label。

 

计算语义相似度可以使用以下几种方法:重定向方法,即根据本体中的 sameas、或异构本体的锚联结(anchor)来寻找相同的属性或类,从而扩展短语和 label 的映射;使用抽取的知识找到映射关系,从语料中抽取自然语言的二元关系,并与本体知识库进行映射。相关工具有:ReVerb,TEXTRUNNER,WOE,PATTY 等。使用大型文档来找到映射关系,即通过大型文档语料库,将本体中的属性 p 进行 文字述的扩展,相关工具为 BOA。使用词向量 word2vec,计算自然问句短语和本体 label 之间相似度,从而进行映射。

 

3.3 在消歧(Disambiguation)模块中,需要解决短语映射模块中出现的歧义问题,用各种技术来无歧义地确定短语映射的知识库实体。

 

第一种方法是使用字符串相似度,即通过本体资源的 label 和相应的自然语句短语来进行相似度计算,并进行排序;第二种方法是判断属性和其参数(如属性的 domain 和 range)是否一致,将不符合一致性的排除。具体地可以使用图搜索、隐马尔科夫模型(HMM)、整数线性规划(ILP)、马尔可夫逻辑网络(MLN)、结构化感知器(Structured Perceptron)等数学模型,或者采用人工反馈调整的方法。

 

3.4 在查询构建(Query Construction)模块中,需要将前述三个模块生成的结果融合,得到最终的 SPARQL 查询语句,并将其返回用户,可分为基于模板、基于问题分析中得到的信息、基于机器学习和基于语义信息构建查询 SPARQL 语句。

 

基于模板建立查询是建立起实现设计好的查询模板,其中包含一些空槽,需要将相关信息填入后形成一个完整的查询。另外还可以通过语法树分析、依存树分析或语法槽等方法,解构自然语言形成查询。同时也有一些工作通过机器学习的方法建立问句与查询语句之间的映射关系。 绝大多数系统的功能都可以划分为这四个模块,这四个模块的顺序可能不尽相同,但是不同系统中每个模块完成的功能都是一致的。

 

IBM Watson/Microsoft DeepQA 等成熟业界问答系统 KBQA 部分的解决方案

 

Watson 是问答系统领域的一座里程碑,作为一个工程项目,Watson 中应用了非常多的方法和技巧。

由框架图可以看到 Watson 中 DBQA 与 KBQA 均发挥着重要作用,其针对 KBQA 进行优化主要体现在候选答案生成模块的查询生成部分,详情可参阅本文 3.4 部分。

 

 

值得读的论文和开源项目(侧重于工程实用) 

 

推荐知识问答领域较著名的测评 QALD:

 

https://qald.sebastianwalter.org/

 

官网中有历年获奖系统的论文,部分系统公布了开源代码。 

 

推荐阅读 IBM watson 系统相关论文集 IBM Journal of Research and Development 2012:

 

http://researcher.watson.ibm.com/researcher/view_group_pubs.php?grp=209 9

 

关于PaperWeekly

 

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

 


 

OpenKG.CN

 

中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

点击阅读原文,进入 OpenKG 博客。

发表评论

电子邮件地址不会被公开。 必填项已用*标注