Convolutional Neural Networks for Sentence Classification
Yoon Kim, New York University, 2014 ACL
摘要
我们在句子级分类任务中预训练的词向量训练出的CNN上做了一系列的实验。我们展示了一个简单的带有参数调优以及静态向量的CNN模型,在多个基准上都实现了优异的结果。 我们也提出了对结构的简单修改——允许即使用特定任务以及静态向量。
1. Introduction
近年来, 深度学习模型已经在计算机视觉以及语音识别方面取得了显著成果。在自然语言处理方面,许多深度学习方面的工作方法都是应用于网络语言模型学习词向量表示以及在分类上对学习过的单词向量上进行组合。词向量(Word vector),通过一个隐藏层将词语从一个稀疏向量投射到一个低维向量空间,本质上是一个特征提取器,在向量中对词语的语义特征进行了编码。在这种密度表示方式下,在欧几里得距离或者余弦距离上,语义上相似的词语在更低维的向量中也更近。
在当前工作中,我们训练了一个简单的CNN,带有一个基于词向量的卷积层。词向量通过一个非监督的网络语言模型获得。这些向量由google新闻中1000亿各词语训练得来(Mikolov et al. 2013),而且是公用的。我们最初保持静态词向量,只是学习模型的其他参数。尽管有超参数的微调优,这个简单模型在多基准方面实现了很好的效果,说明预训练向量是通用特征提取器,可用于各种分类任务。通过微调来学习特定于任务的向量会得到进一步的改进。我们最后描述了一个对架构的简单的修改,允许通过拥有多通道来使用预训练向量以及基于特定任务的向量。
我们的工作在哲学上与Razavian et al. 2014很相似,它展示了图像分类上,从一个预训练的深度模型上获得的特征提取器在不同任务上的表现也很好,包括那些与之间特征提取器被训练的源任务非常不同的任务。
2. Model
图1的模型架构与Collobert et al.(2011)的CNN架构稍有不同。Xi是句子中第i个词语的一个k维向量。一个句子的长度为n(如果需要pad,则是pad以后的句子长度),表示为:

然后,我们在这个特征图C上应用了最大超时池化操作(Collobert et al.,2011 ),并且将特征图C的最大值C^作为这个特殊过滤器的特征。这个是为了获得每个特征图的最重要的特征。这个合用方案很自然地处理了不同的句子长度。
我们已经描述了一个过滤器提取一个特征的过程。这个模型应用了多个过滤器(拥有不同的窗口大小)去获得多个特征。这些特征组成了倒数第二层,而且被传给了一个全连接softmax层,这一层的输出是标签上的概率分布。

在一个模型的变体中,我们运用词向量的两个“通道”来进行实验,一个在训练过程中保持静态,一个通过反向传播进行调优。在图1 所描述的这个多通道的结构中,每个过滤器都被应用于两个通道,而且结果都被放入方程(2)中计算Ci。该模型在其他方面与单通道体系结构等效。
3. Regularization
对于正则化,我们在倒数第二层使用dropout约束权向量的l2-范数。在前向传播过程中,p比例的隐藏单元被随机Dropout(例如设置为0)避免了隐藏层的过拟合问题。

梯度只能通过未掩蔽的单位反向传播。在测试时,学习过的向量用p表示:w^=pw,
w^(没有dropout)被用来为看不见的句子打分。另外,我们对权重向量的l2范数进行了约束,通过对w进行缩放,使||w||2 = s,每当||w|| |2 > s经过梯度下降步后。
4. Datasets and Experimental Setup
我们在不同的基准上测试我们的模型,数据集的统计数据在表1中:

c:类别数目 l:平均句子长度 N:数据集大小 |V|:词汇大小 |Vpre|:在提前训练好词向量集中被表示的词的数量
Test:测试集大小(CV表示没有标准的训练/测试集划分,因此10折交叉验证被应用)。
MR:每篇影评只有一句话。分类包括检测正面/负面评论(Pang and Lee,2005)。
SST-1:斯坦福情感树银行是MR 的扩展,提供了train/dev/test分块,并有细粒度标签(非常正面、正面、中性、负面、非常负面),由Socher等人重新标记(2013)。
SST-2:与SST-1一样,但是去掉了中立的评论和二进制标签。
Subj:主观性数据集,其任务是将一个句子划分为主观性或客观性(Pang and Lee,2004)。
TREC:TREC问题数据-任务涉及到将一个问题分成6种问题类型(问题是否与人、位置、数字信息等有关)(Li and Roth,2002)。
CR:客户对各种产品(相机、mp3等)的评论。任务是预测积极的/负面评论(Hu and Liu,2004)。
MPQA:MPQA数据集的意见极性检测子任务(Wiebe et al.,2005)
5. Hyperparameters and Training
对于我们使用的所有数据集:修正性线性单元,过滤器窗口(h)为3,4,5,每个过滤器窗口都有100个feature map,dropout率§为0.5,l2约束(s)为3,以及mini批处理大小为50。这些值是通过在SST-2 dev集上的网格搜索选择的。
除了在开发集上提前停止之外,我们不会执行任何特定于数据集的调优。对于没有标准开发集的数据集,我们随机选择10%的训练数据作为开发集。训练是通过使用Adadelta更新规则(Zeiler,2012)对打乱的小批量进行随机梯度下降。
6. Pre-trained Word Vectors
在没有大的监督训练集的情况下,使用从无监督神经语言模型中获得的初始化词向量是一种改进性能的流行方法。我们使用了公开可用的word2vec向量,这些向量是从谷歌新闻中训练的1000亿个单词。向量的维数为300,使用连续词袋结构进行训练(Mikolov et al.,2013)。未出现在预训练词集中的词被随机初始化。
7. Model Variations
我们用这个模型的几种变体做了实验。
-
CNN-rand:我们的基准模型中,所有的单词都是在训练期间随机初始化和修改的。
-
CNN-static:一个用word2vec的预训练向量的模型。所有单词——包括随机初始化的未知单词——都保持不变,只学习模型的其他参数。
-
CNN-non-static:和上面一样,但是预先训练的向量会针对每个任务进行微调。
-
CNN-multichannel:一个有两组词向量的模型。每一组向量被视为一个“通道”,每个过滤器被应用到两个通道,但是梯度只通过一个通道反向传播。因此,该模型能够微调一组向量,同时保持另一组不变。两个通道都是用word2vec初始化的。
为了消除上述变异对其他随机因素的影响,我们消除了其他的随机性来源——cv -fold赋值,未知词向量的初始化,CNN参数的初始化——在每个数据集中保持它们的一致性。
8. Results and Discussion


本文探讨了卷积神经网络(CNN)在句子级分类任务中的应用,通过预训练的词向量,实现了一系列基准测试上的优秀结果。研究中提出的模型在多个自然语言处理任务上表现出色,包括情感分析、主题分类等。
978

被折叠的 条评论
为什么被折叠?



