论文阅读笔记(7)——《Improved Neural Relation Detection for Knowledge Base Question Answering》

本文解决KBQA中的子问题——Relation Detection(关系检测)。关系检测目的是给定一个问句,根据知识库来判断该问句目标的关系是什么。
例如问句“中国的首都是哪里?”,首先锁定问句的中心实体(topic)是“中国”,其次检测与“中国”这个实体具有“首都”关系的实体。类似于知识图谱的补全工作:(中国,首都,?),关系检测即是从(中国,?,?)到(中国,首都,?)的过程。
对于SimpleQuestion简单问答数据集,确定了(中国,首都,?)也就确定了整个三元组(中国,首都,北京)。
对于WebQSP复杂问答,则可能会得到一些三元组(中国,首都,北京),(中国,首都,西安)…,但前提是每个三元组都会自带一些约束,比如时间约束。如何能够利用约束来解决复杂的关系检测时本文的研究重点。
论文PDF地址:https://www.aclweb.org/anthology/P17-1053.pdf
GitHub源码地址:https://github.com/StevenWD/HR-BiLSTM

Abstract

关系检测是许多自然语言处理应用中非常重要的部分,例如知识库问答(Knowledge Base Question Answering)。本文提出一种 hierarchical recurrent neural network(分层的循环神经网络)根据给定的问句识别出对应关系。我们利用 deep residual bidirectional LSTMs(深度残差双向长短期记忆网络)在不同层面上对比问句和关系,另外提出一个简单的KBQA系统将实体链接和本文提出的关系检测集成起来相互增强。实验结果表明本文方法不仅可以在关系检测上获得突出的结果,更重要的是,其在KBQA的两个任务上SimpleQuestionsWebQSP获得了最佳结果。

1 Introduction

KBQA是指在给定一个问句以及知识库的条件下,生成一个KB查询方案,并从知识库中寻找目标答案。知识库问答目前分为两种形式:

  • SimpleQuestions为典型的简单问答,是单路径问答模型(single-relation question)。即给定一个中心实体,检测出问句要寻找的关系后即可直接获得对应的答案。
  • WebQSP为典型的复杂问答,寻找的通常是一条多关系路径(multi-relation question)。在这种情况下有可能要获得的答案需要多个三元组组成的路径,也可能出现多关系(one-to-many)问题,因此需要有约束

KBQA通常包括两个子任务:

  • Entity Linking(实体链接)。即给定的问句中的主题词要与知识库做链接,还包括实体识别、实体链接、消歧等步骤。通常简单的方法是使用n-grams词袋模型。
  • Relation Detection(关系检测)。其不同于传统的关系抽取是在少量预定义关系基础上进行的,关系检测通常面对的是庞大的关系空间(超过6000个关系类),且经常出现测试集中的关系在训练集中没有出现的情况,即unseen relations。作者统计测试集中14%的关系在训练集中从没有出现过,因此这是一个zero-shot问题

本文目标:
  (1)为解决unseen relations问题,把关系名字分解成单词序列,使用词级别(word-level) 的匹配准则来与关系进行匹配。如果直接使用整个关系名称作为匹配,则没有办法解决unseen问题,但如果使用词级别,则可以通过RNN或CNN将其表征起来,这样即便遇到没有见过的关系,也可以通过每个单词编码起来。
  (2)注意到原始的关系名字有时候能够帮助匹配长问题内容,所以同时结合词级别(word-level)整个关系名称(relation-level) 进行表征。
  (3)使用 deep BiLSTMs 进行问句与关系的匹配,学习不同级别的问题表示。
  (4)对于 sequence matching(序列匹配),提出了一个 residual learning(残差学习)的方法,这使模型训练更简单,获得更深(抽象)的问题表示,从而提高 hierarchical matching (层次匹配)。

作者还提出了一个简单KBQA系统的实现,由two-step的关系检测构成。给定一个输入问题和基于问题的实体链接抽取出的候选集,我们提出的实体决策模型在KBQA处理过程当中起关键角色:
  (1)首先关系检测可以检测出当前问句较高置信度的关系,根据这些中心实体是否能够与这些关系相连,来对这些中心实体进行重排序(Re-ranking),并挑选一小部分。目标是处理那些模棱两可的实体。
  (2)根据挑选的一小部分候选实体,再次进行关系检测,寻找到答案所在的路径。

在这里插入图片描述

2 Related Work

Relation Extraction

