CIKM 2020 | 知识库问答复杂问题的分层查询图生成方法

微信扫一扫,分享到朋友圈

CIKM 2020 | 知识库问答复杂问题的分层查询图生成方法

©PaperWeekly 原创 · 作者|舒意恒

学校|南京大学硕士生

研究方向|知识图谱

导读

本文讨论知识库问答(KBQA)中查询图生成的强化学习方法。给定一个自然语言问题,知识库问答尝试自动从存储有实体间关系的知识库中获取答案。对于一个复杂问题,查询图生成是一种常见的基于语义解析的方法。其中,查询图指对问题的一种抽象的图表示。

作者认为现有方法通常依赖有限的规则,使得他们无力应对更加复杂的问题。该文提出一个类似于”导演-演员-影评者“的框架,以克服这一问题。其中,导演决定查询图需要的三元组类型,演员通过选择结点和边生成相应的三元组,影评者计算生成的三元组和给定问题之间的相似度。

通常,知识库问答的监督信息仅主要包括自然语言问题及其在知识库中的答案,而多步骤的查询图生成方法难以在中间过程的每步中都包含监督信息,它通常是 弱监督 的。因此,作者将该算法框架置于分层的强化学习之上。

论文标题:

Hierarchical Query Graph Generation for Complex Question Answering over Knowledge Graph

论文链接:

http://www.bigdatalab.ac.cn/~jinxiaolong/publications/CIKM2020QiuZ.pdf

方法

2.1 查询图

查询图是用于图表示的一类特定的 λ-演算,可以被翻译为可执行查询语言,例如  SPARQL。在作者设计的查询图中,三元组被分为五种类型:

  • 基础(basic):三元组的边是 KG 中的谓词(关系),三元组头尾实体是 KG 中的结点(链接或未链接到知识库)

  • 合并(union):边同样是 KG 中的谓词,但其中两个结点可以被超过一条边相连,三元组之间通过 逻辑或 相连

  • 过滤(filter):数值或时间比较,包括 <, ≤, >, ≥, =, ≠ 等关系

  • 序数(ordinal):头实体需要被排序,边表示排序是升序或降序

  • 聚合(aggregation):边表示聚合函数,包括 count、limit 等

通过这几类三元组,生成的查询图具有基本的处理排序、计数等问题的能力。后文所提到的“ 选项” ,即模型选择这些三元组类别中的一种进行生成。

2.2 “导演-演员-影评者”框架

强化学习的常见形式是马尔科夫决策过程(MDP),它是 智能体 (agent)与 环境 (environment)的交互过程。其中,智能体是学习者和决策者,环境包含了智能体之外的所有元素。

由于知识库是由三元组组成的这一特性,作者将查询图生成描述为关于 选项 (option)的 MDP,每一个选项表示生成对应类型的三元组。不同于传统的 MDP,通过选项,智能体能够一次选择多步动作。

该框架包含三个模块,作者将它们比喻为“导演”、“演员”和“影评者”:

  • 导演 根据当前状态,选择一个选项,确定何种类型的三元组是需要的。

  • 演员 根据当前状态和选项,选择一个动作. 选项会在后续几个时间步中被保留,直到被实现。

  • 影评者 计算新生成的三元组和问题之间的相似度,以负责评估是否被实现

而通过选择这些选项(即选项在后续时间步中有停留),执行到终止状态,所形成的决策过程,被称为半马尔科夫决策过程(Semi-MDP, SMDP)。这一决策过程的主要组件包括:

2.2.1 状态

时间步的状态是一个元组,其中是给定问题,在时间步的决策历史。对于导演来说,决策历史是当前的查询图;对于演员来说,它包含当前选项选择的 原始动作 (primitive actions)。

2.2.2 选项

一个选项包含三个组件:

  • 初始状态集,包含一个选项可以被初始化的状态

  • 选项内策略,为一个选项选择原始动作

  • 终止条件指定选项是否已完成

如果一个选项开始执行,原始动作将根据被选择,直到选项根据终止。

2.2.3 原始动作

对于每个选项,有三类原始动作:1)在现有查询图中,选择已有结点;2)根据选项,添加谓词或边;3)连接新生成的结点和已有结点

对于不同的三元组选项,作者对原始动作施加的约束也不同。

2.2.4 奖励函数

因为只有最终的答案作为弱监督,预测答案的 F1 值被作为外部奖励,且仅有三元组选项而不是原始动作被奖励。

2.3 常量结点链接

一个常量结点表示一个已链接的 KG 实体或类型,它的形式可以是给定一个问题中的时间或数值信息。对于一个给定的自然语言问题,该文的方法首先识别这类常量结点。

  • 实体链接:借助于 S-MART [2] (一个著名的知识库实体链接工具)生成 (mention, entity)对。

  • 类型链接:通过 Stanford CoreNLP toolkit [3] 对问题中的每个单词进行词性标注,抽取所有的名词与专有名词。包含 KG 类型同义词的单词被选出构建(mention, type)对。

  • 时间和数值链接:使用 CoreNLP 的命名实体识别工具,获得候选时间结点或数值结点。

2.4 问题与图编码

对于问题编码,作者使用一个双向 GRU 网络将自然语言问题转换为向量。

对于图编码,作者考虑到查询图是动态更新的,使用图神经网络对查询图进行编码的开销可能过高,因为每次都需计算邻接矩阵。

作者所使用的图编码器包含两个模块:

  • 1 个 LSTM 网络分别编码查询图中的所有三元组;一个查询图可以视为由多个三元组构成

  • transformer 模型捕获三元组之间的交互,以及在没有邻接矩阵的情况下,生成整个图的表示

