KBQA: 趋势浅谈

KBQA领域历经十余年发展,从基于规则的传统方法到基于神经网络的模型,再到结合语言学知识,研究不断深入。神经网络模型逐渐成为主流,但缺乏解释性,语言学方法在解决复杂问题上仍有价值。近年来,研究焦点转向自动化学习逻辑规则和模型解释性。ACL 2019和AAAI 2020的论文展示了知识图谱与自然语言处理的交叉应用,如多任务学习和图神经网络。尽管模型表现提升,但逻辑表达式的标准化和统一仍然是挑战。未来,KBQA将关注模型的自动化、泛化能力和可解释性。
摘要由CSDN通过智能技术生成

在这里插入图片描述

前言

Knowledge-based Question Answering (KBQA) 领域经历了十余年的积淀,留下了诸多优秀的作品。从这些作品的迭代中,我们看到了这个领域逐渐趋于成熟的态势。基于神经网络的语义解析模型在 2014 年前后发迹,并逐渐成为主流,影响至今。而传统的语言学知识从未被遗忘,依然有人在负重前行。从搜索引擎到聊天机器人,KBQA 的应用早已悄悄融入我们的生活。

一、百问

为更好地理解前人的创造是如何工作的,不如先切身地感受他们面对的困难。对 QA 大背景下的所有的问题,进行统一的定义和分类,呈现以下结果:

类别 简介 Example Example Logical Expression
Simple Question (Entity) 简单的实体抽取问题 “Who was the dad of Jorgen Ottesen Brahe?” find(set={“Jorgen Ottesen Brahe”}, pre=“father”)
Simple Question (Predicate) 简单的关系抽取问题 “What’s the relationship between Jorgen Ottesen Brahe and Otte Brahe?” find(set={“Jorgen Ottesen Brahe”,“Otte Brahe”})
Complex Question (Logic) 多重实体抽取问题 “Which cities are municipalities in southern China?” filter(set=find(set={“China”},pre=“municipality”),pre=None,cond={“Southern China”})
Complex Question (Count) 实体统计问题 “How many children did Roosevelt have?” count(set=find(set={“Roosevelt”}, pre=“children”))
Complex Question (Contrast) 实体比较问题 “Who is the port with the largest annual throughput in the world?” argmax(set=find(set={“port”}, pre=“instance”),num=get(set={ENTITY}, pre=“annual throughput”))
Complex Question (Count & Contrast) 实体统计并比较的问题 “Which university has the maximum number of Nobel Prize winners?” argmax(set=find(set={“university”}, pre=“instance”),num=count(filter(set=find(set={ENTITY}, pre=“student”),pre=None,cond={“Nobel Prize”})))
Complex Question (Verification) 判断是非类问题 “Is New York the Capital of USA?” equal(setA={“New York”},setB=find(set={“USA”}, pre=“capital”)))

除了以上常规的单问题类型,还有以下非常规的问题类型:

类别 简介 Example
Coreference Question 无法找到实体,常见于多轮对话 “Who is the spouse of him?”
Ellipsis Question 无法找到谓词,常见于多轮对话 “Also tell me about Brett MacLean.”
Combined Question 多个独立问题组合 “Who created Apple and Amazon respectively?”
Unfactual Question 非既成的实时问题 “Which politican has been infected the coronavirus in USA?”
Macro Question 过于宏观的问题 “Tell me about the worldwide economy in 2020.”
Subjective Question 涉及主观判断的问题 “What do you think of Donald Trump?”
Nest Question 嵌套问题 “Who is the father of the sister of the mother of Mark Twain?”
Mis-Presented Question 包含错误的问题 “Who found the Carnegie Mellon University?”
Unquantifiable Question 相关指标无法量化的问题 “Is there any star more dangerous than quasar?”
Technical Question 涉及专业知识的问题 “How is ozone layer naturally generated?”

二、十年

在这里插入图片描述

十年前的今天,神经网络刚刚从历史的尘埃中走出,重新唤醒人们的记忆。那时的自动化 KBQA 尚无法达到工业应用的要求。在进行的项目中,项目开发者使用大量的语法规则识别问题,将谓词与关系之间的依赖关系定义明确,以期望问题能顺着他们预定义的思路得到解答。这样的项目,在小规模知识图谱的应用上并不少见。但由于缺乏泛化能力,每次在新的知识领域搭建 KBQA 系统,开发者们都需要重新进行规则的定义,以适应领域知识。彼时学术界还正画着依存关系图,思考着解决方案。

2013 年,谷歌第一次搭建起以维基百科作为背书的知识库,更名为知识图谱,引起世界关注。随后两年内推出了搜索引擎即时问答。当用户输入问题时,答案以一定的概率直接出现在搜索框下方。这一举,既完成了维基百科的导流,也提升了用户满意度。巧合的是,正是在这一年前后,KBQA 在学术界的热度迅速上升,并在 2017 年前后达到巅峰。