关系抽取是一种分类问题,通常是给定一个句子以及两个实体,来判断这两个实体是什么关系。通常这类问题的关系是预定义的,且规模很小,因此不会出现zero-shot问题。例如SemEval 2010 Task8 只有19个关系,TACKBP2015有74个关系,ACE2005则有11个粗粒度,32个细粒度的关系。
传统的RE方法依赖于大量手工标注的特征。最近的研究更多的利用深度学习的优势,从word embeddings 到 CNNs,LSTMs,attention models。

Relation Detection in KBQA Systems

对于关系检测任务来说,关系数量大,且容易出现unseen问题。目前的两种解决方法是:
(1)使用预训练的关系表征,例如TransE模型可以获得关系向量。通过事先对所有关系进行预训练,则可以得到统一的向量表示。这一类可以提取关系的全局信息,但可能是稀疏的(有些关系名称可能出现次数很少)
(2)将关系名称拆分为一个个单词或者字母,因此关系检测变为序列匹配或排序问题(sequence matching and ranking),这一类可以捕捉局部信息,但忽略了全局信息。

另一个与关系抽取不同的地方是:

  • 关系抽取拥有至少两个实体参数,因此完全可以通过实体信息来增强关系抽取。
  • 对于关系检测任务,这一类信息便很难被利用,因为一个问句通常只包含一个中心实体,且知识库中的实体包含多个类型,因此目前没有工作着手对实体类型用于关系检测。

3 Background: Different Granularity in KB Relations

以往的研究将知识库关系检测问题定义为一个序列匹配问题。虽然问题是自然的单词序列,如何将关系表示为序列仍然是一个具有挑战性的问题。在此介绍两个关系序列表示的类型:

(1) Relation Name as a Single Token (relation-level)

将关系名字作为一个单一的单词(relation-level)。
问题:由于训练数量有限,关系覆盖率很低,因此不能很好的推广到大量的开放域关系。

(2) Relation as Word Sequence (word-level)

关系作为词序列(word-level)。
该方法具有较好的泛化能力,但缺乏原始关系名的全局信息。
当只进行单词级匹配时,很难将目标关系“starring roles”与不正确的关系“plays produced”进行比较。这是因为错误的关系包含单词“play”,这与问题(包含“play”)更相似。
在这里插入图片描述
word-level更加关注与局部信息,relation-level更加关注于全局信息。

4 Improved KB Relation Detection

本节描述了我们的层次序列匹配与残差学习方法的关系检测。为了将问题匹配到关系的不同方面(具有不同的抽象级别),我们处理了以下三个关于学习 问题/关系 表示的问题。

4.1 Relation Representations from Different Granularity

不同粒度上的关系表征。
作者同时从 word-level 和 relation-level 对关系进行表征。输入的是一个关系或关系路径: r = { r 1 word  , … , r M 1 word  } ∪ { r 1 rel  , … , r M 2 r e l } r = \left\{r_{1}^{\text {word }}, \ldots, r_{M_{1}}^{\text {word }}\right\} \cup\left\{r_{1}^{\text {rel }}, \ldots, r_{M_{2}}^{r e l}\right\} r={r1word ,,rM1word }{r1rel ,,rM2rel},其中 M 1 M_{1} M1表示所有关系的单词数量, M 2 M_{2} M2表示当前关系或关系路径中所有的关系名称。转化成 word embedding 后,通过共享参数的Bi-LSTM进行表征,分别得到 word-level 和 relation-level 的隐状态矩阵 [ B 1 : M 1 word  : B 1 : M 2 r e l ] \left[\mathbf{B}_{1: M_{1}}^{\text {word }}: \mathbf{B}_{1: M_{2}}^{r e l}\right] [B1:M1word :B1:M2rel],其中[:]表示拼接。最后分别将两个矩阵的所有隐状态向量进行最大池化,得到最终的关系表示向量 h r h^{r} hr

4.2 Different Abstractions of Questions Representations

