论文解读:Knowledge Base Relation Detection via Multi-View Matching

论文解读:Knowledge Base Relation Detection via Multi-View Matching

  关系检测(Relation Detection)是知识库问答的核心步骤,有时候也被称为关系匹配(Relation Matching),其目标是给定一个文本(通常是一个问句Question)以及附带的中心实体(Target Entity),判断这个问句想要表达的是什么关系。例如问句“中国的首都是哪里”,中心实体是“中国”,关系检测就是判断这个问句想问的是实体“中国”的“首都”关系,形成的元组是(“中国”, “首都”,“?”)。KBQA则带着这个问题到知识库中查找,将问号“?”对应的位置找到合适的答案。
  本篇工作则是着力于关系检测,提出一种多视角关系匹配算法,试图在不同的方面(实体,实体类型,问句语义等)进行关系检测。

一、简要信息

序号属性
1模型名称Multi-View Relation Matching
2所属领域自然语言处理
3研究内容知识库问答
4核心内容Relation Detection, KBQA
5GitHub源码
6论文PDFhttps://arxiv.org/pdf/1803.00612

二、全文摘要翻译

  关系检测时知识库问答(KBQA)核心的部分。本文我们提出一种基于多视角匹配算法的知识库关系检测模型,通过从问句和知识库中充分提取信息来完成。每个视图内部的匹配是通过多个透视图来彻底比较两个输入文本。这些视图都通过端到端的神经网络来训练。我们在SimpleQuestion和WebQuestion上得到的SOTA效果。

三、问题介绍与相关工作

  首先简单介绍KBQA任务:知识库问答(Knowledge Base Question Answer)是指通过对知识库进行查询来寻找问句的答案。因此KBQA包含两个子任务:
(1)实体识别与链接:需要判断问句中目标的实体是什么。通常可以用命名实体识别的方法来提取所有相关的实体,并与知识库进行连接与消歧;
(2)关系检测:根据中心实体来判断问句希望得到的答案与中心实体是什么关系。值得注意的是,关系检测不同于关系抽取(Relation Extraction),其只建立在一个句子和一个实体,而不是两个实体,因此关系检测依然是研究的难点。关系检测主要难点有:

  1. 关系的数量庞大(超过1000)。不同于关系抽取是预定义的少量的标签(不超过100个),关系检测面临的关系的数量通常是大量的;
  2. 未知关系:在测试集中经常出现训练集没有出现过的关系,因此如何让模型预测未知的关系也是难点。

  先前的工作解决这两个问题常用的是使用大规模的关系库(例如预训练关系向量),或者利用Zero-shot Learning方法。也有一些工作将关系的表征视为token级别的(每个关系由多个单词组成),这样在遇到未知关系时只需要对各个token表征即可,但这样会损失全局的信息,因此也有人同时使用预训练关系和token级别的表征。
  本文则从多视图角度出发,通过对知识库进行深入挖掘,来寻找Question-Relation的匹配算法。例如可以利用实体的类型(entity type)来作为匹配的信息。事实上实体的类型是可以对结果进行约束的,例如“What country is located in the Balkan Peninsula?”,中心实体的类型是地名,关系是place_of_location,所以你需要得到的答案一定也是一个地名,而不可能是人名或者其他类型。因此本文有两个contributions:一个是多视图匹配算法,一个是实体类型约束。

  下面给出关系检测的问题描述:
给定一个问句 q \mathbf{q} q ,任务是识别出这个问句可能的关系 r g o l d ∈ R \mathbf{r}^{gold}\in\mathscr{R} rgoldR 。我们通常将关系检测视为一种排序问题。对于一个问句和候选的关系,它们都有多个方面的信息,例如 r = { r ( 1 ) , r ( 2 ) , . . . , r ( N r ) } \mathbf{r} = \{\mathbf{r}^{(1)}, \mathbf{r}^{(2)}, ..., \mathbf{r}^{(N_r)}\} r={r(1),r(2),...,r(Nr)} q = { q ( 1 ) , q ( 2 ) , . . . , q ( N q ) } \mathbf{q} = \{\mathbf{q}^{(1)}, \mathbf{q}^{(2)}, ..., \mathbf{q}^{(N_q)}\} q={q(1),q(2),...,q(Nq)},而不同的信息可以视为一个token序列,即 r ( i ) = { r 1 ( i ) , r 2 ( i ) , . . . , r M i ( i ) } \mathbf{r}^{(i)} = \{r_{1}^{(i)}, r_{2}^{(i)}, ..., r_{M_i}^{(i)}\} r(i)={r1(i),r2(i),...,rMi(i)}。其中 N r , N q N_r,N_q Nr,Nq 分别表示关系、问句的视图个数, M i M_i Mi表示每个视图的token数(序列长度)。作者定义了三个视图:

(1)实体名称和实体描述配对。实体名通常是问句中的实体,实体描述则是知识库中的实体,因此二者组成的元组可以表示两者不同的信息结合。
在这里插入图片描述
(2)关系名称与抽象问句。问句通常可以直接表达目标的关系,而将其与知识库中的关系组合起来可以捕捉二者之间的关系。这里所谓的抽象(abstract)是指将问句中的中心实体用一个单独的标签<e>替换掉。
在这里插入图片描述
(3)尾实体与抽象问句。如果已知问句的中心实体,以及寻找的某一条关系边,则可以得到对应的尾实体,因此尾实体(也就是候选的答案)与问句之间也是有密切关系的,尾实体的语义信息直接决定是否与问句匹配。

在这里插入图片描述

四、方法

4.1 尾实体类型抽取

  前面有所介绍,如果问句想要获得的是地名,那尾实体一定只能是地名类型,而不可能是其他类型,所以我们首先对尾实体的类型进行抽取,并为每个尾实体形成一个类型列表。使用的方法是,对知识库(FreeBase)中每一类关系随机提取500个实体,然后通过知识库的查询语句(type.object.type)获得每个关系对应的尾实体的类型,我们发现95%的实体都有类型,而对于没有类型的实体则使用一个默认的token代替,因此这样每个实体都可以有一个类型token序列。

在这里插入图片描述

4.2 输入层

  对于每个视图,都从两个层面进行表征,一个是词向量,使用word2vec或Glove,另一个是字符级别表征,字符级别则将每个字符通过LSTM编码起来。

4.3 上下文表征

  对于输入层的每个视图,都使用双向LSTM进行表征,LSTM的公式如下:
在这里插入图片描述
最终每个视图都会得到两个向量 h ← \overleftarrow{h} h h → \overrightarrow{h} h 最后拼接起来作为单独的向量 h = [ h ← ; h → ] h=[\overleftarrow{h};\overrightarrow{h}] h=[h ;h ]

4.4 匹配层

  匹配层部分,作者使用了已有的工作(BiMPM),叫做双边多视角匹配,是一种文本匹配算法,其思路是给定两个文本序列 A A A B B B ,如果 A ← B A\leftarrow B AB则表示 B B B 的每个token都与 A A A 进行匹配,反之亦然。而双边匹配则是 A A A 的每个token都与 B B B 匹配的同时, B B B 的每个token都与 A A A 进行匹配。匹配的得分使用cosine相似度: m = f m ( v 1 , v 2 , W ) m=f_m(v_1,v_2,W) m=fm(v1,v2,W) v i v_i vi表示一个向量。 m m m是一个向量,向量的每一个元素表示为 m k = c o n s i n e ( W k ⊙ v 1 , W k ⊙ v 2 ) m_k = consine(W_k\odot v_1,W_k\odot v_2) mk=consine(Wkv1,Wkv2),其中 ⊙ \odot 表示对应元素相乘, W k W_k Wk是训练参数。

  上面简单做出了描述,但我们仔细思考发现,如果我们进行 A ← B A\leftarrow B AB的匹配,那么也就是说 B B B 经过LSTM后每个时刻的隐向量分别与 A A A 进行匹配,而此时 A A A 应该怎么表示呢?BiMPM原作者给出了四种方法,本文作者也直接使用了:

(1) Full-Matching。 A A A 在LSTM最后一个时刻的隐向量与 B B B 的每个隐向量进行consine匹配;

在这里插入图片描述
(2) Max-Pooling-Matching: A A A 在LSTM后所有的隐向量的最大值与 B B B 的每个隐向量进行consine匹配;
在这里插入图片描述
(3)Attentive-Matching: A A A 在LSTM后所有的隐向量的加权平均与 B B B 的每个隐向量进行consine匹配;

在这里插入图片描述
(4)Max-Attentive-Matching:与(3)一样计算出权重,但只取权重最大的

PS:这里需要注意的是,上图中所谓的anchor就相当于我们举例的 B B B,target相当于 A A A,原文中示例是
a n c h o r → t a r g e t anchor\rightarrow target anchortarget,本博文的示例是 A ← B A\leftarrow B AB ,所以是一样的。

4.5 聚集层

  由模型的图可以看出,第一个视图(问句中的实体和知识库中的实体信息)每个token表征后得到两个向量,第二和第三个视图分别通过双边匹配模型后得到一系列的向量,这些向量最终直接拼接起来,通过一层神经网络进行预测得分 s ( r ∣ q ) s(\mathbf{r}|\mathbf{q}) s(rq)

五、实验

  作者分别在SimpleQuestion和WebQuestion上进行实验:
(1)SimpleQuestion:以简单的问题为主,即只有一层关系。作者使用小型的FreeBase完成问答(FB2M,有2M个实体)
(2)WebQuestion:包含复杂的问题,即有多层关系(中心实体到答案实体可能包含多跳)。作者使用完整的FreeBase完成问答。
  实验的结果如下:
在这里插入图片描述
其中Char表示是否使用字符表征。

©️2020 CSDN 皮肤主题: 黑客帝国 设计师:上身试试 返回首页