但是当然,这并不是谷歌的贡献。故事讲到这里先结束。

如同我们在上文所说,有一种简单的构建 KBQA 的方法,是定义大量的语法规则,顺着语法解析的路径,解决多重复合的问题。这样的 KBQA 项目部署起来简单迅速,对软硬件要求不高,搭配同义词映射表和具体的实体消歧规则,能在小规模知识图谱上取得不错的效果,因而十分流行,常见于任务型 KBQA 系统。但这样的模式缺点也非常明显,那便是泛化能力不足。当图谱的规模逐渐扩大,关系的数量逐渐增多,从数据中寻求解决方案,自动构建 KBQA 的需求也就变得非常明确了。因此我们避开工业界这一常见的做法,探讨那些基于大数据构建有效模型的 KBQA 工作。

KBQA 的研究,根据目标问题的性质,可以分为几个方向。第一个是针对 简单问题 (simple question) ,第二个针对与其相对的 复杂问题 (complex question)。大量的研究者认为,现在的学术界连简单问题都没能很好地解决,研究复杂问题简直是在浪费时间。但也有专业人士认为,在寻求复杂问题的解决方案时,能同时收获有效的简单问题应对方案。正是在这样的争论下,针对简单问题和复杂问题的研究齐驱并进,共同占据了 KBQA 的半壁江山。而除这两个方向,其他的领域多和一些特殊的问题类型有关,例如 TEQUILA (Jia et al., 2018) 通过将问题分解,解决时间相关的非事实类问题;TSHCNN (Gupta et al., 2018) 基于文本 CNN,应对多种语言混合的问题。

从设计理念上,最主流的 KBQA 方案是 语义解析 (semantic parsing, SP) 模型。具体做法是通过一定的语义理解架构,将自然语言问题 (utterance/query) 转换为机器可执行的 逻辑表达式 (logical form) (Zelle and Mooney, 1996)。这一理念合情合理,也给予了研究者巨大的探索空间,其中一点表现在数据上:现有的数据集往往提供 问题-答案 对,而模型真正需要的是 问题-逻辑表达式 对。为此,我们需要预先定义完整的 逻辑规则,再基于该逻辑规则,展开深度优先搜索或广度优先搜索,在知识图谱搜寻指向答案的路径。人工标注也能解决这一问题,但很少有人真的这么做。这一套借力的机制称为 距离监督 (distant supervision)。开发者往往在这个过程中添加一定的剪枝策略,以减少时间的损耗。除这一点饱受诟病,SP 模型以其高自由度、强泛化能力以及大型知识图谱的适应性,维持着其难以撼动的地位。

依照具体的技术方案,可以将 SP 模型分为两个大类:一类基于神经网络,一类基于传统语言学。

基于神经网络

KBQA 起初是语言学的天下,自深度学习成为热潮后,主流模型逐渐被神经网络所取代,并任务表现上远远超出了基于传统语言学的模型。类似的事情,也发生在我们熟悉的计算机视觉领域。我们以以下几个具有代表性的作品为例,一窥其演变历史:

  • Vlachos and Clark, 2014 使用一系列串行的 分类模型 识别问题的模式,并依据既定的模板生成机器可执行的程序;

在这里插入图片描述

  • Dong and Lapada, 2016 基于 biLSTM 和 Attention 机制,构建 Seq2Tree 的 encoder-decoder 架构,在推理时逐路径生成 逻辑树

在这里插入图片描述

  • Zhong et al, 2017 使用 强化学习 (reinforcement learning) 使模型自动生成 SQL 条件,最终形成完整的 SQL 语句;
    在这里插入图片描述

  • Suhr et al., 2018 在逻辑中引入 copy mechanism,以在模型需要时复刻前几轮对话生成的序列,完成共指消解 (coreference) ;
    在这里插入图片描述

  • Guo et al., 2018 使用能应付绝大多数复杂问题的 语法 将逻辑表达式定义为线性的逻辑组合,并引入 记忆模块 管理实体和关系;
    在这里插入图片描述

  • McCann et al., 2018 汇集来自十个 NLP 子领域的公开数据集,统一转换为 context-question-answer 的数据形式,训练 multi-task learning 网络;
    在这里插入图片描述

  • Shen et al., 2019 基于 D2A,加入时下流行的 BERT 预训练及微调,构建 multi-task learning 框架,并在实体和关系两项检测之外,加入 实体类别分类器,提高实体链接的准确度。

在这里插入图片描述

基于神经网络的这一套演变中,有变,也有不变。不变的是,依靠语义解析生成逻辑表达式这一中心思想从未改变;变的是,底层模型的架构跟随 NLP 社区的进步而演化。每当 NLP 社区有突破性的算法或理念出现时,基于神经网络的 SP 模型都会迎来一阵研究热潮,先后的几个燃点分别有:LSTMSeq2SeqAttentionpointer强化学习multi-task learningBERT。从过去的历史来看,KBQA 领域内部难以产生

  • 16
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值