参考论文:《A Survey on Deep Learning for Named Entity Recognition》,Jing Li, Aixin Sun, Jianglei Han, and Chenliang Li
004 NER深度模型综述
- NER基于深度学习的技术综述,根据3个要素对这些技术分类。3个要素分别是:输入的分布式表达、上下文编码器、标注解码器。
1. 命名实体识别任务
命名实体识别:NER,从文本中识别预定义语义类型的专有名词,并标注语义类型。
命名实体:NE,可以分两类。一类是通用的NE,包含人名和地名等;另外一类是领域内特有的NE,例如生物学中的蛋白质等。
-
NER方法类型:
基于规则的方法,需要人工设计规则,不需要标注数据;
无监督的方法;
基于特征的监督学习方法;
基于深度学习的方法,自动学习分布式表达。
2. 背景
- 组织名,人名等是粗粒度的NER,而NER被赋予多种标注的情况是细粒度的NER
2.1 NER数据集
2005年以前的数据集是人工标注的少量新闻数据,只适合粗粒度的NER
2005年以后开始出现不同来源的数据集(维基百科、对话、用户产生的数据等)
典型的NER数据集有MUC-6,MUc-7,ACE,BBN,NNE,HYENA(36种NER,种类最多),PubMed,MEDLINE等。
目前使用最多的CoNLL03和OntoNotes数据集。
2.2 常用的NER工具
学术界最常用的NER工具包括:StanfordCoreNLP, OSU Twitter NLP, Illinois NLP, NeuroNER, NERsuite, Polyglot, Gimli
工业界最常用的NER工具包括:spaCy, NLTK, OpenNLP, LingPipe, AllenNLP, IBMWatson, FG-NER, Intellexer, Repustate, AYLIEN, Dandelion API, displaCy, ParallelDots, TextRazor
2.3 NER评价指标
与人工标注的结果作比较
Exact-match: EM, 输出的NER类型和短语范围都与人工标注完全一致
Precision,Recall,F-score
Relaxed-match:只要NER类型正确,并且可以覆盖短语范围就认为是匹配的。这种评估方法的问题在于仅当参数完全相同,最后的得分才有可比性
3. NER方法
3.1 传统的NER方法
-
基于规则的方法
基于规则的方法依赖人工设计的规则,以及语法和词的模式,规则与领域相关
基于规则的著名NER方法包括:LaSIE-II, NetOwl,Facile,SAR, FASTUS, LTG。
优点:当已知据大多数词时,基于规则的NER方法效果很好。
缺点:由于使用领域内的特定规则和不完整的词典,基于规则的NER方法表现出高precision,但是低recall。且领域迁移困难。
-
无监督的方法
典型的无监督NER方法是clustering,通过context相似度抽取命名实体。
通过无监督的方法,可以减少对监督信息的需要,只需要少数种子规则即可,也可能利用通用的规则,或浅层的语法知识
-
基于特征的监督学习方法
在监督学习中,NER被当成多分类任务或者序列标签任务
监督学习中特征工程的设计非常重要,使用特征向量表示文本的摘要信息
使用模型包括HMM,决策树,最大熵模型,支持向量机和条件随机场
3.2 基于深度学习的NER方法
深度学习本质在于利用神经网络学习潜在的语义表达,从而完成分类或检测,潜在语义通过分布式向量表达。
深度学习的优点在于自动学习特征,且基于深度学习的NER模型可以端到端训练,从而可以建立复杂的NER系统
distributed representations for input:融合词级别、字符级别的嵌入信息,词性标注和地理词典等传统特征
context encoder:使用CNN、RNN以及其他神经网络捕获上下文依赖信息
tag decoder:根据输入序列的信息预测标签,通常使用BIO/BIOES标签表示
3.2.1 Distributed Representation for Input
-
分布式表示:使用低维度实值向量表示词的信息,每一维都表示一种特征。分布式表示一般存在3种,包括
1)词级别的表示:通常是预训练的词表示。
通用领域的词表示包括Word2Vec, GloVe, fastText, SENNA。
对于特定领域,可以使用特定领域的语料训练出词表示,例如Bio-NER中的词表示。
基于神经网络的NER模型中,词级别的表示初始化可以使用通用领域的词表示或者完全随机化。
2)字符级别的表示:
词级别的表示可以捕获子词信息,例如前缀、后缀。
可以推测未见词的嵌入,从而自然地解决OOV问题。
提取字符级别嵌入的方法:基于CNN的和基于RNN的。其中CNN中字符经过卷积池化获得字符级别的嵌入;RNN中为每个字符预测生成标签的分布,词级别的标签由字符级别的标签计算得到。
字符级别的嵌入和词级别的嵌入通常连接在一起表示。
3)混合的表示:
除了词级别和字符级别的嵌入表示,还可以在嵌入中引入其他信息,例如地理信息,词相似度,句法依赖,视觉信息等。相当于联合使用基于深度学习的方法和基于特征的方法。
BiLSTM-CRF模型中融合4种特征:spelling features, context features, word embeddings, gazetteer features。
BiLSTM-CNN模型则融合了双向LSTM和一个字符级别的CNN,除了word embeddings还有词级别的特征、字符级别的特征。
也有模型将LDA和基于深度学习的词级别、字符级别的嵌入联合在一起。
BERT提供预训练的双向深度词表示。输入的表示由位置信息,分段信息,词嵌入信息综合计算得到。
3.3 Context Encoder Architectures
- 目标是得到更好的上下文表示。
3.3.1 卷积神经网络
使用每个词的嵌入作为输入,卷积层计算得到本地特征,全部本地特征综合得到输入的全局特征。
输入句子的全局特征将输入tag decoder计算所有可能标签的分布。即每个单词的标签由整个句子决定。
ID-CNNs适用于大规模文本和结构化预测。
3.3.2 循环神经网络
RNN通常使用两大变种GRU、LSTM,利用门机制缓解长程依赖的问题。
双向RNNs有效利用过去的信息和未来的信息,适合建模上下文存在依赖的表示。
BiLSTM-CRF以及跨语言,多任务的变种。
基于RNN的NER研究方向之一是嵌套NER。
3.3.3 递归神经网络
循环神经网络也是递归神经网路的一种。一般而言,循环神经网络是在时间维度上的递归,而递归神经网络是在结构上的递归。
递归神经网络是一种自适应的非线性模型,能够按照拓扑顺序遍历给定结构来学习深层结构信息。
NER与语言成分高度相关,递归计算constituency structure中的节点隐藏层信息并分类,有助于序列标注。
3.3.4 神经语言模型
前向/后向神经语言模型:分别给定前面/后面的词预测当前词,通过根据双向RNN得到当前位置的表示,这种表示在序列标注任务中很实用。
LM-LSTM-CRF:同时利用预训练的词表示和LM中词的表示,使用多任务学习的方式共享字符级别的表示。预训练的词表示,共享的字符级别表示以及语言模型中的表示共同组成最终的词表示。
实验证明,多任务学习有利于LM学得特定任务的知识。
ELMo通过双层的双向语言模型可以词的复杂特定,例如,语法语义等。
3.3.5 Deep Transformer
transformer使用堆叠的自注意力和逐点连接的全连接层构建编码器和解码器,彻底消除CNN和RNN。
GPT:Generative Pre-trained Transformer,从左到右利用未标记的数据训练语言模型。主要目的是生成,根据上文预测下一个词。
BERT:Bidirectional Encoder Representations from Transformers,同时使用上文和下文。
在NER中,使用预训练的词嵌入效果比传统的词嵌入效果好很多,也可以联合两者使用。使用NER或chunking作为下游任务微调预训练模型。
3.4 Tag Decoder Architectures
- 输入上下文相关的表示,输出标签序列。常用的解码器结构包括:MLP+softmax、CRFs、RNN和Pointer Network。
3.4.1 多层感知机+softmax
- 多层感知机和softmax层将序列标注任务转换成为多分类任务,为每个词标注tag。
3.4.2 CRFs
基于深度学习的CRFs主要用在双向LSTM或者CNN层上,例如CoNLL03, OntoNotes5.0。
CRFs的缺陷在于无法充分利用分段信息,因为分段信息无法完全使用词嵌入表示。改进方法是直接建模分段的表示,而不是词的表示。
3.4.3 RNN
- 有研究表明,当命名实体类别很多时,使用RNN作为解码器表现更好,且更容易训练。
3.4.4 Pointer Networks
指针网络应用在RNN上,输出位置下标集合,形成离散的位置范围。使用softmax概率分布作为指针,表示可变长的词典。
NER中,PN将输入的序列分段,然后输出标签。
3.5 总结
3.5.1 结构
BiLSTM-CRF方法使用最普遍。
在填空类型的任务上使用双向Transformer预训练获得目前的最佳表现(CoNLL03, OntoNotes5.0)。
3.5.2 结构对比
引入外部知识有助于提升NER,但获取外部知识困难,且会降低端到端系统的泛化性能。
使用大规模预料上训练的Transformer encoder效果比LSTM表现更好,但如果语料规模不够大的时候,预训练反而会降低模型性能。
使用PN或者RNN作为decoder的缺陷在于解码速度慢,不好并行。
当实体类型少的时候CRF处理处理速度快,但如果实体类型多的时候计算CRF的代价高昂。需要注意的是,在BERT和ELMo上使用CRF的效果可能不如直接使用softmax多分类。
3.5.3 选择结构
模型的选择取决于任务和数据。当数据量很大的时候考虑从头训练RNN模型或者微调预训练模型;反之,如果数据量不足,则要考虑使用迁移策略。
针对特定领域的数据,可以在通用预训练语言模型的基础上精调。
4 NER中新的深度学习方法
- CRFs,RNNs,LSTM都是典型的方法,应用在NER最新的工作包括深度多任务学习,深度迁移学习,深度主动学习,深度强化学习,深度对抗学习以及注意力相关的工作。
4.1 Deep Multi-task Learning for NER
多任务学习同时学习一组任务,例如POS, Chunk, NER, SRL,考虑任务之间的关联性,多任务学习期望多任务的综合表现比单独学习每一个任务更好。
多任务的设置可以是NER任务和其他序列标注任务,或将NER分解为实体分段和实体类型识别两个子任务,或者NER用于不同数据集上同时训练。
由于多任务的设定是多个任务共享网络参数,从而可能学到更通用的表达。
4.2 Deep Transfer Learning for NER
NER的迁移学习指用于低资源和跨领域的神经网络,将源领域的知识用于目的领域。
可以使用神经网络学习源命名实体类型和目标命名实体类型之间的关联。
NER迁移学习实现方式可以是共享参数,也可以是在源端预训练目标端精调。
4.3 Deep Active Learning for NER
主动学习选择数据去学习,从而减少标注的数据量。传统主动学习的缺陷在于每轮训练都需要从头开始。
有工作提出了对新标注的数据,在NER任务上增量训练。
主动学习的只需要使用24.9%的英文数据或30.1%的中文数据就可以获得使用完整数据训练模型99%的效果。
4.4 Deep Reinforcement Learning for NER
强化学习:智能体和环境交互,选择动作获得奖励,目标是获得最大的累积奖励。
强化学习的建模方法:1)环境被建模为随机的有限状态自动机,自动机的输入为智能体的动作,自动机的输出为观察结果以及智能体得到的奖励;2)智能体也被建模成随机的有限状态自动机,输入为环境反馈的状态和奖励,输出为动作。
强化学习的的最终输出是好的策略或状态转换函数。
4.5 Deep Adversarial Learning for NER
对抗训练在对抗样本上训练,目标是提供系统的健壮性或减少测试阶段的错误。
NER中,将源领域的实例当成目标领域的对抗样本,寻找领域间通用的特征。
DATNet,将通过原样本添加干扰构造对抗样本,用于低资源的NER。
4.5 Neural Attention for NER
在NER任务中使用注意力机制,使得NER模型将注意力集中到输入中信息最丰富的地方。特别是Transfromer完全基于自注意力,构建输入和输出的全局依赖。
NER系统可以将注意力机制用到字符级别和词级别的组件中,动态查找需要的权重。
NER系统中也可以通过注意力构造文档级别的全局信息。
5 面临的挑战以及可能的研究方向
5.1 面临的挑战
数据标注问题:同一个命名实体在不同的数据集中标注的类型可能不一致,阻碍了模型的迁移能力。命名实体的标注也可能存在嵌套性。
非正式的文本:用户产生的数据可能是非正式的,很短且充满噪声。
未见实体:实体此前未见,对NER的健壮性提出挑战。
5.2 未来的方向
细粒度的NER:领域内细粒度的NER可以用于支持多种实际应用,但会带来实体类型的增加。
边界检测:将NER分解为实体类型检测和边界检测,则边界检测可以用于不同领域的NER,则边界检测可以用于多个领域,更有泛化性和健壮性。同时将实体边界检测作为中间步骤,如果提升实体边界检测的正确性可以减少实体链接过程中的错误传递。
NER和实体链接的结合:实体链接是将命名实体链接到知识库,指明具体实体描述的任务。而实体链接携带的语义信息可以帮助检测命名实体边界和帮助正确识别实体类型。将NER和EL联合训练也许是有益的。
利用辅助资源解决非正式文本中的NER:理论上,使用辅助资源,例如特定领域的词典,可以帮助解决非正式文本中的NER问题的。关键问题在于如何融合辅助资源。
基于深度学习的NER的可扩展性:目前NER模型随着数据量的增大需求的算力也飞快增长,对于缺乏大规模算力的终端用户来说不可接受。模型压缩和修剪是可能的解决方案。
深度迁移学习:当前领域迁移的NER系统还不够成熟。需要研究以下几点:1)需要创建足够健壮的识别器,可用于不同领域;2)低资源领域的NER,例如zero-shot, few-shot等;3)需解决跨领域标签不匹配的问题。
-
真正简单易用的,基于深度学习的NER工具:
GERBIL提供了简单易用的NER工具,但是不涉及最新的深度学习技术;
FAIRSEQ为序列模型提供了简单、可扩展的工具;
NeuroNER利用RNN的变种实现了一个NER框架。