(35) [arXiv17] Very Deep Convolutional Networks for Text Classification

计划完成深度学习入门的126篇论文第三十五篇,Yann Le Cun等发表的文本分类的论文。


Abstract

许多NLP任务的主要方法是递归神经网络,特别是LSTMs和卷积神经网络。然而,与推动计算机视觉发展的深度卷积网络相比,这些架构显得相当肤浅。我们提出了一种新的文本处理体系结构(VDCNN),它直接在字符级操作,只使用小的卷积和池操作。我们能够表明,该模型的性能随着深度的增加而增加:使用多达29个卷积层,我们报告了几个公共文本分类任务的最新进展。据我们所知,这是第一次将深度卷积网络very deep convolutional nets应用于文本处理。


1 Introduction

自然语言处理(NLP)的目标是用计算机处理文本,以便分析文本,提取信息,最终以不同的方式表示相同的信息。我们可能想要将类别关联到文本的某些部分(例如词性标注POS tagging或情感分析sentiment analysis),以不同的方式构造文本(例如解析),或者将其转换为保留所有或部分内容的其他形式(例如机器翻译、摘要)。这种处理的粒度级别可以从单个字符到子单词单元(Sennrich et al., 2016)或单词到整个句子甚至段落。

经过一些开创性的工作(Bengio et al.(2001)、Collobert and Weston(2008)、Collobert et al.(2011)等),神经网络在NLP应用中的应用引起了研究领域的极大兴趣,并被系统地应用于所有NLP任务。然而,尽管(深度)神经网络在NLP中的应用在许多任务中都显示出了很好的效果,但它们似乎还没有达到远远超过当前水平的水平,正如在计算机视觉和语音识别中所观察到的那样。

卷积神经网络,简称卷积神经网络,在计算机视觉领域非常成功。在早期的计算机视觉方法中,使用手工制作的特征,例如尺度不变特征变换(SIFT) (Lowe, 2004),然后使用一些分类器。ConvNets(LeCun et al., 1998)的基本思想是将特征提取和分类视为一项联合训练任务。多年来,这个想法得到了改进,特别是通过使用许多层卷积和池来顺序提取输入的分层表示(Zeiler和Fergus, 2014)。最好的网络使用超过150层,如ResNet(He et al., 2016a;等,2016b)。

许多NLP方法都将单词作为基本单位。一个重要的步骤是引入单词的连续表示continuous representations of words(Bengio et al., 2003)。这些单词嵌入现在是NLP中最先进的。然而,我们不太清楚如何最好地表示单词序列,例如一个句子,它有复杂的句法和语义关系。一般来说,在同一句话中,我们可能面临局部依赖和长期依赖。目前,主流的方法是将一个句子看作一系列标记(字符或单词),并使用递归神经网络(RNN)处理它们。tokens通常是按从左到右的顺序处理的,RNN需要记住整个序列的内部状态。最受欢迎和成功的RNN变种当然是LSTMs(Hochreiter和Schmidhuber, 1997)已有许多研究表明LSTMs能够对NLP应用程序中的长期依赖关系进行建模,如(Sundermeyer et al., 2012; Sutskever et al., 2014)仅举几个例子。然而,我们认为LSTMs是用于序列处理的通用学习机,缺乏任务特定的结构。

我们提出如下类比。众所周知,一个完全连通的隐层神经网络在原理上可以学习任何重值函数,但是如果使用一个开发层次表示的特定于问题的深层体系结构,则可以获得更好的结果。通过这些方法,搜索空间受到很大的约束,可以通过梯度下降学习到有效的解。由于图像的组成结构,卷积神经网络也适用于计算机视觉。文本具有相似的性质:字符用来组合成n-grams、stems、单词、短语、句子等。

我们认为,在NLP的挑战是开发深层架构,能够学习整个句子的层次表示,并与任务。在本文中,我们建议使用许多卷积层的深层架构来实现这一目标,最多使用29层。我们建筑的设计灵感来自最近计算机视觉的进步,特别是(Simonyan and Zisserman, 2015; He et al., 2016a)。本文的结构如下。以前曾尝试使用ConvNets进行文本处理。我们将在下一节中总结前面的工作,并讨论它们之间的关系和区别。我们的体系结构将在第3节中详细描述。我们对几个句子分类任务的方法进行了评估,这些任务最初是由(Zhang et al., 2015)提出的。这些任务和我们的实验结果详见第4节。提出的深卷积网络比以往的卷积网络有明显的改善。最后,对神经语言处理的深入研究方向进行了展望。


