【文本分类】Deep Pyramid Convolutional Neural Networks for Text Categorization

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6


·阅读摘要:
  本文提出了DPCNN(深度金字塔CNN)模型。在transformer、bert还没兴起的年代,模型越深效果越好,但是模型的复杂度会随着深度提升。粗略地说,DPCNN就是为了解决CNN模型越深复杂度越高的导致计算成本高这一问题的。
·参考文献:
  [1] Deep Pyramid Convolutional Neural Networks for Text Categorization

[0] 摘要

  论文提出了一种低复杂度单词级别的深度卷积神经网络(DPCNN),用于文本分类。

  模型的复杂度会随着神经网络深度的深入而增加;在大数据集上,浅层的词级CNN比深层字级CNN更快更好。

  DPCNN综合二者,在使用词级CNN的基础上,提出一种效果等同于深层神经网络的浅层神经网络。使得DPCNN有着深层CNN的效果,但是训练起来可以接受。

[1] 介绍

  RNN、CNN都可以利用句子中的词序来训练模型。

【注一】:CNN利用词序,是本文作者发表的另一篇论文《Effective use of word order for text categorization with convolutional neural networks》

  虽然CNN、RNN都能利用词序信息,但是CNN可以并行处理数据,这更吸引作者。

  研究表明,深层字级cnn优于浅层字级cnn,浅层词级cnn优于深层字级cnn。词的向量表示效果显著。

【注二】:词的向量表示即以词为单位来做embedding层,虽然词的个数特别多,但是训练时使用的30K个常用词就占数据集总词量的98%

  在这些基础上,论文提出一个 深但低复杂度 的网络结构,叫做DPCNN。它的总计算时间在常数范围内。

  DPCNN架构简单地交替一个卷积块和一个池化层,池化层会导致内部数据大小以金字塔形状收缩。这个网络的计算复杂度被限制为不超过一个卷积块的两倍。,随着网络的深化,“金字塔”能够有效地发现文本中的长距离关联。

【注三】:论文使用步长为2的池化层,这样每经过一次池化层,数据就会缩减一半。
【注四】:大小为3、步长为2的池化层,是常用的设置,这里论文中说成“金字塔”形状,可见作者写故事的能力不赖呀 哈哈。(只是调侃)

[2] 模型

  DPCNN模型有几个关键词:

  1、​​the number of the feature maps fixed​

  2、​​shortcut connections with pre-activation​

  3、​​no need for dimension matching​

  4、​​text region embedding​

  DPCNN模型如下图,以上关键词在叙述模型中介绍。

【文本分类】Deep Pyramid Convolutional Neural Networks for Text Categorization_卷积


  模型图从下往上看,一个文本有​​word embedding​​​的表示,对应于图中的​​【Unsupervised embeddings】​​。

  图中的​​【Region embedding】​​​是对一个文本(比如3gram)进行一组卷积操作后生成的embedding。初始的embedding表示那里,论文采用了 ​​“tv-embedding training”​​​(还没有了解过),之后变成​​【Region embedding】​​就是对3元语法的一个卷积,把相邻的三个词的embedding卷积。

【注五】:今天看来这里可以直接使用预训练的词向量,特别是基于bert来微调

  之后在模型主干上,经过两次卷积(会有padding操作)、激活(relu),然后使用​​shortcut connections​​​把原先的【文本分类】Deep Pyramid Convolutional Neural Networks for Text Categorization_深度学习_07


  假设一次训练,数据走到​​【Repeat】​​部分前,batch=128,len=32,filter=250。

  第一次循环:经过​​Pooling​​​(size为3、步长为2,导致数据缩减一半),那么len=len/2=16,得到【文本分类】Deep Pyramid Convolutional Neural Networks for Text Categorization_卷积_02[128,16,250]。主干部分经过2个卷积(还有padding)变成【文本分类】Deep Pyramid Convolutional Neural Networks for Text Categorization_池化_09[128,16,250],但是它的形状没有变。最后【文本分类】Deep Pyramid Convolutional Neural Networks for Text Categorization_DPCNN_10为[128,16,250],直接相加形状也没变。

  第二次循环:同理,变为[128,8,250]。
  第三次循环:同理,变为[128,4,250]。
  第四次循环:同理,变为[128,2,250]。

  第五次循环:同理,变为[128,1,250]。此时不在循环,接个fc就可以分类输出了。


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: go

“【文本分类】Deep Pyramid Convolutional Neural Networks for Text Categorization” 的相关文章