论文地址:A Survey on Deep Learning for Named Entity Recognition

背景

什么是命名体识别

命名体识别(Named Entity Recognition, NER)是可以将一个单词或者短语可以清楚地从与它具有相似属性的项目中识别出来。例如一般领域中的识别人名、地名和组织名称,和医学领域的毒、疾病等。

NER有粗粒度NER和细粒度NER:

  • 粗粒度NER:关注一个粗糙类型的小集合,每个命名体只有一个类型。
  • 细粒度NER:关注一个更大的实体类型集合,并且一个命名体可能有多个细粒度类型

NER资源:Datasets和Tools


Dataset

Corpus

Year

Text Source

Tags

MUC-6

1995

Wall Street Journal

7

MUC-6 Plus

1995

Additional news to MUC-6

7

MUC-7

1997

New York Times news

7

CoNLL03

2003

Reuters news

4

ACE

2000 - 2008

Transcripts, news

7

OntoNotes

2007 - 2012

Magazine, news, web, etc.

18

W-NUT

2015 - 2018

User-generated text

6/10

BBN

2005

Wall Street Journal

64

WikiGold

2009

Wikipedia

4

WiNER

2012

Wikipedia

4

WikiFiger

2012

Wikipedia

112

HYENA

2012

Wikipedia

505

URL

2014

News

3

Gillick

2016

Magazine, news, web, etc.

89

FG-NER

2018

Various

200

NNE

2019

Newswire

114

GENIA

2004

Biology and clinical text

36

GENETAG

2005

MEDLINE

2

FSU-PRGE

2010

PubMed and MEDLINE

5

NCBI-Disease

2014

PubMed

1

BC5CDR

2015

PubMed

3

DFKI

2018

Business news and social media

7


Tools

NER System:

  • 学术界常用:
  • 工业界常用:

NER评估指标

精确匹配评估

NER可以分成两种子任务:边界检测(识别短语的边界)和类型识别。而精确匹配评估是当且仅当NER System正确识别边界和类型。

通常进行精确匹配评估的指标有精确度(Precision)、召回率(Recall)和F-score,而他们则需要以下信息进行计算得出:

  • 假阳性(False Positive, FP):被NER System识别出的实体但是在ground truth中不存在
  • 假阴性(False Negative, FN):没有被NER System识别出来的实体但是在ground truth中存在
  • 真阳性(True Positive, TP):被NER System识别出来且在ground truth存在

精度(Precision)指的是NER System结果识别正确的百分比,召回率(Recall)指的是所有实体中被成功识别的百分比:

 

F-score是Precision和Recall的调和平均数:

 

宽松匹配评估

在MUC-6中定义了宽松匹配评估:即当一个实体被正确分类且它的预测边界与ground truth中有重合就算识别成功

NER的传统方法

  • 基于规则的方法:其依赖于手工设计识别规则,主要基于特定领域的名词词典和语法-词汇模式来设计。
  • 无监督学习的方法:聚类是典型的无监督学习方法,基于聚类的NER System根据上下文相似性从聚类组中提取命名体。其关键思想是在大型数据库中的词汇资源、词汇模型和统计数据被计算后可以用来推断命名体的mentions
  • 基于特征的监督学习方法:监督学习的分类任务和序列标注任务都可以应用到NER中,对于给定标注数据,机器学习学习一个模型后对未见过的数据中识别相似的模式,特征工程对于有监督NER System同样至关重要。常用的机器学习算法有:隐马尔可夫模型(Hidden Markov Models, HMM),决策树(Decision Trees),最大熵模型(Maximum Entropy Models),支持向量机(Surpport Vector Machine, SVM),条件随机场(Conditional Random Fields, CRF)

NER与深度学习

论文中作者总结了三个使用深度学习的理由:

  1. 非线性模型让模型可以从数据中学习更复杂的特征
  2. 深度学习可以节约大量设计特征的精力
  3. 深度学习可以通过梯度下降进行端到端的范式训练,这使得设计复杂的NER System成为可能

