基于卷积神经网络的句子分类外文翻译资料

 2022-12-19 18:05:22

Convolutional Neural Networks for Sentence Classification

Yoon Kim New York University yhk255@nyu.edu

Abstract

We report on a series of experiments with convolutional neural networks (CNN) trained on top of pre-trained word vec- tors for sentence-level classification tasks. We show that a simple CNN with lit- tle hyperparameter tuning and static vec- tors achieves excellent results on multi- ple benchmarks. Learning task-specific vectors through fine-tuning offers further gains in performance. We additionally propose a simple modification to the ar- chitecture to allow for the use of both task-specific and static vectors. The CNN models discussed herein improve upon the state of the art on 4 out of 7 tasks, which include sentiment analysis and question classification.

Introduction

Deep learning models have achieved remarkable results in computer vision (Krizhevsky et al., 2012) and speech recognition (Graves et al., 2013) in recent years. Within natural language process- ing, much of the work with deep learning meth- ods has involved learning word vector representa- tions through neural language models (Bengio et al., 2003; Yih et al., 2011; Mikolov et al., 2013) and performing composition over the learned word vectors for classification (Collobert et al., 2011). Word vectors, wherein words are projected from a sparse, 1-of-V encoding (here V is the vocabulary size) onto a lower dimensional vector space via a hidden layer, are essentially feature extractors that encode semantic features of words in their dimen- sions. In such dense representations, semantically close words are likewise close—in euclidean or cosine distance—in the lower dimensional vector space.

local features (LeCun et al., 1998). Originally invented for computer vision, CNN models have subsequently been shown to be effective for NLP and have achieved excellent results in semantic parsing (Yih et al., 2014), search query retrieval (Shen et al., 2014), sentence modeling (Kalch- brenner et al., 2014), and other traditional NLP tasks (Collobert et al., 2011).

In the present work, we train a simple CNN with one layer of convolution on top of word vectors obtained from an unsupervised neural language model. These vectors were trained by Mikolov et al. (2013) on 100 billion words of Google News, and are publicly available.1 We initially keep the word vectors static and learn only the other param- eters of the model. Despite little tuning of hyper- parameters, this simple model achieves excellent results on multiple benchmarks, suggesting that the pre-trained vectors are lsquo;universalrsquo; feature ex- tractors that can be utilized for various classifica- tion tasks. Learning task-specific vectors through fine-tuning results in further improvements. We finally describe a simple modification to the archi- tecture to allow for the use of both pre-trained and task-specific vectors by having multiple channels.

Our work is philosophically similar to Razavian et al. (2014) which showed that for image clas- sification, feature extractors obtained from a pre- trained deep learning model perform well on a va- riety of tasks—including tasks that are very dif- ferent from the original task for which the feature extractors were trained.

Model

The model architecture, shown in figure 1, is a slight variant of the CNN architecture of Collobert et al. (2011). Let xi Rk be the k-dimensional word vector corresponding to the i-th word in the sentence. A sentence of length n (padded where

isin;

Convolutional neural networks (CNN) utilize

layers with convolving filters that are applied to

arXiv:1408.5882v2 [cs.CL] 3 Sep 2014

1https://code.google.com/p/word2vec/

wait for the video and do nt rent it

n x k representation of sentence with static and non-static channels

Convolutional layer with multiple filter widths and feature maps

Max-over-time pooling

Fully connected layer with dropout and softmax output

Figure 1: Model architecture with two channels for an example sentence.

necessary) is represented as

x1:n = x1 oplus; x2 oplus; . . . oplus; xn, (1)

where is the concatenation operator. In gen- eral, let xi:i j refer to the concatenation of words xi, xi 1, . . . , xi j. A convolution operation in- volves a filter w Rhk, which is applied to a window of h words to produce a new feature. For example, a feature ci is generated from a window of words xi:i hminus;1 by

oplus;

isin;

ci = f (w · xi:i hminus;1 b). (2)

