论文阅读-Convolutional Neural Networks for Sentence Classification(TextCNN)
目录
模型原理
1.1 输入层
1.2 卷积层
1.3 池化层
1.4 全连接层
模型特点
YoonKim在2014EMNLP发的论文。
TextCNN模型作为文本分类模型,通过验证实验以及业界的共识,在文本分类任务中,CNN模型已经能够取到比较好的结果,虽然在某些数据集上效果可能会比RNN稍差一点,但是CNN模型训练的效率更高。
所以,一般认为CNN模型在文本分类任务中是兼具效率与质量的理想模型。
模型原理
与传统图像的CNN网络相比,TextCNN的输入层为Embedding词向量, 卷积使用一维卷积。
整个模型由四部分构成:输入层、卷积层、池化层、全连接层。
1.1 输入层
输入是一个固定长度L的文本序列。L可以前期通过语料分析得到。如果输入的文本比L长则截断,短的话则需要补充。然后将之进行向量化。作者在这里给了几种方式:
(1)static(静态词向量)
直接使用预训练模型(word2vec、fastText或者Glove)得到词向量,并且在TextCNN模型训练过程中不再调整词向量。
(2)non-static(非静态词向量)
预训练的词向量作为初始化, 训练过程中再对词向量进行微调。
(3)multiple channel(多通道)
用 static 与 non-static 两种词向量初始化方式来搭建两个通道。和图像中RGB类似。
(4)CNN-rand(随机初始化)
指定词向量的维度后,模型对不同单词的向量作随机初始化, 而在后续有监督学习过程中,通过反向传播更新输入层的各个词汇对应的词向量。
1.2 卷积层
只进行一维的滑动,即kernel和词向量等宽。
1.3 池化层
这里使用最大池化,既可以减少训练参数,又保证在不定长卷积层输出上获得一个顶层的全连接层的输入。
通过卷积和池化,模型可以从输入中利用局部信息提取初级特征,并进一步组合成高级特征。但是这些操作也失去了输入文本中词汇顺序、位置等信息,
1.4 全连接层
通过全连接进行分类。这里使用了一层隐层的全连接网络,实际使用也可以使用多层全连接。
模型特点
1. 优点:结构简单、训练快、效果好,避免传统学习模型特征选择的过程。
2. 缺点:可解释性不强,卷积和池化操作造成输入信息丢失(如词汇顺序、位置)。使得模型难以学习文本序列中否定、反义等信息。
