经典文献翻译《Convolutional Neural Networks for Sentence Classification》——2014年

《Convolutional Neural Networks for Sentence Classification》——2014年

《基于CNN的句子级别的文本分类》

  • Abstract 摘要
  • 1 Introduction 引言
  • 2 Model 模型
    • 2.1 Regularization 正则化
  • 3 Datasets and Experimental Setup 数据集和实验设置
    • 3.1 Hyperparameters and Training 超参数和训练
    • 3.2 Pre-trained Word Vectors 预训练的词向量
    • 3.3 Model Variations 模式变化
  • 4 Results and Discussion 结果和讨论
    • 4.1 多通道 vs. 单通道模型
    • 4.2 静态与非静态表示
    • 4.3 进一步观察
  • 5 Conclusion 结论

Abstract 摘要

我们报告了一系列卷积神经网络(CNN)的实验,这些网络是在预先训练好的单词向量上训练的,用于句子的分类任务。我们证明了一个简单的CNN网络通过小的超参数调优和静态向量在多个基准测试中取得了很好的结果。通过微调来学习特定的任务的向量可以进一步提高性能。此外,我们还提出了一个简单的架构的修改,以允许使用特定的任务和静态向量。本文讨论的CNN模型在7个任务中的4个上改进了现有的技术,包括情感分析和问题分类。

1 Introduction 引言

近年来,深度学习模型在计算机视觉(Krizhevskyetal.,2012)和语音识别(Gravesetal.,2013)方面取得了显著的成果。在自然语言加工过程中,大部分深度学习方法的工作都涉及到通过神经语言模型学习词向量表示(Bengio等人,2003;Yih等人,2011;Mikolov等人,2013)和通过学习词向量进行分类(Collobert等人,2011)。词向量,其中的词是从稀疏的,1到v编码(这里的v是词汇量),通过隐藏层投影到一个低维向量空间,本质上是特征提取器在他们的维度上对词的语义特征进行编码。在这种稠密表示中,语义相近的单词(在欧氏距离或余弦距离中)在低维向量空间中同样接近。

卷积神经网络(CNN)利用应用于局部特征的卷积滤波器层(LeCun等人,1998)。最初为计算机视觉而发明的,后来CNN模型被证明对NLP是有效的,并且在语义分析(Yihetal.,2014)、搜索查询检索(Shenetal.,2014)、句子建模(Kalch-brenneretal.,2014)和其他传统的NLP任务(bertcolloetal.,2011)中取得了优异的结果。

在目前的工作中,我们训练了一个简单的CNN,它是从一个无监督神经语言模型中得到的基于词向量的简单CNN,其中包含一层卷积。这些向量由Mikolov等人(2013年)用1000亿个Google新闻单词进行训练,并且是公开可用的[1]。最初,我们使单词向量保持静态,仅学习模型的其他参数。尽管很少调整超参数,这个简单的模型在多个基准上取得了优异的结果,这表明预先训练的向量是可以用于各种分类任务的“通用”特征提取器。通过微调结果进一步改进学习特定于任务的向量。最后,我们描述了对体系结构的简单修改,以允许通过具有多个通道使用预训练向量和特定于任务的向量。

我们的工作在哲学上与Razavian等人(2014年)的研究相似,后者表明,对于图像分类,从预先训练的深度学习模型中获得的特征提取器在一系列任务中表现良好,包括与特征提取器训练的原始任务有很大不同的任务。

2 Model 模型

如图1所示模型架构,是Collobert等人(2011)提出的CNN架构的轻微变体。

x i ∈ R k \mathbf{x}_{i} \in \mathbb{R}^{k} xiRk 为句子中第i个单词对应的k维词向量。一个长度为n的句子(在必要时加上填充)表示为
x 1 : n = x 1 ⊕ x 2 ⊕ … ⊕ x n \mathbf{x}_{1: n}=\mathbf{x}_{1} \oplus \mathbf{x}_{2} \oplus \ldots \oplus \mathbf{x}_{n} x1:n=x1x2xn ————(1)

其中 ⊕ 为串联运算符。通常, x i : i + j \mathbf{x}_{i: i+j} xi:i+j 表示单词 x i , x i + 1 , … , x i + j \mathbf{x}_{i}, \mathbf{x}_{i+1}, \ldots, \mathbf{x}_{i+j} xi,xi+1,,xi+j 的串联。卷积运算涉及一个滤波器 w ∈ R h k \mathbf{w} \in \mathbb{R}^{h k} wRhk,该滤波器应用于h个词的窗口以产生新的特征。例如,特征值 c i \mathbf{c}_{i} ci 是从单词 x i : i + h − 1 \mathbf{x}_{i: i + h-1} xi:i+h1 的窗口下生成的,公式如下:

