论文《Fast and Accurate Entity Recognition with Iterated Dilated Convolutions》

论文地址:Fast and Accurate Entity Recognition with Iterated Dilated Convolutions

对于序列标注问题,普通的CNN有一个劣势:卷积之后,末层神经元可能只是得到了原始输入数据中一小块的信息。而对于命名实体识别,整个句子的每个字对当前需要标注的字产生影响。为了覆盖更多的信息,加入更多的卷积层,这样会导致层数越来越深,参数越来越多,为防止过拟合要加入更多的Dropout之类的正则化,带来更多的超参数,整个模型变得庞大和难以训练。

BiLSTM之类的网络结构,能够尽可能的记住全局的信息来对单个字做标注。但问题是,并行计算能力不如CNN强大。

该论文提出了一个dilated CNN的模型。
想法其实很简单:正常CNN的filter,都是作用在输入矩阵一片连续的位置上,不断sliding做卷积。dilated CNN为这片filter增加了一个dilation width,作用在输入矩阵的时候,会skip掉所有dilation width中间的输入数据;而filter矩阵本身的大小仍然不变,这样filter获取到了更广阔的输入矩阵上的数据,看上去就像是“膨胀”了一般。

具体使用时,dilated width会随着层数的增加而指数增加。这样随着层数的增加,参数数量是线性增加的,而receptive field却是指数增加的,可以很快覆盖到全部的输入数据。

论文《Fast and Accurate Entity Recognition with Iterated Dilated Convolutions》_第1张图片

对应在文本上,输入是一个一维的向量,每个元素是一个character embedding:

论文《Fast and Accurate Entity Recognition with Iterated Dilated Convolutions》_第2张图片

模型是4个大的相同结构的Dilated CNN block拼在一起,每个block里面是dilation width为1, 1, 2的三层Dilated卷积层,所以叫做 Iterated Dilated CNN。

IDCNN对输入句子的每一个字生成一个logits,这里就和biLSTM模型输出logits之后完全一样,放入CRF Layer,用Viterbi算法解码出标注结果。

在biLSTM或者IDCNN这样的深度网络模型后面接上CRF层是一个序列标注很常见的方法。biLSTM或者IDCNN计算出的是每个词分类的概率,而CRF层引入序列的转移概率,最终计算出loss反馈回网络。

缺点:1)会丢失局部信息; 2)虽说可以看得比较远,但是有时候远距离的信息并没有相关性。

应用场景:1)需要全局信息的图像任务; 2)需要解决长距离信息依赖的语音与文本任务。

你可能感兴趣的:(命名实体识别,命名实体识别,IDCNN,BiLSTM)