文章目录
- Abstract 摘要
- 1. Introduction介绍:
- 2. Related Work 相关工作
-
- 2.1 Relation Extraction 关系挖掘
- 2.2 Relation Detection in KBQA Systems
- 3. Background:Different Granularity in KB Relations背景:KB关系的不同粒度
- 4. Improved KB Relation Detection(改进KB关系检测)
-
- 4.1 Relation Representations from Different Granularity
- 4.2 Different Abstractions of Questions Representations
- 4.3 Hierarchical Matching between Relation and Question
- 5. KBQA Enhanced by Relation Detection
-
- 5.1 Entity Re-Ranking
- 5.2 Relation Detection
- 5.3 Query Generation
- 5.4 Constraint Detection
- 6. Experiments(实验)
-
- 6.1 Task Introduction & Settings
- 6.2 Relation Detection Results
-
- Ablation Test 消融实验
- Analysis 分析
- 6.3 KBQA End-Task Results
- 7. Conclusion 结论
Abstract 摘要
提出: 通过残差学习增强的层次递归神经网络。
用途: 检测给定输入问题的KB关系。
具体模型: 深度残差双向LSTM,通过不同抽象级别比较问题和关系的名称。还提出了一个简单的KBQA系统,集成了实体链接和作者提出的关系检测器。
性能: 在单关系(SimpleQuestions)和多关系(WebQSP)中实现了较高的准确性。
1. Introduction介绍:
- 介绍了下知识库问答
- 介绍了下单关系是什么
- 介绍了下多关系是什么
-> 从而得到KBQA系统执行两个关键任务:
- 实体链接:将问题中的n-grams链接到KB实体中
- 关系检测:识别问题引用的KB关系(图中的线)
- 关系检测在NLP中也很广泛应用,但是具体应用到KBQA中就差点意思,因为在NLP中,没实际应用到KBQA最终的任务上。因此存在以下几个差距
- 关系数量差距: 在NLP中,需要识别的关系类型少,但是在KBQA中,即使小型KB,也有超过6k种关系类型。
- zero-shot问题: 在NLP中,训练数据中存在某种关系,然后能够预测,但是在KBQA中,关系可能需要推导产生,这时候就存在0-shot问题。
- 核心链预测: 在NLP中,只需要预测出这个关系即可,但是在KBQA中,需要得到的是一条关系链。这一步增加了目标关系类型的数量和候选关系池的大小,进一步增加了KB关系检测的难度。
- 因此本文的目标就是要解决上述的问题。因此提出了以下的解决办法:
- 针对0-shot问题,把关系名拆成单词序列从而进行问题-关系匹配
- 原始的关系名称有时可以帮助较长的问题上下文,作者建议同时构建关系级和单词级关系表示。
- 使用BiLSTMs去学习不同水平的问题表示,以便去匹配不同水平关系信息。
- 提出一种针对序列匹配的残差学习方法,能够让模型训练更容易,产生更加抽象(更深)的问题表示,从而提高了层次匹配。
- 为了去评估提出的改进关系检测如何使KBQA的结束任务受益,因此提出了一个由两步关系检测组成的简单KBQA实现。
- 给定一个问题,和一系列基于问题通过实体链接得到的候选实体,作者提出的关系检测模型在KBQA中扮演了很重要的角色。流程如下:
- 根据实体候选对象是否与关系检测模型从原始问题文本中检测到的高置信关系相连接,重新对实体候选对象进行排序。(就是候选对象通过关系模型,看下有没有高置信度的链接。重新对他们进行排序。)这一步通常对于处理实体链接结果中出现的歧义很重要。
- 排序后,从一个更小的实习候选集中,对于每一个主题词找到一个核心链。
在Yih等团队的定义中,这里的主题实体指的是有向查询树的根,核心链就是从根到答案节点的有向关系路径。
当问题不能被一个简单关系解决的时候,上面的两步结束后,需要接着做一个可选的约束检测。
- 最后,上述步骤结束后,得分最高的查询被用来作为KB的答案。
- 作者的贡献
- 一种基于残差学习的问题与关系层次匹配的改进的关系检测模型(到这里还是不明白什么残差or层次)
- 演示了改进的关系检测器确保作者的简单的KBQA系统能够在单关系和多关系中都达到优秀程度。
2. Related Work 相关工作
2.1 Relation Extraction 关系挖掘
- 介绍了下关系挖掘。
关系挖掘是信息挖掘领域的一个很重要的子领域。这个领域的工作通常会预先定义一个小的关系集,其中给一段文本和两个目标实体。其目标是检测这个文本是否表示任意一种实体之间的关系。所以RE通常就是被表述为一种分类任务。
传统的RE的方法依靠大量的人工设计的特征。今年来的研究受益于先进的深度学习:从word ebeedings到深度模型比如CNNs and LSTMs以及注意力模型。
以上的研究都假设存在一个固定的(封闭的)关系类型集,因此不需要由0-shot的能力,而且通常关系的量也不大。介绍了广泛使用的小型集合:
- ACE2005 11/32 粗粒度/细粒度关系
- SemEval2010 Task8 有19个关系
- TACKBP2015有74个关系(尽管它考虑了开放域的维基百科)
- 相比于KBQA这都太小了,因此很少的工作关注于大量的关系和无形的关系上。
- Yu et al.(2016) 这些人提出在低秩张量方法中使用关系嵌入。但是他们的关系嵌入依然是通过监督的方法训练的,并且在实验中,他们的关系并不是很大。
2.2 Relation Detection in KBQA Systems
- KBQA的关系检测也从特征丰富的方法开始,Yao和Van Durme;Bast and Haussmann 使用了深度神经网络,Yin et al,Golub and He使用了注意力模型。
- 上述的许多关系检测研究自然可以支持具有大量关系的词汇和开放关系集(特别是使用OpenIE KB的QA,如ParaLex(Fader et al 20213)),以适应开放域问答的目标。
- 不同的KBQA的数据集,有不同程度的要求关于上述的开放域的程度。
原文中的例子:
- 在WebQuestions中,大多数gold test 关系在训练的过程中是能够被观察到的,因此之前的一些工作在这个任务中采用了封闭域假设,就像一般的RE研究一样。
- 但是对于像SimpleQuestions和ParaLex的数据集,支持大型关系集和不可见关系的能力变的更加必要。
- 总的来说,有两个主要的解决方法:
- (使用向量)使用预训练的关系嵌入,比如来自TransE(Bordes et al 2013),比如(Dai et al 2016)
- (文字序列)将关系名分解为序列,将关系检测作为序列匹配和排序任务。
- 这种分解之所以有效,是因为关系名通常是包含有意义的单词序列。比如:
- Yin et al.2016 分解关系名为词序列,为了单关系检测。
- Liang et al.2016 等人,在端到端神经编程器模型中使用单词水平的关系表示,在WebQSP中有很好的表现。
- Yih et al.2015 等人,在问题和关系两端,使用字符tri-grams 作为输入,以此实现匹配。
- Golub and He(2016)提出了单关系KBQA的生成框架,该框架使用一个字符级,序列到序列的模型预测关系。
- 另一个KBQA和一般的RE关系检测的区别就是,一般的RE搜索是假设两个参数实体都可用的。因此它通常受益于特征或基于实体信息的注意力机制。(列如实体类型或实体嵌入)
- 但是对于KBQA中的关系检测,这样的信息大多是缺失的,原因如下:
- 一个问题通常包含单个实体(主题实体)
- 一个KB实体,通常可能有多个类型(类型词汇量大于1500)。这使得KB实体类型其本身就是个难题,因此在关系检测模型中没有使用实体信息。
这些实体的信息在KBQA中已经为了找到最后的答案作为特征被重新排序了。
3. Background:Different Granularity in KB Relations背景:KB关系的不同粒度
前面的研究将KB关系检测表述为序列匹配问题。尽管问题是一个自然语言序列,但是如何去表示这个关系为一个序列,这仍然是一个有挑战的问题。
作者这里概述了在此前的工作中,两种普遍的关系序列表示的方法。
- Relation Name as a singale Token(关系水平)
在这种中,每一个关系名都是一个独特的token。
但是这个存在问题:由于有限的训练数据,导致了覆盖率很低,因此不能很好的泛化到大量的开放域关系。比如图一的例子。当把关系的名称当作单个token时,它将很难将问题和关系名”已写的剧集“和”主演角色“匹配(如果这些词在训练数据中没出现过),这就导致关系的word embedding h r s h^rs hrs在空间中将是个随机的向量,这样就导致问题经过word embedding之后两个无法映射到同一个位置,就不可比较。
2. Relation as Word Sequence(词水平)
在这种分类下,关系被视为来一系列关系名称的单词序列。(即一个关系是一个关系小元组构成的列表)。这种拆解具有较好的泛化能力,因为原始关系缺乏全局信息,但这也是其缺点。
举个例子,在图1的b中,关系检测是play on,对应的应该是starting_roles,但是如果把关系做拆解,图中starting_roles就会和关系名"plays_produced"就很难做得分的rank。拆开的词来看含有plays的关系名和问题中的play在词向量空间中更加接近。所以说缺少了全局的信息。
另一方面,如果目标关系在训练中与“tv appearance”同时出现,通过将整个关系作为一个标记(即关系ID),我们就可以更好地学习这个符号和“tv show” 、“play on” 等短语之间的对应关系。拆解后具有更好的泛化性。
总结:
作者列了一张表格清晰的展示了两个的拆解区别,对于Q1和Q2:
- 两种类型的关系表示包含了不同的抽象水平。正如表1所示,word-level更加关注于局部信息(词或者短语),而relation-level更关注于全局的信息(长的短语或skip-grams一个固定长度的窗口)但存在数据的稀疏性问题。
- (得出结论)由于这两个粒度级别的关系表示都有自己的缺点和优点,我们就提出了一种用于KB关系检测的分层匹配方法:
对于候选的关系,我们的方法是把输入的问题经过word-level和relation-level表示,得到最后的得分排名。(具体操作在第四部分)
4. Improved KB Relation Detection(改进KB关系检测)
- 这个部分描述了作者如何通过残差学习的方法对于关系检测实现分层序列匹配。
- 为了将问题匹配到一个关系的不同方面(主要就是不同抽象水平),作者在训练问题和关系表示方面,解决了以下三个问题
4.1 Relation Representations from Different Granularity
不同粒度的关系表示
- 模型的输入是两个类型的关系表示——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^{word}_1,\dots,r^{word}_{M1}\}\cup\{r^{rel}_1,\dots,r^{rel}_{M2}\} r={r1word,…,rM1word}∪{r1rel,…,rM2rel},输入就是来自两个不同抽象水平的并集。
当目标是图1中b的识别链时:
其中的M1的tokens就是word水平的单词(比如 { e p i s o d e , w r i t t e n } \{episode,written\} {episode,written},有episode,written是因为约束条件的in 2008),后面的M2 tokens就是relation水平的标记:比如 { e p i s o d e _ w r i t t e n } o r { s t a r r i n g _ r o l e , s e r i e s } \{episode\_written\}or\{starring\_role,series\} {episode_written}or{starring_role,series}。
- 然后把上述的每一个token转换成对应的word embbeding,然后使用两个BiLSTMs(具有共享参数)的获得它们的隐藏层表示: [ B 1 : M 1 w o r d : B 1 : M 2 r e l ] [B^{word}_{1:M_1}:B^{rel}_{1:M_2}] [B1:M1word:B1:M2rel](每一个行向量 β i \beta_i βi是i处正反向的拼接)。
- 实验把单词序列的最终状态作为关系序列LSTMs的初始化状态,作为unseen的那些关系的一个默认值。
- 最后,对两组向量做一个maxpool,把word和relation级别的特征做一个提取。得到最终的关系 h r h^r hr。
4.2 Different Abstractions of Questions Representations
不同问题的抽象表示
-
从表1可以知道,一个关系的不同部分会匹配问题文本的不同上下文。(episodes对应tv episides,written对应the writer of)
-
通常,如果是关系名的水平上(relation-level)会匹配问题中较长的短语,而关系词(word-level)会匹配更短的短语。但是不同的词可能会匹配不同长度的短语。
-
因为关系名和关系词是不同抽象水平的,匹配长度不一,但是我们在4.1知道了不同水平的粒度最后也是一个向量表示。那么就希望我们的问题的表示也是具有不同抽象级别的向量表示。所以作者在文中说希望问题表示的向量组成是一个总结了不同长度短语信息(不同抽象级别)的向量,以便匹配不同粒度的关系表示。
-
处理这个问题,通过应用BiLSTMs在输入的question上。
这个结构(不是上图,上图只是类似,上图是最终的模型,以下的模型只是得到了 Γ 1 和 Γ 2 \Gamma1 和\Gamma2 Γ1和Γ2)采用了两个Bi-LSTM层进行特征提取。
- 第一层的Bi-LSTM 的工作是question q = { q 1 , q 2 , … , q n } q=\{q_1,q_2,\dots,q_n\} q={q1,q2,…,qn}的word embedding。并且得到隐藏层的表示 Γ 1 : N ( 1 ) = [ γ 1 ( 1 ) ; … , γ N ( 1 ) ] \Gamma^{(1)}_{1:N}=[\gamma^{(1)}_1;\dots,\gamma^{(1)}_N] Γ1:N(1)=[γ1(1);…,γN(1)]。
- 第二层的Bi-LSTM的工作是基于第一层传递的隐藏层信息 Γ 1 : N ( 1 ) \Gamma^{(1)}_{1:N} Γ1:N(1)在做一次计算,得到第二层的隐藏层表示 Γ 1 : N ( 2 ) \Gamma^{(2)}_{1:N} Γ1:N(2)。因为第二层是从第一层的基础上学习来的,所以其隐藏层的信息相比于第一层更加抽象,具有一般性。
- 经过上述这样的计算,并不代表第一层(第二层)输出的问题表示就对应word or relation level的关系表示,相反,任何一层的问题表示都可以是word or relation level相匹配。这就出现问题了,不同层次的关系和问题表示之间匹配就有难度了。
讲到这相当于,前面的工作我们弄出了word 级别、relation级别的关系表示,长度不同的问题表示。但是他们之间却不知道怎么搭配。下文就是解决这个问题。
4.3 Hierarchical Matching between Relation and Question
- 现在我们有了不同长度的问题编码, Γ 1 : N ( 1 ) \Gamma^{(1)}_{1:N} Γ1:N(1)和 Γ 1 : N ( 2 ) \Gamma^{(2)}_{1:N} Γ1:N(2)。
- 不同于传统的BiLSTMs一样,最后一层我们不做预测,这里我们期望代表不同长度的问题表示能够进行互补,并且两者都应该与关系表示空间的 h r h^r hr比较(分层比较Hierarchical Matching)
- 这对于这项任务非常的重要(能比较才能rank),因为每个关系token可能对应不同长度的短语,主要是因为语法的变化。举个例子:
- 在表一中,written这个关系token它可能对应问题中的written这个单词,也可能对应更长的短语be the writer of。
(方法一) 分别计算关系和长度不同问题表示的权重。
- 我们可以通过分别让问题代表的 Γ 1 : N ( 1 ) \Gamma^{(1)}_{1:N} Γ1:N(1)和 Γ 1 : N ( 2 ) \Gamma^{(2)}_{1:N} Γ1:N(2)分别和 h r h^r hr进行相似度计算,然后再这两个分数之间做(加权)和来进行上面说的分层匹配。
- 但是,这个并没有带来显著的改善,从表二的结果看
- 在6.2节的分析表明,这种朴素方法存在训练难度大的问题,并且证明这个模型的计算损失比单层baseline模型收敛的训练loss更大。
- 主要原因如下:
- 深度BiLSTMs不能保证两种question的隐藏层表示是能够比较的,训练通常会掉入局部最优解,其中一层具有良好的匹配分数,另一层的权重总是接近于0。(答案会倾向于 Γ 1 或者 Γ 2 \Gamma1 或者\Gamma2 Γ1或者Γ2)
- 训练更深层次的架构本身就是一个更加困难的事情。
(方法二)
- 为了克服上述的问题,作者采用了Residual Networks(He et al,2016)的思想(残差网络),通过在两个BiLSTM层之间添加shortcut connections(捷径连接)进行分层匹配。
- 作者提出了两种方法针对这个分层残差匹配。
- 连接每一个 γ i ( 1 ) \gamma^{(1)}_i γi(1)and γ i ( 2 ) \gamma^{(2)}_i γi(2),对于每一个i计算得到一个 γ i ′ = γ i ( 1 ) + γ i ( 2 ) \gamma'_i=\gamma^{(1)}_i+\gamma^{(2)}_i γi′=γi(1)+γi(2),然后最后问题的表示 h q h^q hq就是所有 γ i ′ s , ( 1 ≤ i ≤ N ) \gamma'_is\space\space,(1\le i \le N) γi′s ,(1≤i≤N)的max-pooling。
- 分别对 Γ 1 : N ( 1 ) \Gamma^{(1)}_{1:N} Γ1:N(1)和 Γ 1 : N ( 2 ) \Gamma^{(2)}_{1:N} Γ1:N(2)做一个max-pooling得到 h m a x ( 1 ) h^{(1)}_{max} hmax(1) 和 h m a x ( 2 ) h^{(2)}_{max} hmax(2) ,然后 h q = h m a x ( 1 ) + h m a x ( 2 ) h^q=h^{(1)}_{max}+h^{(2)}_{max} hq=hmax(1)+hmax(2)。
- 通过这两种方法都可以算出一个 h q h^q hq,最后我们计算给定question的relation的匹配分数 S r e l ( r ; q ) = c o s ( h r , h q ) S_{rel}(r;q) = cos(h^r,h^q) Srel(r;q)=cos(hr,hq)。
- 直观地说,所提出地方法应该受益于分层训练,因为第二层是拟合来自第一层匹配的残差,所以两层表示更有可能彼此互补。这也确保了两层的向量空间具有可比性,使第二层的训练更加容易。
- 在训练过程中,我们采用一个loss的排名去最大化候选池中 R R R和正例 r + r^+ r+、其他关系 r − r^- r−之间的距离。
损失函数如下:
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}(r^+;q)+s_{rel}(r^-;q)\} lrel=max{0,γ−srel(r+;q)+srel(r−;q)} ,其中 γ \gamma γ 是超参数
这个loss计算,类似于三胞胎模型的计算相似度。简短描述如下:
样本是有不同类别的。从一个类别里面选出一个样本 x x x,在同类中选出 x + x^+ x+,在不同的类别中选出 x − x^- x−,然后把三个经过相同的网络,得到三个输出即 f ( x + ) , f ( x ) , f ( x − ) f(x^+),f(x),f(x^-) f(x+),f(x),f(x−),然后计算 f ( x + ) , f ( x ) f(x^+),f(x) f(x+),f(x)之间的距离 d + d^+ d+(当然距离计算有很多种),计算 f ( x ) , f ( x − ) f(x),f(x^-) f(x),f(x−)之间的距离 d − d^- d−,同类之间肯定距离更近,异类之间肯定距离远,这时候是根本不需要lable信息的,所以是可以用来做one-shot的。那么两个距离之间我们设置为 α \alpha α,这个参数用来衡量两者之间的边界情况。我们希望这个边界是大的。那么loss的公式就可以设置为:
L o s s ( x + , x , x − ) = m a x ( d + + α − d − , 0 ) Loss(x^+,x,x^-)=max(d^++\alpha-d^-,0) Loss(x+,x,x−)=max(d++α−d−,0)
以此来判断损失,进行优化。
以上就是计算不同样本之间是否接近的方法,所以不算到最后,通过这网络在中间就能够得到向量embedding。相近就向量离得近,否则就远。
section 4 的部分就是作者对于问题和关系的匹配做出的讲解,以及相关模型。下图就是上述的分层残差BiLSTM模型(HR-BiLSTM)
Remark
另一种分层匹配是依赖于注意力机制,以找到不同层次表征之间的对应关系。在table2中有标注出在数据集中的表现。
5. KBQA Enhanced by Relation Detection
- 这个部分描述的是作者提出的KBQA的一个pipeline system。
- 除了对关系检测模型的训练外,作者用最少的工作来使得这个系统易于构建。
- 在前人的工作上(Yih et al,2015,Xu等人,2016),本文的系统采用了现有的实体链接器去生成一个对于问题question(”初始实体链接“)的排名在前K名的链接实体, E L K ( q ) EL_K(q) ELK(q)。
- 然后按照以下的算法中的四个步骤为quetsion生成KB查询。
- 算法解析:KBQA with two-step relation detection 两步关系检测
Input:问题q,知识库KB,初始化的K个实体候选集 E L K ( q ) EL_K(q) ELK(q)
Output:得分最高的查询元组 ( e ^ , r ^ , { ( c , r c ) } ) (\hat{e},\hat{r},\{(c,r_c)\}) (e^,r^,{(c,rc)})
- Entity Re-Ranking(实体重排)(这是第一步的关系检测): 把问题文本行作为输入,输入到关系检测器中,对知识库中与ELK(q)中实体相关联的所有关系进行评分,使用关系的得分对ELk(q)实体进行重新排列,并且得到一个更短的实体列表 E L K ′ ′ ( q ) EL'_{K'}(q) ELK′′(q)(就是包含了前K‘个得分的实体)。
这个部分的详解在5.1
- Relation Detection: 对问题重新格式化,即问题中的主题实体被代替,然后再次检测下关系得分。
这个部分的详解在5.2
- Query Generation: 结合第一步和第二步得到的分数,然后选择出总和分数最高的pair ( e ^ , r ^ ) (\hat{e},\hat{r}) (e^,r^)
这个部分的详解在5.3
- Constraint Detection(optional): 计算问题q和沿着关系 r ^ \hat{r} r^的实体的任一邻居实体c之间的相似度(通过关系 r c r_c rc链接),把得分高的实体c和 r c r_c rc添加到查询中。
这个部分的详解在5.4
- 相比于之前的方法,作者在本文提出的主要区别就是在初始化实体链接后,添加了一步实体的得分重新排序。之所以加了这一步是因为作者发现,实体链接有时候会成为KBQA系统中的瓶颈。原因如下:
- 在SimpleQuestins数据集中,最好的报告中实体链接器在识别主题实体方面只能获得72.7%的top-1准确率。这通常是因为模糊的实体名,比如在图1的a中,有电视剧作家和棒球运动员”Mike Kelley“,这是无法通过实体名称匹配区分的。
- 已经观察到,不同的候选实体通常链接不同的关系。作者这里提出了一种通过问题中检测到的关系来帮助初始化实体链接中的实体消歧的方法。
- 在5.1和5.2中详细介绍了作者的关系检测如何帮助初始实体链接中重新排列实体,然后这些重新排列的实体,促成了更准确的关系检测。最终的KBQA任务会受益于这个过程。
5.1 Entity Re-Ranking
- 在第一个步骤,使用问题文本行作为关系检测器的输入,对KB中与ELK(q)中至少一个候选实体连接的所有关系进行评分。
- 作者称这个步骤为实体集上的关系检测,因为它不像普遍的设置一样对单个主题实体起作用。作者使用第四部分提到的HR-BiLSTM模型。
- 对于每个问题q,对于每一个关系使用HR-BiLSTM产生一个得分 s r e l ( r ; q ) s_{rel}(r;q) srel(r;q)(问题和关系的的得分),得到前l个问题-关系得分记作( R q l R^l_q Rql)去重新排序最初的候选实体。
- 具体来说,对于每个实体e及其关联它的关系Re,有了Re和 R q l R_q^l Rql就能得到分数最高的关系集合 r ∈ R q l ∩ R e r\in R_q^l \cap Re r∈Rql∩Re,这个最优集合里面的分数就是通过HR-BiLSTM计算得到的 s r e l ( r ; q ) s_{rel}(r;q) srel(r;q),原本的实体链接器就会给每一个关系一个得分 S l i n k e r S_{linker} Slinker,我们就可以通过这两个分数得到排序的分数 s r e r a n k ( e ; q ) s_{rerank(e;q)} srerank(e;q)。
S r e r a n k ( e ; q ) = α ⋅ S l i n k e r ( e : q ) + ( 1 − α ) ⋅ m a x r ∈ R r l ∩ R e S r e l ( r ; q ) S_{rerank}(e;q)=\alpha·S_{linker}(e:q)+(1-\alpha)·max_{r\in R^l_r \cap R_e}S_{rel}(r;q) Srerank(e;q)=α⋅Slinker(e:q)+(1−α)⋅maxr∈Rrl∩ReSrel(r;q)
- 最后,我们根据计算得到的 S r e r a n k S_{rerank} Srerank得到K个中得分最高的K’个实体去组成重排后的列表 E L K ′ ′ ( q ) EL'_{K'}(q) ELK′′(q).
- 我们在图1(a)中使用相同的样例去解释这个想法。在样例中我们给一个问题的输入,关系检测器可能赋予更高的得分给”episodes_written“,”author_of“和”profession“。然后,根据KB中关联的候选实体。我们能找到TV中的"Mike Kelley"的得分将会比篮球运动员”Mike Kelley“得分高,因为前者有关系”episodes_written“和”profession“。这个方法就可以被视作利用实体-关系搭配进行实体链接。
用关系的得分去选择实体,因此可以一定的避免实体名称重叠的问题
5.2 Relation Detection
- 在这一步中,对于 E L k ′ ( q ) EL'_k(q) ELk′(q)中的每一个候选实体e,我们使用问题文本q作为数,再次计算连接了KB的实体e的所有关系的得分。因为这一步中我们输入了单个主题实体,所以我们对问题进行了一个格式化,即把问题中的候选实体换称,这就有助于模型更好的区分每个单词相对于实体的相对位置。然后再用HR-BiLSTM模型来计算每个关系 r ∈ R e : S r e l ( r ; e , q ) r\in R_e:S_{rel}(r;e,q) r∈Re:Srel(r;e,q)。
简单的理解就是经过第一步后以及筛选了一些不需要的实体并进行排序,但是在第二部中,对问题中的候选实体做了一些特殊处理替换,再次进行一次计算。并且在第二步中的候选实体,作者提到比第一步小得多。
5.3 Query Generation
- 最后系统就根据以下的公式计算得出问题所对应的关系-实体对。
s ( e ^ , r ^ ; q ) = m a x e ∈ E L K ′ ′ ( q ) , r ∈ R e ( β ⋅ s r e r a n k ( e ; q ) + ( 1 − β ) ⋅ s r e l ( r ; e , q ) ) s(\hat{e},\hat{r};q)=max_{e\in EL'_{K'}(q),r\in R_e}(\beta·s_{rerank}(e;q)+(1-\beta)·s_{rel}(r;e,q)) s(e^,r^;q)=maxe∈ELK′′(q),r∈Re(β⋅srerank(e;q)+(1−β)⋅srel(r;e,q))
这样就能得到得分最高的pair,其中的 β \beta β是超参数可以调整。
5.4 Constraint Detection
- 和Yih et al.2015团队一样,我们基于文本匹配添加了一个约束检测的步骤。我们的方法可以看作是在KB子图上进行实体链接。包含了两个步骤。
通过前面三个步骤得到了得分最高的查询,对于每一个实体v(即CVT,在freebase知识库中的一种带有约束或者关系的实体),收集所有和v实体相连的实体c(不管是什么关系)。把这个v和c实体链接到原本的查询图上。
找到得分最高的查询,这可能从这一步开始就是错误的,但是在最后的KBQA最终任务上还是达到了不错的成绩,因此说明整个关系检测模型是好的,所以在未来的工作中,作者提到会对最终答案进行beam-search和特征提取等。
- Entity-linking on sub-graph nodes:
我们计算问题输入中的每一个n-gram(不与主题实体重叠)和实体名称c(不在原始查询节点中的,即CVT链接的实体)之间的匹配分数,考虑它们之间字符的最大重叠序列(详见附录a和b,处理日期/答案类型约束的特殊规则。)如果匹配分数高于阈值 θ \theta θ(超参数),我们将添加这个约束实体c和关系Rc到查询图中,即把cvt节点v添加到核心链上。
6. Experiments(实验)
6.1 Task Introduction & Settings
- 数据集:SimpleQuestions(Bordes et al.,2015)和WebQSP(Yih et al.,2016)。数据集中的每个问题都有正例的语义解析。因此我们可以直接评估关系检测的性能,也可以在KBQA的最终任务上进行评估。
- 介绍了下两个数据集:
- SimpleQuestions(SQ):
- 这是一个单关系的KBQA任务。使用的知识库是Freebase的子集FB2M(具有2M个实体),以便与之前的研究进行比较。
- Yin et al团队也评估了他们的关系检测在这个数据集上,并且发布了他们提出的问题-关系对,因此我们运行我们的关系检测模型在他们的使用的数据集上。
- 对于KBQA的评估,我们也从它们的实体链接结果测试过,因此我们的结果既能和它们关系检测对比,也能和它们对比KBQA的最终任务。
- WebQSP(WQ):
- 这是一个多重关系的KBQA任务。我们使用完整的Freebase进行评估。继Yih等人之后,作者使用S-MART(Yang和Chang,2015)实体链接输出。
- 为了去评估关系检测的模型,我们在WebQSP数据集上创建了一个新的关系检测任务。
- 对于每一个问题和其对应的语义解析标签:
- 我们先从解析中选择主题实体
- 然后选择与主题实体相连的所有关系和关系链(长度小于等于2),并设置解析中标注的核心链为正,其余均为反。
- 在开发集上调优了以下的超参数
- LSTMs中隐藏层的大小:50,100,200,400
- 学习率:0.1,0.5,1.0,2.0
- shortcut connection是在隐藏层之间还是在max-pooling结果之间。
- 训练的轮次
- 无论是关系检测实验还是KBQA中的第二步关系检测,都需要先进行实体的替换,即5.2和图1。
- 所有的词向量都被初始化为维度为300的word embeddings。关系名称的embedding被随机初始化,因为现存的预训练关系embedding(比如transE)通常支持限制关系名称的集合。(作者把预训练关系的embeddings的使用放到了以后的工作中……)
6.2 Relation Detection Results
- 表2就展示了两个关系检测任务的结果。即在两个数据集上的Accruracy。
- table中AMPCNN就是Yin等人的成果,其成果是通过几种优秀的注意力机制的方法获得了目前最高的分数。
- 作者复现了Yih等人2015年的BiCNN模型,其中问题和关系都用char-3-gram的hash来表示。
- 用word序列级别的关系的BisLSTM模型在WebQSP中做测试,似乎到达了基准线,因为这是最接近于AMPCNN之前在SImpleQuestions数据集上最好的效果。而作者的HR-BiLSTM在这两项任务上的表现都超过了最佳的基线2-3%。(即与BiLSTM w/words 在SQ和WQ上的分数)
- 值得注意的就是如果在BiLSTM上使用关系名级别,得出的结果比word级别差得多。在SQ上直接从91.2降到了88.9。但是在WQ上掉的非常少,仅从79.32到78.96.
- 说明,那些unseen的关系名,在SQ上有更大的影响(因为word级别更容易检测到unseen的关系名)
Ablation Test 消融实验
目的就是看看到底哪个因素更重要
- 实验的结果在table2中已经展示。
- 首先,问题与关系名和关系词之间的分层匹配在两个数据集上都得到了提高(分层匹配是有效的),特别是对于SQ(93.3vs91.2/88.9)。(原文是91.2和88.8感觉有问题)
- 第二,残差学习在分层匹配上,优于加权和注意力机制。(SQ上,残差93.9,加权92.5,注意力92.6,WQ上,残差82.65,加权80.65,注意力81.38)。作者使用的是来自Parikh团队的注意力模型及其单向变化,其中单向模型给出了更好的结果。
作者使用了他们团队的注意力机制,但是其实和HR-BiLSTM相比,并没啥好结果。作者假设,层次匹配和注意力机制的思想可能对长序列更好,而新的注意力机制Wang和Jiang团队的,可能由主义层次匹配,那这个是作者未来的工作。
- 值得注意的,残差学习让WQ数据集上的准确率从80.65到了82.53(最终的效果),但是在SQ上并没有太大帮助。(92.5到93.3)
- 在SQ数据集上,即使把模型的深度变小,最终的表现下降也很少。而WQ对于更深的结构和残差学习有更明显的收益,这可能是因为在WQ中,处理更大范围的上下文匹配更为重要。
- 最后,在WQ模型中,我们用CNN代替了BiLSTM,构造了一个HR-CNN模型,结果直接从82.53掉到了79.08。但是在SQ数据集中,还是掉的很少。
- 我们认为这是因为LSTM的关系编码器能够更好的学习关系链的组成,因为LSTM能够处理更长的关系依赖,而CNN聚焦于局部。
Analysis 分析
接下来,就是说明下为什么作者采用HR-BiLSTM能够获得这样高的分数。以WQ数据集进行分析(可能是因为SQ没啥太大变化)
- 首先作者提出了一个假设,加权模型的训练通常是局部最优的,因为深层的BiLSTM是不能保证两层的question 表示是可比较的,因为在训练过程中,有一层的权重几乎接近于0,被忽略。
- 作者在文中提到,在一次训练中,两层的权重为-75.39/0.14(以指数作为权重和)训练的准确率(91.94%)比HR-BiLSTM(95.67%)低很多,训练难度较大。
- 第二,与具有shortcut connections的BiLSTM相比,作者也提出了一个假设,对于KB关系检测,没有shortcut 比有更难训练。最终实验结果表明,更深的BiLSTM不会总是导致更低的训练精确度。
- 在实验中,两层的BiLSTM收敛率为94.99%,甚至低于单层的BiLSTM的95.25%。在作者的设置下,两层模型将单层模型作为特例(因此它可能更好地拟合训练数据),这结果就表明,没有shortcut 连接的深层BiLSTM可能会遭受更多的训练难度。
- 最后,作者还提出假设HR-BiLSTM不仅仅是两个BiLSTM的组合然后加个残差连接,因为它还推动了层次结构去学习不同抽象级别的信息。证明这一点,作者将深层的BiLSTM问题编码器替换成了两个单层的BiLSTM(word级别的),然后两个单层的隐藏状态之间是有shortcut connections的。
- 在测试集上,准确率掉到了76.11%,但是与HR-BiLSTM相比,在训练集上有相同的准确率,说明过拟合严重。
- 这就证明残差结构和深层的结构都有助于HR-BiLSTM有更好的性能。
6.3 KBQA End-Task Results
- 表三将作者的系统和两个已发布的基准系统进行了比较:
- STAGG,目前在WQ上最高得分
- AMPCNN,目前SQ上最高得分
- 这两个基准是专门为某个数据集调优设计的,因此他们的模型应用到另一个上的时候就差点意思。
- 为了突出关系检测模型对KBQA最终任务的影响,作者还弄了一个基准,它使用的是作者的KBQA系统,但是把HR-BiLSTM替换成作者自己实现的AMPCNN,或用char-3-gram的BiCNN关系检测(用于WQ)。(相当于作者做了一个平均的基准)
- 相比于作者设置的关系检测的基线相比,作者的方法改进的是一个关系检测器HR-BiLSTM,直接将KBQA的最终任务提高了2-3%。但是请注意,相比于之前KBQA系统,作者的系统没有使用联合推理和基于特征的重新排名等步骤,但是最终的效果和目前最好的效果一致。
- 表中的第三块详细介绍了作者的KBQA系统中提出的两个组件的消融测试。
- 如果移除实习的重新排名的步骤,准确率掉很多。因为重新排序的计算公式是依赖于HR-BiLSTM的,因此证明HR-BiLSTM在多个方面都有助于性能的提高。附录C给了rerank的详细性能。
- 与Yih团队结论相反,约束检测对作者的系统至关重要的(因为Yih主要是SQ,不注重约束),作者说的是,可能是因为他们在主题实体和核心链的检测上的联合性能更准确(节点接入核心链的top1节点准确率是77.5%),为约束检测模块留下了巨大的改进空间(77.5%vs58.0%)。
b中提到的差距大是指的准确率,但是对于F1的得分,其实差距不是很大。
- 最后,像STAGG数据集上,采用了多个关系检测器(Yih等团队使用了三个模型),在6.2中作者也采用了三个关系检测器。结果展示在表3的最后一行,结果表明有显著的提高,在SQ上得到了78.7,在WQ上也达到了STAGG的最高的得分。
7. Conclusion 结论
- 知识库的关系检测在KBQA领域是很重要的一步,并且这和普通的关系检测很不同。
- 作者提出了一种新颖的关系检测模型HR-BiLSTM,该模型的作用是:问题和知识库的关系之间进行分层匹配。
- 作者的模型性能表现优于之前的关系检测,并且使自制的简易的KBQA系统达到最优。
- 未来的工作是将会把这个模型集成到端到端的系统上。比如将整个模型整合到Liang团队的解码器中,去提供更好的序列预测。
- 作者也将制作新兴的数据集,如GraphQuestions和ComplexQuestions,以及处理一般QA的更多特征。