知识库问题生成(KBQG)技术介绍

作者:陈佳敏、漆桂林、程茜雅、毕胜

1. KBQG背景介绍

问题生成(Question Generation,QG)任务根据给定的事实输入和答案,生成自然语言表述的问题。问题生成可以为QA任务产生训练数据[1];在对话系统中实现主动提问提升对话的流畅性[2];自动合成 FAQ 文档[3]、自动辅导系统(automatic tutoring systems)[4]。一般问题生成研究的事实输入都是文本,而根据输入的不同也衍生了其他任务,如输入知识库(KBQG)、图像(VQG)。

KBQG(Question Generation over Knowledge Base)与一般QG任务主要区别在于输入从知识库来的事实一般以三元组<subject,predicate,object>形式表示,根据给定答案生成自然语言表述的问题。如图1所示,输入子图由多个三元组构成,对于给定答案“United States”,可以生成问题“Which country is North Creek located in?”。

图1:KBQG任务示意

KBQG对比一般QG任务,因为输入的事实是三元组格式,包含的信息过少,如何扩充输入事实信息,更好的支撑中问题生成过程是KBQG的一个主要难点和研究点,具体就是从知识库中额外获取信息的选择,获取后如何处理,在模型中的使用方式;QG任务中,问题提及(如上例中的“美国”)在训练数据中一般是没有出现,也就是OOV(Out Of Vocabulary),因此很难有效对这部分输入进行编码,也就难以在问题中生成这部分信息,在一般基于文本的QG方法中可能采用copy机制缓解这个问题,而在KBQG中可以有效利用在现有的领域KG训练的graph embedding作为实体的表示,同样可以有效解决OOV问题;KBQG区别于一般QG的另一个地方在于KBQG中涉及对复杂问题的研究,在基于文本的QG中同样有关于复杂问题的研究,如《Low-Resource Generation of Multi-hop Reasoning Questions》[5],但是在KBQG中利用三元组链构成图来定义问题复杂性,跟基于文本的QG的问题复杂性定义有较大差异。

2. 评估

KQBG作为文本生成的一个子任务,模型效果一般采用自动评测和人工评测两种方式进行评估。自动评测普遍使用的是bleu,rouge,meteor,最近也有结合BERT进行评估的方法BERTSCORE[6]。针对问题生成任务场景,有研究从问题的可回答性进行评估[7]。

人工评测就比较主观,可以针对性的自定义指标,使用比较多的是从生成问题的流畅性、完整性、可阅读性、可回答性、多样性等角度进行评估。

3. 方法

传统的KBQG方法

目前KBQG研究使用的几个数据集WebQuestions、SimpleQuestions、LC-QuAD、PathQuestion和WebQuestionSP都是通过使用规则、模板和人工标注等方式实现。

Jonathan et al. [8] 借助搜索引擎和人工标注完成数据集WebQuestions的构建。通过谷歌API可以获取由wh开头并包含一个实体的问题,从一个问题开始,然后使用谷歌API查询该问题去除实体部分、实体之前部分和实体之后部分,每个查询得到5个候选问题加到队列中,如此反复进行得到100万问题集,最后将其中一小部分筛选后问题交由AMT回答得到最终问答对。

WebQuestions存在数据规模小,无法全面覆盖使用Freebase之类的知识库可以回答的各种问题,Antoine et al. [9] 提出了SimpleQuestions数据集,对FB2M事实三元组数据[10]进行筛选,然后对每个三元组(subject, predicate, object)人工标注问题,使得该问题与三元组的subject和predicate相关,并以object为答案。

完全依靠人工标注问题过于消耗人力物力,而且这些数据集都是简单问题,更复杂问题的生成通过人工标注难以形成一定规模。Priyansh et al. [11] 通过模板结合人工修正实现复杂问题数据集LC-QuAD的构建。如图2所示,从候选种子实体集合中选择一个实体,然后在DBpedia中查询得到子图,然后结合SPARQL模板和实际子图,对模板进行实例化,得到SPARQL查询语句,然后将该查询语句转换成自然语言表述问题,再通过人工对问题语法错误、语序不当等问题进行修正,得到最终的问答对。而Alon et al. [12] 则是在WebQuestionSP [13] 的基础上,构建包含复杂算子如连接、最值求解和比较等情况的SPARQL查询及答案,通过模板转化成自然语言问题,再通过人工改写得到最终数据集ComplexWebQuestions。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值