A Survey on Deep Learning for Named Entity Recognition
论文地址:https://arxiv.org/pdf/1812.09449.pdf
摘要
NER的定义,NER的作用,传统方法的缺陷,深度学习的优势。本文对已存在的深度学习NER技术做一个综述,并介绍NER语料库和现有的NER工具。我们将现有的工作分为三类:输入的分布表示,上下文编码,标签解码。最后我们介绍NER系统的面临的挑战和未来的展望。
1. 介绍
NER的定义,NER的应用。
NER的发展 (MUC-6) 第一次使用“NER”,之后被受到关注。
对NER的学术定义。NER可以分为两类:generic NEs和domain-specific NEs。本文只关注英语语料和generic NEs。
NER技术的四个类别:1.基于规则的方法2.无监督学习3.基于特征的有监督方法4.基于深度学习的自动获得representation的方法
本文的动机
1.深度学习的蓬勃发展。2.以往的调研没有涉及到新的进展。如context encoder 和 tag decoder,多任务学习,迁移学习,强化学习,对抗学习。
本文的作用:整理语料库。介绍现成的NER系统。提供有用的NER研究社区。NER技术的分类:输入的分布表示,ontext encoder 和 tag decoder。除此之外,我们介绍深度学习的代表方法和面临的挑战以及未来的展望。
2. 背景
定义NER问题。介绍语料库和工具。介绍评测指标。总结传统的NER方法。
2.1 什么是NER?
named entity的定义。NER的定义。形式化表示为给定token序列s
,输处出tuple
。其中
分别表示命名实体的开始位置和结束位置,t表示命名实体的类别。识别people, organizations, locations, and time, currency, percentage expressions的任务称为coarse-grained NER(对实体进行粗劣的划分,每一个实体只有一种类型)。最近有些fine-grained NER任务专注于更多的实体类别集合,而一个metion可以被标注为多个fine-grained类型。
图1 NER过程的形式化表示
通过语义搜索要介绍NER在下流应用中的作用。有一些通过NER来增强用户体验的如:例如查询推荐[1]、查询自动完成[2]、[3]和实体卡[4]、[5]
2.2 NER资源: 数据库和工具
表1展示了常用的数据集,#TAG表示标签数量。语料库的组成包括维基百科,对话,人工生成的语句,YOUTUBE评论。
最近的很多工作都是在CoNLL03 和OntoNotes数据集上。介绍这两个数据集。
表2介绍了一些预训练的NER工具。上面是由学术提供的,下面是由工业界提供的。
2.3 NER评估指标
NER的通常通过和人工标注的数据对比来进行评估。包括软匹配和硬匹配。
2.3.1 硬匹配
NER包括实体边界检测和实体类型检测。对于硬匹配,当实体的边界检测和类型检测都正确时被认为是正确匹配。Precision, Recall, 和 F-score通过true positives (TP), false positives (FP), and false negatives (FN)来计算。
Precision和Recall介绍。
F-score是Precision和Recall的调和平均数。最常用的平衡F-score为:
为了评估模型在不同实体类别上的性能,有两种常用的测量方法:macro-averaged F-score 和micro-averaged Fscore。Macro-averaged F-score独立地计算每个类别上的F-score,然后对每个类别取平均。微观平均F分数将所有类别的实体的贡献相加以计算平均值(平等对待所有实体)。后者会被实体多的类别所影响。
2.3.2 软匹配
MUC-6定义软匹配为:当识别的实体边界是覆盖正确的边界并且实体类别是正确的就可以被认为是正确匹配。Then ACE提出更复杂的评估方法,但不常用。
2.4 Traditional Approaches to NER
传统的NER方法主要分为:基于规则的方法和无监督学习,基于特征的有监督学习。
2.4.1 基于规则的方法
(传统的方法,有时间再看)
结论:由于手工的规则是领域特殊以及字典的不完整,导致这些系统有高正确率和低召回率,所以不能迁移到其他系统之中。
2.4.2 无监督学习
一个常用的无监督方法是聚类。关键的想法是通过词汇资源,词汇模式和大语料库中计算的概率来推断实体类型。介绍一些聚类方法
介绍一些无监督的系统。
2.4.3 有监督学习
特征被设计用来表示每一个学习用例。机器学习被用于训练一个分类模型。介绍一些特征工程方法。
基于这些特征许多机器学习算法被用于NER中。如HMM,决策树,最大熵模型,支持向量机,条件随机场。
介绍一些上述的机器学习方法论文。
3 NER中的深度学习技术
深度学习大热。我们将介绍什么是深度学习,为什么深度学习适合NER,之后我们会调查基于深度学习的方法。
3.1 为什么NER使用深度学习
深度学习的定义。深度学习工作过程。深度学习的优势在于它的特征表达能力,这使得模型能够自动学习到数据的潜在表示方法以及分类检测所需的过程。
NER使用深度学习的三个原因:1.NER适用于非线性转化2.深度学习节省了设计NER功能的大量精力3.深度学习能通过梯度传播来训练,这样可以构建更复杂的网络。
为什么采用新的分类方法:旧方法中word-level的描述不够准确。
如图2,Distributed representations for input 表示词嵌入和字嵌入或者其他的的特征。Context encoder用于构建上下文依赖如CNN, RNN,或者其他网络。Tag decoder用于预测token的标签,。如图2,B-(begin), I-(inside), E-(end), S-(singleton)表示实体边界和类型,O表示out of entity。请注意,还有其他标记方案或标记符号,例如BIO。Tag decoder同时预测实体边界和实体类型。
3.2 Distributed Representations for Input
one-hot表示方法中,两个向量是完全不同的表示方法并且是正交的。Distributed representation用低纬度的实值向量表示,其中每一个维度表示一个潜在的特征。Distributed Representations作用。我们介绍三种Distributed Representations:: word-level, character-level, 和hybrid representations.
3.2.1 Word-level Representation
使用continuous bagof-words (CBOW)和 continuous skip-gram来进行预训练。常用的词向量为Word2Vec, Stanford GloVe, Facebook fastText 和 SENNA。
介绍以前的工作都使用的什么词向量。
3.2.2 Character-level Representation
Character-level Representation 能够提取出有用的信息如词汇的前缀和后缀,同时他能够推测一些不认识(embedding中没有)的词汇。图3是基于RNN和CNN的两种结构。
使用CNN来构建Character-level Representation的工作。[96] 使用CNN提取字符并与word-level的表示相连。[97] 使用卷积神经网络和highway层来生成字符级别的表示。[98]在character embedding层上使用带有固定窗口的卷积网络。[102]提出了ELMo它在两层双向的语言模型上使用character卷积来来计算word-representation。
基于RNN的工作主要使用GRU和LSTM。使用RNN的工作。[99] 工作直接给character进行标注。[19]使用双向LSTM表示character,并将word-level与其相连。[104]使用“门”结构来控制字符和词汇分别使用多少信息。[100]介绍了 stack residual LSTM 和可训练的bias decoding, 其中词特征是从word-level和character-level中训练。[105] 开发了一个统一处理跨语言和多任务联合训练的模型。他们使用一个深的双向GRU来从单词的字符序列中学习信息形态表征。然后将字符级表示和单词嵌入连接起来生成单词的最终表示。
3.2.3 Hybrid Representation
除了character-level和word-level,一些工作尝试加入了其他东西。gazetteers [18], [107], lexical similarity (词义)[108], linguistic dependency(句式依赖) [109] and visual features(视觉特征) [110])。使用这些特征可能会提高性能,同时会损害这些系统通用性。
[17]首次使用该神经网络来NER,当加入了一些先验的知识(gazetteers和POS)性能会比只使用word representation的要好。[18]使用了spelling features, context features, word embeddings, and gazetteer features。[20] 加入了词特征(capitalization, lexicons),character-level的字符类型如(upper case, lower case, punctuation)。[111]使用了words, POS tags, chunking, and word shape features。[112] 使用了character-level representation, word-level representation, 和syntactical word representation。[113]使用CNN来捕获orthographic features 和word shapes at character level。对于词级别的语义和上下文特征, 模型使用LSTM来完成。
[118] 提出了一种新的语言表示模型BERT,即双向编码器表示。BERT使用掩码语言模型来实现预先训练的深层双向表示。
请注意,预先训练的语言模型嵌入通常需要大规模的语料库来进行训练,并且内在地包含了辅助嵌入(例如位置和段嵌入)因此,我们将这些语境化的语言模型嵌入归类为混合表示。
3.3 Context Encoder Architectures
本文将回顾卷积神经网络,递归神经网络,递归神经网络和deep transformer
3.3.1 Convolutional Neural Networks
[17]提出了典型的CNN结构。
[95]先使用BLSTM-RE来学习长距离特征,并用CNN来学习上层特征。
[90]提出了Dilated Convolutional Neural Networks (ID-CNNs),不像LSTM,即使面对并行性,对长度为N的句子进行顺序处理也需要O(N)时间。ID CNNs允许固定深度卷积在整个文档中并行运行。它的结构如图7所示
与BiLSTM CRF相比,IDCNNs实现了14-20倍的测试时间加速,同时保持了相当的精确度。
3.3.2 循环神经网络
递归神经网络和它的变种GRU以及LSTM获得了显著的成就。尤其是双向神经网络。典型的递归神经网络如图7所示。
[18]是第一个使用双向LSTM CRF框架来标注任务的。[105] 使用deep GRUs的character和word levels来编码上下文和形态学信息。
[120] 使用多个独立的双向LSTM以及模型间的正则化来减少模型参数。[121], [122]设计lstm来完成嵌套的命名实体识别
3.3.3 Recursive Neural Networks
递归神经网络是一种非线性自适应模型,能够通过按拓扑顺序遍历给定的结构来学习深层结构信息。命名实体与语言成分(如名词短语)高度相关。然而典型的序列模型并没有考虑句子的短语结构。[97]提出了分辨句子结构中的每一节点。模型计算每一个节点的隐藏向量,并通过这些隐藏向量来分类。图8展示了这种这个过程。自底向上的过程每一个节点的子树的语义组成部分,自上而下的对应词将包含子词的语言结构传播到该节点。
3.3.4 neural language models
语言模型是描述序列生成的一系列模型。给定一个token序列
,前向语言模型通过对给定前面token建模来计算token k的概率(
):
前后的语言模型与其相反。
对于neural language models,每一个token k可以获得两个上下文依赖表示(向前和向后的)。将两者拼接作为最后的模型。这种语言模型被证明是很有效的。
Rei [123]提出了第二目标学习,在学习NER的同时预测token的上下文。这种加入语言模型的方法能够鼓励网络学习更丰富的特征。图9展示了这种结构。
[21] 提出了TagLM,这种tagger同时考虑预训练每一个token的词嵌入和双向语言模型。Figure 10展示了LM-LSTM-CRF模型。实验表明多任务学习是帮助语言模型学习任务特定知识的有效方法
[102]提出了ELMo表示,它是通过字符卷积层在两层双向语言模型上计算representation。这种新型的深层上下文化词表示法能够对词用法的复杂特征(例如,语义和语法)以及跨语言上下文的用法变化(例如,多义性)进行建模。
3.3.5 Deep Transformer
[127]提出了Transformer完全消除了reccurent和convolution网络。Transformer使用self-attention和point-wise。Transformer在多个任务上又比较好的表现。图 11总结了 BERT [118], GPT [130] and ELMo [102]。
第一,这些Transformer方法常常被用于取代传统的词向量,如Google Word2vec and Stanford GloVe。第二,利用fine-tuning可以快速应用到其他任务中。
3.4 Tag Decoder Architectures
图12 总结4种decoder:MLP softmax layer, conditional random fields (CRFs), recurrent neural networks, pointer networks.
3.4.1 Multi-Layer Perceptron Softmax
[90], [97], [115], [118], [138]都是使用这个模型。
3.4.2 Conditional Random Fields
有许多工作是在LSTM上使用CRF但是,CRF无法充分利用段级别的信息,因为段的内部属性无法使用单词级表示形式进行完全编码[。141]然后提出了门控混合马尔可夫CRF,该模型直接建模片段而不是单词,并通过门控递归卷积神经网络自动提取片段级特征。Ye和Ling [142]提出了混合半马尔可夫CRF用于神经序列标记。
3.4.3 Recurrent Neural Networks
[87]报告说,当实体类型数量很大时,RNN标签解码器的性能优于CRF,并且训练速度更快
3.4.4 Pointer Networks
Pointer Networks应用RNN来学习输出序列的条件概率,其中元素是与输入序列中的位置相对应的离散标记。它通过使用softmax概率分布作为“pointer”来表示可变长度的dictionaries。[94] pointer network的工作原理。
3.5 Summary of DL-based NER
结构总结 表3总结所有结构,其中BiLSTM-CRF是常用的结构。[131]在CoNLL03实现了(93.5%) 。在OntoNotes5.0实现了 (92.07%)。
NER系统的成功主要在于它的输入。整合并fine-tuning预训练的模型成为了新的NER的范式。[102], [106], [107], [131]–[137]展示了利用语言模型能有巨大的提高。相比于在规范文档中有高的F-SCORE。包含噪音数据的NER依旧有挑战。
架构比较 我们从三个角度讨论利弊:input, encoder,和 decoder。首先对于额外的知识是否应该或者如何整合基于深度学习的NER模型中是没有共识的。[107], [109], [132], [141]这些研究表明整合外部知识库会带来好处。但是缺点是非常明显:1额外的知识库是劳动密集型或者计算昂贵的2.使用额外的知识库会损坏NER系统端到端的学习和系统的泛化。
第二,Transformer编码器当在大语料库训练时比LSTM有效率,反之则不行[146], [147].当序列长度比representation的维度小时,当Transformer的速度会比循环神经网络更快。self-attention复杂度O(
) 和recurrent O(
)
第三,RNN 和 Pointer Network 最大的缺点在于贪婪解码,当前解码只有在上一个解码完成时才能开始,这会极大地影响速度。CRF是很受欢迎的,但是他的计算非常昂贵并且当使用如BERT和ELMo等语言模型时,它的性能不如softmax。
对于终端用户来说,模型取决于你的领域和数据集。如果数据集比较足量,可以考虑从零开始使用RNN训练模型和对上下文语言模型进行微调。如果数据集很小,使用特定领域的数据来fine-tuning通用的上下文模型是很有效的。
NER for Different Languages 介绍其他语言和交叉语言的论文。
4 APPLIED DEEP LEARNING FOR NER
4.1 Deep Multi-task Learning for NER
Multi-task learning [160] 是学习多个相关的任务来提高单个任务的性能。
Collobert [17]训练了一个窗口/句子方法网络来共同执行POS,Chunk,NER和SRL任务。
[105]提出的联合任务模型来学习特定语言的规律。Rei [123]在NER中联合了无监督学习。[159]提出了交叉语言多任务模型,能够转化不同的知识来提高主模型。
除了考虑序列标注NER还会和关系实体提取联合[89], [95]。或者建模NER为两个子任务:实体划分和实体类别预测。[162], [163]中为不同的数据库设置了不同的设定。
4.2 Deep Transfer Learning for NER
Transfer learning通过从source domain获取的知识来提高target domain的性能[164]。传统的方法使用bootstrapping,现在有很多使用深度神经网络的方法。
[168]提出了transfer joint embedding用于交叉领域。[173]发现相关的命名实体常常有词和上下文特征。[161] 提出了迁移学习和多任务学习联合,他们考虑两个语料库:news 和 social media,以及两个任务:word segmentation和NER
迁移学习中经常共享模型参数中的一部分。[174]首先研究了表示的不同层次的可传递性。然后,他们针对跨域,跨语言和跨应用程序场景提出了三种不同的参数共享架构。如果两个任务具有可映射的标签集,则存在一个共享的CRF层,否则,每个任务将学习一个单独的CRF层。实验结果表明,在资源匮乏的情况下(即可用注释更少),各种数据集都有了显着改善。[175]合并了句子级别的特征。[176] 提出了一种具有领域适应性的多任务模型,其中全连接层用于适应不同的数据库,CRF的特征被分别计算。不同的分布和未对齐的注释准则会在数据选择阶段被过滤掉。[169]通过在源任务上训练模型并在目标任务上使用经过训练的模型进行微调,从而在NER中应用了转移学习.[170]提出了他的fine-tuning方法,通过word adaptation layer, sentence adaptation layer, 和 output adaptation layer。[177]提出了一种用于异构标签集NER设置的标签层次模型,其中在推理过程中使用层次结构将细粒度标签映射到目标标签集。
4.3 Deep Active Learning for NER
Active Learning的主要想法是如果允许机器学习选择自己学习的数据,那么它会表现的更好。使用激励学习能够减少深度学习所需的数据。
传统的Active Learning需要多轮的学习,对于深度学习开始训练是非常困难的。[87]提出对每批新标签进行NER的增量培训。[181]使用不确定的采样策略来选择标注的句子。实验结果表明,仅使用英语数据集上24.9%的训练数据和中文数据集上30.1%的训练数据,主动学习算法就可以在完整数据上训练的最佳深度学习模型上实现99%的性能。此外,训练数据的12.0%和16.9%足以使深度主动学习模型优于在完整训练数据上学习的浅层模型
4.4 Deep Reinforcement Learning for NER
强化学习(RL)是受行为主义心理学启发的机器学习的一个分支,该心理学关注软件代理如何在环境中采取行动并最大化累积的价值。[186]将信息提取任务建模为马尔可夫决策过程(MDP),该过程动态地合并了实体预测,并提供了从一组自动生成的备选方案中选择下一个搜索查询的灵活性。[188]利用远距离监督所产生的数据在新领域中进行新型的实体识别。实例选择器基于强化学习,并从NE标记器获得反馈奖励,旨在选择肯定的句子以减少嘈杂注释的影响。
4.5 Deep Adversarial Learning for NER
目的是使模型更具攻击性,或减少模型在纯净输入上的测试错误。在NER中一般有两种方法。第一,[192] 和[193]用来解决跨域不变性。另一种选择是通过添加带有扰动的原始样本来准备对抗样本。[194]提出的adversarial transfer network (DATNet)为了解决NER中低资源的问题。
4.6 Neural Attention for NER
注意机制大致基于人类发现的视觉注意机制,[104]使用注意力机制来动态地决定在端到端的模型中character和word-level的信息使用多少.[196]提出了self-attention机制,它的权重取决于单个序列。[197]提出了基于注意力机制的NER框架来利用文档信息。[198]在推文中使用了一个针对NER的自适应 co-attention网络。该自适应 co-attention网络是使用 co-attention过程的多模式模型。
5 CHALLENGES AND FUTURE DIRECTIONS
选择标签解码器的变化不如输入表示形式和上下文编码器的选择大。
5.1 Challenges
Data Annotation 数据标注非常昂贵。数据的质量和一致性因为语言的模型性也变得很重要。同名的实体可能会被标注成多个实体。由于数据注释的不一致,即使两个数据集中的文档来自同一domain,在一个数据集上训练的模型也可能不适用于另一个数据集。[121]报告说嵌套实体是相当普遍的:GENIA语料库中有17%的实体被嵌入到另一个实体中。在ACE语料库中,30%的句子包含嵌套实体。
Informal Text and Unseen Entities 最近的工作在正式文档的数据集上报告了不错的结果。但是在不规格的数据集中,WUT17 dataset,最好的F-scores略微超过40%。NER因为非规范文的句子更短并且噪音更多导致比非规范文本难度更大。评估NER系统的健壮性和有效性可以同识别不寻常,以前未见过的实体的能力。对于WUT-17数据集的这一研究方向存在一个共同的任务[199] 。https://noisy-text.github.io/2017/emerging-rare-entities.html
5.2 Future Directions
Fine-grained NER and Boundary Detection 许多现有研究[19],[96],[108]都关注普通域中的coarse grained NER,但我们希望在特定领域中对fine grained NER进行更多研究,以支持各种现实的应用[201]。其中最大fine grained最大的挑战就是对NE(嵌套)类型的识别。所以需要把named entity boundary detection检测,作为一种单独的任务。
Joint NER and Entity Linking。Wikipedia是通用的领域。the Unified Medical Language System (UMLS) 是生物领域。目前没有工作将NER和实体连接联合,但是通过实体链接获得的语义会被大大地丰富
DL-based NER on Informal Text with Auxiliary Resource 我们认为通常需要辅助资源来更好地理解用户生成的内容。问题在于如何获得较好的辅助资源以及如何将其与user-generated的内容匹配,如何有效的将它们与深度学习框架融合。
Scalability of DL-based NER
BERT和ELMo训练非常昂贵,平衡模型复杂性和可伸缩性的方法将是一个有希望的方向。另一方面,模型压缩和修剪技术也是减少模型学习所需空间和计算时间的选择。
Deep Transfer Learning for NER 如何有效地将知识从一个领域转移到另一个领域:(a)开发一个健壮的识别器,该识别器能够在不同领域中正常工作;(b)在NER任务中探索zeroshot, one-shot and few-shot (c)提供解决域不匹配和跨域设置中标签不匹配的解决方案。
An Easy-to-use Toolkit for DL-based NER
[209]开发了GERBIL,它为研究人员,最终用户和开发人员提供了易于使用的界面,用于对实体注释工具进行基准测试,以确保可重复和可存档的实验。但是他没有包含最新的深度学习技术。[210] FAIRSEQ [211] NeuroNER。为了复现表三中的经典实验,用户需要重头写代码。我们希望能够有些标准化的工具快速完成。
作者:吴洪发
地址:https://www.zhihu.com/people/aaaa-53-7-65