Here b R is a bias term and f is a non-linear function such as the hyperbolic tangent. This filter is applied to each possible window of words in the sentence x1:h, x2:h 1, . . . , xnminus;h 1:<sub

剩余内容已隐藏,支付完成后下载完整资料</sub


基于卷积神经网络的句子分类

Yoon Kim

纽约大学

摘要:当本文介绍了一系列基于预先训练词向量进行句级文本分类的卷积神经网络。我们发现,一个进行少量超参数优化和静态词向量的简单CNN就能在多个基准检测中获得很好的结果。而使用进行专长任务学习的词向量,可进一步提高性能。此外,本文还提出了一个对一般CNN结构的改动,可使网络同时使用任务专长词向量和静态预训练词向量。本文讨论的CNN网络提高了七项分类任务中四项的水平,包括情感分析和问题分类。

1 介绍

近年来,深度学习模型在计算机视觉(Krizhevsky et al.,2012)和语音识别(Graves et al., 2013)方面取得了巨大的成就。在自然语言处理领域,大多数深度学习方法都引入了通过自然语言模型(Bengio et al., 2003; Yih et al., 2011; Mikolov et al., 2013)学习词向量的表达,并在学习得到的词向量基础上进行分类(Collobert et al., 2011)。在词向量(Word vectors)中,单词经过一个隐层,从稀疏的1-of-V(V为词典容量)编码的向量映射到低维向量空间。这个隐层本质是一个特征提取器,它将单词语义特征编码到词向量上。在这样的密集式表达下,语义相近的词语在低维向量空间上的欧式距离或余弦距离也是相近的。

卷积神经网络(CNN)使用用于提取局部特征的卷积层(LeCun et al., 1998)。CNN模型最初是为计算机视觉研究而发明的,后来被证明对NLP有效,并在语义分析(yih等人,2014年)、搜索查询检索(Shen等人,2014年)、句子模型(kalch-Brenner等人,2014年)和其他传统NLP任务(Colobert等人,2011年)等方面取得了出色成果。

在本次工作中,我们从一个无监督自然语言模型获取了词向量,并在此基础上训练了一个仅有一层卷积的简单卷积神经网络。这些词向量由Mikolov等人在Google News中的1000亿个单词上训练得出,这些资源目前是向公众开放的。我们最初仅静态使用这些词向量而只学习网络中的其他参数。尽管只进行了极少的超参数调整,这一简单模型就已经在多个测试集上也取得了极佳的成绩,这表明预训练词向量是一类通用的特征向量,可以在不同的分类任务中直接使用。而通过学习调整,训练针对专项任务的词向量可进一步提高性能。最后,我们还对网络结构做了简单的调整,通过加入多通道,让网络结构可以同时利用预训练词向量和针对专项任务的词向量。

我们的工作在宏观思维上,与Razavian等人(2014)提出的用于图片分类的模型相似,通过预训练的深度学习模型得到的特征提取器能在各种任务上表现出良好的成绩,包括哪些与原始任务区别很大的任务。

2 模型

模型的结构如图一所示,是Collobert等人在2011年提出的CNN模型的一个简单变体。

图一 双通道网络模型结构

令x_iisin;R^k表示句子中第i个词的k维词向量。一个包含n个单词的句子(必要时可填充)可以表示成:
x_(1:n) = x_1oplus;x_2oplus;...oplus;x_n (1)
这里oplus;表示拼接操作。一般来说让x_(i:i j)表示单词x_i,,x_(i 1),...,x_(i j)的拼接。一个卷积操作涉及一个滤波器 w Rhk,应用在一个h个单词的窗口产生一个新的特征。例如,特征c_i是对单词窗口x_(i: i h-1)应用如下公式产生的:

c_i = f(w∙x_(i:i h-1) b) (2)

