使用CNN进行句子分类(Convolutional Neural Networks for Sentence Classification)

Yoon Kim在论文(2014 EMNLP) Convolutional Neural Networks for Sentence Classification提出TextCNN。
文章地址:https://arxiv.org/pdf/1408.5882.pdf

以下是翻译内容

摘要:
一个简单的CNN需要很少的超参和静态的vector就能够获得很好的结果,如果将静态的vector改为针对任务的vector,效果又会进一步提升。
本文的目的是对CNN的结果进行很少的改动就能够使其在静态和task-specific的vector上都能够使用。这里讨论的CNN,在7个任务中有4个比以往的结果表现的要好,包括情感分析和问题分类。

近些年来,深度学习模型在图像和语音识别的任务中已经取得了惊人的成就,随着自然语言处理的发展,越来越多人使用深度学习方法,运用神经语言模型来学习词向量的表示。词向量,由稀疏的one-hot模式,通过一层隐藏层映射到了低维向量空间。这本质上是在提取特征,用以在单词维度上编码语义特征。在稠密向量标识中,语义相近的向量同样在空间上也会很相近(欧式距离或者是cosine距离)。

CNN使用卷积层来处理局部特征,原本是为了计算机图像而发明。紧接着,CNN模型在NLP任务上也被证明是有效的,包括语义分析和搜索问题检索、句子见面和其他传统的NLP任务。在现阶段的任务中,我们训练一个简单的CNN模型,在无监督的神经语言模型训练出的词向量上加一层卷积层,这些词向量是由 Mikolov etal. (2013)在100w的谷歌新闻上训练,目前是可以公开获取到的。我们初始保持这些词向量不变,仅仅学习这个模型的其他参数。仅仅调了几个超参之后,这个简单的模型在几个基准上都取得了非常出色的成绩。这表明,提前训练出的向量是一种通用的特征提取器,可以在各种分类任务中使用。

2.模型

2.1正则化

那就是给倒数第二层,z = [ˆc1, . . . , cˆm] (注意,这里我们有m个过滤器), 而非使用y = w · z + b,对于前向反馈网络,dropout使用

y = w · (z ◦ r) + b,其中◦ 代表的是点积,而r属于Rm,是一个“掩藏”向量,它是一个概率p为1的伯努利随机变量(没整明白)。

梯度只会由那些没有被掩藏的单元反馈。在测试阶段,学到的权重向量要乘以p,例如twˆ = pw, wˆ 被用来(不加dropout)对那些未出现的句子打分。我们额外加上了l2范式限制,在梯度下降步骤之后,对于那些||w||2 > s ,我们令||w||2 = s 

 

3.数据集和实验步骤

我们在几个基准上测试了我们的模型,结果如表格1所示。

表格1:每个数据集的统计数据

c:目标类目的个数

l:句子的平均长度

N:数据集的大小

|V|:词汇的大小

|Vpre|:有多少词语出现在预训练的词向量集合中

Test:测试集的大小(CV意味着没有固定的大小,使用10折交叉验证)

MR:Movies reviews,影评,每个影评只有1句,目标是区分正向情感和负向情感。

SST-1:Stanford Sentiment Treebank,MR的升级,提供了train/dev/test三个部分,并且被Socher et al. (2013).4微调成了5种标签(非常正向,正向,中立,负向,非常负向)。

SST-2:和SST-1一致,但是去除了中立标签,只留下了正向、负向2种标签。

Subj: Subjectivity dataset,判断一个句子是主观的还是客观的 (Pang and Lee, 2004).

TREC:TREC question dataset,判断问题是属于人类、地点、数字信息或者是其他(一共6种分类),(Li and Roth, 2002).5

CR: Customer reviews,数据集是用户对多个产品的评价,目标是预测正向、负向评价。

MPQA: MPQA dataset (Wiebe et al., 2005).7,对数据集上评价两极化的检测。

上述数据集地址:

3 https://www.cs.cornell.edu/people/pabo/movie-review-data/

4 http://nlp.stanford.edu/sentiment/   (Data is actually provided at the phrase-level and hence we train the model on both phrases and sentences but only score on sentences at test time, as in Socher et al. (2013), Kalchbrenner et al. (2014), and Le and Mikolov (2014). Thus the training set is an order of magnitude larger than listed in table 1.)

5 http://cogcomp.cs.illinois.edu/Data/QA/QC/

6 http://www.cs.uic.edu/∼liub/FBS/sentiment-analysis.html

7 http://www.cs.pitt.edu/mpqa/

3.3模型变种

• CNN-rand:基准模型,所有单词随机初始化,在训练中可变。

• CNN-static:模型使用word2vec预训练好的向量,之前未预先训练好的向量则随机初始化。所有向量在训练过程中均保持不变,只训练其他参数。

• CNN-non-static:基本同上,唯一的区别是提前训练好的向量是可被微调的。

• CNN-multichannel:该模型有2组词向量,每组词向量都可以看作是一个通道,都会使用所有的过滤器,但是只有一个通道可以反馈梯度。因而,这个模型就是对一组向量进行微调,同时保持另一组向量不变。两组向量都是由word2vec预训练好的。

为了避免随机因素对实验的干扰,我们消除了实验中可能存在的随机性,比如训练数据的划分、未知词语的初始化,CNN参数的初始化,保证在每个数据集中,这些模型的这几个因素都保持一致。

