首页 > 技术文章 > 【论文阅读】Context-Aware Representations for Knowledge Base Relation Extraction [EMNLP2017]

Harukaze 2021-01-06 16:46 原文

上篇文档关系抽取的论文,有ContextAware模型,通过查看代码发现是LSTM+Attention的模型,来阅读原文学习。

原文链接:https://www.aclweb.org/anthology/D17-1188.pdf 

Abstract

我们证明,对于句子级的关系抽取,在预测目标关系时考虑句子上下文中的其他关系是有益的。我们的架构使用一个基于LSTM的编码器来共同学习一个句子中所有关系的表示。我们结合上下文表示和注意机制来做出最终的预测。

1 Introduction

我们提出了一种新的架构,将句子中的其他关系作为上下文来预测目标关系的标签。我们在整篇论文中使用了术语上下文关系来指代它们。我们的架构使用一个基于LSTM的编码器来共同学习一个句子中所有关系的表示。将目标关系的表示和上下文关系的表示结合起来进行最终的预测。

我们的主要贡献是新的神经网络体系结构,用于提取实体对之间的关系,该结构考虑了句子中的其他关系。

我们使用神经网络将目标关系和句子上下文自动编码成一个固定大小的特征向量。

在我们的方法中,我们不实现全局约束,因为与事件和参数不同,对于什么样的关系可以一起出现没有限制。相反,我们将同一上下文中的所有关系编码为固定大小的向量,并使用注意机制来组合它们。

2 Data generation with Wikidata

笔者对数据集的建立不感兴趣所以不做过多介绍了。数据集基本内容如下:

留出法(hold-out)
留出法的含义是:直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另外一个作为测试集T,即D=S∪T,S∩T=0。在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的评估。其中T也叫held-out data。

需要注意的问题:

  1. 训练/测试集的划分要尽可能的保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响
  2. 在给定训练/测试集的样本比例后,仍然存在多种划分方式对初始数据集D进行划分,可能会对模型评估的结果产生影响。因此,单次使用留出法得到的结果往往不够稳定可靠,在使用留出法时,一般采用若干次随机划分、重复进行实验评估后取得平均值作为留出法的评估结果

此外。我们希望评估的是用D训练出的模型的性能,但是留出法需划分训练/测试集,这就会导致一个窘境:若另训练集S包含大多数的样本,则训练出的模型可能更接近于D训练出的模型,但是由于T比较小,评估结果可能不够稳定准确;若另测试集T包含多一些样本,则训练集S与D的差别更大,被评估的模型与用D训练出的模型相比可能就会有较大的误差,从而降低了评估结果的保真性(fidelity)。因此,常见的做法是:将大约2/3~4/5的样本用于训练,剩余样本作为测试

3 Model architecture

3.1 Relation encoder

关系编码器为句子中两个实体之间的关系$o_s$生成一个固定大小的向量表示(参见图1)。首先,句子的每个标记$x = {x_1,x_2,…,x_n}$使用矩阵映射到k维嵌入向量$W∈R^{(|V|*k)}$,$|V|$是单词表的大小,在本文的整个实验中,我们使用了在60亿语料库上预先训练的50维Glove嵌入(Pennington et al., 2014)。

其次,我们将句子中的每个标记标记为要么属于第一个实体$e_1$,要么属于第二个实体$e_2$,要么不属于这两个实体。一个标记嵌入(maker embedding)矩阵$P∈R^{(3*d)}$随机初始化(d为位置嵌入的维数,有三种标记类型). 对于每个token,我们将标记嵌入(maker embedding)与单词嵌入(word embedding):$(W_n,P_n)$。

我们将递归神经网络(RNN)应用于标记嵌入(token embedding)。长度n自然因句子而异,RNN提供了一种容纳各种大小输入的方法。它将n个向量的序列映射到一个固定大小的输出向量$o_s∈R^o$。我们将输出向量$o_s$作为句子中目标实体之间关系的表示。我们使用RNN的长短期记忆(LSTM)变体,这是之前成功应用于信息提取(Miwa and Bansal, 2016)。

3.2 Model variants

1)LSTM baseline

作为第一个模型变体,我们将关系编码器的输出向量$o_s$先通过一个线性层然后提供给$softmax$层,以预测目标实体的最终关系类型(见图1上半部分):

$$p(r|<e_1,e_2>,x;\theta) = \frac{exp(f_r)}{\sum_{i=1}^{n_r}exp(f_i)}$$   $$f_i=y_i*o_s+b_i$$

$y_i$是权重向量(weight bias),$b_i$是偏差。

2)ContextSum

我们认为,为了预测目标实体对的关系类型,同一句中的其他上下文关系是相关的。一些关系类型可能倾向于共现(co-occur),例如DIRECTED_BY和PRODUCED_BY产生,而另一些可能是restrictive的(例如一个人只能有一个PLACE_OF_BIRTH)。

因此,除了目标实体对之外,我们还从数据生成步骤中提取的同一句子中提取其他实体。我们通过取每个可能的实体对来构造一组上下文关系。

我们在目标和上下文关系上应用相同的关系编码器(Figure 2)。

这确保了目标和上下文关系的表示是共同学习的。我们将上下文关系表示求和:$o_c=\sum_{i=0}^{m}o_i$,其中每个元素$o_i$都是单个上下文关系的向量表示, 作为结果的上下文表示$o_c∈R^o$与目标关系的向量表示连接:$o=[o_s,o_c]$, 我们将连接向量提供给Eq. 1中的softmax层,以预测目标实体对的最终关系类型(见图2的上部)

Figure 2 中 紫色和绿色的 $e_1$ 和 $e_2$ 是同一个句子中其他的实体对,其处理方式同目标实体(蓝色 $e_1$ 和 $e_2$ 相同,处理方式见 关系编码一章),得到 其他实体对的关系向量表示:$O_1,O_2,...,O_m$

3)ContextAtt

在这个变体中,我们在倒数第二步使用上下文关系表示的加权和:

$$o_c=\sum_{i=0}^{m}{a_i}{o_i}$$ 
$$a_i=\frac{exp(g({o_i},{o_s}))}{\sum_{j=0}^{m}exp(g(o_j,o_s))}$$ 

其中,$g_i$计算相对于目标关系的上下文关系的注意得分:$g(o_i,o_s) =o_i{A}o_s$, $A$是学习到的权重矩阵。

4 Result

ContextAtt效果最好:

5 Conclusion

我们介绍了一种基于神经网络的句子层关系提取体系,该体系考虑了同一上下文中的其他关系。通过与竞争基线的比较,我们已经表明,这些上下文关系对大量关系类型的关系抽取是有益的。

我们的方法也可以很容易地应用于其他类型的关系提取模型。例如,Lin et al.(2016)提取句子级别的特征,然后利用选择性注意机制将多个句子的特征结合起来。我们的模型可以代替他们的句子级特征提取器。

 

参考:

本论文其他博客阅读连接:https://zhuanlan.zhihu.com/p/100585172

 

推荐阅读