导读:本文转载自知乎RUC智能情报站的论文阅读笔记。
论文:Neural Relation Extraction with Selective Attention over Instances
发表会议:ACL2016
作者:Yankai Lin, Shiqi Shen, Zhiyuan Liu, Huanbo Luan, Maosong Sun
单位:1.National Lab for Information Science and Technology, Tsinghua University
2.Jiangsu Collaborative Innovation Center for Language Competence, Jiangsu, China
代码链接:https://github.com/thunlp/NRE
关系抽取技术简介:信息抽取是自然语言处理中的重要研究领域,其任务是在大规模非结构或半结构的自然语言文本中抽取结构化信息。而关系抽取是其中的重要子任务之一,主要目的是从文本中抽取实体之间的语义关系。例如,句子“Bill Gates is the founder of Microsoft Inc.”中包含一个实体对(Bill Gates, Microsoft Inc.),这两个实体对之间的关系为Founder。
关系抽取作为信息抽取任务中的重要一环,目前主流的技术分为以下三类:
1.有监督的学习方法:将关系抽取任务当作分类问题。该方法的问题在于需要大量的人工标注训练语料,而语料标注工作通常非常耗时耗力。
半监督的学习方法:主要采用 BootStrapping 进行关系抽取,该方法首先要手工设定若干种子实例,然后迭代地从数据中抽取关系对应的关系模板和更多的实例。
无监督的学习方法:利用句法结构对句子进行语义依存结构分析,通过发现关系短语并进行语义归一化处理来抽取关系。
前言:远距离监督(distant supervision)场景下的关系抽取能被广泛地运用到抽取文本的实体关系中,而这种方式难免会由于误标签传播引入大量的噪声数据,为了避免这样的情况,提出了一种在实体关系的语句层上引入Attention机制,在这个模型下,采用CNN(PCNN)模型提取句子的语义特征,然后,在构建多示例学习的方法中引入句子层级的attention模型,这将有效动态减少噪声实例的权重。
写作动机:随着近些年大规模知识库的构建,利用大规模知识库可以解决许多自然语言处理的任务,很多大规模的知识库虽然已经涵盖许多的实体关系对,但是它距离涵盖整个真实世界的事实还差很多,为了丰富这样的知识库,自动从大量的文本中获取未知的实体关系对成了关系抽取的重要任务之一。
目前存在的有监督的关系抽取的方法需要大量的人工手动标注的训练语料,这既不现实又耗费极大的人力。为此提出的远距离监督学习的方法将利用大规模知识库自动构建训练语料。远距离监督是假设有一个实体对在知识库中存在,那么所有包含该实体对的语句将都被赋予这层关系。例如,(Apple, founder, Steve Jobs)是一个在知识库中的实体关系对,那么包含这对实体对的语句都将具备founder这个关系。但是会存在如下图第2个句子,其虽然有这两个实体但并不包含founder的含义,因此这样的句子我们并不能认为是可信任的实例。
为此后来人们提出将多示例学习(multi-instance learning)应用到实体关系抽取中以便减弱错误标签传播的影响。关于多示例学习的基本理论可以参考周志华教授发表的一篇关于多示例学习的survey 。
在2015年emnlp的会议论文《Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks 》里有用到利用多示例学习结合神经网络进行远距离学习抽取实体关系,其核心思想是通过多示例学习的方法选取每个包中置信度最高的样例作为正样例进行训练。这样的方法存在这么一个假设——At Least One假设,即只要实体对的一个句子具有特定关系,那么该实体对也就具有该关系,并且选取置信度高的句子作为预测和训练。显然这样的方法丢失大量负例的有用信息。
本篇论文所采用的模型如下:
m_{1},m_{2},m_{3}等表示的是两个实体对对应的训练句子集合,r_{i}表示的是句子 m_{i}经过 CNN 编码池化后的向量,\alpha {i}表示的是训练句子的权重。该框架首先通过 CNN 编码后得到句子向量r{i},再通过计算r_{i}与关系 r向量的相似度来赋予 r_{i}在整个句子集合中的权重。
模型方法的概述
先将每个句子转化为稠密的实值向量,然后利用CNN,最大池化层和非线性层等操作构建起对应的句向量。
输入的表示
相比于通常的输入表示只用word2vec将原始句子中的每个单词转换为实数向量,采用单词向量加上位置向量来表示整个句子,位置向量(各词语与两个实体的相对位置作为特征)的引入有效地刻画了实体关系与上下文词汇之间的位置关系。输入为原始句子为,通过word embeding和位置向量的表示就被表示成了一个向量序列
,其中
d^{a}取的是3(表示的词汇的空间维度),d^{b} 取的是2(位置的空间维度)。
卷积层,最大池化层和非线性操作层
文本语句是变长的,对于最后关系分类比较重要的信息可能会出现句子的任何部分,所以需要将整个句子的信息都捕捉到,先对上面的向量序列用卷积操作得到局部特征,然后用池化操作联合所有局部特征得到一个固定长度的向量。卷积操作可以形式化为:
在池化层通过两个实体位置将 feature map 分为三段进行池化,其目的是为了更好的捕获两个实体间的结构化信息。三部分的结果(p_{i1},p_{i2},p_{i3}即第一个实体和其前部分,两个实体中间部分,第二个实体和其后部分)联合起来得到[x]{i},最后,对这固定长度的一系列[x]{i}使用双曲正切函数得到输出。还是在2015年emnlp的会议论文中的这幅图很好地诠释了刚才模型这一系列操作:
attention机制
引入attention机制,给不同的句子不同的权重,去除一些噪声来提升分类器的性能。给包含某一实体对的所有句子都分配权重,这个权重的大小代表着该句子是否包含着这种关系。给定包含一个实体对和n个句子的集合,将n个句子向量化。加入attention机制后,权重定义为:
其中,
该函数体现了一个句子与该关系的匹配程度。其中x_{i}是句子向量,A是表示权重的对角矩阵,r是代表着该关系的向量。与该实体关系更加密切的句子可以取得更大的取值。
接下来,定义了通过softmax分类器下的条件概率:
其中n_{r}是所有关系的数目,其中o代表通过神经网络最终输出出来关系与最终句子的打分结果。 需要最大化的就是在网络参数下某实体关系的概率。最后,损失函数采用交叉熵:
实验结果分析:
从上面两张图可以看出
ONE模型(at-least-one multi-instance,每次只选取最后可能的一个句子进行训练和预测)效果要优于纯CNN模型,也说明了过滤掉噪音语料是有效的。
AVE模型效果优于纯CNN模型,证明了减弱噪音语料是有效的,而AVE模型和ONE模型的效果接近,实验也证明了噪音语料处理的有效性。
句子数目
使用CNN/PCNN+ONE,CNN/PCNN+AVE和CNN/PCNN+ATT三种模型在所有句子上训练,然后在每个实体对对应2以上句子的实例中进行测试,分别使用随机选取1个句子,随机选取2个句子和选取所有句子的方式进行测试。
从上图可以看出,具备ATT的模型在所有实验条件下都表现最好。
随机选取一个句子测试时,AVE的模型和ATT的模型性能接近,但当选取句子数目上升时,AVE的模型的性能不再增加,说明将每个句子等同对待时,噪音语料会对关系提取有负面影响。
在选取一个句子做预测时,CNN+AVE和CNN+ATT的模型的性能明显优于CNN+ONE,由于这只跟训练有关,说明尽管一些噪音语料会带来负面影响,但训练时考虑的语料越多,总的来说,还是对关系提取有帮助的。
ATT的模型要明显优于其余2种模型,说明当考虑的语料越多的同时,考虑的语料的质量越高,对关系提取的帮助越大。
与手工提取特征方法对比
基于attention机制的神经网络模型要明显优于手工提取特征的方法,不仅性能曲线整体更高,同时,下降得也更平缓。
本篇可以得到的启示与展望
1.可以尝试将基于attention机制的multi-instance学习和神经网络结合的方法用在除relation extraction以外的其他任务例如Text categorization。
2.可以将instance-level selective attention方法和其他的神经网络结构结合起来。
参考文献和笔记:
2.PaperWeekly 第31期 | 远程监督在关系抽取中的应用