论文: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 entitylambda variablecore 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节介绍的得分函数对查询图进行排序,并保留得分最高的查询图进行下一步的查询图生成