c i = f ( w ⋅ x i : i + h − 1 + b ) c_{i}=f\left(\mathbf{w} \cdot \mathbf{x}_{i: i+h-1}+b\right) ci=f(wxi:i+h1+b) ———— (2)

这里的 b ∈ R \mathbf{b} \in \mathbb{R} bR 是偏置, f \mathbf{f} f 是一个非线性函数,例如双曲正切函数。这个滤波器应用于每个可能的单词窗口,在句子 { x 1 : h , x 2 : h + 1 , … , x n − h + 1 : n } \left\{\mathbf{x}_{1: h}, \mathbf{x}_{2: h+1}, \ldots, \mathbf{x}_{n-h+1: n}\right\} {x1:h,x2:h+1,,xnh+1:n} 中生成特征图
c = [ c 1 , c 2 , … , c n − h + 1 ] \mathbf{c}=\left[c_{1}, c_{2}, \ldots, c_{n-h+1}\right] c=[c1,c2,,cnh+1] ————(3)

其中, c ∈ R n − h + 1 \mathbf{c} \in \mathbb{R}^{n-h+1} cRnh+1。然后,我们对特征图c应用max-overtime池化(Collobert et al., 2011)操作,并取最大值 c ^ = max ⁡ { c } \hat{c}=\max \{\mathbf{c}\} c^=max{c}。作为与该特定过滤器相对应的特征。这个想法是为每个特征图捕获最重要的特征(价值最高的一个特征)。这种池化方法自然可以处理可变的句子长度。

经典文献翻译《Convolutional Neural Networks for Sentence Classification》——2014年_第1张图片
图1: 用于示例句子的具有两个通道的模型架构。其中
(1)用 n x k 表示句子的静态和非静态通道
(2)具有多个滤波器宽度和特征图的卷积层
(3)最大超时池
(4)带有Dropout和softmax激活函数输出的全连接层

我们描述了从一个滤波器中提取一个特征的过程。该模型使用多个滤波器(具有不同的窗口大小)来获得多个特征值。这些特性形成倒数第二层,并传递到一个全连接的Softmax层,其输出是标签上的概率分布。

在其中一个模型变体中,我们实验了两个词向量通道,其中一个在整个训练过程中保持不变(静态),另一个通过反向传播进行微调(3.2节)【2】。在图1所示的多通道架构中,每个滤波器都应用于这两个通道,并且将结果相加以计算公式(2)中的 c i c_{i} ci。 该模型在其他方面等效于单通道体系结构。

2.1 Regularization 正则化

为了进行正则化,我们在倒数第二层采用了dropout,且权重向量采用L2范数约束(Hinton et al., 2012)。Dropout 通过随机删除(即设为零)在正向反向传播期间隐藏单元的比例 p 来防止共同适应性。也就是说,给定倒数第二层 z = [ c ^ 1 , … , c ^ m ] \mathbf{z}=\left[\hat{c}_{1}, \ldots, \hat{c}_{m}\right] z=[c^1,,c^m] (请注意,这里有 m m m个过滤器),而不是使用
y = w ⋅ z + b y=\mathbf{w} \cdot \mathbf{z}+b y=wz+b ————(4)

对于正向传播中的输出单元 y y y,dropout使用如下式子:
y = w ⋅ ( z ∘ r ) + b y=\mathbf{w} \cdot(\mathbf{z} \circ \mathbf{r})+b y=w(zr)+b ————(5)

其中 ∘ \circ 是逐元素乘法运算符, r ∈ R m \mathbf{r} \in \mathbb{R}^{m} rRm 是伯努利随机变量的“掩蔽”向量,概率 p p p为1。梯度仅通过未掩盖的单元反向传播。在测试训练时,学习的权重向量按 p p p缩放,比如
w ^ = max ⁡ { p w } \hat{w}=\max \{\mathbf{pw}\} w^=max{pw} w ^ \hat{w} w^ 用于给看不见的句子评分(不用dropout)。我们还通过在梯度下降步骤之后每当 ∥ w ∥ 2 > s \|\mathbf{w}\|_{2}>s w2>s 时重新将w缩放为 ∥ w ∥ 2 = s \|\mathbf{w}\|_{2}=s w2=s 来约束权重向量的L2-范数。

经典文献翻译《Convolutional Neural Networks for Sentence Classification》——2014年_第2张图片
表一:标记化后数据集的摘要统计信息

