Query Graph Generation for Answering Multi-hop Complex Questions from Knowledge Bases
这是2020年SMU的Jing Jiang教授课题组发表在ACL上的一篇文章,主题为KBQA、Complex Question、Query Graph Generation
Overview
作者提到当前的复杂问题主要有两类特点:
- Questions with Constraints:问题中有一些限制,例如 “Who is the youngest president of US?”中的youngest就是额外的限制。
- Questions with Multi-hop relation:问题中包含多跳关系,例如 “Who is the wife of the founder of Facebook?” 中包含一个2-hop关系 wife_of和founder_of。
之前的一些工作都是分别独立地针对这两类特点进行研究,因此本文提出一种同时应对这两类特点的方法。作者改进了staged query graph的生成方法,允许更长的关系路径存在;并且,与之前先构建好relation path之后再添加constraints的做法不同,作者设计的模型能够同时处理constraint并extend relation path,或者说,作者把incorporate constraint的过程融进了relation path construction,使得两者能够同步进行。同时,这种同步考虑constraints的做法大大地减小了search space,作者提到如果把关系的长度延长到3-hop,那么每个问题平均要考虑10000条可能的relation path,这是很低效的。但是如果能够加入问题中的constraint,那么search space就会大大减小,效率能够得到提升。举个例子来说:原问题是 “Who is the first wife of TV producer that was nominated for The
Jeff Probst Show ? ”,如果我们单纯搜索所有"nominated for the Jeff Probst Show"的实体,那会有很多结果,但是如果加上限制"TV producer",那就可以过滤掉很多结果。
Approach
Query Graph Introduction
作者首先概括介绍了什么是query graph。一张query graph包含四类结点:
- grounded entity:这是在KB中存在的实体,也叫topic entity,query graph中至少有一个,在图中用阴影框表示。
- existential variable:这是ungrounded entity,在query graph中可能没有也可能有多个,在图中用空白框表示。
- lambda variable:用于表示答案结点,query graph中只能有一个,在图中用椭圆圈表示。
- aggregation function:表示一些operation,比如argmin、argmax之类的,在图中用菱形框表示。
作者结合之前的工作总结了query graph生成的四步:
- 从topic entity(grounded entity)出发,找出从topic entity到lambda variable的core relation path。
- 将constraint添加到第一步找出的core relation path,这些constraint可能包含existential variable或者aggregation function
- 得到所有的candidate query graph,用每个candidate与question的进行相似度匹配,然后进行排序。
- 在KB中执行query graph并得到答案
Query Graph Generation
下面来看本文如何生成一张query graph,都以上面所提到的问题为例。
为了进一步减小search space,作者在提取候选query graph的时候使用了beam search。设 t t t时刻我们得到了top-K的query graph集合 G t G_{t} Gt,那么在 t + 1 t+1 t+1时刻,对于任意的 g ∈ G t g \in G_{t} g∈