分享

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

 有三AI 2020-11-27

命名实体识别(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任务都是采用这样的一套框架。本文详细的介绍了上述两种方法的模型结构和本质,具体的实现和代码,包括数据预处理,模型搭建,训练,部署等在我们的知识星球里都有详细的介绍,感兴趣的同学可以扫描下面的二维码加入。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多