2 Related work

有大量关于情感分析的研究,或者更广泛的关于句子分类任务的研究。最初的方法遵循经典的两阶段(手工)特征提取方案,然后是分类阶段。典型的特征包括单词包或n-gram,以及它们的TF-IDF。并将这些方法与ConvNets进行了比较(Zhang et al., 2015; Zhang and LeCun, 2015)。我们在实验中使用相同的语料库。最近,单词或字符被投影到一个低维空间中,这些嵌入被组合起来,以获得输入语句的固定大小表示,然后作为分类器的输入。最简单的组合是元素明智的均值。由于忽略了令牌顺序的所有概念,这通常执行得很糟糕。

另一类方法是递归神经网络。其主要思想是使用外部工具,即解析器,它指定组合单词embeddings的顺序。在每个节点上,使用所有节点共享的权重组合左右上下文(Socher et al., 2011)。将顶部节点的状态提供给分类器。递归神经网络(RNN)可以看作是递归神经网络的一种特殊情况:通常从左到右依次执行组合。RNN的最后一个状态用作句子的固定大小表示,或者最终用作所有隐藏状态的组合。

第一个使用卷积神经网络进行NLP的工作出现在(Collobert and Weston, 2008; Collobert et al., 2011)。随后将其应用于句子分类(Kim, 2014; Kalchbrenner et al., 2014; Zhang et al., 2015)。我们将在下面更详细地讨论这些技术。如果没有另外说明,所有的方法都是对投射到高维空间中的单词进行操作。

(Kim, 2014)提出了一种相当浅层的神经网络:一个卷积层(使用多个宽度和过滤器),然后是一个随temporal变化的最大池化层。最后的分类器使用一个完全连接的带有drop-out的层。结果报告了六个数据集,特别是Stanford Sentiment Treebank(SST)。(Kalchbrenner et al., 2014)提出了一个类似的系统,但是使用了五个卷积层。一个重要的区别是引入了多个temporal k-max池层。这允许检测句子中k个最重要的特征,不依赖于它们的特定位置,保持它们的相对顺序。k的值取决于句子的长度和这一层在网络中的位置。(Zhang et al., 2015)是第一个完全在性格层面进行情感分析的。他们的系统使用多达6个卷积层,然后是3个完全连接的分类层。使用了大小为3和7的卷积内核,以及简单的最大池化层。本文另一个有趣的方面是介绍了几个用于文本分类的大型数据集。我们使用相同的实验设置(见4.1节)。字符级信息的使用也是由(Dos Santos和Gatti, 2014)提出的:一个单词的所有字符嵌入都通过一个max操作组合起来,然后与单词嵌入信息在一个浅架构中共同使用。在我们工作的同时,(Yang et al., 2016)提出了一种基于分层注意网络的文档分类方法,该方法首先对文档中的句子和句子中的单词进行注意。它们的体系结构在包含多个句子的数据集上表现得非常好。


3 VDCNN Architecture

我们网络的总体架构如图1所示。我们的模型从一个查找表开始,它生成一个二维张量(f0, s),其中包含s字符的嵌入。s固定为1024,可以将f0视为输入文本的RGB维数。我们首先应用一个大小为3的64个卷积层,然后是一堆时间卷积块。受VGG和ResNets思想的启发,我们应用了这两条设计规则:(i)对于相同的输出时间分辨率,层具有相同数量的feature map, (ii)当时间分辨率减半时,feature map的数量增加一倍。这有助于减少网络的内存占用。网络包含3个池化操作(速度减半),在第三层128,256或者512的特征图,这些卷积块的输出是一个大小为512 \times s_d其中s_d = \frac{s}{2P}, p = 3是向下采样操作的次数。在卷积网络的这个层次上,得到的张量可以看作是输入文本的高级表示。因为我们处理固定大小的填充输入文本,所以sd是常量。然而,在输入变量大小的情况下,卷积编码器提供了输入文本的表示,取决于其初始长度的epochs。表示一个文本的向量的集合变量大小可以为神经机器翻译就是有价值的,尤其是当结合一个注意力模型。在图1中,时间分布与内核大小3和X特征图使用”3, Temp Conv, X”表示,完全连接层的线性预测(矩阵的大小I x O)表示”fc(I, O)” 和 ”3-max pooling, stride 2”,步幅2意味着与内核大小为3步幅为2。

