论文《Convolutional Neural Networks for Sentence Classifification》的学习笔记

原文及译文
源码

1. Introduction

  1. 作者讲述了深度学习在计算机视觉,语音识别等领域拥有了显著的成果。近年来在自然语言处理中,主要包括词向量的研究,以及训练文本,将文本转化为词向量进行进一步的文本分类。将之前稀疏的1-V(词典的大小)转化为特定维度的向量,相当于初步将文本中的情感特征加在了词向量中。通过词向量的转化,语义相近的词距离也相近,比如余弦距离。
  2. 第二段讲述了利用CNN卷积器来提取特征。最开始被应用在计算机视觉,但是后来被研究应用在了自然语言处理里面的语义解析、搜索、语句模型等传统的自然语义处理任务,并且取得了显著的效果。
  3. 第三段介绍本文的内容,本文的词向量来源于谷歌利用word2vec模型预训练的Google News词向量。在本文中分两种通道,一种是static(预训练的词向量保持不变),一种是nonstatic(预训练的词向量也会被调整)。
  4. 第四段说本文应用于多个领域的分类问题,每个领域模型提取不同的特征,但都能适用。

2. Model


Figure 1.是Collobert等人的CNN架构的一个轻微变体。模型中每个句子中的词(中文需要先进行分词)转化为词向量,词向量的维度为k,如果一个句子中的词个数为m,则该句最终表示为 m * k 的词向量矩阵。假设文档中最长的句子中的词个数为n,则 小于n 的句子填充为n。最终得到的词向量矩阵为 n * k。

1-dim卷积器的长度(过滤窗口) h h h为3、4、5。卷积器尺度为3 * k,4 * k, 5 * k。卷积器数量均为100,有100个特征映射。

3种卷积器分别与矩阵做卷积,得到(n-h+
1100的矩阵,卷积过程公式如下,其中b为偏置常数
c i = f ( w ⋅ x i : i + h − 1 + b ) ( 1 ) c_i=f(w·x_{i:i+h-1}+b) (1) ci=f(wxi:i+h1+b)(1)

(n - h + 1)* 1 * 100的矩阵然后对列最大值池化,得到1 * 1 * 100, 即1*100的向量,最终将3中卷积器连接在一起,得到1 * 300的向量。

将1 * 300的词向量经过全连接层,做softmax二分类。 如公式(2)所示。

y = w ⋅ ( z ∘ r ) + b ( 2 ) y=w·(z \circ r)+b (2) y=w(zr)+b(2)

这里用到了dropout正则化除去过拟合,其中 ∘ \circ 是元素级乘法算子, r ∈ R m r∈R^m rRm是伯努利随机变量的“masking”向量,概率 p p p为1。梯度只通过未被屏蔽的单元进行反向传播。在测试时,学习到的权值向量按p进行缩放,使 w ^ = p w \hat w=pw w^=pw,并使用 w ^ \hat w w^(未使用dropout正则化)对未出现的句子进行评分。此外,经过一个梯度下降的步骤后,我们通过重新调整 w w w来约束权向量的l2规范,每当 ∣ ∣ w ∣ ∣ 2 > s ||w||_2>s w2>s时, ∣ ∣ w ∣ ∣ 2 = s ||w||_2=s w2=s

实验中将dropout设为5, l 2 l_2 l2为0.3,最小batch为50。通过反向梯度下降训练模型参数。这些值是通过在SST-2开发集上的网格搜索来选择的。

3. Datasets

请添加图片描述

  • MR:电影影评,每篇评论有一句话。分类包括检测正面/负面评价。
  • SST-1:Stanford Sentiment Treebank-MR的扩展,但提供了训练/开发/测试分割和细粒度标签(非常正面、正面、中性、负面、非常负面),由Socher等人重新标记。
  • SST-2:与SST-1相同,但删除了中性的评论,并为二分类标签。
  • Subj:主观性数据集,其中的任务是将一个句子分类为主观的或客观的。
  • TREC:TREC问题数据集,任务包括将一个问题划分为6种问题类型(该问题是否是关于人、位置、数字信息等)。
  • CR:客户评价各种产品(相机、mp3等)。任务是预测正面/负面评价
  • MPQA:MPQA数据集的意见极性检测子任务。

4. Experiments

  • CNN-rand:在基线模型中,所有的单词都被随机初始化,然后在训练过程中进行修改。
  • CNN-static:从word2vec的预先训练向量的模型。所有的单词,包括随机初始化的未知单词,都保持静态,只学习模型的其他参数。
  • CNN-non-static:与上面相同,但预先训练的向量对每个任务都进行了微调。
  • CNN-multichannel:一个带有两组词向量的模型。每一组向量都被视为一个“通道”,每个滤波器都应用于这两个通道,但是梯度只通过其中一个通道进行反向传播。因此,该模型能够微调一组向量,同时保持另一组静态。这两个通道都用word2vec初始化的。

1.词向量是随机生成的特度维度的向量。
2.词向量是使用预先训练好的谷歌word2vec词向量。
3.词向量作为模型的参数不断调整。
4.多通道:2和3相结合,在卷积层,将两通道结果值相加

结果如图所示
请添加图片描述

5. Analysis and Conclusion

  • CNN-rand效果并不是特别显著,CNN-static效果突然上升,效果显著。说明使用预训练的词向量对结果起到了很大的作用。
  • 单通道与多通道:本来希望多通道的效果更好,多通道能够防止过拟合,实际上两种方法的效果在特定的数据集中效果有优有劣。
  • Kalchbrenner et al. 报告了CNN的结果,该结果与本文单通道模型具有本质上相同的架构。例如,他们的随机初始化单词的Max-TDNN(时间延迟神经网络)在SST-1数据集上获得了37.4%,而本文的模型为45.0%。这种差异归因于本文的CNN具有更多的容量(多个过滤器宽度和特征图)。
  • Dropout被证明是一个很好的正则化器,因此使用一个大于必要的网络,并简单地让Dropout正则化它是很好的。Dropout持续增加了2%-4%的相对表现。
  • 当随机初始化不在单词2vec中的单词时,通过从 U [ − a , a ] U[−a,a] U[aa]中采样每个维度,得到了轻微的改进,使随机初始化的向量与预先训练的向量具有相同的方差。在初始化过程中使用更复杂的方法来反映预训练向量的分布是否会进一步改进,这将是一件有趣的事情。
  • 简要地实验了由Collobert et al.训练的另一组公开可用的词向量。在维基百科上,发现word2vec的性能要优越得多。目前尚不清楚这是因为米科洛夫等人的的架构还是1000亿字的谷歌新闻数据集。
  • Adadelta(Zeeler,2012)给出了与Adagrad (Duchi et al., 2011) 类似的结果,但需要的epochs更少。

参考

大大kc 博客
晟沚 博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值