【综述专栏】NER的简单综述
在科学研究中,从方法论上来讲,都应“先见森林,再见树木”。当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异。对于AI从业者来说,在广袤的知识森林中,系统梳理脉络,才能更好地把握趋势。为此,我们精选国内外优秀的综述文章,开辟“综述专栏”,敬请关注。
地址:https://zhuanlan.zhihu.com/p/351707375
本文要解决的问题
什么是NER,NER解决的问题是什么
NER的相关论文
NER的标注语料和评测方法
NER的主要方法,包括机器学习的方法和深度学习的方法
NER任务的demo代码
NER的应用
NER未来的研究方向
01
NER全称是命名实体识别(Named Entity Recognition, NER),旨在识别文本中感兴趣的实体,如位置、组织和时间。已识别的实体可以在各种下游应用程序中使用,如根据患者记录去识别和信息提取系统,也可以作为机器学习系统的特性,用于其他自然语言处理任务。比如下面的例子:「Michael Jeffrey Jordan」是一个「Person」实体,「Brooklyn」是一个「Location」,「NewYork」也是一个「Location」。
02
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
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 完全匹配
实体边界与实体类型都匹配正确
预测出的实体在测试集中不存在
测试集中的实体,没有被预测出来
3.2.2 松弛匹配
实体边界正确,类型不正确
边界错误(边界重叠,可以接一个归一化的模块进行评测)
边界错误,实体类型也错误
3.3. NER工具库
论文对学术界和工业界一些NER工具进行汇总,工具中通常都包含预训练模型,可以直接在自己的语料上做实体识别。不过一般研究使用的话(所定义实体类别与工具预定的不符),还需要依据待抽取领域语料再训练模型,或重新训练模型。
比如NeuroNER,其使用方法如下:
04
基于规则的方法
无监督学习方法
基于特征的监督学习方法
深度学习方法
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
https://github.com/HuStanding/ChineseNER
https://github.com/HuStanding/bertNER
https://github.com/HuStanding/Information-Extraction-Chinese
上面这两个模型我都实际跑通过,效果如下,可以看到,加了一层Bert之后的效果确实提升了不少。
06
NER作为NLP的基础任务之一,有着丰富的下游应用:
知识图谱
文本理解
对话系统
舆情分析
槽位抽取
在实际的项目中,NER这一步其实是非常简单的,因为NER获取的只是实体的边界和类型,但是很多时候除了需要这个之外,还需要做实体召回,排序,消歧,离线数据挖掘等等操作,整个NER系统是非常复杂的,但是单纯的做命名实体识别是很容易的。这里贴一个美团搜索中NER技术的探索与实践,美团的技术输出文档写得还是很不错的,值得一看。使用了规则+模型相结合的方式,架构图下
07
多类别实体
嵌套实体
实体识别与实体链接联合任务
利用辅助资源进行基于深度学习的非正式文本NER(补充一点,知识图谱方向)
NER模型压缩
深度迁移学习 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.
本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。
“综述专栏”历史文章
深入理解LightGBM
2022图神经网络5篇最新的研究综述:双曲/图分类/联邦/等变/异质性
深度神经网络 FPGA 设计进展、实现与展望
视觉-语言(VL)智能:任务、表征学习和大型模型
基于深度学习的SLAM综述:迈向空间机器智能时代
Michael Bronstein 最新几何深度学习综述:超越 WL 和原始消息传递的 GNN
从识别到推理——规则学习(Rule Learning)综述
公平机器学习:概念、分析与设计
知识蒸馏 | 最新2022研究综述
MICCAI-2021医学图像分割领域69篇文章速读概览(文末附总结)
除了NLP,Transformer还可以用来做什么?
最新视觉-语言预训练综述
图注意力模型综述 Attention Models in Graphs: A Survey
TPAMI 2022|华为诺亚最新视觉Transformer综述
自动驾驶多模态传感器融合的综述
更多综述专栏文章,
请点击文章底部“阅读原文”查看
分享、点赞、在看,给个三连击呗!