每天给你送来NLP技术干货!
写在前面
实体关系抽取作为文本挖掘和信息抽取的核心任务,其主要通过对文本信息建模,自动抽取出实体对之间的语义关系,提取出有效的语义知识。其研究成果主要应用在文本摘要、自动问答、机器翻译、语义网标注、知识图谱等。
1. 关系抽取任务简介
实体关系抽取作为信息抽取的重要任务,是指在实体识别的基础上,从非结构化文本中抽取出预先定义的实体关系。实体对的关系可被形式化描述为关系三元组〈e1,r,e2〉,其中 e1 和 e2 是实体,r 属于目标关系集 R{r1,r2, r3,…,ri}。关系抽取的任务是从自然语言文本中抽取出关系三元组〈e1,r,e2〉。
2. 关系抽取主要方法
经典的实体关系抽取方法主要分为有监督、半监督、弱监督和无监督这 4 类。经典方法存在误差传播问题,极大影响实体关系抽取效果。随着近年深度学习的崛起,关系抽取任务研究的重点转向了使用深度学习方法。
基于深度学习的实体关系抽取方法与经典抽取方法相比,其主要优势在于深度学习的神经网络模型可以自动学习句子特征,无需复杂的特征工程。本文重点围绕深度学习来深入探讨实体关系抽取方法。
基于深度学习实体关系抽取主要分为有监督和远程监督两类。在有监督中,解决实体关系抽取的方法可以分为以下两种:
- 流水线学习方法:是指在实体识别已完成的基础上直接进行实体之间关系的抽取;
- 联合学习方法:主要是基于神经网络的端到端模型,同时完成实体的识别和实体间关系的抽取。
与有监督实体关系抽取相比,远程监督方法缺少人工标注数据集。因此,远程监督方法比有监督多一步远程对齐知识库给无标签数据打标的过程,而构建关系抽取模型的部分,与有监督领域的流水线方法差别不大。
3. 有监督实体关系抽取
3.1 流水线模型
基于流水线的关系抽取的主要流程为:对已经标注好目标实体对的句子进行关系抽取,最后把存在实体关系的三元组作为预测结果输出。一些基于流水线方法的关系抽取模型被陆续提出,这些模型主要是基于 RNN,CNN,LSTM 及其改进模型的网络结构。
(1) 基于RNN的流水线模型
深度学习刚兴起的一段时间,有学者尝试使用 RNN 来进行关系抽取。但是,由于RNN 模型自身存在容易出现梯度消失/梯度爆炸、内部结构复杂、网络训练周期较长等诸多问题,所以使用 RNN 的论文非常少,且很快便被 CNN 和 LSTM 取代。
(2) 基于CNN的流水线模型
论文《Relation classification via convolutional deep neural network》[1]使用CNN来提取词汇级特征(lexcial level features)和句子级特征(sentence level features)。同时还提出了位置特征(PF,position features)来编码当前词与目标词对的相对距离。该论文的实验证明位置特征是比较有效的特征。之后的很多论文都沿用了该论文提出的位置特征。
论文的模型整体架构如上,主要包括三层结构:Word Representation、Feature Extraction、Output。不需要复杂的语法和语义的处理,系统输入就是有两个标记名词的句子。首先,第一层是词表示层,词标记通过word embedding转化成词向量。接着,第二层是特征提取层,将词特征和词到实体的距离特征拼接作为输入,然后进行卷积得到句子级特征。第三层是输出层,将特征通过一层 softmax 分类器,得到各种关系的置信度,置信度高的就是两个标记实体的关系。
论文《 Semantic Relation Classification via Convolutional Neural Networks with Simple Negative Sampling》[2] 整体模型结构如上图所示,主要是在 [1] 的基础上提出了基于依存分析树的卷积神经网络的实体关系抽取模型,将输入文本经过了依存分析树。同时提出了一种负采样策略:首先利用依存路径来学习关系的方向性;然后使用负采样方法来学习主体和对象的位置分配,采用从对象到主体的最短依存路径作为负样本,并将负样本送到模型中学习,以解决实体对距离较远时,依存分析树引入的无关信息问题。
论文《Relation Classification via Multi-Level Attention CNNs》[3]的主要创新点有三个:第一,将 attention机制 应用在输入序列中,用于学习输入语句中各部分对两个实体的注意力;第二,将 attention机制 应用在池化层上,用于学习目标类别的注意力;第三,提出了新目标函数,使模型在关系提取上表现出更好的效果。
模型的输入与 [1] 相同,将词向量和位置向量拼接。输入级attention机制的实现方式是设计两个关于实体对上下文相关的对角矩阵,该矩阵中各元素反映该词语与给定实体间联系的强弱,也就是分配在该词上对于实体的注意力。池化级attention机制的实现方式是构建一个相关性矩阵,来捕获卷积层输出,与实体关系之间的联系。最后通过一个距离目标函数来预测关系。
(3) 基于LSTM的流水线模型
论文《Classifying Relations via Long Short Term Memory Networks along Shortest Dependency Paths》[4] 提出了一种 SDP-LSTM模型 用于实体关系分类。论文的主要工作就是证明了SDP 在关系分类中的作用,SDP(the shortest dependency path)是指在句法依存树中,两实体到公共祖先节点的最短路径。在实体关系分类中,SDP 富含多种信息,可以让模型更专注相关信息,忽略无关信息。一个最短依赖路径的例子如下(红色路径):
SDP-LSTM模型结构如下图所示:
左边是模型整体结构,以 SDP 为基础构建了一个有四个 LSTM 通道的编码层,编码层结果进行拼接后输入 Softmax 进行关系分类。右边是对编码层的详细展示,图中是一个 LSTM 通道的结构。LSTM 通道的构建方法是使用 NLP工具 得到句子的SDP结构,然后通过SDP分别构造两个节点到公共祖先的路径。在编码时,两条路径分别作为一个LSTM序列,将LSTM向前传播得到的隐藏层进行一次池化操作,得到单条路径的输出。最后连接两条路径上的输出,得到一个LSTM通道的输出。整个模型有四个通道,分别使用词本身,词性信息,依存句法关系,WordNet上位词作为输入,充分捕捉了各种特征。
前面过程中提到了路径节点表示成向量,论文中分别利用词的四种特性,将节点表示成向量,包括词本身,词性信息,依存句法关系,WordNet上位词。所以会有四个LSTM通道。SDP-LSTM模型虽然有不错的效果,但是有一个问题是使用NLP工具提取附加特征带来了错误传播问题。
论文《A Bi-LSTM-RNN model for relation classification using low-cost sequence features》[5] 针对[4]存在的问题,提出了一种基于低成本序列特征的Bi-LSTM-RNN模型,利用实体对并将它们周围的上下文分段表示来获取更丰富的语义信息,无需词性标注、依存句法树等额外特征。将文本经过 LSTM 获得隐藏向量表示后,依照两个实体分成五段式的方式输入池化层获得向量表示,再输入分类器进行关系分类,解决了基于句法或依赖性特征等高成本结构特征问题,并证明当不使用依赖解析时,两个目标实体之间的上下文可以用作最短依赖路径的近似替换。
3.2 联合模型
虽然流水线模型在关系抽取中取得了不错的效果,但是存在的诸多问题限制了流水线模型的性能,主要有三点:
- 错误传播:实体识别模块的错误会影响到接下来的关系分类性能;
- 忽视了两个子任务之间存在的关系;
- 冗余信息:由于对识别出来的实体进行两两配对,然后再进行关系分类,那些没有关系的实体对就会带来多余信息,提升错误率。
相比于流水线方法,联合模型能够利用实体和关系间紧密的交互信息,同时抽取实体并分类实体对的关系,很好地解决了流水线方法所存在的问题。因在联合学习方法中建模的对象不同,联合学习方法又可以分为参数共享方法和序列标注方法。参数共享方法分别对实体和关系进行建模,而序列标注方法则是直接对实体—关系三元组进行建模。
(1) 共享参数的联合模型
论文《End-to-End Relation Extraction using LSTMs on Sequences and Tree Structures》[6] 提出了一种联合实体关系检测参数共享的关系抽取模型。模型中有两个双向LSTM-RNN:一个基于word sequence,主要用于实体识别;一个基于Tree Structures ,主要用于关系抽取。后者堆在前者上,前者的输出和隐含层作为后者输入的一部分。下图为整个模型的结构图:
在该模型中,实体识别子任务和关系分类子任务共享LSTM编码层的输出。该方法将实体识别任务当作序列标注任务,使用双向序列 LSTM 输出具有依赖关系的实体标签。之后,通过在双向序列LSTM单元上堆叠双向树结构LSTM的方法,使关系分类子任务和实体识别子任务共享编码层的LSTM单元序列表示。关系分类子任务中捕获词性标签等依赖特征和实体识别子任务中输出的实体序列,根据SDP构建依存树,对关系进行分类从而得到实体关系三元组。
需要注意的是:该模型中的关系分类子任务和实体识别子任务仅共享了编码层的LSTM,关系分类子任务中的Tree-LSTM则只在关系分类中使用,从严格意义上来说不是真正的联合模型。但是该模型的提出,为之后真正意义上联合学习模型的提出奠定了基础,是基于深度学习方法做联合学习模型的启发者。
(2) 基于序列标注的联合模型
基于参数共享的实体关系抽取方法虽然改善了传统流水线方法中存在的错误累积传播问题和忽视两个子任务间关系依赖的问题。但是,因其在训练时命名实体识别子任务和关系分类子任务并没有完全的共享参数,所以仍然会产生没有关系的实体这种冗余信息。为了解决这个问题,基于新序列标注方法的实体—关系联合抽取方法被提出来。
论文《Joint Extraction of Entities and Relations Based on a Novel Tagging Scheme》[7]设计了一种特别的标签类型,将实体识别和关系分类转化为序列标注问题;然后提出了一个端到端模型,对实体和关系进行联合抽取。
在该方法中,共包含 3 种标注信息: (1) 实体中词的位置信息 { B,I,E,S,O } 分别表示{实体开始,实体内部,实体结束,单个实体,无关词};(2) 实体关系类型信息,需根据关系类型进行标记,分为多个类别,如 { CF,CP,… } ;(3) 实体角色信息 { 1,2 } 分别表示 { 实体 1,实体 2 }。标记方法如下图所示:
该论文提出的端到端的神经网络模型如下图所示:首先,编码层使用Bi-LSTM来对输入的句子进行编码;之后,解码层再使用 LSTMd( 作者提出的一种基于LSTM的改进型 ) 进行解码;最终,输出模型标注好的实体-关系三元组。
4. 远程监督实体关系抽取
面临大量无标签数据时,有监督的关系抽取消耗大量人力,显得力不从心。因此,远程监督实体关系抽取应运而生。远程监督通过数据自动对齐远程知识库在开放域中给大量无标签数据进行自动标注。
远程监督标注数据时主要有两个问题:
- 噪声:噪声问题是由于远程监督的强假设条件,引入了大量的噪声数据。给定一个实体对和其对应的关系,传统的方法在无标签的语料集中提取所有包含该实体对的句子,并认为这样的句子中实体也存在同样的关系。显而易见地,这种方法会因为一些噪音语料而影响训练效果;
- 特征提取误差传播:特征提取中的误差传播问题是由于传统的特征提取主要是利用 NLP 工具进行数据集的特征提取,因此会引入大量的传播误差。
论文《Neural Relation Extraction with Selective Attention over Instances》[8]在 PCNN模型 的基础上,增加了对示例语句的注意力机制。PCNN 是在 CNN的基础上,改进了模型的输入部分:将一个句子按照两个实体分成三份,分别进行卷积池化等操作再拼接,从而得到更多和实体相关的上下文信息。
针对强假设条件引入的噪声数据问题,该论文给出了解决方案,通过注意力机制,给包中不同的句子分配不同的权重,充分利用包内的信息,进一步减弱错误打标的示例语句产生的噪声。该论文 PCNN Att 的方法能够给标签中正确分类的示例语句分配较高权重,标签错误分类的示例语句分配较低权重,从而提高分类的准确率。
PCNN Att模型首先要通过CNN或PCNN对句子进行编码得到句子级特征向量。将句子词语和实体转化为稠密实数向量,然后利用卷积、池化和非线性转换等操作构建起对应的句向量。句向量编码过程下图所示:
得到句子级特征之后,在通过注意力机制,给不同的示例句子赋予不同的权重α1、α2、α3、…、αn,隐式地摒弃一些噪音语料,以此提升分类器的性能。
论文《Distant Supervision for Relation Extraction with Sentence-level Attention and Entity Descriptions》[9]提出的模型是在 PCNN Attention 的基础上添加了实体的描述信息来辅助学习实体的表示,从而提高准确率。
实体信息是从 Freebase 和 Wikipedia 页面中提取的实体描述,用来补充实体关系提取的背景知识,用一个传统的 CNN 模型(一个卷积层和一个最大池化层)从实体描述中提取特征。背景知识不仅为预测关系提供了更多信息,而且为注意力机制模块带来了更好的实体表示。
来源:https://blog.csdn.net/eagleuniversityeye/article/details/105464295 作者:iceburg-blogs 编辑:@公众号:AI算法小喵