Convolutional Neural Networks for Sentence Classification
引言
该论文由Yoon Kim于2014年在EMNLP上发表,并以TextCNN一词频繁被提及。
最初提出作为图像或语音特征的连续性任务处理方式的CNN,则致力于将其应用于处理离散文本数据。
模型
在之前的内容中提到过CNN模型擅长处理连续型数据。因此,在对文本数据进行建模时需要将离散特征转换为连续表示。其中一种较为流行的方法是Word2Vec。此外,在处理不同长度的文本时通常会采用填充技术以确保模型的有效运行。网络结构如下:

其中n为文本长度,k为向量维数
Channels
在图中可以看到, 该文本被组织为两层结构. 我们可以探讨不同的初始化方式以及在训练过程中是否对向量进行调整.
Embedding
这一过程涉及将原始文本转换为数值表示。在研究中采用了两种方法:一种是基于随机初始化的方法,另一种则是利用了经过预训练的词向量模型。通过实验结果可以看出,在实验中采用预训练词向量的方式能够显著提高模型性能。
Convolutional
该卷积层采用大小为(h, d)的滤波器进行图像处理操作,在实际应用中需根据需求选择不同尺寸(即h值)的不同滤波器组合。具体来说,在示例图中我们分别采用了h=2和h=3两种尺寸的滤波器,则可得到输出特征图的空间维度分别为(7, 1)和(6, 1)两种类型。另一个是对卷积操作后的输出进行非线性变换(也被称为激活函数的过程),其具体实现方式如以下公式所示:y = \sigma(x)其中σ代表激活函数。

其中w,b为超参,x为分布式向量,f为非线性激活函数,c为最终的输出。
Pooling
在该操作中,我们应用了max-pool机制;通过选择c向量中数值最大维度的方式;然后将这些结果连接成一个新的向量;其结果为滤波器数量与通道数相乘所得的一维向量。
Regularization
Dropout
这里对池化后的向量进行了处理,并添加了一层遮罩(即图中所示的r),其中r是伯努利分布的随机变量,在反向传播过程中随机将某个位置设为0以防止过拟合。

l2-norms
原文如下
We additionally limit the l2-norms of weight vectors through normalizing w so that its norm equals s whenever it exceeds s after a gradient descent step.
Fully Connected
最后是全连接层,根据任务不同决定最终输出的维度,即分类数量。
结果
数据集
论文中提及数据集如下:

模型对比

其中,
CNN-rand为单通道模型,
其嵌入层通过随机初始化的方式实现,
并在后续的训练过程中进行参数调整;
CNN-static同样为单通道模型,
其嵌入层采用了预先训练好的词向量表示,
在整个训练过程中不做修改;
CNN-non-static也为单通道模型,
其嵌入层同样采用了预先训练好的词向量表示,
但在训练过程中进行了参数调整;
CNN-multichannel则包含两个通道,
其所有嵌入层均采用了预先训练好的词向量表示,
在每一轮训练中对其中一个通道的参数进行了调整,
而另一个通道则保持不变。
观察者注意到,在多个数据集上的测试结果中,CNN-multichannel均表现出色;相比之下,CNN-rand的表现略逊一筹。
引用
Convolutional Neural Networks for Sentence Classification
该种方法在文本分类任务中表现出色
基于卷积神经网络的文本分类模型
该模型在多个基准数据集上取得了优异的结果
