0
点赞
收藏
分享

微信扫一扫

【第17篇】TextCNN


摘要

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

1 简介

近年来,深度学习模型在计算机视觉(Krizhevsky 等,2012)和语音识别(Graves 等,2013)方面取得了显著成果。 在自然语言处理中,深度学习方法的大部分工作都涉及通过神经语言模型学习词向量表示(Bengio 等人,2003 年;Yih 等人,2011 年;Mikolov 等人,2013 年)并在 学习用于分类的词向量(Collobert et al., 2011)。 单词向量,其中单词从稀疏的 1-of-V 编码(这里 V 是词汇量大小)通过隐藏层投影到较低维度的向量空间,本质上是特征提取器,在它们的维度上对单词的语义特征进行编码。 在这样的密集表示中,语义接近的词在低维向量空间中同样接近 - 在欧几里得或余弦距离上。

卷积神经网络 (CNN) 使用带有卷积过滤器的层,这些过滤器应用于局部特征(LeCun 等人,1998 年)。 CNN 模型最初是为计算机视觉而发明的,后来被证明对 NLP 有效,并在语义解析(Yih 等人,2014 年)、搜索查询检索(Shen 等人,2014 年)、句子建模(Kalchbrenner 等人,2014)和其他传统的 NLP 任务(Collobert 等人,2011)。

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

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

2 模型

【第17篇】TextCNN_数据集

图 1 所示的模型架构是 Collobert 等人 (2011) 的 CNN 架构的轻微变体。 设 x i ∈ R k x_{i} \in \mathbb{R}^{k} xi​∈Rk 为句子中第 i i 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​=x1​⊕x2​⊕…⊕xn​

其中 ⊕ \oplus ⊕ 是连接运算符。 一般来说,让 x i : i + j x_{i:i+j} xi:i+j​ 指的是单词 x i , x i + 1 , … , x i + j x_{i},x_{i+1},\ldots,x_{i+j} xi​,xi+1​,…,xi+j​的串联。 卷积操作涉及一个滤波器 w ∈ R h k w \in \mathbb{R}^{hk} w∈Rhk,它被应用于 h 个词的窗口以产生一个新特征。 例如,特征 C i C_{i} Ci​ 是从单词 x i : i + h − 1 x_{i:i+h-1} xi:i+h−1​ 的窗口生成的

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(w⋅xi:i+h−1​+b)

这里 b ∈ R b \in \mathbb{R} b∈R 是偏置项, f f f 是非线性函数,例如双曲正切。 此过滤器应用于句子$\left { x_{1:h},x_{2:h+1},\cdots x_{n-h+1:n}\right } $ 中每个可能的单词窗口以生成特征图

c = [ c 1 , c 2 , ⋯   , c n − h + 1 ] c=[c_{1},c_{2},\cdots,c_{n-h+1}] c=[c1​,c2​,⋯,cn−h+1​]

对于 c ∈ R n − h + 1 c \in \mathbb{R}^{n-h+1} c∈Rn−h+1。 然后,我们在特征图上应用最大超时池化操作(Collobert 等人,2011 年),并取最大值 c ^ = m a x { c } \hat{c}=max \left \{c \right \} c^=max{c}作为与此特定过滤器对应的特征。 这个想法是为每个特征图捕获最重要的特征——具有最高值的特征。 这种池化方案自然会处理可变的句子长度。

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

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

2.1 正则化

对于正则化,我们在倒数第二层使用 dropout,并限制权重向量的 l2 范数(Hinton 等人,2012 年)。 Dropout 通过在前向反向传播期间随机丢弃(即设置为零)隐藏单元的比例 p 来防止隐藏单元的协同适应。 也就是说,给定倒数第二层 z = [ c 1 ^ , ⋯   , c ^ m ] z=[\hat{c_{1}},\cdots,\hat{c}_{m}] z=[c1​^​,⋯,c^m​](注意这里我们有 m 个过滤器),而不是使用

y = w ⋅ z + b y=w \cdot z+b y=w⋅z+b

对于前向传播中的输出单元 y,dropout 使用

y = w ⋅ ( z ∘ r ) + b y=w \cdot (z \circ r)+b y=w⋅(z∘r)+b

其中 ∘ \circ ∘是逐元素乘法运算符, r ∈ R m r \in \mathbb{R}^{m} r∈Rm 是伯努利随机变量的“屏蔽”向量,概率 p 为 1。梯度仅通过未屏蔽单元进行反向传播。 在测试时,学习到的权重向量按 p 进行缩放,使得 w ^ = p w \hat{w}=pw w^=pw,并且 w ^ \hat{w} w^ 用于(没有 dropout)对看不见的句子进行评分。 我们另外通过在梯度下降步骤之后重新缩放 w 使 ∣ ∣ w ∣ ∣ 2 = s ||w||_{2}=s ∣∣w∣∣2​=s 来约束权重向量的 l2 范数,只要 ∣ ∣ w ∣ ∣ 2 > s ||w||_{2}>s ∣∣w∣∣2​>s。

3 数据集和实验设置

【第17篇】TextCNN_神经网络_02

