NER命名实体识别

论文《A Survey on Deep Learning for Named Entity Recognition》

链接:https://arxiv.org/pdf/1812.09449.pdf

目前已被数据挖掘顶刊TKDE收录,先膜拜!

目录

全文简介

NER任务简介

NER标注语料库(公开评测集)

off-the-shelf NER工具

评价指标

序列标注标签方案

四类NER常用方法

基于规则的NER方法

基于无监督学习的NER方法

基于特征的有监督学习NER方法(传统机器学习)

基于深度学习的NER方法 

深度学习在NER任务上的优势

分布式表示

上下文编码 

CNN

循环神经网络 RNN

递归神经网络

Transformer

神经语言模型

标签解码

其他研究方向的NER方法

NER任务的挑战与机遇 

面临的挑战

机遇与未来可研究方向

1、全文简介

从摘要中可以看出全文的介绍路线分为五部分,具体为:

NER任务的常用标注语料

现成的NER工具

三个角度介绍现有研究工作:分布式嵌入表示,文本编码,标签解码;

其他研究方向的深度学习方法做NER

NER面临的挑战与机遇

2、 NER简介

NER的研究意义这里不多加赘述,任何一篇NER相关的论文在引言中都会有所介绍。

一句话总结该任务:命名实体识别(Named Entity Recognition, NER)是指从自由文本中识别出属于预定义类别的文本片段。

NER任务最早由第六届语义理解会议(Message Understanding Conference)提出,当时仅定义一些通用实体类别,如地点、机构、人物等。目前命名实体识别任务已经深入各种垂直领域,如医疗、金融等。在该论文中将实体归为两类:generic(通用类)和domain-specific(特定领域类)。

3、NER标注语料库(公开评测集)

论文对现有公开评测任务使用的NER语料库进行了汇总,包括链接地址、类别个数以及语料类型。如下图所示:

此外,论文也给出了评测集对应的SOTA模型及其性能表现,这个感觉很好。这里也推荐一个SOTA模型仓库paperswithcode,里面收录了SOTA模型源码以及论文介绍,感觉还是不错。links:https://paperswithcode.com/


4、OFF-THE-SHELF NER工具

论文对学术界和工业界一些NER工具进行汇总,工具中通常都包含预训练模型,可以直接在自己的语料上做实体识别。不过一般研究使用的话(所定义实体类别与工具预定的不符),还需要依据待抽取领域语料再训练模型,或重新训练模型。

5、评价指标 (Evaluation Metric)

论文将NER评测指标P R F1 分为了两类介绍,这也是比赛和论文中通用评测方式:

Exact-match严格匹配,范围与类别都正确。其中F1值又可以分为macro-averaged和micro-averaged,前者是按照不同实体类别计算F1,然后取平均;后者是把所有识别结果合在一起,再计算F1。这两者的区别在于实体类别数目不均衡,因为通常语料集中类别数量分布不均衡,模型往往对于大类别的实体学习较好。

relaxed match宽松匹配,简言之,可视为实体位置区间部分重叠,或位置正确类别错误的,都记为正确或按照匹配的位置区间大小评测。

6、序列标注标签方案

BIO

BIOES

基本都逃不脱这两种,B 开始位置、I 中间位置、O 其他类别、S 单字表示一个实体。

 句子:西南交通大学位于成都。预定义实体类别:学校、地点。 

上述句子按照BIOES方案标签:B-学校 I-学校 I-学校 I-学校 I-学校 E-学校 O O B-地点 E-地点

7、四类常用NER方法

规则模板,不需要标注数据,依赖于人工规则;

无监督学习方法,不需要标注数据,依赖于无监督学习算法;

基于特征的有监督学习算法,依赖于特征工程;

深度学习方法

论文简要地介绍了前三种方法,着重地介绍第四种方法。 如果要看前三种方法的综述可以去看 Nadeau and Sekine 07年的综述《A survey of named entity recognition and classification》,13年Marrero综述《Named entity recognition: fallacies, challenges and opportunities》,15年Potey综述《Approaches to named entity recognition: a survey》。

18年出的一篇综述比较有意思,主题是复杂实体识别,也就是重叠实体或者非连续性实体。最近对此进行了一些研究,先挖个坑,后续整理一下工作,再做分享。《Recognizing complex entity mentions: A review and future directions》

https://www.aclweb.org/anthology/P18-3006/www.aclweb.org


还有两篇18年较新的综述,《A survey on recent advances in named entity recognition from deep learning models》和《Recent named entity recognition and classification techniques: A systematic review 》

