UHop: An Unrestricted-Hop Relation Extraction Framework for Knowledge-Based Question Answering
2019年NAACL上的一篇文章,主题为KBQA中的关系抽取。
Overview
这篇文章提出的是一个新的关系抽取方法,并不是一个完整的SP-based的KBQA模型。本文依旧旨在处理相对复杂的问题,我们按照“跳数”来区分simple和complex问题,一般来说simple question只需要one-hop reasoning,而complex questions都需要multi-hop reasoning。但是在实际操作过程中,如果按照多跳推理的原则采用穷举法进行关系抽取,那么search space会变得非常大,这一点在其他很多文章中都有所提及,所以一般也就是2-hop或者3-hop了。本文提出的关系抽取方法叫做UHop: Unrestricted-Hop Relation Extraction,“跳数“不受限制,具体做法可以概括总结为两点:Single Hop Relation Extraction + Comparative Termination Decision。
总体来说,本文的contributions如下:
- UHop使得跳数不受限制,能够更好的应对需要多跳推理的复杂模型
- UHop大大减小了处理复杂问题时的search space
- UHop与现有的SOTA结合能达到很好的效果,起到了促进作用
UHop Relation Extraction
UHop的流程比较简单,思想其实比较巧妙:将多条关系抽取转化为多个单跳关系抽取加一个终止判定。其实将处理复杂问题转化为处理多个简单问题的做法不止出现在这一篇文章,说明这类思想还是很值得借鉴的。下面简述以下UHop的流程:
- 给定问题 Q Q Q,初始状态下,找出topic entity e e e
- 在知识图谱中找出所有与 e e e相连的relation r r r,得到候选关系集合 R R R
- 在 R R R中选取出最优的关系 r r r,找到 r r r另一端的实体 e ′ e' e′,将 e e e和 e ′ e' e′通过 r ^ \hat{r} r^进行连接
- 判断是否终止(Comparative Termination Decision),若终止,则直接返回生成好的query graph;否则,继续重复上述流程。
下面来看Single Hop Relation Extraction和Comparative Termination Decision分别如何来做
Single Hop Relation Extraction
作者将每一次迭代的单跳关系抽取视为是一个pairwise的分类问题。给定问题
Q
Q
Q(是问题的向量表示,每一轮迭代都会被更新,后面会提到),关系候选集合
R
R
R和一个分类模型
F
F
F,我们取得分最高的relation作为预测结果
r
^
=
a
r
g
m
a
x
r
∈
R
F
(
Q
,
r
)
\hat{r}\ =\ argmax_{r\in R} F(Q,r)
r^ = argmaxr∈RF(Q,r)
模型的训练采用hinge loss
这里 r ^ \hat{r} r^是正确的关系也就是抽取出的关系, r ∈ R − r ^ r \in R-{\hat{r}} r∈R−r^就可以视作是negative sample了。但这里没有输这个 s s s得分是怎么计算的,我感觉可能就是 F F F的输出,但是这样一来为什么 F F F还是一个分类模型呢?
Comparative Termination Decision
注意,本文是先抽取单跳relation,再去看要不要终止。判断是否终止的方法是:首先更新一下 R R R集合, R R R应该包含所有之前几步抽取出的关系和当前新实体 e ′ e' e′所连接的所有关系,如果 R R R中所有关系的得分均小于 s r ^ s^{\hat{r}} sr^,那么终止;反之则继续。
如果继续,那么这一步loss定义为
如果终止,那么loss定义为
Dynamic Question Representation
作者认为每一轮抽取出单跳关系以后,相应的内容在下一步抽取时就应该变得不重要了,因此作者设计了一个模型 G G G,该模型根据当前的 Q Q Q和抽取出来的路径 P P P对下一步的 Q ′ Q' Q′进行更新 Q ′ = G ( Q , P ) Q'\ =\ G(Q,\ P) Q′ = G(Q, P)。
这里的 G G G作者设计了两种,一种是attentive的,也就是使用了attention机制
a t t e n t i o n ( Q , P ) attention(Q,P) attention(Q,P)表示对于当前关系路径 P P P, Q Q Q中各部分的重要程度,那么再用 Q Q Q一减就得到了一个相反的重要度分布。
另外一种是直接linear projection
Training
在训练UHop时,作者把Single Hop Relation Extraction、Comparative Termination Decision这两个subtask结合起来共同训练,损失函数也就是两者的和
Experiment
本文使用的数据集:
由于UHop只是一个关系抽取模型,因此作者选取了两个SOTA,把UHop融进去进行试验
虽然正确率都已经超过了95%,但这里的实验效果好像有点不升反降,不过作者的意思是UHop在大大减小search space的基础上与之前的SOTA表现相近,search space确实是减小了很多,效率有所提高。
不过这里还有一组实验,作者拿3-hop问题作为训练集,2-hop问题作为测试集,得到了如下的数据
可以看到这里用不用UHop对这两个SOTA影响很大,所以我感觉Table2和Table4中之前的这两个SOTA应该过拟合都挺严重的。
Reflection
这篇文章相对比较简单,核心思想就是通过单跳关系抽取加终止判断来处理复杂问题中的多跳推理,本质上还是为了减小search space。文中作者也提到之后可以把单跳关系抽取那里加一个beam search,效果应该会更好。我觉得这个方法没有考虑到constraint,最终得到的是一条单纯的关系路径,如果把query graph的信息考虑的更全一些应该会更好。