ConvNets在NLP上的大多数应用都使用了一个非常浅的架构(最多6个卷积层),并结合了不同大小的卷积,例如跨越3、5和7个tokens。这是由于卷积在token上提取n-gram特征,并且需要不同的n-gram长度来建模短跨和长跨关系。在这项工作中,我们建议创建一个架构而不是使用许多层(3)大小。通过卷积小叠加4层这样的运算结果的9令牌,但是网络可以学习本身如何最好地结合这些不同3-gram特性深层次化的方式。我们的架构实际上可以看作是VGG网络的一种temporal适应(Simonyan和Zisserman, 2015)。我们也调查了同样的ResNet shortcut”在(He et al., 2016a),也就是识别和1 x 1(见图1)的卷积。

分类任务在这个工作中,卷积的输出块的temporal分辨率是第一个down-sampled使用k - max池固定尺寸。通过这些方法,网络提取出k个最重要的特征,独立于它们在句子中出现的位置。将得到的512k特征转化为一个向量,作为三层全连通分类器的输入,该分类器具有ReLU隐藏单元和softmax输出。输出神经单元数量取决于分类任务的隐藏层单元(设置为2048),在所有实验中k=8。我们不使用完全连接层的drop-out,而只使用卷积层之后的temporal batch norm来对网络进行规范化。

Convolutional Block

每个卷积块(见图2)是两个卷积层的序列,每个卷积层后面是一个temporal BatchNorm (Ioffe和Szegedy, 2015)层和一个ReLU激活。所有temporal卷积的内核大小都是3,加上填充以保持temporal分辨率(或者在使用stride 2的卷积池的情况下减半,见下)。由于所有层中非常小的卷积滤波器的参数数量有限,通过增加卷积层来稳定地增加网络的深度是可行的。不同深度的总体体系结构通过不同池层之间的回旋的块的数量(见表2)。temporal batch应用同样的正规化作为mini-batch批规范化除了激活在颞联合规范化(而非空间)的位置。因此,对于小批量大小m和temporal大小s的feature map,取与BatchNorm算法相关的和和标准差,取|B| = m·s项

我们探讨了Ki和Ki+1块之间的三种下采样类型(图1)

(i) Ki+1的第一卷积层具有stride 2(类resnet)。

(ii) Ki之后是一个k-max池层,其中k的值使分辨率减半(Kalchbrenner et al., 2014)。

(iii) Ki之后是内核大小为3和stride 2的最大池(类似于vgg)。

所有这些类型的池都将temporal分辨率降低了2倍。在最后一个卷积层,分辨率为sd。

在这项工作中,我们探索了网络的四个深度:9、17、29和49,我们将它们定义为卷积层的数量。网络的深度由64、128、256和512个滤波器的块数相加得到,每个块包含两个卷积层。在图1中,网络具有每种类型的2个块,因此深度为2 x (2 + 2 + 2 + 2)= 16。加上第一个卷积层,总共是17个卷积层。因此,可以通过添加或删除带有一定数量滤波器的卷积块来增加或减少深度。我们观察到的深度为9、17、29和49的最佳配置如表2所示。给出了所有卷积层的参数个数。


4 Experimental evaluation

4.1 Tasks and data

在计算机视觉领域,用于对象检测和图像分类的大型数据集的可用性推动了新体系结构的发展。特别是,这使得比较许多不同的架构成为可能,并显示了非常深的卷积网络的好处。我们提出我们的结果八免费提供大规模数据集(Zhang et al ., 2015)提出的覆盖几个分类任务,如情绪分析、主题分类或新闻分类(见表3)。训练例子的数量变化从120k到3.6M,类的数量由2至14。这大大低于计算机视觉(例如ImageNet的1000个类)。

