查看原文
其他

【综述专栏】NER的简单综述

在科学研究中,从方法论上来讲,都应“先见森林,再见树木”。当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异。对于AI从业者来说,在广袤的知识森林中,系统梳理脉络,才能更好地把握趋势。为此,我们精选国内外优秀的综述文章,开辟“综述专栏”,敬请关注。

来源:知乎—小胡子

地址:https://zhuanlan.zhihu.com/p/351707375

本文要解决的问题

  1. 什么是NER,NER解决的问题是什么

  2. NER的相关论文

  3. NER的标注语料和评测方法

  4. NER的主要方法,包括机器学习的方法和深度学习的方法

  5. NER任务的demo代码

  6. NER的应用

  7. NER未来的研究方向


01

什么是NER

NER全称是命名实体识别(Named Entity Recognition, NER),旨在识别文本中感兴趣的实体,如位置、组织和时间。已识别的实体可以在各种下游应用程序中使用,如根据患者记录去识别和信息提取系统,也可以作为机器学习系统的特性,用于其他自然语言处理任务。比如下面的例子:「Michael Jeffrey Jordan」是一个「Person」实体,「Brooklyn」是一个「Location」,「NewYork」也是一个「Location」。


02

NER相关综述类论文
  • 2021-Recent Trends in Named Entity Recognition (NER)

  • 2020- Survey on Deep Learning for Named Entity Recognition

  • 2019-A survey on recent advances in named entity recognition from deep learning models

  • 2018-Recognizing complex entity mentions: A review and future directions

  • 2018-Recent named entity recognition and classification techniques: A systematic review

  • 2013-Named entity recognition: fallacies, challenges and opportunities

  • 2007-A survey of named entity recognition and classification


    03

    NER数据集、评测方法、工具库

    3.1 NER相关的数据集

    一般来说,不同的NER任务会有不同的Tags,但都基本基于以下两种:

    • BIO(B-begin,I-inside,O-outside)

    • BIOES(B-begin,I-inside,O-outside,E-end,S-single)

    其中,B 开始位置、I 中间位置、O 其他类别、E表示结束位置、S 单字表示一个实体。

    NER相关数据集可以参考:

    https://github.com/SimmerChan/corpus

    3.2 NER评测方法

    命名实体识别评测方式分为两种,一是通用的基于token标签进行直接评测,二是考虑实体边界+实体类型的评测,实际中往往是采用后者的评测方法,按照实体边界+实体类型的评测,又可以分为下面的两种:

    3.2.1 完全匹配

    1. 实体边界与实体类型都匹配正确

    2. 预测出的实体在测试集中不存在

    3. 测试集中的实体,没有被预测出来

    3.2.2 松弛匹配

    1. 实体边界正确,类型不正确

    2. 边界错误(边界重叠,可以接一个归一化的模块进行评测)

    3. 边界错误,实体类型也错误

    3.3. NER工具库

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

    比如NeuroNER,其使用方法如下:


    04

    NER主要方法
    1. 基于规则的方法

    2. 无监督学习方法

    3. 基于特征的监督学习方法

    4. 深度学习方法

    4.1 基于规则的方法

    基于规则的NER系统依赖于手工制定的规则。可以基于领域特定的地名词典语法-词汇模式设计规则。

    一些著名的基于规则的NER系统包括lase - ii、NetOwl、Facile、SAR、FASTUS和LTG系统。这些系统主要基于手工制作的语义和语法规则来识别实体。由于特定领域的规则和不完整的字典,这类系统往往具有较高的精度和较低的召回率,无法转移到其他领域。

    4.2 无监督学习方法

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

    4.3 基于特征的监督学习方法

    NER可以被转换为一个分类问题或序列标记问题。所以就会涉及到特征工程和模型选择上。

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

    模型选择:隐马尔可夫模型、决策树、最大熵模型、最大熵马尔科夫模型、支持向量机、条件随机场。

    下图一个可以用于NER任务的朴素贝叶斯网络的关系图。

    朴素贝叶斯家族

    4.4 深度学习方法

    近年来,基于DL的NER模型占据了主导地位并取得了最先进的成果。与基于特征的方法相比,深度学习有利于自动发现隐藏的特征。基于深度学习的NER模型有很多种,这里列举几个。

    4.4.1 BiLSTM+CRF

    以BIO任务为例,经典的BiLSTM+CRF结构图如下,其中$w_0-w_4$是输入的词向量表示,输出是每个单词对应的预测标签。

    BiLSTM+CRF

    我们将BiLSTM层与CRF层拆开,BiLSTM层如下

    CRF的输入

    我们可以发现BiLSTM层的输出为每个单词的属于每个类别的分数,我们把这个作为CRF层的输入,这时候可以发现,貌似没有CRF层好像也可以工作,我们取出分数最高的类别作为这个单词的标签不就可以了吗?但是事实并非如此,比如下面的图,可以发现如果直接取最高分数的话,开头的w0是I标签,这显然是不对的。

    BiLSTM的输出

    CRF层可以加入一些约束来保证最终预测结果是有效的。这些约束可以在训练数据时被CRF层自动学习得到。

    可能的约束条件有:

    • 句子的开头应该是“B-”或“O”,而不是“I-”。

    • “B-label1 I-label2 I-label3…”,在该模式中,类别1,2,3应该是同一种实体类别。比如,“B-Person I-Person” 是正确的,而“B-Person I-Organization”则是错误的。

    • “O I-label”是错误的,命名实体的开头应该是“B-”而不是“I-”。

    有了这些有用的约束,错误的预测序列将会大大减少。

    关于CRF层的详细介绍,可以参考

    https://zhuanlan.zhihu.com/p/44042528

    4.4.2 IDCNN+CRF

    尽管BILSTM在NER任务中有很好的表现,但是却不能充分利用GPU的并行性,导致该模型的想能较差,因此出现了一种新的NER模型方案IDCNN+CRF,原始论文为Fast and Accurate Entity Recognition with Iterated Dilated Convolutions

    尽管传统的CNN有明显的计算优势,但是传统的CNN在经过卷积之后,末梢神经元只能得到输入文本的一小部分信息,为了获取上下文信息,需要加入更多的卷积层,导致网络越来越深,参数越来越多,容易发生过拟合。

    IDCNN的改进基于CNN做出了改进,卷积操作更换为空洞卷积,那么为什么要做空洞卷积呢?因为正常CNN卷积之后会接一个池化层,池化层会损失信息,降低精度,那么不如不加池化层,直接在卷积操作中增大感受野,所以就有了空洞卷积。

    空洞卷积

    IDCNN为这片filter增加了一个dilation width,作用在输入矩阵的时候,会skip掉所有dilation width中间的输入数据;而filter矩阵本身的大小仍然不变,这样filter获取到了更广阔的输入矩阵上的数据,看上去就像是“膨胀”了一般。dilated width会随着层数的增加而指数增加。这样随着层数的增加,参数数量是线性增加的,而receptive field却是指数增加的,可以很快覆盖到全部的输入数据。

    图像的空洞卷积

    对应到文本中的卷积操作如下图所示

    文本空洞卷积

    IDCNN获取特征之后,与BiLSTM一样,将结果输入到CRF层,利用维特比解码,得到最终的标签,论文的结果如下

    4.4.3 Bert+BiLSTM+CRF

    Bert由谷歌大佬与2018年提出来,刚出来的时候横扫了11项NLP任务。BERT通过微调的方法可以灵活的应用到下游业务,所以这里我们也可以考虑使用Bert作为embedding层,将特征输入到Bilstm+CRF中,以谋求更好的效果。

    BERT的下游任务

    4.4.4 FLAT

    FLAT来自于复旦大学邱锡鹏老师团队,发表于ACL2020,在当时刷新了中文NER任务的新SOTA。FLAT的基本思想来源于Lattice-LSTM,Lattice-LSTM采取的RNN结构无法捕捉长距离依赖,同时引入词汇信息是有损的,同时动态的Lattice结构也不能充分进行GPU并行。

    为解决计算效率低下、引入词汇信息有损的这两个问题,FLAT基于Transformer结构进行了两大改进:

    改进1:Flat-Lattice Transformer,无损引入词汇信息

    FLAT设计了一种巧妙position encoding来融合Lattice 结构,具体地情况如上图所示,对于每一个字符和词汇都构建两个head position encoding 和tail position encoding,这种方式可以重构原有的Lattice结构。

    改进2:相对位置编码,让Transformer适用NER任务

    Lattice结构由不同长度的跨度组成。为了编码跨域之间的交互,FLAT提出了跨域的相对位置编码。对于两个空间的    和   ,它们之间有三种关系:交集、包含和分离,由它们的正面和反面决定。我们不是直接编码这三种关系,而是使用密集向量来建模它们的关系。它是通过对头部和尾部信息的连续变换来计算的。因此,我们认为它不仅可以表示两个符号之间的关系,还可以表示更详细的信息,如字符和单词之间的距离。让head[i]和tail[i]表示跨度xi的头和尾位置。可以用四种相对距离来表示   和   之间的关系,具体的如下所示

    实验效果:


    05

    NER任务的demo代码

    https://github.com/HuStanding/ChineseNER

    https://github.com/HuStanding/bertNER

    https://github.com/HuStanding/Information-Extraction-Chinese

    上面这两个模型我都实际跑通过,效果如下,可以看到,加了一层Bert之后的效果确实提升了不少。


    06

    NER的应用

    NER作为NLP的基础任务之一,有着丰富的下游应用:

    • 知识图谱

    • 文本理解

    • 对话系统

    • 舆情分析

    • 槽位抽取

    在实际的项目中,NER这一步其实是非常简单的,因为NER获取的只是实体的边界和类型,但是很多时候除了需要这个之外,还需要做实体召回,排序,消歧,离线数据挖掘等等操作,整个NER系统是非常复杂的,但是单纯的做命名实体识别是很容易的。这里贴一个美团搜索中NER技术的探索与实践,美团的技术输出文档写得还是很不错的,值得一看。使用了规则+模型相结合的方式,架构图下


    07

    NER未来的研究方向
    1. 多类别实体

    2. 嵌套实体

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

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

    5. NER模型压缩

    6. 深度迁移学习 for NER

    参考资料

    Roy A. Recent Trends in Named Entity Recognition (NER)[J]. arXiv preprint arXiv:2101.11420, 2021.

    Li J, Sun A, Han J, et al. A survey on deep learning for named entity recognition[J]. IEEE Transactions on Knowledge and Data Engineering, 2020.

    Li X, Yan H, Qiu X, et al. FLAT: Chinese NER using flat-lattice transformer[J]. arXiv preprint arXiv:2004.11795, 2020.

    本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


    “综述专栏”历史文章


    更多综述专栏文章,

    请点击文章底部“阅读原文”查看



    分享、点赞、在看,给个三连击呗!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存