Very Deep Convolutional Networks for Text Classification

实现:https://github.com/zonetrooper32/VDCNN

Abstract

NLP的许多任务的方法是循环神经网络,特别是LSTM,与深层的卷积神经网络相比,这些网络都比较浅,所以我们构建VDCNN,这是字符级的,并且仅用小的卷积和pooling操作,用了29层卷积层。

1 Introduction

NLP的任务是处理文本,提取文本,采用不同形式表示相同的信息,我们希望把标签和文本的一部分关联(比如词性标注,情感信息),结构化文本(语法分析),或是把它转化成别的形式,这些保存全部或部分信息(比如机器翻译,信息抽取),处理文本的细粒度包括了单独的字符级和词单元,或是词到整个句子和段落。

神经网络在NLP中获得快速发展,CNN最初在计算机视觉应用,并获得最好的效果,一开始处理图片是采用特征+分类器,特征可以是SIFT,神经网络是特征抽取和分类一起的,特别是采用多层卷积层和pooling来抽取层级特征。

一些NLP方法把词当作最基本的单元,最重要的步骤是用向量来表示一个词,所以word-embedding是NLP里最好的方法,但是对于如何表示一系列的词不清晰,比如一个句子,包含了复杂的语法和语义信息,事实上,在相同的句子中,我们还面临局部和长时间的依赖问题,目前,大多数做法是把句子当作一系列字符或词的标记的集合,并用RNN来处理,这些标记通常以序列的形式处理,从左到右,并且RNN可以在内部状态记住整个序列,最好的RNN变体是LSTM,而LSTM是处理序列的普通方法,并且缺少处理特定任务的能力。

ConvNets可以使用在计算机视觉的原因是图像的组合特征,文本也有相同的特征,比如字符构成n元模型,词干,词,短语,句子等。

我们认为深层的架构可以学习整个句子层级的表示。

 

2 Related work

对于情感分析,获得句子分类,有很多的研究,传统的方法包括两部分,抽取特征(手工)+分类器,典型的特征包括词袋,n元模型和TF-IDF,

These techniques have been compared with ConvNets by (Zhang et al., 2015; Zhang and LeCun, 2015)

词和字符都投影到低维空间,这些词嵌入获得输入句子的特定大小的表示,并作为分类器的输入。

扫描二维码关注公众号,回复: 3163145 查看本文章

RNN最后的状态通常作为句子特定大小的表示,获得把所有的隐含状态结合起来,

(Kim, 2014):不同宽度的滤波器跟一个max-pooling,最后加一个有dropout的全连接层。

(Kalchbrenner et al., 2014):5个卷积层,不同之处在于有不同的k个max-pooling层,这可以获得句子的k个最重要的特征,而且与位置无关,保存相对顺序,k值取决于句子的长度和这层在网络的位置。

(Zhang et al., 2015):最先使用字符级进行情感分析,使用6个卷积层,然后连接3个全连接层,使用3和7的卷积核和简单的max-pooling层。

(Dos Santos and Gatti, 2014):一个词的所有字的词嵌入采用max操作进行联合,然后在浅层神经网络使用word-embedding

(Yang et al., 2016):提出HAN网络,文档上的句子级,句子上的词级,

(Pinheiro and Collobert, 2014):RNN和CNN的结合,

(Xiao and Cho, 2016):5个卷积层获得的特征作为LSTM的输入,

3 VDCNN Architecture

3, Temp Conv, 64 –》 表示卷积核为3的瞬时卷积,X:特征映射

fc(I, O) –》 全连接I:输入矩阵,O:输出矩阵

3-max pooling, stride 2 –》 瞬时max-pooling,卷积核为3,步长为2

look-up table获得2D大小的,包含个字符的embedding,s=1024,可以看做文本的‘GRB’维度。

每层使用大小为3的滤波器,并接着短暂的卷积块。

i: for the same output temporal resolution, the layers have the same number of feature maps

ii:when the temporal resolution is halved, the number of feature maps is doubled

这个网络包含3中pooling操作,获得三个级别的特征映射,即128,256,512,这些卷积块的大小为是下采样操作的个数,卷积层的输出结果可以看做是输入文本的高级表示,处理的是经过pad的固定大小的文本,是一个常数,

对于不同大小的输入,卷积编码器提供了依赖于最初长度s的输入文本表示,

把文本用一系列向量来表示,这对于神经机器翻译非常重要,特别是与attention结合时特别好,

以前的CNN只是用3,5,7,这可以提取n元模型,表示短或长的词的依赖关系,本论文中,采用多层的小卷积核,堆叠4层,可以获得9个,网络可以自己学习如何最好的结合这些3元模型

Our architecture can be in fact seen as a temporal adaptation of the VGG network (Simonyan and Zisserman, 2015). We have also investigated the same kind of “ResNet shortcut” connections as in (He et al., 2016a), namely identity and 1 × 1 convolutions (see Figure 1).

卷积块的输出首先进行k-max pooling下采样获得特定维度,获得k个最重要的特征,而且与他们在句子中出现的位置无关,512*k获得的特征转换成单一向量,并输入到三个全连接层,输出向量取决于类别个数,隐藏神经元的个数为2048,k=8,全连接层不使用dropout,卷积层后使用块归一化。

Convolutional Block

4 Experimental evaluation

4.1 Tasks and data

不做数据增强,同义词替换,

4.2 Common model settings

abcdefghijklmnopqrstuvwxyz0123456789-,;.!?:’"/| #$%ˆ&*˜‘+=<>()[]{}

pad到1014长度

多余删掉,

字符级embedding是16

使用SGD

mini-batch=128

learning rate=0.01

momentum=0.9

We follow the same training procedure as in (Zhang et al., 2015). We initialize our convolutional layers following (He et al., 2015).

4.3 Experimental results

Depth improves performance

Our deep architecture works well on big data sets in particular, even for small depths.

Max-pooling performs better than other pooling types.

Our models outperform state-of-the-art ConvNets.

Going even deeper degrades accuracy. Shortcut connections help reduce the degradation.

Exploring these models on text classification tasks with more classes sounds promising.

5 Conclusion

猜你喜欢

转载自blog.csdn.net/qq_27009517/article/details/82385748