论文:Query Graph Generation for Answering Multi-hop Complex Questions from Knowledge Bases
ACL 2020 的一篇论文,与Multi-hop QA相关,有完整代码。
- 作者:Yunshi Lan, Jing Jiang
- pdf:https://arxiv.org/pdf/2002.05969.pdf
- github:https://github.com/lanyunshi/Multi-hopComplexKBQA
0. Abstract
知识库问答主要包括两种复杂问题:
本文同时处理两种复杂性,提出了一种改进的分段查询图生成方法。通过早期将约束并入查询图中,可以更有效地对搜索空间进行剪枝。在三个数据集上取得了SOTA
1. Introduction
两种不同的复杂问题及对应处理方法:
- 具有约束的单一关系问题:例如
谁是美国的第一任总统
,第一
是一个约束。对这种问题,一般采用阶段查询图生成方法,首先识别单跳关系路径,随后添加约束,形成查询图 - 具有多跳关系的问题:例如
Facebook的创始人的妻子是谁
,的妻子
和的创始人
是两个跳跃。主要问题是,如何限制搜索空间。一种思路是,采用波束搜索 beam search
,这是一种启发式搜索方法和贪心方法,通过扩展实体集合中最有希望的节点来探索查询图。
本文将约束和多跳关系一起处理,而且不是先构建查询路径再添加约束,而是同时合并约束和扩展关系路径,从而约束搜索空间
2. Method
2.1 预定义
本文的方法主要基于现有的阶段查询图生成算法。查询图query graph
有四种节点:基准实体grounded entity
图中的阴影矩形 代表查询中出现的实体,存在变量existential variable
图中的无阴影矩形 代表未确定实体,lambda变量lambda variable
图中的圆圈 代表答案,聚合函数aggregation function
图中的菱形
阶段查询图构建算法包括以下四步:
- 首先从问题中找到的
grounded entity
,这里指的是topic entity
,找到一条连接grounded entity
和lambda variable
的core relation path
- 随后向
core relation path
添加约束,可以是grounded entity
,也可以是aggregation function
- 根据以上两步获取的查询图,通过神经网络,将查询图与查询的相似度进行排序
- 根据知识图谱,执行排序靠前的查询图,获得答案实体
2.2 动机
由于阶段查询图构建算法之前对应的是单跳问题,因此需要扩展到多跳问题,要考虑如何修剪搜索空间。采用波束搜索beam search
可以解决问题。本文发现,约束也可以帮助修剪空间。融合了约束修剪、beam search
修剪和语义匹配模型修剪的模型,具有更好的效果
- 个人思考,加入了约束的修剪之后,
beam search
就不容易将答案路径给修剪掉了,能进一步提高了搜索的精度 - 例如:上图的
The Jeff Probst Show
,如果只考虑与它相关联的实体,也就是在y2
处扩展关系图,搜索空间较大。而如果加上约束TV producer
,则只需要考虑有约束的相关实体,可以很好地修剪空间
2.3 查询图生成
查询图生成包含三种操作。每次都用2.4节介绍的得分函数对查询图进行排序,并保留得分最高的查询图进行下一步的查询图生成
- 扩展
extend
:如果查询图里只有topic entity
,则topic entity
相连的关系路径的另一端变成lambda variable
;如果查询图里有lambda variable
,则lambda variable
先变y
,y
相连的关系路径的另一端变成lambda variable x
- 连接
connect
:查询过程中可能会发现topic entity
以外的、出现在查询中的grounded entity e
。这时连接操作将e
连接到lambda variable x
或与x
相连的existential variable
,也就是CVT node
。通过执行当前查询图,获取x
或CVT node
到e
的连接关系 - 聚合
aggregate
:使用一组预定义的关键词从查询中检测聚合函数,将检测到的聚合函数作为新节点连接到x
或CVT node
文中提到,本文的方法允许扩展操作在连接和聚合操作之后再进行。这是此前的方法不允许的
- 注:只考虑
x
和CVT node
,是因为路径中的其他节点已经考虑过了
2.4 查询图排序
第t
轮迭代结束后,推导每个查询图g
的7维特征向量vg
,并将向量输入一个完全连接层,通过softmax
获取p(g|Q)
(这里可以思考,可否换成p(Q|g))
vg
第1维是基于BERT的语义匹配模型提供的标签序列。忽视lambda variable
和existential variable
,根据行动顺序构建标签序列。例如,下面的标签序列是(the, jeff, probst, show, nominated, for, nominee)
Comments | NOTHING