ACL 2017年论文

Abs:

核心思想是对KB和text的集合,对知识库的一种扩展,甚至再细一点,应该算是对text三元组的提取,使用universal schema将KB和text得到的知识映射到同一个embedding space中,然后就是key-value MemoryNetwork的事了。

1. universal schema是什么?

一般用于处理知识库文本中的关系抽取问题,通过entity pair将粗文本规范化,而后得到实体间的关系表示。这种关系可以是知识库的relation,也可以是大语料中两个实体间存在的某种模式。

这种方法,可以将text中的“s-r-o”(实体-关系-实体)通过模式的形式呈现出来

2. MemoryNetwork

使用的key-value network

3. 之前存在的问题:

  • KB有组织、有结构,但是不一定完备,存在知识缺陷
  • text中含有的信息挺多,但是不成组织

所以想个办法,将text中的信息提取出来,统一结合成KB的形式,使用universal schema,然后将它们放在同一个embedding space中

4 具体模型

4.1 问题描述:

给一个问题qq,由词语w1,w2,...,wnw_1,w_2,...,w_n组成,这些词语包含一个blank和至少一个实体。目标是用答案实体qaq_a填空,使用知识库KKtexttext的知识背景。表2是问题答案对的栗子。

4.2 模型

模型采用通用模式作为记忆的memory network。

Memory:采用Key-value memory networks。每一个memory slot由key和value组成。注意权重的计算通过比较问题与key memory,而value被用来计算上下文的表示去预测答案。memory(M)由取自universal schema的KB和textual三元组组成,组成每一个memory cell的都是key-value对的形式。

4.2.1 KB三元组

K:(s,r,o)代表KB三元组。subject-relation-object

对于KB,用分布式的K代表事实(fact)作为key

key:k是由s,r的embedding组合形成。其中s 是subject entity(主语实体),r代表关系relationship;

value:o的embedding ,o代表object entity(宾语实体)。

对于KB三元组,已经有个组织结构了,重点处理应该在text上,如何构成key-value

4.2.2 text三元组

(s,[w1....,arg1...arg2,wn],0)T(s,[w_1....,arg_1...arg_2,w_n],0) \in T表示text三元组,其中arg1,arg2对应实体s, o的位置

key: 用实体s,blank替换arg1,arg2arg_1,arg_2的位置。也就是k

value:entity ‘o’

再经过一层LSTM双向处理

再使用双向LSTM将k转换成与KB相同形式的分布式表示,由前向和后向LSTM的最后一个state连接得到。

**key:**即:
Question Answering on Knowledge Bases and Text using Universal Schema and Memory Networks2

value就是object实体o的embeding。

将KB和text 都转换成统一表示方法能使推理答案有统一的知识标准。在图1中,矩阵里的每一个cell代表了一个memory,由用分布式表示的key–value对组成。
Question Answering on Knowledge Bases and Text using Universal Schema and Memory Networks2

4.3问题编码:

双向LSTM也用来对输入问题进行编码。将问题表示为分布式的qq

和key的编码方式一样。

计算每一个记忆细胞的注意权重通过它的key和上下文向量c的点积,其中,c编码(encode)了当前迭代时最重要的上下文。在首次迭代中,上下文向量就是问题本身。我们只考虑那些包含了至少一个问题中的实体的记忆细胞,例如在图片1中,我们只考虑包含USA的记忆细胞。使用注意权重和记忆细胞的value,我们为下一次迭代计计算权重ct:
Question Answering on Knowledge Bases and Text using Universal Schema and Memory Networks2

我理解迭代次数t就是key-value network中的hop。c0c_0代表着问题本身

相关文章: