论文笔记《Convolutional Neural Networks for Sentence Classification》

论文地址:http://arxiv.org/pdf/1408.5882

Abstract

摘要里面讲了如下几点:

  1. 在sentence classfication任务中,我们用cnn进行了一系列实验。
  2. 直接用word2vec得到的static vectors,超参不怎么调就能得到比较好的结果。
  3. 对word2vec的word vectors进行针对性的fine-tuning,会得到更好的结果。
  4. 另外,对cnn模型进行了小改动:将static vectors和non static vectors变成cnn模型中的两个channels,尤如图像中的rgb三通道。
  5. 测试了7个tasks,有4个tasks得到state of art的结果,其中包括sentiment analysis和question classification。

Model


整个论文中用到的cnn模型就是这样的。
xiRk xi∈Rk表示一个sentence中的第i个word,记为 xi xi,它是一个k维的词向量。上图中,一排就代表一个词向量。
一个sentence中的word个数为n。

关于convolution

filter wRhk w∈Rhk意思是作为filter的权重矩阵是h*k的。如果h=2,就是相邻的两个word做一次卷积,如果h=3,即为3个word做一次卷积,以此类推。
卷积之后的结果再经过激活函数 f f就得到了feature,记为 ci ci。它是由 xi:i+h1 xi:i+h−1相邻的h个words卷积得到的值,再activation之后的值,也是当前层的输出。
卷积之后的值: wxi:i+h1+b w⋅xi:i+h−1+b
输出的feature值 ci=f(wxi:i+h1+b) ci=f(w⋅xi:i+h−1+b)
窗口大小: h h
这样之后,一个n长度的sentence就有[ x1:h x1:h,  x2:h+1 x2:h+1 x3:h+2 x3:h+2,…, xnh+1:n xn−h+1:n]这些word windows,卷积后的结果就是 c c = [ c1,c2,,cnh+1 c1,c2,…,cn−h+1],维度为(1,n-h+1)
然后进行池化max pooling,选出最重要的feature。pooling scheme可以根据句子的长度来选择。

关于feature

一个filter只能提取一种feature,论文中的model用多种filter(不同的window size)来获取多种features。

关于two channels of word vectors

one channel将word2vec得到的结果直接static的传入整个模型,另一个channel在BP训练过程中要进行fine-tune。每一个filter都要分别应用到这两个channels上。
例如上图中就能看出,系统有2 filters,对2个channels分别卷积后得到4 stacks。

Regularization

一句话总结,dropout+l2-norm。

dropout

有一点需要注意:
train time按一定概率p对每层的输入神经元进行dropout。
test time时将学到的weights rescale成 ŵ =pw w^=p∗w,得到的 ŵ  w^应用于unseen sentences,期间不需要dropout。

L2 norm

|w|2=s |w|2=s whenever  |w|2>s |w|2>s

Datasets and Experimental Setup

MR : Movie reviews. positive/negative
SST-1 : an extention of MR with train/dev/test splits and very fine-grained labels.
SST-2 : same as SST-1 but without neutral reviews.
Subj : classify a sentence as being subjective or objective.
TREC : classify a question into 6 question types.
CR : customer reviews. predict positive or negative.
MPQA : opinion polarity detection.

Hyperparameters and Training

  • rectified linear units
  • filter windows(h) : 3, 4, 5
  • 100 feature maps for each filter window
  • mini-batch size : 50
  • adadelta update rule

以上参数是由grid search 在SST-2 dev set上选出来的。

所做的唯一dataset-specific fining : early stopping on dev set

Pre-trained Word Vectors

当手头上没有large supervised training dataset的时候,用word2vec(或相似的unsupervised nlp模型得到)初始化word vectors能提高performance。

word2vec vectors

  • publicly available
  • trained on 100 billion words from Goo
  • dimension of 300
  • 没出现在如word2vec这类pre-trained set中的words将随机初始化

Model Variations

  • CNN-rand : 所有的word vector都是随机初始化的,在训练过程中更新
  • CNN-static : word vector用word2vec得出的结果,在整个train process中所有的words保持不变,只学习其他参数
  • CNN-non-static : pretrained vector在训练过程中要被fine-tuned
  • CNN-multichannel : two sets of word vectors. 初始化时两个channel都直接赋值word2vec得出的结果,每个filter也会分别applied到两个channel,但是训练过程中只有一个channel会进行BP

模型中除了这些参数改变,其他参数相同。

Results and Discussion

用了pre-trained vectors(cnn-static)就有明显的提高。pretrained vector相当于“universal” feature extractors,fine-tuned后可以在很多tasks上表现出色。

Multichannel vs. Single Channel Models

一句话总结,加一个通道之后的效果是mixed。

Static vs. Non-static Representations

一句话,non-static更适应specific task

Further Observations

  • Max-TDNN效果只有37.4%但是我们有45%的原因是我们的cnn有更大的capacity,多个filter width(3,4,5)和多个feature maps(100)
  • dropout是很棒的regularization方法,可以使得network更大也不会过拟合,大概有2%-4%的提升。
  • Adadelta和Adagrad得到的结果差不多,但是fewer epochs

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 卷积神经网络 (Convolutional Neural Networks, CNN) 是一种常用于文本分类的深度学习模型。它通过卷积和池化层来提取文本中的特征,并使用全连接层来进行分类。 CNN 的一个优点是能够处理变长的输入,并且不需要对文本进行预处理。 ### 回答2: 卷积神经网络是一种深度学习方法,用于对文本进行分类。在训练过程中,这种网络可以自动学习输入数据的特征表示。卷积神经网络中的卷积层可以识别输入中的局部模式,这些局部模式组合起来形成更高级别的特征,最终帮助分类器确定类别。对于文本分类问题,卷积神经网络的输入是文本的词嵌入向量,可以从先验知识中自动学习特征。 在一些文本分类任务中,卷积神经网络已经取得了很好的表现。文本分类任务通常被分为两种类型:二元分类和多分类。二元分类任务是指将数据分为两类,例如垃圾邮件和非垃圾邮件。多类分类任务是指将数据分为多类,例如新闻分类。在这两种任务中,卷积神经网络都能够进行有效的分类。 对于二元分类任务,卷积神经网络可以使用一个输出节点,并使用 sigmoid 激活函数将输入映射到 0 到 1 之间的概率。对于多分类任务,卷积神经网络可以使用多个输出节点,每个节点对应一个类别,并使用 softmax 激活函数将输入映射到 0 到 1 之间,并且所有输出节点的和为 1。 要训练卷积神经网络进行文本分类,需要对模型进行三个主要的训练步骤。首先,需要构建词嵌入矩阵,该矩阵将文本中的每个词都映射到一个向量。然后,需要将文本数据转换为卷积神经网络所需的格式。最后,需要对模型进行训练,并根据测试数据进行评估。 总之,卷积神经网络已经被证明是一种强大的工具,可以用于文本分类等任务。在处理文本数据时,卷积神经网络可以自动学习输入数据的特征表示,并使用这些特征来确定文本的类别。 ### 回答3: 卷积神经网络(CNN)是一种深度学习模型,它在图像识别、计算机视觉和自然语言处理中表现出色。最近几年,CNN 在句子分类中也获得了很大的成功。 CNN 句子分类模型的输入是一个序列,输出是类别标签。与传统的 RNN 模型不同之处在于,CNN 可以使每个神经元只能捕获一个固定大小的区域的特征,从而加快模型的训练和降低了模型的复杂度。 CNN 句子分类模型的基本架构包括词嵌入层、卷积层、池化层和全连接层。词嵌入层将输入的文本转化为向量表示。卷积层通过滑动窗口对输入的序列进行卷积操作,提取出局部特征。池化层在每个滑动窗口上提取出一个最大值或平均值,进一步降低维度。最后,全连接层将提取出的特征传递到输出层进行分类。 CNN 句子分类模型的优点在于它可以处理不定长的文本序列,并在仅有少量特征的情况下表现出色。但是,CNN 模型的缺点在于不善于处理长期依赖关系,例如情感分析中的Irony识别。为了解决这个问题,可以引入 RNN 或 Transformer 等模型。 总的来说,CNN 模型为句子分类问题提供了一个简单有效的解决方案。在实践中,需要根据具体的任务选择合适的模型结构和参数设置,才能取得最佳效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值