Deep Pyramid Convolutional Neural Networks for Text Categorization阅读笔记
文章目录
- DPCNN(深度等长卷积神经网络)
-
- 模型架构
-
- 等长卷积操作
-
池化操作
-
保持filter数量不变
-
带有预激活的跳跃连接
-
文本区域嵌入
-
实验
-
- 数据集及预处理
- 参数设置
- 结果
-
DPCNN
相较于现有CNN架构, 本模型进行了更深层次的设计.相较于传统架构, 该网络架构通过逐步加深各层深度, 能够有效提取出文本间的长期依赖关系.在构建过程中, 我们借鉴了ResNet模块的设计理念.

模型结构
等长卷积
首先交代一下卷积的的一个基本概念。一般常用的卷积有以下三类:
假设输入序列为n个元素,在卷积神经网络中选择一个卷积核尺寸设定为m,并设置步长参数值s;为了维持边缘信息,在输入序列两端分别添加p个零进行填充(zero padding)。则经过该卷积层处理后的输出序列为[(n - m + 2 * p) / s] + 1。
narrow convolution: 步长s设置为1值时,在无填充处理的情况下(即p值设为0),经过计算可得其输出序列长度为n−m+1。
wide convolution: 步长s同样设置为1值时,在双侧填充处理后(即p=m−1),经过计算可得其输出序列长度为n+m−1。
equal-width convolution: 步长s同样设置为一个合适的数值时,在双侧填充处理后(即p=(m−1)/2),经过计算可得其输出序列长度恰好与输入序列保持一致(如图所示)。在实际应用中,默认情况下左右两端各填充(p=(m−1)/2)个零。
池化
那么DPCNN是如何捕捉长距离依赖的机制呢?Using stride and setting the number of feature maps to a constant value.
作者采用了恰当两层等长卷积以增强词位embedding表示的多样性。随后开始执行池化操作。每个卷积块(由两层等长卷积构成)处理后, 采用大小为3、步长为2的一系列maxpooling操作来进行池化. 序列长度减少到原来的一半. 其能够感知到的信息片段长度增加了原来的100%.
固定feature maps(filters)的数量
固定feature maps的数量有何必要?许多模型在执行池化操作的过程中,在不断增加特征图数量的同时会导致总的计算复杂度成为深度函数的表现形式。与此相悖的是作者对特征图数量实施了优化,在这一过程中经过实验研究发现,在增加特征图数量的过程中只会显著提升计算开销而无明显精度提升。
固定了feature map的数量,在每个卷积层中设置filter size为3×3且stride为2进行max pooling操作时,在每一步池化操作后都会使得整体计算量减少一半(数据量减少一半),从而形成了一个层次递进式的特征金字塔结构

Shortcut connections with pre-activation
网络太深会有以下问题:
在初始化CNN时,在构建神经网络模型的过程中,在每一层参数通常被初始化为较小数值;这会导致最初建立起来的网络架构中,在每一层接收的数据输入都很接近于零值;这样的情况下会导致整个神经网络无法有效产生有意义的结果
较小的权重值可能抑制梯度的有效传递,并导致网络在初期训练阶段需要较长时间才能启动。
即使网络已成功启动,在深度网络架构中,仿射矩阵(即每两层之间的连接边)的连续相乘特性会导致训练过程中可能出现梯度爆炸或消散的情况。
因此, 该论文借鉴了ResNet的结构设计, 并采用了简化的连接方式。从而有效地降低了梯度消失的现象。
在执行卷积运算的过程中, 作者采用了一种预激活的方法.具体来说, 卷积操作被定义为W\sigma(x)+b, 而传统的做法则是\sigma(Wx+b).从直观上看, 这种线性设计显著降低了深度网络的训练难度.
Text region embedding
作者指出,在TextCNN中运用了多尺寸卷波器组成的卷积层结构后产生的区域特征被称为Region embedding. 其含义在于, 即通过对文本中的一个区域片段(如3-gram)应用一系列卷积操作而获得的结果称为embedding.
此外, 作者为了进一步提升性能, 采用了tv-embedding (two-views embedding)这一技术, 从而进一步提升了DPCNN的准确性. 这主要是由于引入了预训练的词向量模型.
最后, 经过计算得到输入的词向量等于Wx+\sum _{u \in U}W^{(u)}z^{(u)}+b.
其中, x即Basic region embedding, 而z^{(u)}则对应于x中每一个词的词向量.
实验
数据集及预处理
数据集就是几个常用的分类数据集:
- AG
- Sougou
- Dbpedia
- Yelp
- Yahoo
- Amazon

预处理主要是大小写转换. 另外对数据vocabulary size限制为3w.
参数设置
- optimizer: 使用SGD优化算法并配备动量项(momentum)值为0.9。
- epoch: 在AG数据集上运行50个epoch,在Yelp和Dbpedia数据集上运行30个epoch,在其他数据集上运行15个epoch。
- batch size: 设置批量大小为100。
- dropout: 设置Dropout率为0.5。
- region size: 区域尺寸设置为{1,3,5}。
- 模型深度: 模型深度设定为15层(其中包含7组卷积块各两层以及一层区域嵌入层)。
此外,在防止过拟合方面采取了早停策略。
未对无监督嵌入进行微调优化。
结果

.