ps: 偷懒!这里就不给出论文的链接了。

 对于论文中出现的两个名词coarse-grained entity 和fine-grained entity,存在一些疑问。论文中对于两者的定义为:粗粒度实体coarse-grained entity 一个实体一个类别; 细粒度实体fine-grained entity 一个实体多个类别。对于这样的分类,感到有些迷惑。细粒度实体在我的理解应该是指预定义实体类别是具有层级,如一级类别人、动物、地点,动物又分为了猫、狗、鸟等。也有可能是我理解不到位。这里贴出原文,欢迎讨论。 

Note that the task focuses on a small set of coarse entity types and one type per named entity. We call this kind of NER tasks as coarse-grained NER [10], [11]. Recently, some fine-grained NER tasks [29]–[33] focus on a much larger set of entity types where a mention may be assigned multiple fine-grained types.

8、基于规则方法

特定领域词典,其中还包括同义林词典;

句法词汇模板;

正则表达式;

论文列出了一些基于规则的NER系统:LaSIE-II, NetOwl, Facile, SAR, FASTUS, and LTG。 总的来说,当词汇表足够大时,基于规则的方法能够取得不错效果。但总结规则模板花费大量时间,且词汇表规模小,且实体识别结果普遍高精度、低召回。

9、无监督学习方法

主要是基于聚类的方法,根据文本相似度得到不同的簇,表示不同的实体类别组。常用到的特征或者辅助信息有词汇资源、语料统计信息(TF-IDF)、浅层语义信息(分块NP-chunking)等。

10、基于特征的有监督学习(传统机器学习)

NER任务可以是看作是token级别的多分类任务序列标注任务,深度学习方法也是依据这两个任务建模。

特征工程:word级别特征(词法特征、词性标注等),词汇特征(维基百科、DBpdia知识),文档及语料级别特征。

机器学习算法:隐马尔可夫模型HMM、决策树DT、最大熵模型MEM、最大熵马尔科夫模型HEMM、支持向量机SVM、条件随机场CRF。

11、深度学习方法

终于进入正题,下文将按照以下四点,详细介绍基于深度学习的NER方法。

深度学习优势

分布式表示

上下文编码结构

标签解码结构

11.1、深度学习优势

不能算深度学习做NER的优势,深度学习解决其他问题也是这些亮点。

强大的向量表示能力;

神经网络的强大计算能力;

DL从输入到输出的非线性映射能力;

DL无需复杂的特征工程,能够学习高维潜在语义信息;

端到端的训练方式。

11.2、分布式表示

词级别表示 word-level representation

首先Mikolov提出的word2vec(两种框架CBOW和skip-gram),斯坦福的Glove,Facebook的fasttextSENNA

使用这几种词嵌入方式,一些研究工作使用不同语料进行训练,如生物医学领域PubMed、NYT之类。

字符级别表示 character-level representation

字符级别通常是指英文或者是其他具备自然分隔符语种的拆开嵌入,在中文中指字级别嵌入,字符嵌入主要可以降低OOV率。文中给出了两种常用的字符级别嵌入方式,分别为CNN、RNN。

着重提一下18年COLING的一项工作《Contextual String Embeddings for Sequence Labeling》,使用字符级别的神经语言模型产生上下文相关的文本嵌入。大致思路为使用双向RNN编码字符级别嵌入,将一个词的前向和后向隐层状态与词嵌入拼接作为最终词嵌入向量,如下图所示。Github上也开源了源码库Flair

https://github.com/flairNLP/flairgithub.com


3. 混合信息表示 hybrid representation

除了词级别表示、字符级别表示外,一些研究工作还嵌入了其他一些语义信息,如词汇相似 度、词性标注、分块、语义依赖、汉字偏旁、汉字拼音等。此外,还有一些研究从多模态学习出发,通过模态注意力机制嵌入视觉特征。论文也将BERT归为这一类,将位置嵌入、token嵌入和段嵌入看作是混合信息表示。

11.3、上下文编码

包括了卷积网络CNN、循环网络RNN、递归网络、Transformer。

CNN

基本框架如下图所示,句子经过embedding层,一个word被表示为N维度的向量,随后整个句子表示使用卷积(通常为一维卷积)编码,进而得到每个word的局部特征,再使用最大池化操作得到整个句子的全局特征,可以直接将其送入解码层输出标签,也可以将其和局部特征向量一起送入解码层。

其他一些研究者,开始考虑使用BiLSTM-CNN的网络结构,随之而来的还有ID-CNNs迭代膨胀卷积(个人认为类似多层N-Gram语言模型)等。

循环神经网络 RNN

