【NLP-NER】命名实体识别中最常用的两种深度学习模型

【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我就不再做过多的介绍,其原理在我的一篇文章中有详细的介绍,读者可以点击如下的链接回顾:

如上图所示,是用双向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进入一个全新发展高度。你怎么不深入的了解?

转载文章请后台联系

侵权必究

往期精选


编辑于 2019-10-25 23:08

文章被以下专栏收录