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 问题描述:
给一个问题,由词语组成,这些词语包含一个blank和至少一个实体。目标是用答案实体填空,使用知识库和的知识背景。表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三元组
表示text三元组,其中arg1,arg2对应实体s, o的位置
key: 用实体s,blank替换的位置。也就是k
value:entity ‘o’
再经过一层LSTM双向处理
再使用双向LSTM将k转换成与KB相同形式的分布式表示,由前向和后向LSTM的最后一个state连接得到。
**key:**即:
value就是object实体o的embeding。
将KB和text 都转换成统一表示方法能使推理答案有统一的知识标准。在图1中,矩阵里的每一个cell代表了一个memory,由用分布式表示的key–value对组成。
4.3问题编码:
双向LSTM也用来对输入问题进行编码。将问题表示为分布式的
和key的编码方式一样。
计算每一个记忆细胞的注意权重通过它的key和上下文向量c的点积,其中,c编码(encode)了当前迭代时最重要的上下文。在首次迭代中,上下文向量就是问题本身。我们只考虑那些包含了至少一个问题中的实体的记忆细胞,例如在图片1中,我们只考虑包含USA的记忆细胞。使用注意权重和记忆细胞的value,我们为下一次迭代计计算权重ct:
我理解迭代次数t就是key-value network中的hop。代表着问题本身