知识图谱问答(1)针对复杂问题的知识图谱问答(KBQA)最新进展
1. 背景介绍
知识图谱问答(KBQA)利⽤图谱丰富的语义关联信息,能够深⼊理解⽤户问题并给出答案,近年来吸引了学术界和⼯业界的⼴泛关注。KBQA 主要任务是将⾃然语⾔问题(NLQ)通过不同⽅法映射到结构化的查询,并在知识图谱中获取答案。
⼩蜜团队研发的知识图谱问答系统(KBQA)⽬前已⼴泛应⽤于电信运营商、保险、税务等领域,但是在真实的客服场景中,KBQA 在处理复杂问句上仍然⾯临着挑战。
⽤户在咨询问题时,倾向于表达⾮常具体的信息,以便快速的获得答案,⽐较常见问句类型的有:
1)复杂条件句:“⼩规模纳税⼈季度销售额未超过 30 万,但是要开具 5 万元的专票,需要缴纳附加税费吗?”;
2)并列句:“介绍下移动⼤流量和畅享套餐”;
3)推理型问句:“你们这最便宜的 5G 套餐是哪个?”等,
这给 KBQA 提出了新的挑战:如何有效地利⽤深度学习模型规模化地处理复杂句问答?
为了应对该问题,我们调研了 KBQA ⽅向最近⼏年的关键进展,并着重关注了含有复杂句的数据集及相关的⽅法。
本⽂会先介绍 KBQA 主流相关数据集,然后详细介绍两类在相关数据集上的典型⽅法以及每种⽅法的代表性模型,最后我们对 Semantic Parsing + NN 的⽅法进⾏⼀个系统性总结,并介绍⼩蜜团队的 Hierarchical KB-Attention Model。
2. 数据集简介
随着 KBQA 技术的发展,对应的数据集从简单的单跳问答向包含复杂问题转变;问答形式从单轮问答数据集,向⾯向对话的多轮问答数据集转变(HotpotQA [1] 和 CSQA [2])。表1 列举问答数据集部分属性,同时介绍了相关的三个典型通⽤知识图谱。
在这⾥插⼊图⽚描述
2.1 WebQuestions及其衍⽣数据集
WebQuestions [3] 是为了解决真实问题构造的数据集,问题来源于 Google Suggest API,答案使⽤ Amazon Mechanic Turk 标注⽣成,是⽬前使⽤最⼴泛的评测数据集,但该数据集有 2 点不⾜:
1) 数据集中只有问答对,没有包含逻辑形式;
bing crosby
2) 简单问题占⽐在 84%,缺乏复杂的多跳和推理型问题;
针对第⼀类问题,微软基于该数据集构建了 WebquestionsSP [4],为每⼀个答案标注了 SPARQL 查询语句,并去除了部分有歧义、意图不明或者没有明确答案的问题。
针对第⼆类问题,为了增加问题的复杂性,ComplexQuestions [5] 在 WebQuestions 基础上,引⼊包含类型约束、显式或者隐式的时间约束、多实体约束、聚合类约束(最值和求和)等问题,并提供逻辑形式的查询。
2.2 QALD系列(Question Answering over Linked Data)
QALD 是 CLEF 上的⼀个评测⼦任务,⾃ 2011 年开始,每年举办⼀届,每次提供若⼲训练集和测试集,其中复杂问题占⽐约 38% [6]。
该数据集不仅包括多个关系和多个实体,如:“Which buildings in art deco style did Shreve, Lamb and Harmon design?”;还包括含有时间、⽐较级、最⾼级和推理类的问题,如:“How old was Steve Jobs’s sister when she first met him?”[7]。
2.3 Large-Scale Complex Question Answering Datat (LcQuAD)
Trivedi [8] 等⼈在 2017 年公布了⼀个针对 DBpedia 的复杂问题数据集,该数据集中简单的单跳问题占⽐ 18%,典型的问句形式devil是什么意思
如:“What are the mascots of the teams participating in the turkish handball super league?”。
该数据集的构建,先利⽤⼀部分 SPARQL 模板,⼀些种⼦实体和部分关联属性通过 DBpedia ⽣成具体的 SPARQL,然后再利⽤定义好的问句模板半⾃动利⽤ SPARQL ⽣成问句,最后通过众包形成最后的标注问题。
Dubey 等⼈也使⽤同样的⽅法,构建了⼀个数据量更⼤更多样的数据集 LcQuAD 2.0 [9]。
3. KBQA核⼼⽅法介绍
随着数据集的演变和 KBQA 技术的发展,我们认为 KBQA 当前主要⾯临两个核⼼挑战:
1. 复杂问题理解难:如何更恰当地通过知识图谱建模并理解⽤户复杂问题,并增强⽅法的可解释性;
2. 模型推理能⼒弱:如何减少对于⼈⼯定义模板的依赖,训练具备推理能⼒、泛化性强的 KBQA 深度模型;
现在 KBQA 的主流⽅法主要分为两类:1) Semantic Parr + NN (SP);2) Information Retrieval (IR),因此我们总结了这两类⽅法中的⼀些经典论⽂在 WebQuestions 上的结果,图 1 所⽰, 从整体趋势来看,结合深度学习的 Semantic Parr ⽅法效果要略优于 IR 的⽅法。
在这⾥插⼊图⽚描述
从上图中我们可以看到,早期研究⼈员利⽤传统⽅法, 通过⼿⼯构建模板和规则的⽅式解析复杂问题,但是此类⽅法的不⾜在于需要较专业的语⾔学知识且可扩展性不强。
随着深度学习在 NLP 领域的应⽤,研究⼈员将 QA 问题视为⽤户 Query 与答案的⼆分类或者排序问题(IR),利⽤不同的⽹络结构(CNN or Attention),并结合 KG 中不同的上下⽂信息来编码候选答案和 Query 的分布式表⽰,最后通过计算两者间的匹配度选出最终的答案。
此类⽅法将语义解析问题转化为⼤规模可学习的匹配问题,它的优点在于减少了对于⼈⼯模板的依赖,⽽缺点是模型的可解释性不强且整体效果⽋佳。
与此同时,研究⼈员将 NN Bad 的⽅法引⼊到 Semantic Parr 范式中来增强语义解析能⼒。早期⽐较主流的⽅法是利⽤查询图(Query Graph)⽣成过程来模拟语义解析过程,对问句进⾏解析。
随着 Encoder-Decoder 模型在翻译领域的应⽤,也有研究⼈员试图将语义解析问题看做是翻译问题,
通过设计不同的树形解码器来得到Query 的语义表⽰。
最近,借助 KV Memory Network 中的多个记忆槽来解决 KBQA 中多跳推理问题成为了⼀个趋势,它的优点在于不依赖于⼈⼯模板且可解释性较强,缺点是仍然不能很好地解析序数推理和显隐式时间约束的问题。
同时,我们关注到最近出现了基于神经符号机 [10](Neural Symbolic Machine)的解决⽅案。接下来,我们将详细介绍这些主流⽅法。
3.1 Semantic Parr
基于 Semantic Parr 的⽅法通常将⾃然语⾔转化成中间的语义表⽰(Logical Forms),然后再将其转化为可以在 KG 中执⾏的描述性语⾔(如 SPARQL 语⾔)。
3.1.1 传统⽅法
奥斯卡经典励志电影传统的 Semantic Parr ⽅法主要依赖于预先定义的规则模板,或者利⽤监督模型对⽤户 Query 和语义形式化表⽰(如 CCG [11]、λ-DCS [12])的关系进⾏学习,然后对⾃然语⾔进⾏解析。
这种⽅法需要⼤量的⼿⼯标注数据,可以在某些限定领域和⼩规模知识库(如 ATIS [13]、GeoQuery)
中达到较好的效果,但是当⾯临Freeba 或 DBpedia 这类⼤规模知识图谱的时候,往往效果⽋佳。
3.1.2 查询图⽅法(Query Graph)
上述传统⽅法除了适⽤领域较窄外,⼤多没有利⽤知识图谱的信息来进⾏语义解析。论⽂ [14] 提出了⼀种基于 Semantic Parr 的知识图谱问答框架 STAGG (Staged Query Graph Generation)。
该框架⾸先定义了⼀个可以直接转化为 Lambda 演算的查询图(Query Graph),然后定义了如何将 Semantic Parr 的过程演变为查询图⽣成过程(4 种 State+4 种 Action)。
最后通过 LambdaRank 算法对⽣成的查询图进⾏排序,选出最佳答案。查询图⽣成过程⼀共有三个主要步骤:实体链接、属性识别和约束挂载。
针对 Query:“Who first voiced Meg on Family Guy?”,查询图⽣成过程如图 2 所⽰:
1. 实体链接部分采⽤论⽂ [15] 的实体链接系统得到候选实体和分数;
2. 属性识别阶段会根据识别的实体对候选的属性进⾏剪枝,并采⽤深度卷积模型计算 Query 和属性的相似度;
3. 约束挂载阶段会根据预定义的⼀些规则和匹配尝试进⾏最值、实体约束挂载;
4. 最后会根据图本⾝特征和每⼀步的分数特征训练⼀个 LambdaRank 模型,对候选图进⾏排序。
此⽅法有效地利⽤了图谱信息对语义解析空间进⾏了裁剪,简化了语义匹配的难度,同时结合⼀些⼈⼯定义的处理最⾼级和聚合类问题的模板,具备较强理解复杂问题的能⼒,是 WebQuestions 数据集上强有⼒的 Baline ⽅法。⽽且该⽅法提出的 Semantic Parr 到查询图⽣成转化的思想也被⼴泛地采纳,应⽤到了 Semantic Parr+NN ⽅法中。drumstick
在这⾥插⼊图⽚描述
微软的论⽂ [5] 在此基础上,扩展了约束类型和算⼦,新增了类型约束、显式和隐式时间约束,更加系统地提出利⽤ Multiple Constraint Query Graph(MultiCG)来解决复杂问题的⽅法。
同时也针对 WebQuestions 数据集复杂问题较少的问题,公开了⼀个复杂问题数据集 ComplexQuestions。该⽅法在 WebQuestions 和ComplexQuestions 数据集上,表现都优于 STAGG ⽅法。
IBM [16] 沿⽤ STAGG 的框架,针对属性识别准确率较低的问题,在属性识别阶段,将 Query 和属性名称的字和词 2 个维度进⾏编码,利⽤ Hierarchical Residual BiLSTM(HR-BiLSTM,图4所⽰)计算相似度,提升了属性识别关键模块的准确率,该⽅法在SimpleQuestions 数据集上有着优秀的表现,很好地弥补了 Semantic Gap 问题,但是并没有在复杂问题地处理上进⾏过多地改善。
在这⾥插⼊图⽚描述
之前的⼏种⽅法虽然取得了不错的效果,但在 Query 与对应的 Query Graph 排序时,没有显式地将 Query Graph 利⽤神经⽹络进⾏泛化性强地语义特征提取,⽽是利⽤不同步骤的分数作为特征进⾏排序。
论⽂ [17] 提出了⼀种 Semantic Matching Model(如图5),分别对 Query 和查询图进⾏编码。
⾸先对去掉实体的 Query 利⽤双向 GRU 进⾏全局编码得到,然后对 Query 进⾏依存分析,并利⽤ GRU 对依存路径进⾏编码,收集句法和局部语义信息,得到,最后两者求和得到 query 编码KaTeX par error: Expected '}', got 'EOF' at end of input: …{tok} +q_{dep]。
然后利⽤查询图中的所有属性名编码和属性 id(将属性名组合)编码,得到图的编码向量 .最后利⽤ Cosine 距离计算Query 与查询图的相似度:
在这⾥插⼊图⽚描述
该⽅法⾸次将 Query Graph 进⾏语义编码,计算与 Query 间的相关性程度,并以此作为匹配特征训练模型。该⽅法在ComplexQuestions 数据集上的表现优于 MultiCG 的⽅法,但是依然不能很好地利⽤神经⽹络模型处理显隐式时间约束等复杂问题。
在这⾥插⼊图⽚描述
上述⽅法在对 Query Graph 进⾏编码的时候,因为最后使⽤了 Pooling,所以并没有考虑实体和关系的顺序问题,论⽂ [18] 提出Tree2Seq 的⽅法,将 Query Graph 利⽤ Tree-bad LSTM 进⾏编码,虽然并没有在 WebQuestions 等数据集上取得 SOTA 的效果,但是验证了 Query 结构信息在 QA 任务上的有效性。
3.1.3 编码器-解码器⽅法(Encoder-Decoder )
随着深度学习的⽅法和应⽤,NN-Bad 的 KBQA 逐渐成为了⼀个重要的研究⽅向 [19],除了 STAGG 等⽅法中利⽤ CNN 来提升
Semantic Parr 中属性识别的效果外,基于翻译模型的 Seq2Seq ⽅法、Attention 机制和 Memory network 也被⽤来提升 KBQA 的效果。
gbm
爱丁堡⼤学 [20] 提出了利⽤注意⼒机制增强的 Encoder-Decoder 模型,将 Semantic Parr 问题转化为 Seq2Seq 问题。
该论⽂除了使⽤⼀个 Seq2Seq 模型来完成 Query 到 Logical Forms 的转化外,还提出了⼀个 Seq-to-Tree 的模型,利⽤层次的树形解码器捕捉 Logical Forms 的结构(如图 6 所⽰)。
q tok q dep q =g q +w q id
该⽂章主要贡献在于不依赖⼿⼯预定义的规则即可在领域数据集上取得 SOTA ⽅法,但是该⽅法需要⼤量的训练语料,因此并不适合通⽤知识问答数据集。
在这⾥插⼊图⽚描述
上述⽅法利⽤层次化树形结构优化了 Encoder-Decoder 模型的解码层,⽽论⽂ [21] 指出通⽤的序列编码器利⽤了词序的特征⽽忽略了有⽤的句法信息。
该论⽂使⽤ Syntactic Graph 分别表⽰词序特征(Word Order),依存特征(Dependency)还有句⼦成分特征(Constituency),并采⽤ Graph-to-Seq 模型,利⽤图编码器将 syntactic graph 进⾏编码。
然后利⽤ RNN 对每时刻的状态向量和通过 Attention 得到的上下⽂信息进⾏解码得到对应的 Logical Forms。尽管该⽅法验证了额外的句法信息引⼊有利于提升模型的鲁棒性,但是没有解决对于⼤量训练语料的依赖问题。
3.1.4 Transition-Bad ⽅法
北⼤ [22] 提出了 State Transition-bad ⽅法,通过定义 4 种原⼦操作(图7所⽰)和可学习的状态迁移模型,将复杂⽂图转化为Semantic Query Graph(转化过程如图 8 所⽰)。
该⽅法可以利⽤ BiLSTM 模型识别出多个节点(如多个实体),并⽤ Multi-Channel Convolutional Neural Network (MCCNN) 抽取节点间的多个关系,克服了查询图⽣成⽅法中假设只有⼀个主要关系和利⽤⼈⼯规则识别约束的缺点,具备更强的鲁棒性。
同时该⽅法的状态迁移是个可学习的过程,⽽此前的查询图⽣成⽅法中状态迁移过程是预定义的。后续也有论⽂ [23] 采⽤ Stack-LSTM [24] 作为状态迁移模型进⾏语义解析⼯作。
在这⾥插⼊图⽚描述
在这⾥插⼊图⽚描述
3.1.5 Memory Network⽅法
随着机器阅读等技术的普及,近些年基于 Memory Network [25] 的⽅法也被⽤来解决复杂问题解析。
论⽂ [26] 提出了 Key-Value Memory Network (KV-MemNN),此结构相⽐扁平的 Memory Network 结构,可以很好地存储具有复杂结构的数据(如 KG),并通过在多个记忆槽内的预测来进⾏浅层的多跳推理任务,最终⽣成相关⼦图路径。
论⽂ [27] ⽤ KV-MemNN 来存储图谱中的三元组(SPO)信息,并提出了⼀个新的 Query Update 机制,实验验证该机制在更新时去掉Query 中已经定位到的 Key 值,可以让模型能够更好地注意到下⼀步需要推理的内容。
在答案预测阶段,论⽂实验了基于 Semantic Parr 和 IR 的两种⽅法,通过消融实验发现,利⽤ Semantic Parr 进⾏预测要明显优于IR ⽅法,论⽂猜测因为 Semantic Parr ⽅法在每⼀步预测中都会选择最优的 key,⽐ IR ⽅法(只⽤最后⼀步的表⽰输出进⾏排序)利⽤了更多全局信息。
该⽅法在不依赖于⼿⼯构造模板的情况下,在 WebQuestions 数据集上的效果超过了 SOTA ⽅法,⽽且该⽅法的框架和引⼊的 Stop、Query Update 机制让整个复杂问题的解析过程具备更好地解释性,我们认为这种利⽤ KG 进⾏层次化的解析⽅法是 KBQA 发展的趋势之⼀。图 9 为该⽅法模型结构图。
在这⾥插⼊图⽚描述
本章中,我们介绍知识图谱问答中 Semantic Parr 这类⽅法,分别介绍了4种具体⽅法:
1)语义解析(Semantic Parr)过程转化为查询图⽣成问题的各类⽅法;
2)仅在领域数据集适⽤的Encoder-Decoder模型化解析⽅法;
3)基于 Transition-Bad 的状态迁移可学习的解析⽅法;
4)利⽤ KV-MemNN 进⾏解释性更强的深度 KBQA 模型。
measure3.2 Information Retrieval
基于搜索排序(IR)的知识图谱问答⾸先会确定⽤户 Query 中的实体提及词(Entity Mention),然后链接到 KG 中的主题实体(Topic Entity),并将与 Topic Entity 相关的⼦图(Subgraph)提取出来作为候选答案集合,然后分别从 Query 和候选答案中抽取特征。
最后利⽤排序模型对 Query 和候选答案进⾏建模并预测。此类⽅法不需⼤量⼈⼯定义特征或者模板,将复杂语义解析问题转化为⼤规模可学习问题。
依据特征表⽰技术不同,IR ⽅法可以分为基于特征⼯程的⽅法和基于表⽰学习的⽅法。
3.2.1 基于特征⼯程的⽅法
论⽂ [28] 是该类⽅法的基础模型,⽂章⾸先对问句进⾏句法分析,并对其依存句法分析结果提取问题词(qword)、问题焦点词(qfocus)、主题词(qtopic)和中⼼动词(qverb)特征,将其转化为问句特征图(Question Graph,图10)。
然后利⽤ qtopic 在 KG 内提取 Subgraph,并基于此⽣成候选答案特征图(图11);最后将问句中的
特征与候选特征图中的特征进⾏组合,将关联度⾼的特征赋予较⾼的权重,该权重的学习直接通过分类器来学习。
皮肤管理培训在这⾥插⼊图⽚描述
在这⾥插⼊图⽚描述
3.2.2 基于表⽰学习的⽅法
上述⽅法有两点不⾜:第⼀,需要⾃⾏定义并抽取特征,⽽且问句特征和候选答案特征组合需要进⾏笛卡尔乘积,特征维度过⼤;第⼆,该类⽅法难以处理复杂问题。为了解决这些问题,学术界利⽤表⽰学习⽅法,将问句和候选答案转换为同⼀语义空间的向量,将 KBQA 看成是问句与候选答案的表⽰向量进⾏匹配计算过程。
1. Embedding-Bad⽅法
论⽂ [29] 率先将问句以及 KG 中的候选答案实体映射到同⼀语义空间,其中候选答案实体利⽤三种向量进⾏表⽰:1) 答案实体本⾝;2)答案实体与主实体关系路径;3) 与答案实体相关 Subgraph。然后利⽤ Triplet loss1 对模型进⾏训练,模型结构如图 12 所⽰。
在这⾥插⼊图⽚描述
2. CNN and Attention⽅法
上述模型针对问句编码采⽤词袋模型,没有考虑词序对句⼦的影响,以及不同类型属性的不同特性。论⽂ [30] 提出 Multi-Column Convolutional Neural Networks (MCCNNs) 如图13所⽰。
利⽤CNN分别对问句和答案类型(Answer Type)、答案实体关系路径(Answer Path)和答案实体⼀跳内的 Subgraph (Answer Context) 进⾏编码,以获取不同的语义表⽰。该⽅法验证了考虑词序信息、问句与答案的关系对 KBQA 效果的提升是有效的。
在这⾥插⼊图⽚描述
但是论⽂ [30] 对于不同答案,将问句都转化成⼀个固定长度的向量,这种⽅法不能很好地表达问句的信息。针对该问题论⽂ [31] 提出了Cross-Attention bad Neural Network(图14 所⽰)。
a e a r a t a c
将候选答案分成四个维度:答案实体 、答案实体关系路径 、答案类型 和答案上下⽂(与上述论⽂相同),然后利⽤注意⼒机制动态学习不同答案维度与问句中词的关联程度,让问句对不同答案维度根据注意⼒机制学习权重,有效地提升问答效果。
论⽂ [32] 提出了Attentive RNN with Similarity Matrix bad CNN(AR-SMCNN,图15所⽰)模型,利⽤带有注意⼒机制的 RNN 来对问句和属性间关系进⾏建模,并采⽤ CNN 模型捕捉问句与属性间的字⾯匹配信息。
newhalf该论⽂验证了字⾯匹配信息能带来效果上的提升,⽽实验结果显⽰,以上两种⽹络模型对于复杂问题的处理能⼒依然不⾜。
在这⾥插⼊图⽚描述
在这⾥插⼊图⽚描述
3. Memory Network⽅法
与 Semantic Parr ⽅法相同,Memory Network (MemNN) 因为其良好的可扩展性以及对于强弱监督 [33] 的适⽤性,被⼴泛应⽤于KBQA 中。论⽂ [34] 是将其结合 KG 中三元组信息来解决 KBQA 中简单问题(单跳),同时构建了 SimpleQuestions 数据集。
该论⽂⾸先将 KG 中的知识存储到 MemNN 中,然后采样正负例 Query 和正负例的 Answer,两两组合形成多任务,利⽤ Triplet loss
训练 MemNN。
模型⾸先通过输⼊模块(input module)将⽤户问题、三元组信息转化为分布式表⽰加⼊到 Memory 中;然后利⽤泛化模块(Generalization module)将新的三元组信息(来⾃ Reverb)加⼊到 Memory 中。
输出模块(Output module)从 Memory 中选择⼀些与问题相关性⾼的三元组信息;回复模块(Respon module)返回从输出模块中得到的答案。该论⽂是 MemNN 在 QA 上的⾸次尝试,虽然擅长解决简单问题,但是思路为后续的 KBQA 研究⼯作奠定了基础。初中英文自我介绍
ashtray