c c c:目标类别的数量
l l l:句子的平均长度
N N N:数据集大小
∣ V ∣ |V| V:词汇量
∣ V p r e ∣ |V_{pre}| Vpre:当前预训练词向量的词数
T e s t Test Test:测试集大小(在CV中表示没有标准的训练和测试集的区分,因此使用了10倍的CV)

3 Datasets and Experimental Setup 数据集和实验设置

我们在各种基准上测试我们的模型。数据集的摘要统计信息见表1。

  • MR:电影评论,每个电影评论为一句话。 分类涉及检测正面/负面评论(Pang and Lee,2005).【3】

  • SST-1:斯坦福情感树库ーーMR的扩展,但是提供了train/dev/test分隔和细粒度标签(非常积极、积极、中性、消极、非常消极),由Socher等人(2013)重新标记。【4】

  • SST-2:与SST-1相同,但删除了中性的评论和二进制标签。(还是二分类标签?)

  • Subj:主观性数据集,任务是将句子分类为主观的或客观的(PangandLee,2004)。

  • TREC:TREC问题数据集——任务集合将问题分为6种问题类型(问题是否是关于人、位置、数字信息等)(LiandRoth,2002)

  • CR:顾客对各种产品(相机、mp3等)的评价。任务是预测正式/负面评论(HuandLiu,2004)【6】

  • MPQA:MPQA数据集的意见极性检测子任务(Wiebe et al。,2005)。【7】

3.1 Hyperparameters and Training 超参数和训练

对于所有我们使用的数据集:ReLU,滤波窗口(h)为3,4,5,每个有100个特征图,dropout§为0.5,L2范数约束(s)为3,最小批量mini-batch大小为50。这些值是通过在SST-2 开发集上的网格搜索选择的。

除了在开发集上提前停止之外,我们不执行任何特定数据集的调优。对于没有标准开发集的数据集,我们随机选择10%的训练数据作为开发集。训练是通过随机梯度下降后的小批量数据mini-batches按照Adadelta的更新规则进行的(Zeiler,2012年)。

3.2 Pre-trained Word Vectors 预训练的词向量

使用从无监督神经语言模型获得的词向量初始化是一种流行的方法,可以在没有大型监督训练集的情况下提高性能(Collobert等人,2011年;Socher等人,2011年;Iyyer等人,2014年)。我们使用公开可用的 w o r d 2 v e c word2vec word2vec 向量,这些向量是用来自谷歌新闻的1000亿个单词训练的。向量的维数为300,并且使用连续的词包结构进行训练(Mikolov等人,2013年)。在预先训练的单词集中没有出现的单词是随机初始化的。

3.3 Model Variations 模式变化

我们对模型的几个变体进行了实验。

  • CNN-rand:我们的基线模型,其中所有的单词被随机初始化,然后在训练期间进行修改。

  • CNN-static:从 w o r d 2 v e c word2vec word2vec 中预先训练向量的一个模型。所有的单词(包括已初始化的未知单词)都保持静态,仅学习模型的其他参数。

  • CNN-non-static:与上面相同,但是预先训练的向量对每个任务都进行了微调。

  • CNN-multichannel:一个有两组词向量的模型。每组向量都被视为一个“通道”,并且每个滤波器都应用于两个通道,但是梯度仅通过其中一个通道进行反向传播。因此,该模型能够微调一组向量,同时保持另一组静态。 两个通道都使用 w o r d 2 v e c word2vec word2vec 初始化。

为了消除上述变化与其他随机因素的影响,我们通过使它们在每个数据集中保持一致,消除了其他随机性来源,比如:CV折叠分配,未知词向量的初始化,CNN参数的初始化。

经典文献翻译《Convolutional Neural Networks for Sentence Classification》——2014年_第3张图片

表2:我们的CNN模型针对其他方法的结果。

RAE:具有来自Wikipedia的预训练词向量的递归自动编码器 (Socher et al., 2011).
MV-RNN:具有解析树的矩阵向量递归神经网络 (Socher et al., 2012).
RNTN:具有基于张量的特征函数和解析树的递归神经张量网络(Socher et al., 2013).
DCNN:具有k-max池的动态卷积神经网络 (Kalchbrenner et al., 2014).
Paragraph-Vec:段落向量之上的逻辑回归 (Le and Mikolov, 2014).
CCAE:具有组合类别语法运算符的组合类别自动编码器(Hermann and Blunsom, 2013).
Sent-Parser:情绪分析专用解析器 (Dong et al., 2014).
NBSVM, MNB:朴素贝叶斯SVM和多项式朴素贝叶斯与Wang和Manning的单字母组合uni-bigrams (2012).
G-Dropout, F-Dropout:Wang 和Manning 的高斯Dropout 和快速Dropout (2013).
Tree-CRF: 具有条件随机字段的依赖树 (Nakagawa et al., 2010).
CRF-PR: 具有后验正则化的条件随机场 (Yang and Cardie, 2014).
SVMs:具有单字语法,wh词,标头词,POS,解析器,上位词和60条手工编码规则的SVM作为特征,来自Silva等人。 (2011)