4.结果与讨论

表格2:Results of our CNN models against other methods.

RAE: Recursive Autoencoders with pre-trained word vectors from Wikipedia (Socher et al., 2011).

MV-RNN: Matrix-Vector Recursive Neural Network with parse trees (Socher et al., 2012).

RNTN: Recursive Neural Tensor Network with tensor-based feature function and parse trees (Socher et al., 2013).

DCNN: Dynamic Convolutional Neural Network with k-max pooling (Kalchbrenner et al., 2014).

Paragraph-Vec: Logistic regression on top of paragraph vectors (Le and Mikolov, 2014).

CCAE: Combinatorial Category Autoencoders with combinatorial category grammar operators (Hermann and Blunsom, 2013).

Sent-Parser: Sentiment analysis-specific parser (Dong et al., 2014).

NBSVM, MNB: Naive Bayes SVM and Multinomial Naive Bayes with uni-bigrams from Wang and Manning (2012).

G-Dropout, F-Dropout: Gaussian Dropout and Fast Dropout from Wang and Manning (2013).

Tree-CRF: Dependency tree with Conditional Random Fields (Nakagawa et al., 2010).

CRF-PR: Conditional Random Fields with Posterior Regularization (Yang and Cardie, 2014).

SVMS: SVM with uni-bi-trigrams, wh word, head word, POS, parser, hypernyms, and 60 hand-coded rules as features from Silva et al. (2011).

 

我们模型与其他模型的结果如表格2所示,我们的基准模型(CNN-rand,所有词语随机初始化)表现的并不好。尽管我们已经预计到提前训练好的向量在表现上会有所提升,但是提升的幅度完全超乎我们的预料。仅仅是一个用固定向量的简单模型(CNN-static)的表现也非常的好,结果与那些使用了更复杂的池化机制(Kalchbrenner et al., 2014)或者是要提前计算语法树(Socher et al., 2013).的复杂的深度学习模型的表现不相上下。结果证实了那些提前训练的向量是有用,普遍的特征提取器,可以被用于其他的数据集。微调那些提前训练好的向量可以进一步提升效果。

4.1多通道模型vs单通道模型

我们初始希望的是多通道模型可以预防过拟合(通过学到的向量和初始向量不会偏离的太远确定),因而可以比单通道模型的效果更好,尤其是对小数据集而言。然后结果却和我们预期的不完全一致,因此,有必要对微调过程进行正则化。举例而言,不必对可变的部分使用一个额外的通道,可以只有一个通道,但是要增加可以在训练中可以被修改的维度。

4.2静态和动态的表现

和可变的单通道模型一样,多通道模型可以对可变通道的部分进行微调,使其对正在处理的数据集更加具有针对性。举个例子,在word2vec中,和good最相似的词是bad,这可能是由于good和bad在语法上基本是等价的,但是在可变单通道的模型中,使用了SST-2数据集微调之后的词向量,就不再是这么一回事了。按理来说,在表示情感的时候,good和nice更为相近,而不是great,这一点在学好的向量中也有所体现。

对于那些没有在预训练的集合中出现的词语,我们随机初始化过后,微调允许他们去学习更有意义的表示:网络学习到感叹号和激烈的情感表达有关,而句号则更内敛。

4.3进一步观察

我们的报告还包括一些进一步的实验和观察:

Kalchbrenner et al. (2014) 报告中得到很差结果的CNN和我们文中所说的单通道的CNN本质上是一样的结构,例如,他们的r Max-TDNN (Time Delay Neural Network),也是对词语的随机初始化,在SST-1数据集上仅获得了37.4%,而我们的模型则获得了45.%.我们将这一差别归功于我们的CNN有更大的容量(多种过滤器宽度和特征map)

dropout被证明是一种良好的正则化手段,我们可以使用一个比预期更大的网络来进行训练,而仅仅只需要用dropout来正则化它。dropout在所有数据集上,对比那些没有用dropout的模型都提升了2%-4%.

在随机初始化那些没有出现在word2vec中的单词时,每个维度都从U[−a, a]中抽样使我们的表现获得了小幅提升。其中,a是使得随机初始化的向量和预先训练好的向量有一只的方差。之后,使用更复杂的方式来和减小预训练的向量分布之间的差距,这是否能使结果获得进一步的提升也是个有趣的问题。

我们使用Collobert et al. (2011)使用Wikipedia,8训练出来的词向量进行了一些简单的实验,发现word2vec表现更优一点。我们不清楚这是由于Mikolov et al. (2013)’s 的结构引起的还是由于谷歌新闻数据集有1亿单词。

Adadelta (Zeiler, 2012) 和 Adagrad (Duchi et al., 2011)表现差不多,但是需要多几次迭代 

5.结论

在现阶段的工作中,我们描述了一些列基于word2vec使用CNN网络的实验。除了少量的超餐之外,一个只有一层卷积层的简单的CNN表现的已经非常好了。我们的结果只是更进一步证明了预训练好的词向量在NLP的深度学习中,是一个很重要的组成成分。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答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 模型为句子分类问题提供了一个简单有效的解决方案。在实践中,需要根据具体的任务选择合适的模型结构和参数设置,才能取得最佳效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值