不同层面的问句表征。
使用两层的Bi-LSTM对问句进行表征,输入问句 q = { q 1 , … , 1 N } q=\left\{q_{1}, \ldots, 1_{N}\right\} q={q1,,1N},第一层输出的隐状态向量为 Γ 1 : N ( 1 ) = [ γ 1 ( 1 ) , … , γ N ( 1 ) ] \Gamma_{1: N}^{(1)}=\left[\gamma_{1}^{(1)}, \ldots, \gamma_{N}^{(1)}\right] Γ1:N(1)=[γ1(1),,γN(1)]。第二层的输入是第一层的隐状态向量,输出则是 Γ 1 : N ( 2 ) = [ γ 1 ( 2 ) , … , γ N ( 2 ) ] \Gamma_{1: N}^{(2)}=\left[\gamma_{1}^{(2)}, \ldots, \gamma_{N}^{(2)}\right] Γ1:N(2)=[γ1(2),,γN(2)]
注意:问题表示的第一(第二)层不一定对应于单词(关系)级别的关系表示,相反,问题表示的任何一层都可能与任何一级别的关系表示相匹配。这增加了在不同层次的关系/问题表示之间匹配的难度。下面的部分给出了我们处理这类问题的建议。

4.3 Hierarchical Matching between Relation and Question

关系和问题的分层匹配。HR-BiLSTM模型如下图所示:
在这里插入图片描述
我们获得了 Γ 1 : N ( 1 ) \Gamma_{1: N}^{(1)} Γ1:N(1) Γ 1 : N ( 2 ) \Gamma_{1: N}^{(2)} Γ1:N(2),我们希望这两层的表征都可以与关系进行匹配。朴素的方法是分别将两层表征与关系表征 h r h_{r} hr计算相似度,然后得到的两个值进行加权求和。但作者发现这么做实验效果还不如只保留一层LSTM的结果,分析可能因为深层的LSTM会陷入局部最优解,因此很难训练。
  为了更好能够训练,引入分层匹配(hierachical matching)的残差网络(Residual Networks),在两个BiLSTM层之间加入shortcut connections。作者提出两种策略
