本文篇幅较长,建议配合目录食用分次阅读。
本文首发于CSDN平台 链接:
https://blog.csdn.net/INTSIG/...
导读:
将深度学习技术应用于NER有三个核心优势。首先,NER受益于非线性转换,它生成从输入到输出的非线性映射。与线性模型(如对数线性HMM和线性链CRF)相比,基于DL的模型能够通过非线性激活函数从数据中学习复杂的特征。
第二,深度学习节省了设计NER特性的大量精力。传统的基于特征的方法需要大量的工程技能和领域专业知识。另一方面,基于DL的模型可以有效地从原始数据中自动学习有用的表示和底层因素。
第三,通过梯度下降,可以在端到端的范式中训练深层神经NER模型。该特性使我们能够设计可能复杂的NER系统。
3.1 实体抽取的方法
深度学习是一个由多个处理层组成的机器学习领域,用于学习具有多个抽象层次的数据表示。典型的层次是人工神经网络,由前向传递和后向传递组成。正向传递计算来自前一层的输入的加权和,并通过非线性函数传递结果。向后传递是通过导数链规则计算目标函数相对于多层模块堆栈权重的梯度。深度学习的关键优势在于表示学习的能力以及向量表示和神经处理赋予的语义合成能力。这允许机器输入原始数据,并自动发现分类或检测所需的潜在表示和处理。
将深度学习技术应用于NER有三个核心优势:
- 首先,NER受益于非线性转换,它生成从输入到输出的非线性映射。与线性模型(如对数线性HMM和线性链CRF)相比,基于DL的模型能够通过非线性激活函数从数据中学习复杂的特征。
- 第二,深度学习节省了设计NER特性的大量精力。传统的基于特征的方法需要大量的工程技能和领域专业知识。另一方面,基于DL的模型可以有效地从原始数据中自动学习有用的表示和底层因素。
- 第三,通过梯度下降,可以在端到端的范式中训练深层神经NER模型。该特性使我们能够设计可能复杂的NER系统。
一个基于深度学习的NER模型应该具备如下图所示的三部分:
1.分布式向量输入
2.上下文编码结构
3.标签解码结构
3.1.1 分布式向量输入
表示单词的一个简单选项是一维特征向量表示。在一维特征向量空间中,两个不同的单词具有完全不同的表示形式,并且是正交的。分布式表示表示低维实值密集向量中的单词,其中每个维度表示一个潜在特征。分布式表示从文本中自动学习,可以捕获单词的语义和句法属性,这些属性在输入到NER时不会显式出现。接下来,将介绍NER模型中使用的三种分布式表示:单词级、字符级和混合表示。
3.1.1.1. 词级别向量(word-level representation)
一些研究采用了词级别表示法,通常通过无监督算法(如连续词袋(CBOW)和连续skip-gram模型)对大量文本集合进行预训练。《Deep active learning for named entity recognition》和《Design challenges and misconceptions in neural sequence labeling》的研究表明了这种预先训练的单词嵌入的重要性。
作为输入,预训练的单词嵌入可以在NER模型训练期间固定或进一步微调。常用的单词嵌入包括Google Word2Vec、Stanford GloVe、Facebook fastText和SENNA。《Biomedical named entity recognition based on deep neutral network》提出了Bio-NER,这是一种基于深度神经网络架构的生物医学NER模型。在PubMed数据库上使用skip-gram模型对Bio-NER中的单词表示进行训练。这本词典包含了600维向量中的205924个单词。
《Toward mention detection robustness with recurrent neural networks》使用word2vec工具包从Gigaword语料库学习英语单词嵌入,并使用BOLT(广泛操作语言技术)的新闻组数据进行增强。《Neural models for sequence chunking》设计了一个序列组块的神经模型,该模型由两个子任务组成:分割和标记。神经模型可以输入番泻叶嵌入或随机初始化嵌入。《Joint extraction of entities and relations based on a novel tagging scheme》使用单一模型联合提取实体和关系。该端到端模型使用word2vec tookit在纽约时报语料库上学习的单词嵌入。
《Fast and accurate entity recognition with iterated dilated convolutions》提出了一种基于迭代扩张卷积神经网络(ID CNN)的标签方案。在他们的模型中,查找表是由在SENNA语料库上通过skip-n-gram训练的100维嵌入来初始化的。
《Joint extraction of multiple relations and entities by using a hybrid neural network》在他们提出的提取属性及其关系的神经模型中,使用了来自谷歌的经过预训练的300维单词向量。此外,GloVe和fastText也广泛用于NER任务。
3.1.1.2. 字符级别向量( character-level representation)
《Charner: Character-level named entity recognition》和《Named entity recognition with stack residual lstm and trainable bias decoding》的研究结合了从端到端神经模型学习到的基于字符的单词表示,而不是仅将单词级表示作为基本输入。字符级表示对于利用显式子词级信息(如前缀和后缀)非常有用。
字符级表示的另一个优点是,它可以自然地处理词汇表之外的内容。因此,基于字符的模型能够推断出看不见的单词的表示,并共享语素级规则的信息。
有两种广泛用于提取字符级表示的体系结构:基于CNN的模型和基于RNN的模型。
下图(a)和(b)说明了这两种体系结构。
《End-to-end sequence labeling via bidirectional lstm-cnns-crf》利用CNN提取单词的字符级表示。然后,将字符表示向量与单词嵌入相连接,然后将其送入RNN上下文编码器。同样,《Leveraging linguistic structures for named entity recognition with bidirectional recursive neural networks》应用了一系列卷积层和高速公路层来生成单词的字符级表示。单词的最终嵌入被反馈到一个双向递归网络中。
《Neural reranking for named entity recognition》提出了NER的神经重排序模型,其中在字符嵌入层的顶部使用具有固定窗口大小的卷积层。
《Deep contextualized word representations》提出了ELMo单词表示法,它是在具有字符卷积的两层双向语言模型的基础上计算的。在基于RNN的模型中,长短时记忆(LSTM)和选通循环单元(GRU)是两种典型的基本单元选择。
《Charner: Character-level named entity recognition》提出了CharNER,这是一种与语言无关的字符级标记器。CharNER将句子视为字符序列,并利用LSTM提取字符级表示。它为每个字符而不是每个单词输出标记分布。然后从字符级标签中获取单词级标签。他们的研究结果表明,以字符为主要表征优于以单词为基本输入单位。
《Neural architectures for named entity recognition》利用双向LSTM提取单词的字符级表示。与《End-to-end sequence labeling via bidirectional lstm-cnns-crf》类似,字符级表示与单词查找表中预先训练的单词级嵌入连接在一起。
《Character-level neural network for biomedical named entity recognition》研究了单词嵌入和字符级表示在识别生物医学命名实体中的作用。《Attending to characters in neural sequence labeling models》使用选通机制将字符级表示与单词嵌入相结合。通过这种方式,Rei的模型可以动态地决定从字符级或单词级组件中使用多少信息。
《Named entity recognition with stack residual lstm and trainable bias decoding》介绍了一种具有堆栈剩余LSTM和可训练偏差解码的神经NER模型,其中从单词嵌入和字符级RNN中提取单词特征。《Multi-task cross-lingual sequence tagging from scratch》开发了一个统一处理跨语言和多任务联合训练的模型。他们使用深度双向GRU学习信息丰富的形态扩张卷积神经网络(ID CNN)。
在他们的模型中,查找表是由在SENNA语料库上通过skip-n-gram训练的100维嵌入来初始化的。使用RNN网络进行语言建模的最新进展使语言建模成为字符上的分布成为可能。
《Contextual string embeddings for sequence labeling》的上下文字符串嵌入使用字符级神经语言模型为句子上下文中的字符串生成上下文嵌入。一个重要的特性是,嵌入是由其周围的文本语境化的,这意味着同一个词根据其上下文用途有不同的嵌入。
下图展示了在句子上下文中提取嵌入单词“Washington”的上下文字符串的体系结构。
3.1.1.3 混合信息向量 (hybrid representation)
除了词级别向量、字符级别向量外,一些研究工作还嵌入了其他一些语义信息,如词汇相似 度、词性标注、分块、语义依赖、汉字偏旁、汉字拼音等。此外,还有一些研究从多模态学习出发,通过模态注意力机制嵌入视觉特征。论文也将 BERT 归为这一类,将位置嵌入、token 嵌入和段嵌入看作是混合信息向量。
除了单词级和字符级表示,一些研究还将附加信息(例如地名录、词汇相似性、语言依赖性和视觉特征)纳入单词的最终表示,然后再输入上下文编码层。换句话说,基于DL的表示以混合方式与基于特征的方法相结合。
添加额外的信息可能会提高NER性能,代价是损害这些系统的通用性。神经模型在NER中的应用由《Natural language processing (almost) from scratch》开创,其中提出了一种基于词序列上的时间卷积神经网络的体系结构。当合并常见的先验知识(例如地名录和词性)时,结果系统的性能优于仅使用单词级表示的基线。在《Bidirectional lstm-crf models for sequence tagging》的BiLSTM-CRF模型中,NER任务使用了四种类型的特征:拼写特征、上下文特征、单词嵌入和地名索引特征。他们的实验结果表明,额外的特征(即地名录)提高了标签的准确性。
《Named entity recognition with bidirectional lstm-cnns》提出的BiLSTM CNN模型结合了双向LSTM和角色级CNN。除了单词嵌入,该模型还使用了额外的单词级特征(大写、词汇)和字符级特征(表示字符类型的四维向量:大写、小写、标点符号等)。
《Disease named entity recognition by combining conditional random fields and bidirectional recurrent neural networks》提出了一种基于CRF的神经系统,用于识别和规范疾病名称。除了单词嵌入之外,该系统还采用了丰富的功能,包括单词、词性标签、组块和单词形状特征(例如词典和词形特征)。
《Fast and accurate entity recognition with iterated dilated convolutions》将100维嵌入与5维字型向量(例如,全部大写、不大写、首字母大写或包含大写字母)连接起来。《Multi-channel bilstm-crf model for emerging named entity recognition in social media》将字符级表示法、单词级表示法和句法单词表示法(即词性标签、从属角色、单词位置、词头位置)结合起来,形成了一个全面的单词表示法。
Aguilar等人[114]提出了NER的多任务方法。在这个层面上,CNN利用文字和形状来捕捉字符。对于单词级的句法和上下文信息,例如词性和单词嵌入,该模型实现了LSTM体系结构。《Distributed representation, lda topic modelling and deep learning for emerging named entity recognition from social media》提出将LDA与字符级和单词级嵌入的深度学习相结合。
《A local detection approach for named entity recognition and mention detection》提出了一种基于固定大小顺序遗忘编码(FOFE)的NER局部检测方法,FOFE探索了每个片段及其上下文的字符级和字级表示。
《Multimodal named entity recognition for short social media posts》的多模态NER系统中,对于用户生成的数据,如推特和Snapchat标题、ord嵌入、字符嵌入和视觉特征,都与模态注意相结合。
《Robust lexical features for improved neural network named-entity recognition》发现,词汇特征在神经系统中大部分被丢弃是不公平的。他们提出了另一种离线训练的词汇表示法,可以添加到任何神经系统中。词汇表示是用120维向量计算每个单词的,其中每个元素用实体类型编码单词的相似性。
最近,《Bert: Pre-training of deep bidirectional transformers for language understanding》提出了一种新的语言表示模型,称为BERT,即变压器的双向编码器表示。伯特使用蒙面语言模型来实现预先训练的深层双向表示。对于给定的令牌,其输入表示由相应位置、段和令牌嵌入的总和组成。请注意,预先训练的语言模型嵌入。通常需要大规模语料库进行培训,并且本质上包含辅助嵌入(例如位置和片段嵌入)。
出于这个原因,在本次调查中将这些语境化语言模型嵌入归类为混合表示。
3.1.2 上下文编码结构
主要包括了卷积网络 CNN、循环网络 RNN、递归网络、Transformer。
CNN
基本框架如下图所示,句子经过 embedding 层,一个 word 被表示为 N 维度的向量,随后整个句子表示使用卷积(通常为一维卷积)编码,进而得到每个 word 的局部特征,再使用最大池化操作得到整个句子的全局特征,可以直接将其送入解码层输出标签,也可以将其和局部特征向量一起送入解码层。
>其他一些研究者,开始考虑使用 BiLSTM-CNN 的网络结构,随之而来的还有 ID-CNNs 迭代膨胀卷积(个人认为类似多层 N-Gram 语言模型)等。
- 循环神经网络 RNN
循环神经网络及其变体,如gated recurrent unit (GRU) 和long-short term memory (LSTM),在序列数据建模方面取得了显著的成就。特别是,双向RNN有效地利用了特定时间范围内的过去信息(通过前向状态)和未来信息(通过后向状态)。因此,由双向RNN编码的标记将包含来自整个输入句子的证据。因此,双向RNN成为构成文本深层上下文相关表示的事实标准。基于RNN的上下文编码器的典型架构如图所示。
《Bidirectional lstm-crf models for sequence tagging》的工作是最早利用双向LSTM CRF架构对标记任务(词性、组块和NER)进行排序的工作之一。之后,一系列著作将Bi LSTM作为编码序列上下文信息的基本架构。
《Multi-task cross-lingual sequence tagging from scratch》在字符和单词两个层面上使用深层GRU编码形态学和上下文信息。论文通过共享架构和参数,进一步将模型扩展到跨语言和多任务的联合训练。《Named entity recognition with parallel recurrent neural networks》在同一输入端使用了多个独立的双向LSTM单元。他们的模型通过采用模型间正则化项来促进LSTM单元之间的多样性。通过将计算分布在多个较小的LSTM上,他们发现参数总数有所减少。最近,一些研究设计了基于LSTM的嵌套命名实体识别神经网络。
《Nested named entity recognition revisited》提出了对标准的基于LSTM的序列标记模型的修改,以处理嵌套命名实体识别。《neural layered model for nested named entity recognition》提出了一种神经模型,通过动态堆叠平面NER层,直到没有提取外部实体,从而识别嵌套实体。每个平面NER层采用双向LSTM来捕获顺序上下文。该模型将LSTM层的输出合并到当前平面NER层中,为检测到的实体构建新的表示,然后将它们输入到下一个平面NER层。
- 递归神经网络 Recursive Neural Networks
递归神经网络是一种非线性自适应模型,能够通过按拓扑顺序遍历给定结构来学习深层结构信息。命名实体与语言成分高度相关,例如名词短语。然而,典型的顺序标注方法很少考虑句子的短语结构。
为此,《Leveraging linguistic structures for named entity recognition with bidirectional recursive neural networks》提出为NER对选区结构中的每个节点进行分类。该模型递归计算每个节点的隐藏状态向量,并根据这些隐藏向量对每个节点进行分类。
下图显示了如何递归地计算每个节点的两个隐藏状态特征。自下而上的方向计算每个节点的子树的语义组成,自上而下的对应方将包含子树的语言结构传播到该节点。给定每个节点的隐藏向量,网络计算实体类型加上特殊非实体类型的概率分布。
虽然递归神经网络理论上感觉效果不错,但实际应用中效果一般,并且很难训练。相较之下 tree LSTM 近些年的研究经常被提及,在关系抽取以及其他任务上有不少应用。
- Transformer
Google 的一篇《Attention is all you need》将注意力机制推上新的浪潮之巅,于此同时 transformer 这一不依赖于 CNN、RNN 结构,纯堆叠自注意力、点积与前馈神经网络的网络结构也被大家所熟知。此后的研究证明,transformer 在长距离文本依赖上相较 RNN 有更好的效果。
神经序列标记模型通常基于由编码器和解码器组成的复杂卷积或递归网络。
《Attention is all you need》提出的Transformer完全免除了递归和卷积。Transformer利用堆叠的self-attention和逐点完全连接的层来构建编码器和解码器的基本块。对各种任务的实验表明,Transformer的质量更高,同时需要的训练时间显著减少。
>基于Transformer,Radford等人提出了用于语言理解任务的生成式预训练Transformer(Generative Pre-trained Transformer, GPT)。GPT有两个阶段的训练程序。
- 首先,他们使用一个语言建模目标,在未标记的数据上使用Transformer来学习初始参数。
- 然后,他们使用监督目标使这些参数适应目标任务,从而使预训练模型的变化最小。与GPT(一种从左到右的体系结构)不同,来自Transformer的双向编码器表示(BERT)建议通过在所有层的左右上下文中联合调节来预训练深度双向Transformer。下图总结了BERT、GPT和ELMo。
- 此外,《Cloze-driven pretraining of self-attention networks》提出了一种新的基于双向Transformer的完形填空驱动预训练模式,该模式使用完形填空式目标进行训练,并在所有左右文本语境下预测中心词。*
这些语言模型嵌入使用“Transformer”正在成为一种新的神经网络范式。
- 首先,这些嵌入是情境化的,可以用来取代传统的嵌入,比如Google Word2vec和Stanford GloVe。一些研究通过利用传统嵌入和语言模型嵌入的组合,取得了良好的性能。
- 第二,这些语言模型嵌入可以通过一个额外的输出层进行进一步微调,以完成包括NER和分块在内的各种任务。特别是,《Dice loss for data-imbalanced NLP tasks》和《A unified MRC framework for named entity recognition,》将NER任务定义为机器阅读理解(MRC)问题,可以通过微调BERT模型来解决。
3.1.3 标签解码结构
标签解码器是NER模型的最后一个阶段。它将上下文相关的表示作为输入,并生成与输入序列相对应的标记序列。下文总结了标签解码器的四种架构:MLP+softmax层、条件随机场(CRF)、递归神经网络和指针网络。
- Multi-Layer Perceptron(多层感知器)+Softmax
NER通常被描述为一个序列标记问题。采用Multi-Layer Perceptron(多层感知器)+Softmax层作为标签解码层,将序列标记任务转换为多类分类问题。
每个单词的标签是基于上下文相关的表示独立预测的,而不考虑其邻居。早期推出的许多NER模型使用MLP+Softmax作为标签解码器。作为一项特定于领域的NER任务,《Domain specific named entity recognition referring to the real world by deep neural networks》使用softmax作为标签解码器来预测日本象棋游戏中的游戏状态。他们的模型从文本和国际象棋棋盘(9×9方块,40块14种不同类型的棋子)中获取输入,并预测该游戏特定的21个命名实体。文本表示和游戏状态嵌入都被提供给softmax层,用于使用BIO标记方案预测命名实体。
- 条件随机场(CRF)
条件随机场(CRF)是以观测序列为全局条件的随机场。CRF已广泛应用于基于特征的监督学习方法。许多基于深度学习的NER模型使用CRF层作为标签解码器,例如,在双向LSTM层和CNN层之上。CRF是标签解码器最常见的选择,以及CoNLL03和ONTO NOTE5.0的最新性能由通过CRF标签解码器实现。然而,CRF不能充分利用段级信息,因为段的内部属性不能用字级表示完全编码。《Segment-level sequence modeling using gated recursive semi-markov conditional random fields》随后提出了门控递归半马尔可夫CRF,该CRF直接建模片段而不是单词,并通过门控递归卷积神经网络自动提取片段级特征。《Hybrid semi-markov crf for neural sequence labeling,》提出了用于神经序列标记的混合半马尔可夫CRF。该方法采用分段代替词作为特征提取和过渡建模的基本单元。单词级标签用于推导段分数。因此,这种方法能够利用单词和片段级别的信息来计算片段分数。
- 循环神经网络
一些研究探索了RNN对标签的解码。Shen等人[88]报告称,RNN标签解码器的性能优于CRF,并且在实体类型数量较大时训练速度更快。图展示了基于RNN的标签解码器的工作流程,它作为一种语言模型,大量生成标签序列。第一步的[GO]符号作为y1提供给RNN解码器。随后,在每个时间步骤i,RNN解码器根据前一步骤标记yi、前一步骤解码器隐藏状态hDec i 和当前步骤编码器隐藏状态hEnci+1 计算当前解码器隐藏状态hDeci+1;当前输出标签yi+1通过使用softmax损耗函数进行解码,并进一步作为输入馈送到下一时间步。最后,得到了所有时间步长上的标签序列。
- 指针网络
指针网络应用RNN来学习输出序列的条件概率,其中的元素是与输入序列中的位置相对应的离散标记《Pointer networks》《Segbot: A generic neural text segmentation model with pointer network》。它通过使用softmax概率分布作为“指针”来表示可变长度字典。《Neural models for sequence chunking》首次应用指针网络来产生序列标签。如图12(d)所示,指针网络首先识别块(或段),然后标记它。重复此操作,直到处理完输入序列中的所有单词。在下图(d)中,给定起始标记“”,首先识别段“Michael Jeffery Jordan”,然后标记为“PERSON”。分割和标记可以通过指针网络中的两个独立的神经网络来完成。接下来,将“迈克尔·杰弗里·乔丹”作为输入,输入指针网络。因此,段“was”被识别并标记为“O”。