这样的结果是,每个示例引入的梯度信息更少,这可能使大型架构的培训更加困难。还应该注意的是,有些任务非常模糊,特别是情感分析,很难清晰地关联细粒度标签。每节课的训练集和测试集都有相同数量的例子。有关数据集构建的更多细节,请参考(Zhang et al., 2015)。

表4总结了我们所知道的关于这些语料库的最佳发布结果。我们不使用同义词典数据增强或任何其他预处理,除了下套管。然而,在所有数据集上,我们仍然胜过(Zhang et al., 2015)的最佳卷积神经网络。我们工作的主要目标是证明把深度卷积网络训练成文本编码器是可能的,也是有益的。数据的增加可能会进一步改善我们的结果。我们将在未来的研究中对此进行研究

4.2 Common model settings

我们所有的实验都使用了以下设置。在最初的实验中发现它们是最好的。接下来(Zhang et al., 2015),所有的处理都在字符级完成,字符级是句子的原子表示,与图像的像素相同。字典由下列字符组成”abcdefghijklmnopqrstuvwxyz0123456789-,;.!?:’"/| #$%ˆ&*˜‘+=<>()[]{}”加上特殊的填充、空格和未知标记,总共有69个标记。将输入文本填充为固定大小的1014,较大的文本将被截断。字符嵌入的大小为16。使用SGD进行培训,使用大小为128的小型批,这是初始学习率为0.01,动量为0.9。我们遵循与in (Zhang et al., 2015)相同的训练流程。我们初始化卷积层如下(He et al., 2015)。深度9的epoch从24分钟到2h45,深度29的epoch从50分钟到7h(在最大的数据集上)。花了10到15个时代才汇聚到一起。实现使用Torch 7完成。所有的实验都在一个单一的NVidia K40 GPU上执行。与以往使用ConvNets进行文本处理的研究不同,我们使用的是没有dropout的temporal batch norm。

4.3 Experimental results

在本节中,我们评估了模型的几种配置,即三个不同的深度和三种不同的池类型(参见第3节)。这表明,通过将深度提升到29个卷积层,可以显著提高文本分类任务的最先进配置。

Our deep architecture works well on big data sets in particular, even for small depths.表5显示了深度9、17和29以及每种池的测试错误:与stride 2的卷积、k-max池和temporal max-pooling。对于我们使用的最小深度(9个卷积层),我们发现我们的模型在最大的数据集(Yelp Full, Yahoo Answers和Amazon Full and polar)上的性能已经优于Zhang的卷积基线(包括6个卷积层,具有不同的架构)。分类误差下降最重要的是Amazon Full最大的数据集,它有300多万个训练样本。我们还观察到,对于较小的深度,temporal max-pooling在所有数据集上工作得最好​​​​​​​

Depth improves performance.当我们将网络深度增加到17和29时,对于所有类型的池,所有数据集上的测试错误都会减少(48个比较中有2个例外)。从深度9到深度17和深度29,Amazon Full绝对降低了1%的错误率。由于该测试由650K个样本组成,因此又对6.5K个样本进行了正确分类。这些改进,特别是在大型数据集上的改进是显著的,表明增加深度对文本处理是有用的。总的来说,与以前的最先进的体系结构相比,我们最好的深度29和最大池的测试错误为37.0,而不是40.43%。这表示获得了3.43%的绝对准确度。与张的卷积模型相比,我们在所有数据集上得到的显著改进不包括任何数据增强技术。​​​​​​​

Max-pooling performs better than other pooling types. 在pooling方面,我们还可以看到max-pooling总体上性能最好,非常接近于用stride 2进行卷积,但两者都明显优于k-max池。这两种池机制都执行一个最大操作,该操作是本地的,限制为三个连续的token,而k-max轮询同时考虑整个句子。根据我们的实验,在中间层(除了最小的数据集)执行这种类型的最大操作似乎会损害性能。​​​​​​​