为了获得图表示,所有的三元组被编码。编码不同三元组的 LSTM 是独立的,三元组之间的关系没有被显式表示。为从全局获得多个三元组的组合语义,transformer 被应用到三元组表示上。通过自注意力机制,编码器权衡各三元组的重要性,并更新查询图中所有三元组的表示。

此处还值得讨论的是,使用预训练的词嵌入或知识图谱嵌入能否相比于使用 GRU 学习嵌入获得更优的表现。

2.5 分层决策

导演和演员的搜索策略是通过状态信息和决策历史学习到的。在每个时间步,导演接受状态,并根据计算到的概率分布选择选项。每个选项都被分配一个稠密嵌入向量,选项空间通过堆叠所有可用选项的嵌入编码得到。

当导演选择选项之后,演员选择一系列原始动作来完成选项。决策历史包含当前的查询图和在选项中选择的原始动作。动作空间通过堆叠所有可用动作的嵌入编码得到。

当一个三元组被生成并被添加到查询图之后,选项终止,导演选择新的选项。当决策过程完成时,答案可通过生成的查询图获得。算法框架整体如图中算法 1 所示。

实验

作者在 WebQuestions 和两个同名的 ComplexQuestions 数据集上进行实验,其中部分对比算法列举在了文末的“延伸阅读”中。在文中实验,该算法取得了 SOTA。

在测试问题当中,56.8% 的问题包含一个三元组选项(查询图中包含一个三元组),其他问题包含两个或更多三元组,且 F1 随选项数量的变化较为稳定,表明其具有一定的复杂问题处理能力。

小结

人工智能从感知到认知的迈进,需要更多知识图谱推理的相关研究。本文采取强化学习的思路,改进当前的复杂问题查询图生成方法。

该文所提出的三个模块,即导演、演员和影评者,实际上对应了使用强化学习生成复杂问题查询图的分层决策过程:1)选择待执行的选项;2)选择选项内的动作;3)判断选项是否完成。

而执行一个选项(option),实质上对应了向查询图中添加单个三元组的信息的过程。对于一个 MDP,一步动作直接完全处理整个三元组可能是不现实的,而仅仅处理单个结点或边,又可能无法将动作与三元组很好关联起来。

而后者正是多数现有方法的缺陷。通过选项-动作(option-action)这个分层决策的过程,可以将对一个三元组的处理拆分为三个动作(可分别对应于 s、p、o)实现。

该强化学习算法的外部奖励,来自于三元组选项而不是原始动作,一定程度解决了以往方法中没有建模动作之间存在的关系的问题,即关于一个三元组的动作被关联了起来。

个人认为,构成一个查询图的若干三元组,实际上一定存在显式可表示的关联,至少查询图不可能包含一些没有相连的三元组。而该文所使用的图表示方法,三元组之间的关系仅仅通过 transformer 进行捕获,似乎难以解释三元组之间的关联。

另外,知识图谱嵌入(KGE)已经应用于三元组分类(triple classification)任务中,是否在图编码部分引入 KGE 能够增强模型判断一个三元组是否合理的能力?

作者重点讨论了关于查询图的图表示并取得 SOTA,但似乎少有研究关注于问题表示的设计,如何设计与查询图生成方法更契合的问题表示方法,或许是一项开放问题。

在未来,作者计划研究减缓外部链接工具带来的错误,而知识库问答中,如何识别问题中的 KG 关系仍然是一项挑战。

参考文献

[1] CIKM 2020 | Hierarchical Query Graph Generation for Complex Question Answering over Knowledge Graph

[2] ACL 2015 | S-MART: Novel Tree-based Structured Learning Algorithms Applied to Tweet Entity Linking

[3] ACL 2014 | The Stanford CoreNLP Natural Language Processing Toolkit

扩展阅读

知识库问答的查询图生成:

  • STAGG,ACL 2015,Semantic Parsing via Staged Query Graph Generation: Question Answering with Knowl- edge Base

  • QUINT,WWW 2017 | Automated Template Generation for Question Answering over Knowledge Graphs

  • STF,EMNLP 2018,A State-transition Framework to Answer Complex Questions over Knowledge Base

  • CompQA,EMNLP 2018 | Knowledge Base Question Answering via Encoding of Complex Query Graphs

  • NFF,TKDE 2018 | Answering natural language questions by subgraph matching over knowledge graphs

  • Tree2Seq,Neurocomputing 2020,Knowledge-based question answering by tree-to-sequence learning

更多阅读

# 投 稿 通 道 #

让你的论文被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢? 答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是 最新论文解读 ,也可以是 学习心得技术干货 。我们的目的只有一个,让知识真正流动起来。

:memo:  来稿标准:

• 稿件确系个人 原创作品 ,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向) 

• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接 

• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志

:mailbox_with_mail:  投稿邮箱:

• 投稿邮箱: hr@paperweekly.site 

• 所有文章配图,请单独在附件中发送 

• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通

:mag:

现在,在 「知乎」 也能找到我们了

进入知乎首页搜索 「PaperWeekly」

点击 「关注」 订阅我们的专栏吧

关于PaperWeekly

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

微信扫一扫,分享到朋友圈

CIKM 2020 | 知识库问答复杂问题的分层查询图生成方法

Java如何正确比较浮点数

上一篇

最新阿里Java后端开发面试题100道(P6-P7)

下一篇

你也可能喜欢

CIKM 2020 | 知识库问答复杂问题的分层查询图生成方法

长按储存图像,分享给朋友