4 Results and Discussion 结果和讨论

表2列出了针对其他方法的模型结果。我们的带有所有随机初始化的单词(CNN-rand)的基准模型不能很好地发挥自己的作用。 尽管通过使用预训练的向量可以预期获得性能提升,但是我们对这种提升的幅度感到惊讶。 即使是带有静态向量的简单模型(CNN-static)也会表现出色,与使用复杂池化方案的更复杂的深度学习模型(Kalchbrenner et al。,2014)或需要事先计算解析树的应用(Socher et al。 等人,2013年)。 这些结果表明,经过预训练的向量是很好的“通用”特征提取器,可以在数据集中使用。 对每个任务的预训练向量进行微调会带来进一步的改进(CNN-non-static)。

4.1 多通道 vs. 单通道模型

我们最初希望多通道体系结构能够防止过拟合(通过确保学习的向量与原始值的偏差不会太远),从而比单通道模型更好地工作,尤其是在较小的数据集上。 但是,结果参差不齐,因此有必要进一步进行正规化微调过程。 例如,代替对非静态部分使用额外的通道,可以保留一个单通道,但采用允许在训练期间进行修改的额外维度。

经典文献翻译《Convolutional Neural Networks for Sentence Classification》——2014年_第4张图片

表3、 在训练后的SST-2数据集上,在多通道模型中, 静态通道中(左)的向量的前4个相邻词(基于余弦相似度的)和在非静态通道中(右)的微调向量。

4.2 静态与非静态表示

与单通道非静态模型一样,多通道模型能够微调非静态通道,使其更适合手头的任务。 例如,在 w o r d 2 v e c word2vec word2vec 中,好与坏最相似,大概是因为它们在语法上几乎是等效的。 但是对于在SST-2数据集上微调的非静态通道中的向量,情况就不再如此(表3)。 类似地,对于表达情感而言,可以说善比接近好要好,这确实体现在学习的向量中。 对于不在预先训练的向量集中的(随机初始化的)令牌,微调使它们能够学习更多有意义的表示形式:网络中可以了解到感叹号与冒犯性表达相关联并且逗号是一个连接用的(表3)。

4.3 进一步观察

我们报告了一些进一步的实验和观察:

  • Kalchbrenner等人(2014年)报道的CNN的架构与我们的单通道模型基本相同,但效果却差得多。 例如,他们的带有随机初始化单词的Max-TDNN(时延神经网络)在SST-1数据集上获得37.4%,而在我们的模型中则为45.0%。 我们将这种差异归因于CNN具有更大的容量(多个滤镜宽度和特征图)。

  • 事实证明,Dropout是一个很好的正则化器,使用大于必要网络的更大的网络是比较好的,只需让Dropout对它进行简单的正则化。dropout 持续增加2%–4%的相对性能。

  • 当随机初始化的单词不在 w o r d 2 v e c word2vec word2vec 中,通过对 U [ − a , a ] U[-a, a] U[a,a] 中的每个维度进行采样,我们获得了一些细微的改进,其中选择的 a a a 可以使随机初始化的向量具有与预训练向量相同的方差。有趣的是,在初始化过程中采用更复杂的方法来镜像预训练向量的分布是否会带来进一步的改进。

  • 我们简要地尝试了由Collobert等人(2011)训练的另一组在Wikipedia上【8】公开可用的单词向量,并且发现 w o r d 2 v e c word2vec word2vec 的性能要好得多。 尚不清楚这是否归因于Mikolov等人 (2013)的架构或1000亿字的Google新闻数据集。

  • Adadelta(Zeiler,2012)得出的结果与Adagrad(Duchi et al。,2011)相似,但所需的时间更少。

5 Conclusion 结论

在目前的工作中,我们描述了一系列建立在 w o r d 2 v e c word2vec word2vec 的CNN实验。尽管超参数的调整很小,一层简单的基于卷积的CNN表现的很出色。我们的结果更好地证明了无监督的词向量预训练是NLP深度学习中的重要成分。

E N D END END

你可能感兴趣的:(深度学习,卷积,神经网络,nlp)