论文解读:Improved Neural Relation Detection for Knowledge Base Question Answering

论文解读:Improved Neural Relation Detection for Knowledge Base Question Answering

  本文解决KBQA中的子问题——Relation Detection(关系检测)。关系检测目的是给定一个问句,根据知识库来判断该问句目标的关系是什么。例如问句“中国的首都是哪里”,我们会先锁定问句的中心实体(主题词)是“中国”,其次检测这句话目标是问与“中国”这个实体具有“首都”关系的实体,因此类似于知识图谱的补全工作:(中国,首都,?)。因此关系检测即是从(中国,?,?)到(中国,首都,?)的过程。对于像SimpleQuestion这样的数据集,其为简单的问答,因此确定了(中国,首都,?)也就确定了整个三元组(中国,首都,北京)。如果对于WebQSP复杂问答,则可能会得到一些三元组(中国,首都,北京),(中国,首都,西安)…,但前提是每个三元组都会自带一些约束,比如时间约束。如何能够利用约束来解决复杂的关系检测时本文的研究重点。

一、简要信息

序号属性
1模型名称HR-BiLSTM
2所属领域自然语言处理
3研究内容知识库问答
4核心内容Relation Detection, KBQA
5GitHub源码https://github.com/StevenWD/HR-BiLSTM
6论文PDFhttps://www.aclweb.org/anthology/P17-1053.pdf
7引用(GBT7714)Yu M, Yin W, Hasan K S, et al. Improved Neural Relation Detection for Knowledge Base Question Answering[C]. meeting of the association for computational linguistics, 2017: 571-581.
8引用(BibTex)@article{yu2017improved,title={Improved Neural Relation Detection for Knowledge Base Question Answering},author={Yu, Mo and Yin, Wenpeng and Hasan, Kazi Saidul and Santos, Cicero Nogueira Dos and Xiang,Bing and Zhou, Bowen},volume={1},pages={571–581},year={2017}}

二、全文摘要翻译

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

三、问题介绍与相关工作

3.1 介绍

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

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

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

  因此本文着手解决的目标是:
  (1)使用词级别的匹配准则来与关系进行匹配。如果直接使用整个关系名称作为匹配,则没有办法解决unseen问题,但如果使用词级别,则可以通过RNN或CNN将其表征起来,这样即便遇到没有见过的关系,也可以通过每个单词编码起来。
  (2)同时结合词级别(word-level)和整个关系名称(relation-level)进行表征;
  (3)使用深度BiLSTM进行问句与关系的匹配;
  (4)使用残差训练方法训练。

  另外作者又提出2阶段关系检测,主要目的是对问句的候选主题词(中心实体)进行排序:
  (1)首先关系检测可以检测出当前问句较高置信度的关系,根据这些中心实体是否能够与这些关系相连,来对这些中心实体进行重排序(Re-ranking),并挑选一小部分。目标是解决那些模棱两可的实体。
  (2)根据挑选的一小部分候选实体,再次进行关系检测,寻找到答案所在的路径。

3.2 相关工作

  关系抽取是一种分类问题,通常是给定一个句子以及两个实体,来判断这两个实体是什么关系。通常这类问题的关系是预定义的,且规模很小,因此不会出现zero-shot问题。例如SemEval 2010 Task8 只有19个关系,TACKBP2015有74个关系,ACE2005则有11个粗粒度,32个细粒度的关系。
  但是对于关系检测任务来说,关系数量大,且容易出现unseen问题。目前的两种解决方法是:
(1)使用预训练的关系表征,例如TransE模型可以获得关系向量。通过事先对所有关系进行预训练,则可以得到统一的向量表示。这一类可以提取关系的全局信息,但可能是稀疏的(有些关系名称可能出现次数很少)
(2)将关系名称拆分为一个个单词或者字母,因此关系检测变为序列匹配或排序问题(sequence matching and ranking),这一类可以捕捉局部信息,但忽略了全局信息。

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

在这里插入图片描述
在这里插入图片描述

四、方法

4.1 不同粒度上的关系表征

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

4.2 不同层面的问句表征

  使用两层的Bi-LSTM对问句进行表征,输入问句 q = { q 1 , . . . , 1 N } q=\{q_1, ..., 1_N\} q={q1,...,1N},第一层输出的隐状态向量为 Γ 1 : N ( 1 ) = [ γ 1 ( 1 ) , . . . , γ N ( 1 ) ] \Gamma_{1:N}^{(1)}=[\gamma_1^{(1)}, ..., \gamma_N^{(1)}] Γ1:N(1)=[γ1(1),...,γN(1)]。第二层的输入是第一层的隐状态向量,输出则是 Γ 1 : N ( 2 ) = [ γ 1 ( 2 ) , . . . , γ N ( 2 ) ] \Gamma_{1:N}^{(2)}=[\gamma_1^{(2)}, ..., \gamma_N^{(2)}] Γ1:N(2)=[γ1(2),...,γN(2)]。作者发现第二层的输入是脱离word级别的,因此可能会出现问题。

