论文题目:Query Graph Generation for Answering Multi-hop Complex Questions from Knowledge Base
查询图中的节点分为四种
节点名称 | 含义 | 表示方法 |
---|---|---|
grounded entity | 知识库中存在的实体 | 阴影矩形 |
existential variable | ungrounded 实体(知识库中不存在的矩形?) | 无阴影矩形 |
lambda variable | 代表答案的ungrounded实体 | 圈 |
aggregation function | 在实体集合上执行操作的function | 菱形 |
生成查询图的步骤
- 从问题中的一个grounded实体(将其作为主题实体)开始,定义一条核心关系路径,核心关系路径连接主题实体和lambda变量;
- 向1中定义的核心关系路径中添加一或多个从问题中发现的约束条件,约束条件由一个grounded实体或是一个aggregation方法和一个关系构成;
- 衡量由第1、2步生成的 所有的查询图和问题本身的相似度,相似度计算通常使用神经网络(如CNN)实现;
- 使用相似度最高的查询图在知识库中查询答案实体。
原文如下:
We summarize the staged query graph genera-
tion method as follows. More details can be found
in (Yih et al., 2015; Bao et al., 2016).
- Starting from a grounded entity found in the
question (referred to as a topic entity), identify
a core relation path2 linking the topic entity to a
lambda variable. Existing work considers core re-
lation paths containing a single relation (Yih et al.,
2015; Bao et al., 2016; Luo et al., 2018).3 - From a core relation path identified in Step 1,
attach one or more constraints found in the question.
A constraint consists of either a grounded entity or
an aggregation function together with a relation.
See examples in Figure 1. - With all the candidate query graphs generated
from Step 1 and Step 24, rank them by measuring
their similarities with the question. This is typically
done through a neural network model such as a
CNN (Yih et al., 2015; Bao et al., 2016). - Execute the top-ranked query graph against
the KB to obtain the answer entities.
上述生成查询图的方法在路径延长时会生成大量路径计,这些路径都需要计算相似度,所以造成严重的计算负担。
本文提出了一种改进的方法解决这个问题,总体上是使用beam search的方法迭代地生成查询图。
改进的方法
假设第t次迭代生成了一含有K个查询图的集合Gt,在下一次迭代中,对于Gt中的每个图g,使用{extend,connect,aggregate}三种操作扩展g,增加一条边和一个节点。对每个图g使用这三种操作生成三个图。t+1次迭代生成的图的集合为G’t+1,使用评分算法对G’t+1种的图进行评分,得分最高的K个图放入Gt+1中,直到Gt+1中没有得分比Gt中的每一个图都高的时候为止。
{extend,connect,aggregate}三种操作具体为:
- extend操作扩展查询图的核心关系路径,为其增加R中的一个关系,其中R为知识库中关系的集合。如果当前查询图只有一个主题实体e,则对应的extend操作是在知识库KB中寻找一个连接到e的关系并使用这个关系扩展路径。这一操作也会使得路径的另一端成为lambda变量x。如果当前查询图包括一个lambda变量x,则extend操作将x改为一个existential变量y,在KB中寻找所有与y相连的实体,并找除一个连接到其中一个实体的关系r,并将r附加到y上,关系r的另一端成为新的lambda变量x。
- 包括主题实体在内,经常能在问题中找多其他的grounded实体,connect操作是将一个这样的grounded实体e连接到lambda变量x或者与x相连的existential变量(即CVT节点)。为决定使用哪个关系连接e和x,我们可以通过执行当前的查询图,找出所有和x绑定的实体(也就是可能成为当前查询图的答案的实体),然后找出在这些实体和e之间的一个关系。
- 根据Luo et al. (2018),我们可以使用预定义的关键词集合从问题中探测到一个aggregation方法。aggregate操作将探测到的aggregation方法作为一个节点添加到lambda变量x或者一个连接到x的existential变量(CVT节点)上。
上述方法的优点是,能够在connect和aggregate操作之后进行extend操作,之前的方法不允许这么做。
查询图的评价方法
使用一个7维的向量评价每个查询图,然后通过一个使用softmax的全连接层得出查询图的分数p
每个维度含义说明如下:
- 第一维的数值来自一个基于BERT的语义匹配模型,按照图g的生成顺序将g转换成tokens的序列,并且将每一步中设计道德文本描述和关系按照顺序添加到序列中,忽略existential变量和lambda变量。将由此生成的sequence和问题的sequence合并成一个sequence输入到bert模型中,得出相似度。
- 查询图g中所有grounded实体的实体链接得分的累加值(这个实体链接得分不知道是啥意思)
- 查询图g中出现的grounded实体的数量
- 查询图g中出现的实体类型的数量
- 查询图g中出现的时间表达式的数量
- 查询图g中出现的最高级的数量
- 查询图g对应的答案实体的数量