这里bisin;R是偏置项,f是一个非线性函数如tanh。该滤波器应用在句子中{x_(1∶ h ), x_(2∶h 1),...,x_(n h-1∶n) }每一个可能的单词窗口产生一个特征映射:
c=[c_1,c_2,...,c_(n h-1) ](3)
这里cisin;R^(n-h 1)。然后我们对特征映射采用最大池化策略(Collobert et al., 2011)即取最大的值 c=max{c}作为对应此滤波器的特征。此思路是去捕获最重要的特征——每个特征映射中最大的值。最大池化可以自然处理不同的句子长度。
我们已经描述通过一个滤波器抽取一个特征描述这个过程。使用多个滤波器(不同的窗口大小)的模型可以获取多个特征。这些特征组成了倒数第二层并且传给全连接的softmax层,输出标签的概率分布。
在其中一个模型变种中,我们做了将词向量分两个“通道”的实验,一个通道中的词向量在模型训练的过程中保持不变,另一个通过BP算法(3.2节)进行细粒度的调节。在多通道架构中,如图1所示,每个滤波器应用在两个通道,结果被加起来用等式(2)计算c_i。否则模型等价于单通道的架构。


2.1 正则化

对于正则化,在倒数第二层我们采用dropout策略并且限制权重向量(Hinton et al., 2012)的二范式大小。Dropout通过随机丢弃——例如在前向传播的过程中,每个隐层单元有p的概率被丢弃,从而防止隐层单元的共适应问题。即,给定倒数第二层z = [ccirc;1, . . . , ccirc;m] (指出我们有m个滤波器),不是使用:
y = w · z b (4)
在前向传播中对输出单元y,dropout使用:
y = w · (z ◦ r) b,(5)
这里◦是元素级的乘法操作并且risin;R^m是一个“掩盖”向量,向量中的元素都是一个伯努利随机变量有p的概率变为1。梯度仅仅可以通过非掩盖的单元反向传播。在测试阶段,权重向量通过因子p缩减例如wcirc; = pw,并且wcirc;被用来(没有使用dropout)给看不见的句子打分。我们另外限制权重向量的二范式,在每一步梯度下降之后,如果‖w‖_2gt;s,重新将w的二范式设置为‖w‖_2=s。

3 数据集及实验设置

我们在多个数据集上测试了本文提出的模型,测试数据集的概要见表一。

表1:分词之后的数据集的简要统计。C:目标类的个数。l:平均句子长度。N:数据集大小。|V|:单词总数。|V_pre |:出现在预训练词向量中词的个数。Test:测试集的大小(CV意味没有标准的训练/测试集并且采用十折交叉验证的方法)

MR:电影评论数据,没条评论一个句子。数据分为正面和负面评论两个类别。

SST-1:Stanford Sentiment Treebank,一个MR电影评论的扩展库,数据以训练/开发/测试三个数据集给出,并且进行了五级情感标注(very positive,positive, neutral, negative, very negative),标注工作由Socher等人完成(2013)。

SST-2:除去了SST-1中的中性评论,并且加入二进制表示的分类标签。

Subj:主观性数据集,数据依据句子的主观或客观性进行分类。

TREC:TREC问题数据,对数据依据问题类别进行分类。

CR:用户评论数据,根据评论的正负性进行分类。

MPQA:使用MPQA中的观点倾向作为分类任务。

3.1 参数设置及训练

对所有的训练数据,我们的参数设置为:线性整流单元(rectified linear units),使用大小分别为3,4,5的卷积窗口个100个,dropout率(p)为0.5, l2 约束中取s=3,以及mini-batch的大小为50。这些参数都是依据SST-2中的开发集进行选取的。

我们没有对不同的数据集进行参数设置上的调整,而是使用了统一的参数设置。模型根据Adadeltta更新规则在mini-batch上通过随机梯度下降进行训练。

3.2 预训练的词向量

在没有大量监督训练集(Colobert et al., 2011; Socher et al., 2011; Iyyer et al., 2014)的情况下,使用从非监督神经语言模型训练得到的词向量进行初始化是用来提升结果的普遍方法。我们使用公用的、下哦那个10亿Google 新闻数据中训练出来的Word2vec词向量。此向量的维度是300并且是采用连续的词袋架构(Mikolov et al., 2013)训练出来的。没有出现在预训练词向量中的单词随机初始化。