我们在各种基准上测试我们的模型。 数据集的汇总统计见表 1。

  • MR:电影评论,每篇评论一个句子。 分类涉及检测正面/负面评论(Pang 和 Lee,2005 年)。

  • SST-1:Stanford Sentiment Treebank——MR 的扩展,但提供了训练/开发/测试分割和细粒度标签(非常积极、积极、中性、消极、非常消极),由 Socher 等人重新标记( 2013)。

  • SST-2:与SST-1 相同,但删除了中性评论和二进制标签。

  • Subj:主观性数据集,其中的任务是将句子分类为主观或客观(Pang 和 Lee,2004 年)。

  • TREC:TREC 问题数据集——任务涉及将问题分为 6 种问题类型(问题是关于人、位置、数字信息等)(Li 和 Roth,2002 年)。

  • CR:客户对各种产品(相机、MP3 等)的评论。 任务是预测正面/负面评论(Hu and Liu,2004)。

  • MPQA:MPQA 数据集的观点极性检测子任务(Wiebe 等,2005)。

3.1 超参数和训练

对于我们使用的所有数据集:校正线性单元,过滤器窗口 (h) 为 3、4、5,每个具有 100 个特征图,丢失率 § 为 0.5,l2 约束 (s) 为 3,小批量大小为 50 . 这些值是通过 SST-2 开发集上的网格搜索选择的。

除了在开发集上提前停止之外,我们不会执行任何特定于数据集的调整。 对于没有标准开发集的数据集,我们随机选择 10% 的训练数据作为开发集。 训练是通过随机梯度下降使用 Adadelta 更新规则(Zeiler,2012)完成的。

3.2 预训练词向量

在没有大型监督训练集的情况下,使用从无监督神经语言模型中获得的词向量来初始化词向量是一种提高性能的流行方法(Collobert 等人,2011 年;Socher 等人,2011 年;Iyyer 等人,2014 年) . 我们使用公开可用的 word2vec 向量,这些向量在来自 Google 新闻的 1000 亿个单词上进行了训练。 这些向量的维度为 300,并使用连续词袋架构进行训练(Mikolov 等人,2013 年)。 不存在于预训练词集中的词随机初始化

3.3 模型变化

我们对模型的几种变体进行了试验。

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

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

4 结果与讨论

【第17篇】TextCNN_深度学习_03

我们的模型针对其他方法的结果列于表 2 中。我们的所有随机初始化词 (CNN-rand) 的基线模型本身表现不佳。 虽然我们期望通过使用预训练向量来提高性能,但我们对收益的幅度感到惊讶。 即使是带有静态向量的简单模型 (CNN-static) 也表现得非常好,与使用复杂池化方案 (Kalchbrenner et al., 2014) 或需要预先计算解析树 (Socher et al., 2013)。 这些结果表明,预训练的向量是良好的“通用”特征提取器,可以跨数据集使用。 为每项任务微调预训练向量提供了进一步的改进(CNN 非静态)。

4.1 多通道与单通道模型

我们最初希望多通道架构能够防止过度拟合(通过确保学习到的向量不会偏离原始值太远),从而比单通道模型效果更好,尤其是在较小的数据集上。 然而,结果喜忧参半,需要进一步规范微调过程。 例如,不是对非静态部分使用额外的通道,而是可以保持单个通道,但使用允许在训练期间修改的额外维度。

4.2 静态与非静态表示

与单通道非静态模型的情况一样,多通道模型能够微调非静态通道,使其更适合手头的任务。 例如,在 word2vec 中,good 与 bad 最相似,大概是因为它们(几乎)在语法上是等效的。 但是对于在 SST-2 数据集上微调的非静态通道中的向量,情况不再如此(表 3)。 类似地,在表达情感方面,good 可以说更接近 nice,而不是 good,这确实反映在学习的向量中。

【第17篇】TextCNN_深度学习_04

对于(随机初始化的)不在预训练向量集合中的标记,微调允许它们学习更有意义的表示:网络学习感叹号与热情表达相关联,逗号是连词(表 3)。

4.3 进一步观察

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

  • Kalchbrenner 等人(2014 年)报告了使用与我们的单通道模型具有基本相同架构的 CNN 的结果要差得多。例如,他们使用随机初始化词的 Max-TDNN(时延神经网络)在 SST-1 数据集上获得了 37:4%,而我们的模型为 45:0%。我们将这种差异归因于我们的 CNN 具有更大的容量(多个过滤器宽度和特征图)。
  • Dropout 被证明是一个很好的正则化器,可以使用比必要的网络更大的网络并简单地让 dropout 对其进行正则化。 Dropout 始终增加 2%–4% 的相对性能。
  • 当随机初始化不在 word2vec 中的词时,我们通过从 U[−a; a] 其中选择 a 使得随机初始化的向量与预训练的向量具有相同的方差。看看在初始化过程中采用更复杂的方法来反映预训练向量的分布是否会带来进一步的改进会很有趣。
  • 我们对另一组由 Collobert 等人训练的公开词向量进行了简短的实验。 (2011) 在 Wikipedia 上,8 发现 word2vec 的性能要好得多。目前尚不清楚这是否是 Mikolov 等人的结果。 (2013) 的架构或 1000 亿字的 Google 新闻数据集。
  • Adadelta (Zeiler, 2012) 给出了与 Adagrad (Duchi et al., 2011) 相似的结果,但需要更少的 epoch。

5 结论

亿字的 Google 新闻数据集。

  • Adadelta (Zeiler, 2012) 给出了与 Adagrad (Duchi et al., 2011) 相似的结果,但需要更少的 epoch。

5 结论

在目前的工作中,我们描述了一系列基于 word2vec 构建的卷积神经网络的实验。 尽管很少调整超参数,但带有一层卷积的简单 CNN 表现非常好。 我们的结果进一步证明了无监督的词向量预训练是 NLP 深度学习的重要组成部分。



举报

相关推荐

0 条评论