4.3 分层匹配

  我们获得了 Γ 1 : N ( 1 ) \Gamma_{1:N}^{(1)} Γ1:N(1) Γ 1 : N ( 2 ) \Gamma_{1:N}^{(2)} Γ1:N(2),我们希望这两层的表征都可以与关系进行匹配。朴素的方法是分别将两层表征与关系表征 h r \mathbf{h}^r hr计算相似度,然后得到的两个值进行加权求和。但作者发现这么做实验效果还不如只保留一层LSTM的结果,分析可能因为深层的LSTM会陷入局部最优解,因此很难训练。
  为了更好能够训练,引入残差网络(Residual Networks)。作者提出两种策略:
(1)将两层的输出,按照每个时刻进行求和,即 γ i ′ = γ i ( 1 ) + γ i ( 2 ) \gamma_i'=\gamma_i^{(1)} + \gamma_i^{(2)} γi=γi(1)+γi(2),然后得到的 N N N γ ′ \gamma' γ取最大(最大池化)的作为问句的表征 h q \mathbf{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 m a x ( 1 ) \mathbf{h}_{max}^{(1)} hmax(1) h m a x ( 2 ) \mathbf{h}_{max}^{(2)} hmax(2),则 h q = h m a x ( 1 ) + h m a x ( 2 ) \mathbf{h}^q=\mathbf{h}_{max}^{(1)} + \mathbf{h}_{max}^{(2)} hq=hmax(1)+hmax(2)

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

4.4 KBQA 系统

  作者用现有的实体链接工具获得问句 q q q的topK个候选实体,记做 E L K ( q ) EL_K(q) ELK(q)。整个流程如图所示:

在这里插入图片描述
  (1)首先使用原始的问句进行关系检测,获得对应每个关系(与 E L K ( q ) EL_K(q) ELK(q)中所有候选实体所连接的)的得分,并按照得分从高到低排序获得前 l l l个关系(高置信度关系),记做 R q l R_q^l Rql。而候选的某一个中心实体 e e e所有相连的关系记做 R e R_e Re,因此两者交集即为该候选实体所有得分较高的关系 r ∈ R q l ∩ R e r\in R_q^l\cap R_e rRqlRe。如果实体链接工具自身给予每个实体一个排序的得分是 s l i n k e r s_{linker} slinker,则这个实体的最终得分表示为:

s r e r a n k ( e ; q ) = α s l i n k e r + ( 1 − α ) max ⁡ r ∈ R q l ∩ R e s r e l ( r ; q ) s_{rerank}(e;q) = \alpha s_{linker} + (1-\alpha) \max_{r\in R_q^l\cap R_e} s_{rel}(r;q) srerank(e;q)=αslinker+(1α)rRqlRemaxsrel(r;q)

直观的理解就是问句的某一个候选中心实体,其得分则依据初始的实体链接工具的打分,以及与该实体所有相连的高置信度关系得分的最大值。因此我们可以对所有候选实体进行排序,选择最大的 K ′ K' K个( K ′ < < K K'<<K K<<K),得到新的候选实体集合 E L K ′ ( q ) EL_{K'}(q) ELK(q)

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

  (3)查询生成。根据实体排序的得分以及第二次关系检测得分,得到最终的得分:

在这里插入图片描述
直观理解就是在求某一个关系的得分时,这个关系连接的候选中心实体对应一个重排序的得分 s r e r a n k s_{rerank} srerank,其次这个关系在第二次关系检测时(第(2)部分)的得分 s r e l ( r ; e , q ) s_{rel}(r;e,q) srel(r;e,q),两者加权求和。最后我们会得到一组这样的得分,从中选择最大的得分以及对应的候选实体、关系(关系路径)作为返回结果。

在这里插入图片描述
  (4)约束检测。如上图,在复杂问题(b)上,通常需要考虑到约束条件。作者提出一种约束检测方法。其包含两个步骤:

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

五、实验

  实验使用的两个数据集分别是SimpleQuestions和WebQSP:
(1)SimpleQuestions:简单问答,使用小型的FreeBase(2M)
(2)WebQSP:复杂问答,使用完整的FreeBase。使用S-MART作为实体链接。
下表展示了关系检测的效果。可以发现在两个数据集上,本文的方法HR-BiLSTM达到最优效果。同时消融实验表明基于word-leve和relation-level结合可以提升效果,使用双层LSTM和残差方法也可以提升关系检测效果。
另外也发现在WebQSP上关系检测的结果都很差,这也说明了大量的unseen关系对实验影响很大,也是未来解决问题的关键。
在这里插入图片描述
作者还将提出的KBQA系统与其他进行比较,如下表所示:
在这里插入图片描述

作者发现,如果去掉重排序或去掉约束检测,效果都会下降,说明重排序和约束检测很重要。

六、附录

附录部分对约束检测已经进行了详细的介绍,本文不做讲解。
在这里插入图片描述

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华师数据学院·王嘉宁

$感谢支持$

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值