Our models outperform state-of-the-art ConvNets.除了最小的AG s news和搜狗news外,我们获得了所有数据集的最新结果。然而,由于我们非常深入的架构,我们更接近于这些数据集的ngram TF-IDF的技术水平,并显著超过了(Zhang et al., 2015)中提出的卷积模型。从之前的工作中可以看出,浅层(TF-IDF)模型和深层(卷积)模型在大数据集上的精度差异更为显著,但我们在小数据集上仍然表现良好,同时在小数据集上更接近于非卷积的最新结果。很深的模型甚至执行以及ngrams ngrams-TFIDF分别在Yelp评论的情感分析任务极性和本体的分类任务DBPedia数据集。杨等人的结果。(只有在雅虎问答和亚马逊)超越我们的模型在雅虎问答数据集,这可能是与他们的模型是特定于任务的数据集的样本包含多个句子像(问题,回答)。他们使用分层注意机制,这种机制非常适用于文档(包含多个句子)。​​​​​​​

Going even deeper degrades accuracy. Shortcut connections help reduce the degradation.如(He et al., 2016a)所述,在使用标准的ConvNets时,由于深度的增加而带来的精度增益是有限的。当深度增加太多时,模型的精度就会饱和,并开始迅速下降。这种退化问题是由于非常深入的模型更难优化。在非常深的网络中反向传播的梯度消失了,具有动量的SGD不能收敛到损失函数的正确最小值。为了克服模型的这种退化,ResNet模型引入了卷积块之间的快捷连接,使得梯度更容易在网络中流动(He et al., 2016a)。我们通过将卷积数增加到49层来评估快捷连接的影响。我们将ResNet模型应用于文本的temporal卷积情况(参见图1)。

表6显示了在使用或不使用快捷连接的Yelp Review完整数据集上测试错误的演变情况。在没有捷径的情况下查看列时,我们发现了与原始ResNet文章相同的退化问题:当从29层增加到49层时,测试错误率从35.28增加到37.41(而训练错误率从29.57增加到35.54)。当使用快捷连接时,当网络有49层时,我们观察到改进的结果:训练和测试错误都减少了,网络比没有快捷连接时更不容易拟合不足。虽然当网络非常深(49层)时,快捷连接能提供更好的结果,但我们无法用它们达到最先进的结果。我们计划进一步探索剩余网络对temporal卷积的适应性,因为我们认为这是深入NLP的一个里程碑。剩余单元(He et al., 2016a)更好地适应文本处理任务,可能有助于训练更深入的文本处理模型,并留给未来的研究​​​​​​​。

Exploring these models on text classification tasks with more classes sounds promising.注意,本文讨论的分类任务与ImageNet之间最重要的区别之一是,后者处理1000个类,因此通过梯度将更多的信息反向传播到网络​​​​​​​。探索temporal卷积模型的深度对包含数百或数千个类的分类任务的影响将是一个有趣的挑战,并留给未来的研究​​​​​​​。


5 Conclusion

我们提出了一种新的NLP体系结构,它遵循两个设计原则:

1)操作文本的最低原子表示,即字符;

2)使用深度栈的本地操作,即卷积和最大池大小为3,以学习句子的高级层次表示。

该架构已经在8个免费的大规模数据集上进行了评估,我们能够证明将深度增加到29个卷积层可以稳步提高性能。我们的模型比以前发表的卷积神经网络要深入得多,并且在所有数据集上都优于这些方法。据我们所知,这是在NLP中,深度的好处首次被证明卷积神经网络。

尽管文本遵循人类定义的规则,图像可以被看作是我们环境的原始信号,但图像和小文本具有相似的属性。文本也是许多语言的组成部分。字符组合成n-gram、stems、词、短语、句子等。这些相似的特性使得计算机视觉和自然语言处理之间的比较非常有利可图,我们相信未来的研究应该投资于使文本处理模型更深入。我们的工作是朝着这一目标的第一次尝试。

在这篇论文中,我们着重于使用非常深的卷积神经网络来完成句子分类任务。将类似的思想应用到其他序列处理任务中,特别是神经机器翻译,留给未来的研究。需要调查的是,这些是否也得益于更深层次的卷积编码器。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值