(1)将两层的输出,按照每个时刻进行求和,即 γ i ′ = γ i ( 1 ) + γ i ( 2 ) \gamma_{i}^{\prime}=\gamma_{i}^{(1)}+\gamma_{i}^{(2)} γi=γi(1)+γi(2),然后得到N个 γ i ( ′ ) \gamma_{i}^{(')} γi()
取最大(max pooling)的作为问句的表征 h q h_{q} hq
(2)分别对 Γ 1 : N ( 1 ) \Gamma_{1: N}^{(1)} Γ1:N(1) Γ 1 : N ( 2 ) \Gamma_{1: N}^{(2)} Γ1:N(2)应用一次最大池化操作,得到 h max ⁡ ( 1 ) \mathbf{h}_{\max }^{(1)} hmax(1) h max ⁡ ( 2 ) \mathbf{h}_{\max }^{(2)} hmax(2),则 h q = h max ⁡ ( 1 ) + h max ⁡ ( 2 ) \mathbf{h}^{q}=\mathbf{h}_{\max }^{(1)}+\mathbf{h}_{\max }^{(2)} hq=hmax(1)+hmax(2)

得到了问句的表示,则可以计算相似度: s rel  ( r ; q ) = cos ⁡ ( h r ; h q ) s_{\text {rel }}(\mathbf{r} ; \mathbf{q})=\cos \left(\mathbf{h}^{\mathbf{r}} ; \mathbf{h}^{\mathbf{q}}\right) srel (r;q)=cos(hr;hq)。使用ranking loss训练: l r e l = max ⁡ { 0 , γ − s rel  ( r + ; q ) + s rel  ( r − ; q ) } l_{r e l}=\max \left\{0, \gamma-s_{\text {rel }}\left(\mathbf{r}^{+} ; \mathbf{q}\right)+s_{\text {rel }}\left(\mathbf{r}^{-} ; \mathbf{q}\right)\right\} lrel=max{0,γsrel (r+;q)+srel (r;q)}

5 KBQA Enhanced by Relation Detection

作者用现有的实体链接工具获得问句 q 的topK个候选实体,记做 E L K ( q ) EL_{K}(q) ELK(q)。整个流程如图所示:
在这里插入图片描述

5.1 Entity Re-Ranking

首先使用原始的问句进行关系检测,获得对应每个关系(与 E L K ( q ) EL_{K}(q) ELK(q) 中所有候选实体所连接的)的得分,并按照得分从高到低排序获得前 l l l 个关系(高置信度关系),记做 R q l R_{q}^{l} Rql。而候选的某一个中心实体 e 所有相连的关系记做 R e R_{e} Re,因此两者交集即为该候选实体所有得分较高的关系
。如果实体链接工具自身给予每个实体一个排序的得分是 s l i n k e r s_{linker} slinker ,则这个实体的最终得分表示为: s rerank  ( e ; q ) = α  s  linker  + ( 1 − α ) max ⁡ r ∈ R q l ∩ R e s rel  ( r ; q ) s_{\text {rerank }}(e ; q)=\alpha \text { s }_{\text {linker }}+(1-\alpha) \max _{r \in R_{q}^{l} \cap R_{e}} s_{\text {rel }}(r ; q) srerank (e;q)=α s linker +(1α)rRqlRemaxsrel (r;q)
直观的理解就是问句的某一个候选中心实体,其得分则依据初始的实体链接工具的打分,以及与该实体所有相连的高置信度关系得分的最大值。因此我们可以对所有候选实体进行排序,选择最大的 $K’ 个 个 (K’<<K)$,得到新的候选实体集合 E L K ′ ′ ( q ) E L_{K^{\prime}}^{\prime}(q) ELK(q)
总结来说,这种方法就是利用 entity-relation 集合来进行entity linking。

5.2 Relation Detection

其次在 e ∈ E L K ′ ( q ) e \in E L^{\prime}_{K}(q) eELK(q) 上应用第二次关系检测,得到每个关系 r ∈ R e r \in R_{e} rRe 的排序(因为对实体进行了排序和过滤,此时的关系r数量大大减少),但与第一次不同的是,输入的问句中将所有候选实体更换为标签“ < e > <e> <e>”。得分记做 s rel  ( r ; e , q ) s_{\text {rel }}(r ; e, q) srel (r;e,q)

5.3 Query Generation

查询生成。根据实体排序的得分以及第二次关系检测得分,得到最终的得分:
s ( e ^ , r ^ ; q ) = max ⁡ e ∈ E L K ′ ′ ( q ) , r ∈ R e ( β ⋅ s rerank  ( e ; q ) + ( 1 − β ) ⋅ s rel  ( r ; e , q ) ) \begin{aligned} s(\hat{e}, \hat{r} ; q)=& \max _{e \in E L_{K^{\prime}}^{\prime}(q), r \in R_{e}}\left(\beta \cdot s_{\text {rerank }}(e ; q)\right.\\ &\left.+(1-\beta) \cdot s_{\text {rel }}(r ; e, q)\right) \end{aligned} s(e^,r^;q)=eELK(q),rRemax(βsrerank (e;q)+(1β)srel (r;e,q))

直观理解:在求某一个关系的得分时,这个关系连接的候选中心实体对应一个重排序的得分 s r e r a n k s_{rerank} srerank,其次这个关系在第二次关系检测时(第(2)部分)的得分 s rel  ( r ; e , q ) s_{\text {rel }}(r ; e, q) srel (r;e,q),两者加权求和。从最后得到的一组得分中选择最大的得分以及对应的候选实体、关系(关系路径)作为返回结果 <entity,relation(or core-chain)>。

5.4 Constraint Detection

在复杂问题上,通常需要考虑到约束条件。作者提出一种约束检测方法。其包含两个步骤:

  • 子图生成(Sub-graph generation):通过前3个步骤得到了最大得分对应的关系或关系路径,因此其指向的尾实体就是答案实体。将这个答案实体所有邻接实体以及相连的关系组成一个子图。
  • 子图链接(Entity-linking on sub-graph nodes):将这个子图与问句进行匹配,并计算匹配的得分,如果得分超过阈值,则将其中的约束结点(实体)添加到答案实体上。

6 Experiments

6.1 Task Introduction & Settings

实验使用的两个数据集:

  • SimpleQuestions:简单问答,使用小型的FreeBase(2M)。
  • WebQSP:复杂问答,使用完整的FreeBase。使用S-MART作为实体链接。

6.2 Relation Detection Results

下表展示了关系检测的效果。
在这里插入图片描述

可以发现在两个数据集上,本文的方法HR-BiLSTM达到最优效果。同时消融实验表明基于 word-level 和 relation-level 结合可以提升效果,使用双层LSTM和残差方法也可以提升关系检测效果。
另外也发现在WebQSP上关系检测的结果都很差,这也说明了大量的unseen relation对实验影响很大,也是未来解决问题的关键。

6.3 KBQA End-Task Results

在这里插入图片描述
上述结果表明:若去掉重排序或去掉约束检测,效果都会下降,说明重排序和约束检测很重要。

7 Conclusion

本文提出了一种新的知识库关系检测模型 HR-BiLSTM,在问题和知识库关系之间进行分层匹配。模型在知识库关系检测任务上优于以前的方法,提出的KBQA系统也达到最优水平。

参考博客https://blog.csdn.net/qq_36426650/article/details/106849247

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值