Leveraging Knowledge Bases in LSTMs for Improving Machine Reading
《Leveraging Knowledge Bases in LSTMs for Improving Machine Reading》
这篇文章是发表在2017年ACL上的,主要是聚焦于外部知识改善LSTM,运用在实体抽取和事件抽取任务。在ACE2005的数据集上得到了SOTA效果。
首先介绍这篇文章的两个知识库,一个是WordNet一个是NELL。
- Word net是人工创造的一个词典,里面含有大量的同义词,以及他们之间的概念关系(上位词hypernym,part_of关系)。
比如(location, hypernym of, city),(door, has part, lock)
头实体和尾实体都是Wordnet中的同义词
- NELL,是自动构建的,基于网页的知识库,存储了实体之间的关系。
比如(New York, located in, United States) , (New York, is a, city)
头实体和尾实体都是一个真实世界的名词短语实体,尾实体也可以是一个概念分类。
接下来分以下四部分介绍:
- Motivation
- Model
- Experiment
- Discussion
1、Motivation
- 传统的方法将知识表示成离散的特征,这些特征的泛化性能很差,而且为了获得好的效果还需要特定任务的特征工程。
- 在不同的文本之间,知识的使用也是不同的,比如说一词多义, Clinton,既可以表示一个人,也可以表示一个城镇。如果加入无关上下文的知识,可能会误导模型。
针对这两个问题,该篇论文提出kblstm,首先利用这个连续的知识的表示去加强循环神经网络的学习能力。
而且为了去有效的整合背景知识和当前文本,还提出了使用一种带有sentinel(哨兵)的attention机制,可以动态的决定是否要引入背景知识并且哪一条背景知识是有效的
2、Model
2.1 overview
模型这一部分主要是把外部知识引入到双向循环神经网络当中(2.2)。主要是在隐藏状态,加入外部信息。外部信息是通过连续编码,使用konwledge embedding的方法(2.3)
2.2 Knowledge-aware Bidirectional LSTMs
首先学习到知识库里面的concepts的向量。然后去检索当前词的相关候选concepts ,并且把它们整合到状态向量,得到 ,去做预测。
核心是Knowledge model,对每一个候选去计算一个双线性,反应了concept 和当前隐状态的关系。
有时候一些kb可能会误导模型,为了解决这个问题,引入一个知识哨兵。两个作用:
- records the information of the current context
- use a mixture model to allow for better tradeoff between the impact of background knowledge and information from the context.
St计算方式如下:
首先,用前一时刻的状态和当前输入,过一个门函数,可以把这个门看成输出门,决定我要输出多少的信息,然后和状态向量进行计算。
接着和神经网络当中的状态进行双向性计算得到打分belta。
最后使用混合模型得到表示:
注意这个限制条件:
之前这个地方其实不是很理解。文章说的是为了权衡背景知识和来自于上下文的信息。但是最后输出的时候,只是做了一个简单的向量加和。而且st和前一部分的vt是两部分独立的。St并没有对前面的这些知识起到一个过滤或者说是什么的作用。所以前面的motivation说,st这个哨兵向量是为了决定是否要引入外部知识。就很迷。
解答:就是为了权衡背景知识和来自于上下文的信息。mt的来源有两部分,一部分是融入了背景知识的隐向量,一部分是只有当前信息的哨兵向量。
st这个哨兵向量是为了决定是否要引入外部知识,因为有限制条件,加和为1。所以当belta很大的时候,也就是我更加关注于上下文信息,忽略掉知识信息,那么可以用来解答motivation。zhi’q
2.3 Embedding Knowledge Base Concepts
对于wordnet,把当前词的同义词作为候选concept。
对于Nell,我们搜索当前词的实体和相关的概念分类(concept categories)作为候选concept。
使用知识图谱embedding方法去学习候选的表示。我们把一个concept定义成一个三元组,用一个打分函数去衡量三元组的相关性。打分函数主要是使用双线性函数。头实体和尾实体表示他们的向量。Mr是一个关系确定的embedding矩阵。
using the max-margin ranking objective:
对于word net我们使用预处理的数据[1]去训练。包括15万的三元组,4万的同义词和18个关系。对于NELL,使用其子集去进行训练,过滤掉了一些置信度少于0.9的名词短语。最终有18万的名词短语和258个概念分类。
3、Experiment
做了两个实验,第1个实验是实体抽取。第2个实验是事件抽取。
3.1 实体抽取
1、实体抽取结果
BiLSTM-Fea:a BiLSTM network that combines its hidden state vector with discrete KB features
2、我们设置了不同的KB,去验证外部数据的有效性。
3.1 事件抽取
1、实验结果
The first block in Table 5 shows the results of the feature-based linear models;
The second block shows the previously reported results for the neural models;
The third block shows the results of our models
4、Discussion
文章提出了两点,第1点是在循环神经网络当中融入了外部知识表示,第2点是引入了一个哨兵向量,能够去决定是否需要使用外部知识,而且也能够在用外部知识和用上下信息做权衡。
[1]Antoine Bordes, Nicolas Usunier, Alberto GarciaDuran, Jason Weston, and Oksana Yakhnenko. 2013. Translating embeddings for modeling multirelational data. In Advances in Neural Information Processing Systems (NIPS)