以往的DL-based NER System分类为字符及编码器(character-level encoder),词级编码器(word-level encoder)和标签解码器(tag decoder)。但是作者认为在典型的word-level的信息在作为原始特征输入时和为标签解码器捕获上下文依赖时使用了两次,因此这样分类并不准确。所以在论文中作者使用了一种新的DL-based NER Model分类方法:

  1. 分布式表示输入(Distributed Representations for Input):将word-level、character-level及其它附加特征作为输入
  2. 上下文编码器(Context Encoder):利用CNN、RNN或其它网络模型去捕获上下文依赖
  3. 标签解码器(Tag Decoder):利用CRF,Softmax等给出预测结果

这三个分类就是DL-based NER Model三个步骤,由1将特征输入给2,2进行处理后送给3,3通过2送来的数据给出预测结果。

分布式表示输入(Distributed Representations for Input)

在分布式表示中并没有使用one-hot向量,而是使用的低维稠密向量。

词级表示(Word-level Representation)

 

通常通过无监督算法(例如continuous bag-of-words(CBOW)和continuous skip-gram模型)对大量文本进行预训练,常用的词嵌入有Google Word2VecStanford GLoVeFacebook fastTextSENNA

字符级表示(Character-level Representation)

论文中作者提出character-level表示相对于word-level表示有两大优点:

  1. character-level对于利用sub-word-level信息(例如前缀和后缀)非常有用
  2. character-level能够很自然地处理out-of-vocabulary(OOV)

提取character-level最常用的两种结构是CNN-based模型和RNN-based模型,在RNN-based模型中两个最常用的是Long Short-Term Memory(LSTM)和Gated Recurrent Unit(GRU)。

混合表示(Hybrid Representation)

混合表示通常会输入一些额外信息来帮助NER系统提高性能,但是这些额外信息带来的提高是以系统的通用性为代价的。而预训练语言模型通常需要大规模的语料库来帮助训练并且包含一些辅助嵌入,其中近期最著名的混合表示DL模型是BERT。

上下文编码结构(Context Encoder Architectures)

这部分介绍了几种常用的上下文编码结构模型:卷积神经网络(convolutional neural networks, CNNs)、循环神经网络(recurrent neural networks, RNNs)、递归神经网络(recursive neural networks, RNNs)和deep tansformer

卷积神经网络

Collobert et al.提出了一种基于句子的网络模型,其先将句子中的每个单词嵌入一个n维向量,然后卷积层对单词产生局部特征,将局部特征向量组合起来构成全局特征向量,之后对句子中的位置进行最大池化或者平均池化后送入全连接层,最后将全连接层产生的特征向量送入标签解码器,其具体结构如图所示。

paddlenlp命名体识别 命名体识别常用方法_sed

Zhou et al.发现在使用RNN的时候,后面的单词要比前面的单词对句子的影响更大,但是重要的单词可能出现在句子中的任何地方,因此他们提出了先用BLSTM提取long-term依赖,然后使用CNN去获取一个较好的表示。

循环神经网络

循环神经网络和它的变体门循环控制单元(gated recurrent unit, GRU)和长短期记忆网络(long-short term memory, LSTM)在处理序列化数据时效果显著。尤其是双向循环神经网络在特定的时间框架中可以通过前向传播利用过去的信息和通过反向传播利用未来的信息,图中是一个典型的RNNs-based上下文编码器。

paddlenlp命名体识别 命名体识别常用方法_数据_02

Gregoric et al.将相同的输入输入到多个独立的双向LSTM单元,并在使用了跨模型的正则化项促进了模型的多样性。通过将计算分布在多个小的LSTMs上他们发现可以减少总参数量。近来LSTM-based模型被设计用来做嵌套命名体识别(nested named entity recognition)。Katiyar and Cardie修改了标准的LSTM-based序列标注模型去进行嵌套命名体识别。Ju et al.通过动态堆叠flat NER layer直到没有外部实体可以被提取来识别嵌套实体;每个flat NER layer采用双向LSTM来捕获连续上下文信息,该模型将当前flat NER layer中的LSTM层的输出合并,将它们送给下一个flat NER layer。