《Convolutional Neural Networks for Sentence Classification》
论文来源: Kim Y. Convolutional neural networks for sentence classification[J]. arXiv preprint arXiv:1408.5882, 2014.
文章链接:http://blog.csdn.net/rxt2012kc/article/details/73739756
1.Introduction
在Introduction部分中,第一段作者讲述了深度学习在计算机视觉,语音识别等领域拥有了显著的成果。近年来在自然语言处理中,主要包括词向量的研究,以及训练文本,将文本转化为词向量进行进一步的文本分类。将之前稀疏的1-V(词典的大小)转化为特定维度的向量,相当于初步将文本中的情感特征加在了词向量中。通过词向量的转化,语义相近的词距离也相近,比如余弦距离。
第二段讲述了利用CNN卷积器来提取特征。最开始被应用在计算机视觉,但是后来被研究应用在了自然语言处理里面的语义解析、搜索、语句模型等传统的自然语义处理任务,并且取得了显著的效果。
第三段介绍本文的内容,本文的词向量来源于谷歌利用word2vec模型预训练的Google News词向量。在本文中分两种通道,一种是static(预训练的词向量保持不变),一种是nonstatic(预训练的词向量也会被调整)。
第四段说本文应用于多个领域的分类问题,每个领域模型提取不同的特征,但都能适用。
2.Model
如Figure1所示,每个句子中的词(中文需要先进行分词)转化为词向量,词向量的维度为k,如果一个句子中的词个数为m,则该句最终表示为 m * k 的词向量矩阵。假设文档中最长的句子中的词个数为n,则 小于n 的句子填充为m。最终得到的词向量矩阵为 n * k。
1维卷积器的长度h分别为3,4,5。卷积器的尺度为3 * k,4 * k, 5 * k。卷积器的数量分别为n0, n1, n2,在实验中,都取100。
3种卷积器与矩阵分别做卷积,得到(n - h + 1)* 1 * 100的矩阵, 卷积过程如公式(1)所示。
(n - h + 1)* 1 * 100的矩阵然后对列最大值池化,得到1 * 1 * 100, 即1*100的向量,最终将3中卷积器连接在一起,得到1 * 300的向量。
-
将1 * 300的词向量经过全连接层,做softmax二分类。 如公式(2)所示。
f(x)=w∗z+b(2) - 在全连接神经网络中用到了dropout去除过拟合,dropout率为0.5,l2正则为0.3,最小batch为50。
- 通过反向随机梯度下降,训练模型参数。
3.Datasets and Experimental Setup
- MR:Moviereviewswithonesentenceperre- view. Classification involves detecting posi- tive/negative reviews (Pang and Lee, 2005).3
- SST-1: Stanford Sentiment Treebank—an extension of MR but with train/dev/test splits provided and fine-grained labels (very pos- itive, positive, neutral, negative, very nega- tive), re-labeled by Socher et al. (2013).4
- SST-2: Same as SST-1 but with neutral re- views removed and binary labels.
- Subj: Subjectivity dataset where the task is to classify a sentence as being subjective or objective (Pang and Lee, 2004).
- TREC: TREC question dataset—task in- volves classifying a question into 6 question types (whether the question is about person, location, numeric information, etc.) (Li and Roth, 2002).5
- CR: Customer reviews of various products (cameras, MP3s etc.). Task is to predict pos- itive/negative reviews (Hu and Liu, 2004).6
- MPQA: Opinion polarity detection subtask of the MPQA dataset (Wiebe et al., 2005).7
实验
1.词向量是随机生成的特度维度的向量。
2.词向量是使用预先训练好的谷歌word2vec词向量。
3.词向量作为模型的参数不断调整。
4.多通道:2和3相结合,在卷积层,将两通道结果值相加。
实验结果如下图所示:
-
结果分析:
CNN-rand效果并不是特别显著,CNN-static效果突然上升,效果显著。说明使用预训练的词向量对结果起到了很大的作用。
单通道与多通道:本来希望多通道的效果更好,多通道能够防止过拟合,实际上两种方法的效果在特定的数据集中效果有优有劣。
4.结论
论文都是基于词向量进行的卷积操作,事实证明,预训练的词向量对实验效果有很大的提升。
5.github链接
https://github.com/rxt2012kc/cnn-text-classification-tf
本人会不断加入新的注释,实验等等。