常用的循环神经网络包括LSTM和GRU,在NLP中常使用双向网络BiRNN,从左到右和从右到左两个方向提取问题特征。

补充一个文中没有的网络结构ConvLSTM,CNN与RNN更好的结合方式,只不过需要将样本重构。

递归神经网络 Recursive Neural Networks

递归神经网络相较循环神经网络,最大区别是具有树状阶层结构。循环神经网络一个很好的特性是通过神经元循环结构处理变长序列,而对于具有树状或图结构的数据很难建模(如语法解析树)。还有一点特别在于其训练算法不同于常规的后向传播算法,而是采用BPTS (Back Propagation Through Structure)。

虽然递归神经网络理论上感觉效果不错,但实际应用中效果一般,并且很难训练。相较之下treeLSTM近些年的研究经常被提及,在关系抽取以及其他任务上有不少应用。

Transformer

Google的一篇《Attention is all you need》将注意力机制推上新的浪潮之巅,于此同时transformer这一不依赖于CNN、RNN结构,纯堆叠自注意力、点积与前馈神经网络的网络结构也被大家所熟知。此后的研究证明,transformer在长距离文本依赖上相较RNN有更好的效果。

神经语言模型

语言模型是在做一件事:判断语言是否合理?

发展历史:专家语法规则模型-->统计语言模型-->神经语言模型(具体的介绍可以自行搜索,网上资源挺多)。

着重提一下现有的神经语言模型:

word2vec

Glove

fasttext

ELMO

BERT

GPT

GPT2

XLNET

ALBERT

RoBERTa

持续挖坑......

准备github上维护一个预训练语言模型权重下载地址的仓库,希望赶紧填平它。https://github.com/cloudXia777/Pretrained-Model

解码层

MLP+softmax

CRF

RNN

Pointer Network

 对于1、2应该没什么要说的常规操作,着重看一下3和4。 

使用RNN解码,框架图如下所示。文中所述当前输出(并非隐藏层输出)经过softmax损失函数后输入至下一时刻LSTM单元,所以这是一个局部归一化模型。 

《DEEP ACTIVE LEARNING FOR NAMED ENTITY RECOGNITION》Since this is a locally normalized model (Andor et al., 2016), it does not require the costly computation of partition function, and it allows us to significantly speed up training compared to using CRFs.

使用指针网络解码,是将NER任务当作先识别“块”即实体范围,然后再对其进行分类。指针网络通常是在Seq2seq框架中,如下图所示。

12、其他研究方向的NER方法

下面列出各类研究方向的NER方法,若想细致了解每个方向的文献,请移步原文。

多任务学习 Multi-task Learning

深度迁移学习 Deep Transfer Learning

深度主动学习 Deep Active Learning

深度强化学习 Deep Reinforcement Learning

深度对抗学习 Deep Adversarial Learning

注意力机制 Neural Attention

13、NER任务的挑战与机遇

13.1、挑战

数据标注

非正式文本(评论、论坛发言、tweets或朋友圈状态等),未出现过的实体。

13.2、机遇与未来可研究方向

多类别实体

嵌套实体

实体识别与实体链接联合任务

利用辅助资源进行基于深度学习的非正式文本NER(补充一点,知识图谱方向)

NER模型压缩

深度迁移学习 for NER

^^^^

神经网络结构在命名实体识别(NER)中的应用

命名实体识别(Named Entity Recognition,NER)就是从一段自然语言文本中找出相关实体,并标注出其位置以及类型,如下图。它是NLP领域中一些复杂任务(例如关系抽取,信息检索等)的基础。


NER一直是NLP领域中的研究热点,从早期基于词典和规则的方法,到传统机器学习的方法,到近年来基于深度学习的方法,NER研究进展的大概趋势大致如下图所示。


在基于机器学习的方法中,NER被当作是序列标注问题。与分类问题相比,序列标注问题中当前的预测标签不仅与当前的输入特征相关,还与之前的预测标签相关,即预测标签序列之间是有强相互依赖关系的。例如,使用BIO标签策略进行NER时,正确的标签序列中标签O后面是不会接标签I的

在传统机器学习中,条件随机场(Conditional Random Field,CRF)是NER目前的主流模型。它的目标函数不仅考虑输入的状态特征函数,而且还包含了标签转移特征函数。在训练时可以使用SGD学习模型参数。在已知模型时,给输入序列求预测输出序列即求使目标函数最大化的最优序列,是一个动态规划问题,可以使用维特比算法进行解码。

在传统机器学习方法中,常用的特征如下:

你可能感兴趣的:(NER命名实体识别)