3.3 模型设置

本文使用了多种不同的模型进行训练测试对比。

CNN-rand:最基本的模型使用随机初始化进行词向量的初始化设置,并且在训练过程中进行调整。

CNN-static:使用预训练的word2vec向量作为初始化词向量,未涉及的单词使用随机初始化。在训练过程中向量保持不变,仅通过学习调整其他参数。

CNN-non-static:和上面的类似,但在训练过程中,通过学习调整设置的词向量。

CNN-multichannel:使用两个词向量集,所有卷积窗口同时对两个向量集应用。但是前向传播的梯度下降支队其中一个向量集产生影响。故,这个模型能够保持一个向量集不变而另一个向量集通过学习进行调整。两个向量集都是用word2vec进行初始化设置。

为了避免其他随机参数对实验的影响,我们将其他一些参数如交叉验证的信号,未涉及单词的初始化向量,CNN网络参数的初始化设置在各个数据集间保持一致。

4 结果与分析

模型的测试结果与其他方法的对比见表二

我们模型和其它模型的结果对比被列在表2中。我们随机化所有词向量的基准模型(CNN-rand)的表现并不突出。然而我们期望通过预训练词向量来提升效果的模型,我们对效果提升的幅度感到很吃惊。即使使用静态向量的简单模型(CNN-static)表现的相当好,产生了与利用复杂池化模式的复杂深度学习模型(Kalchbrenner et al., 2014)和需要提前计算解析树的模型(Socher et al., 2013)可比较的结果。这些结果说明预训练的词向量是好的,“通用”的特征抽取器,并且可以跨数据集使用。对每个任务细粒度的调节词向量可以进一步提升结果(CNN-non-static)。

4.1 多通道vs.单通道模型

我们一开始期望多通道的架构可以避免过拟合(通过确保学到词向量不会偏离初始值太远),并且比单通道的模型效果好,尤其在更小的数据集上。结果却是复杂的,进一步在规范化细粒度调节过程的工作是必要的。例如,不使用额外的通道作为non-static的部分,也可以使用单通道,在训练过程中训练额外的维度。

4.2 静态vs.动态表示

正如单通道非静态模型,多通道模型可以细粒度的调节非静态通道使它对手头的任务更具体。例如,在Word2vec中good和bad非常相似,大概是因为他们几乎语义相等。但是在SST-2数据集上,通过非静态通道调节的向量并不是这种情况。相似的,可以说在表达情感上,nice和great相比,与good更相近,这在训练的词向量中被真实的反映出来。
对于(随机初始化)不再预训练向量集合中的词,细粒度的调节允许它们学到更有意义的表示:网络训练得到感叹号经常与热情洋溢的表达联系在一起,并且逗号经常和连接副词联系在一起。

4.3 展望

我们做了进一步的实验和观察。
Kalchbrenner et al.(2014)使用和我们单通道架构相同的CNN架构,但是却得到了不好的结果。例如,他们采用随机初始化词向量的Max-TDNN(时间延迟神经网络)模型在SST-1数据集上获得的结果是37.4%,和我们模型获得的45%相比。我们将此差异归因于我们的CNN有更大的容量(多个滤波器和特征映射)。
Dropout是如此好的正则化方法以致于用在一个比必要网络更大的网络上并且仅仅使用dropout去正则化效果是好的。Dropout一般可以将结果提升2%-4%。
当随机初始化不在Word2vec中的单词时,向量的每一维从U[-a,a]采样,结果获得了微小的提升,这里的a的选择要使随机初始化的词向量的方差和预训练的词向量有相同的方差。在初始化的过程中,尝试应用更复杂的方法反映预训练词向量的分布,看能否使结果得到提升是很有意思的事情。
我们在Collobert et al.(2011)通过维基百科训练的、另一个公用的词向量上进行试验,并且发现

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[19790],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

发小红书推广免费获取该资料资格。点击链接进入获取推广文案即可: Ai一键组稿 | 降AI率 | 降重复率 | 论文一键排版