【NLP-NER】命名实体识别中最常用的两种深度学习模型
命名实体识别(Named Entity Recognition,NER)是NLP中一项非常基础的任务。NER是信息提取、问答系统、句法分析、机器翻译等众多NLP任务的重要基础工具。
上一期我们介绍了NER的基本概念,大致介绍了NER常用的模型。本期我们详细介绍目前NER最常用的两种深度学习模型,LSTM+CRF和Dilated-CNN。
作者&编辑 | 小Dream哥
1 LSTM+CRF
在NLP领域,有那么一段时间,LSTM是“最红”的特征抽取器,自然,NER中也开始引入LSTM来进行特征抽取。
LSTM我就不再做过多的介绍,其原理在我的一篇文章中有详细的介绍,读者可以点击如下的链接回顾:
【NLP】 NLP中应用最广泛的特征抽取模型-LSTM
如上图所示,是用双向LSTM+CRF进行命名实体识别的模型结构图。
我们来好好分析一下这个模型,看数据的流转和各层的作用。
1.embedding layer 将中文转化为字向量,获得输入embedding
2.将embedding输入到BiLSTM层,进行特征提取(编码),得到序列的特征表征,logits。
3.logits需要解码,得到标注序列。将其输入到解码CRF层,获得每个字的序列。
总结一下,该模型的重点其实有两个:
1. 引入双向LSTM层作为特征提取工具,LSTM拥有较强的长序列特征提取能力,是个不错的选择。双向LSTM,在提取某个时刻特征时,能够利用该时刻之后的序列的信息,无疑能够提高模型的特征提取能力。
2. 引入CRF作为解码工具。中文输入经过双向LSTM层的编码之后,需要能够利用编码到的丰富的信息,将其转化成NER标注序列。通过观察序列,预测隐藏状态序列,CRF无疑是首选。
2 ID-CNN+CRF
膨胀卷积可能有很多朋友还不是很熟悉,这里先做一个简单的介绍。
Dilated/Atrous Convolution(中文叫做空洞卷积或者膨胀卷积))或者是Convolution with holes。从字面上就很好理解,就是在标准的卷积里注入空洞,以此来增加感受野。
Convolution with 3*3 kernel
Dilated Convolution with 3*3 kernel
如上图所示,相比原来的正常卷积,膨胀卷积多了一个超参数,称之为膨胀率(dilation rate),指的是kernel的间隔数量(例如,正常的卷积是膨胀率是1)。
“膨胀”的好处是,不做池化,不损失信息的情况下,增大了感受野,让每个卷积输出都包含较大范围的信息。
《Fast and Accurate Entity Recognition with Iterated Dilated Convolutions》一文中提出在NER任务中,引入膨胀卷积,一方面可以引入CNN并行计算的优势,提高训练和预测时的速度;另一方面,可以减轻CNN在长序列输入上特征提取能力弱的劣势。
具体使用时,dilated width会随着层数的增加而指数增加。这样随着层数的增加,参数数量是线性增加的,而感受野却是指数增加的,这样就可以很快覆盖到全部的输入数据。
如上图所示,模型是4个大的相同结构的Dilated CNN block拼在一起,每个block里面是dilation width为1, 1, 2的三层Dilated卷积层,所以叫做 Iterated Dilated CNN。
IDCNN对输入句子的每一个字生成一个logits,这里就和BiLSTM模型输出logits之后完全一样,再放入CRF Layer解码出标注结果。
总结
LSTM+CRF和ID-CNN+CRF两种模型其实都是同一个架构:深度学习特征提取+CRF解码。现在绝大部分的NER任务都是采用这样的一套框架。本文详细的介绍了上述两种方法的模型结构和本质,具体的实现和代码,包括数据预处理,模型搭建,训练,部署等在我们的知识星球里都有详细的介绍,感兴趣的同学可以扫描下面的二维码加入。
读者们可以留言,或者加入我们的NLP群进行讨论。感兴趣的同学可以微信搜索jen104,备注"加入有三AI NLP群"。
下期预告:命名实体识别详解之三
知识星球推荐
扫描上面的二维码,就可以加入我们的星球,助你成长为一名合格的自然语言处理算法工程师。
知识星球主要有以下内容:
(1) 聊天机器人。考虑到聊天机器人是一个非常复杂的NLP应用场景,几乎涵盖了所有的NLP任务及应用。所以小Dream哥计划以聊天机器人作为切入点,通过介绍聊天机器人的原理和实践,逐步系统的更新到大部分NLP的知识,会包括语义匹配,文本分类,意图识别,语义匹配命名实体识别、对话管理以及分词等。
(2) 知识图谱。知识图谱对于NLP各项任务效果好坏的重要性,就好比基础知识对于一个学生成绩好坏的重要性。他是NLP最重要的基础设施,目前各大公司都在着力打造知识图谱,作为一个NLP工程师,必须要熟悉和了解他。
(3) NLP预训练模型。基于海量数据,进行超大规模网络的无监督预训练。具体的任务再通过少量的样本进行Fine-Tune。这样模式是目前NLP领域最火热的模式,很有可能引领NLP进入一个全新发展高度。你怎么不深入的了解?
转载文章请后台联系
侵权必究
往期精选
【NLP-NER】命名实体识别中最常用的两种深度学习模型相关推荐
- 论文阅读:(2020版)A Survey on Deep Learning for Named Entity Recognition 命名实体识别中的深度学习方法
A Survey on Deep Learning for Named Entity Recognition 命名实体识别中的深度学习方法 目录 A Survey on Deep Learning f ...
- NER命名实体识别,基于数据是字典的形式怎么识别
什么是命名实体识别: 命名实体识别(Named Entity Recognition,简称NER),又称作"专名识别,就是从文本中提取出具有特定意义的实体,主要包括人名,地名,专有名字等等. ...
- NLP算法-命名实体识别
命名实体识别 什么是命名实体识别? NER 研究的命名实体 NER研究目前所遇到的问题 命名实体识别的主要方法: 基于条件随机场的命名实体识别 常用的NER模型 1.Spacy NER 模型 2.斯坦 ...
- NLP的命名实体识别 -- 嵌套实体问题
NLP的命名实体识别 – 嵌套实体问题 NER是一个比较常见的NLP任务,通常采用LSTM+CRF处理一些简单NER任务.NER还存在嵌套实体问题(实体重叠问题),实体嵌套是指在一句文本中出现的实体, ...
- pytorch实现BiLSTM+CRF用于NER(命名实体识别)
pytorch实现BiLSTM+CRF用于NER(命名实体识别) 在写这篇博客之前,我看了网上关于pytorch,BiLstm+CRF的实现,都是一个版本(对pytorch教程的翻译), 翻译得一点质 ...
- TF之RNN:TF的RNN中的常用的两种定义scope的方式get_variable和Variable
TF之RNN:TF的RNN中的常用的两种定义scope的方式get_variable和Variable 目录 输出结果 代码设计 输出结果 代码设计 # tensorflow中的两种定义scope(命 ...
- NAACL| 基于标签感知的双迁移学习在医学命名实体识别中的应用
本期给大家介绍上海交通大学APEX数据和知识管理实验室俞勇教授课题组发表在NAACL的文章"Label-aware Double Transfer Learning for Cross-Sp ...
- 自然语言处理(NLP)之命名实体识别
本文将会简单介绍自然语言处理(NLP)中的命名实体识别(NER). 命名实体识别(Named Entity Recognition,简称NER)是信息提取.问答系统.句法分析.机器翻译等应用领域的重要 ...
- NLP(5) | 命名实体识别
NLP(1) | 词向量one hot编码词向量编码思想 NLP(2) | 中文分词分词的概念分词方法分类CRFHMM分词 NLP(3)| seq to seq 模型 NLP(4) | 用词向量技术简 ...
最新文章
- 计算机老师用英语应聘,应聘计算机教师个人自荐书(精选6篇)
- 代练怎么检测出来的_王者荣耀:代练熬夜打上王者,天美发来58个字,不敢收一分钱...
- Linux服务器上配置Tomcat的docBase路径映射时遇到的坑
- android控制手机强制手机横竖方向,使用android IOIO和安卓手机制作视频遥控小车(控制灯的开关、实时视频传输、方向控制)...
- java培训每日总结,这是一份1000多字的Java培训总结,字字珠玑
- ajax遍历数组对象数组对象数组,javascript - 从ajax json请求中,如何将对象动态添加到数组中,以便我可以遍历它们? - 堆栈内存溢出...
- NLP学习难在哪里?这份最全NLP学习路线图帮你解决难题!
- juyter显示决策树图形_关于决策树可视化的treePlotter(学习笔记)
- chrome浏览器不展示地址栏的完整路径解决
- 【2012百度之星/初赛上】小小度刷礼品
- Centos7安装整合Apache+PHP,安装nginx后nginx无法解析.php文件
- 纳多德通过ISO 9001质量、ISO 14001环境、ISO 45001职业健康安全国际管理体系认证
- The Devil is in the Details: Self-Supervised Attention for Vehicle Re-Identification(翻译)
- CUDA总结:Occupancy
- python将汉字转为拼音字母_科学网—[转载]python中文汉字转拼音 - 陈明杰的博文...
- TTL,CMOS,LVTTL,LVCMOS电平标准
- 项目中使用completablefuture_同轴线如何当网线使用?解决改造项目中难题
- Android基于mAppWidget实现手绘地图(十一)–移动地图到某个坐标
- 使用simulink进行自适应滤波
- Camera ITS当中的部分测试项文档