论文名称:Very Deep Convolutional Networks for Natural Language Processing
摘要
在许多自然语言处理任务中起到主导地位的方法是循环神经网络(RNN,尤其是长短时间记忆网络,LSTM)和卷积神经网络(ConvNets)。然而,相比于深度卷积网络在计算机视觉领域中取得的巨大成功,这些网络结构还是太过浅层了。我们提出了一种直接在字符级别上进行文本处理的新结构,但仅仅用了很少的卷积和池化操作。我们的实验结果表明模型的性能与网络深度成正比,一直用到 29 层卷积层,在多个文本分类任务中取得了重大的效果提升。据我们所知,这是深度卷积网络第一次应用在自然语言处理任务中。
1、导语
自然语言处理的目标是用计算机来处理和分析文本,从中提取有用信息,最终用不同方式来表示相同的信息。我们可能想要给文本进行分类(比如:词性标注或者情感分析),或者将文本结构化表示(比如:句法分析),或者是将某种形式的信息转换为其他形式,保留所有或者部分内容(比如:机器翻译、文本摘要)。文本处理的粒度从字符到单词再到句子或者甚至是段落。
在一系列前人工作的基础上,神经网络在自然语言处理任务中的应用吸引了大量的研究者,并且系统地应用在了所有任务中。然而,神经网络在自然语言处理的很多任务中都取得了不错的结果,却仍然没有像在计算机视觉和语音识别领域中那么地遥遥领先。
卷积神经网络,简称为 ConvNets,在计算机视觉领域中非常地成功。计算机视觉的早期研究中,研究者们通常都使用人工特征,比如 SIFT(尺度不变特征变换)被应用在分类器上。卷积网络的基本思想是将特征提取和分类任务作为一个联合训练的任务。这种思想近些年被改进了很多,尤其是使用非常多卷积层和池化层来获取输入的多层次表示,最好的模型使用了超过 150 层的结构。
许多自然语言处理方法将词作为基本单元,一个非常重要的步骤就是将词表示为一个低维向量。这些词向量现在在自然语言处理中运用地非常好,然而我们却不知道该如何更好地表示一个词序列,比如:整个句子,因为句子有着复杂的语法和语义关系。
通常,在同一个句子中,我们可能会面临局部和长程依赖问题。当前,主流的做法是将句子当作一个符号序列(字符或者词),然后用循环神经网络来处理。符号通常按照从左向右的顺序进行处理,循环神经网络将整个句子用其内部状态量进行记忆。最著名、最成功的循环神经网络变种一定是长短时间记忆模型(LSTM),大量的工作证明了其解决自然语言处理任务中长程依赖问题的能力。然而,我们认为 LSTM 是一种解决序列处理问题的通用方法,但其缺乏具体任务结构。
我们打个比方说,众所周知一个单隐藏层的全连接神经网络理论上可以学习任何实数函数,但是如果用一个特定问题下的深度分层表示结构的话,可以取得更好的结果。借助于这些方法,搜索空间将被严重约束,随机梯度下降算法将学习更有效的解。计算机视觉领域的卷积网络就是一个典型的例子。我们认为,在某个程度上,在处理序列时,RNN 或者 LSTM 都可以被看作是一种全连接神经网络的扩展模型。他们是非结构化的,并且不可以适应特别的任务,比如所有应用中都使用相同的 LSTM 单元,仅仅单元的数量是变化的,或者将用多层 LSTM。
RNN 通过沿时间(序列长度)展开来学习序列的表示常常引起争论,然而我们却认为深度在序列上的变化相当于是将第一个符号通过很多层进行线性操作之后传递到最后一个。LSTM 使用了门机制,这导致了近端的符号比远端的符号被更好地记忆了。这种思路甚至启发了研究者们,反向来处理序列,比如双向 LSTM,在两个方向上进行处理。还有一种做法是堆叠多层 LSTM,据我们所致超过四层就不会有提升了,虽然可能用了一些正则化的手段也无济于事。
我们相信自然语言处理的挑战将会是联合任务来学习整个句子的分层表示,本文针对这个目标提出了使用更多卷积层的深度网络结构,最多到 29 层。我们这种结构的设计受到了计算机视觉最近一些研究成果的启发。
本文的结构如下。之前已经有很多的研究尝试用卷积网络来做文本处理,我们将在下一节中总结和讨论先前工作之间的关系和区别。在第三节将会详细描述本文的模型结构。在很多句子分类任务中进行了评测,详细的任务描述和实验结果将会放在第四节。本文的模型在所有任务中均取得了最好的成绩,本文在最后讨论了未来的研究发展思路。
2、相关研究
现在已经有很多关于情绪分析的研究,或更广泛地,关于语句分类任务的研究。最初的方法遵循经典的两阶段步骤,包括提取(人工生成的)特征,然后进入分类阶段。典型的特征包括词袋模型以及 n 元模型,以及他们的词频-反向词频数据(TF-IDF)。在 Zhang 等人的论文中[20],这一技术就被与 ConvNets 做了比较。我们在实验中使用的是同一个语料库。最近出现的一种方法是,将单词或字符投射到高维空间,然后将这些向量结合,得到对输入语句的固定长度的表征,最终,这些表征作为输入值进入分类器。最简单的结合是基于元素求均值,但这一方法经常效果不佳,因为所有关于符号顺序的概念都被忽略了。
另一类方法是递归神经网络。其主要内容是,使用一个通常称为语法分析工具的外部工具,来具体说明不同的词向量是如何结合的。在每一结点上,左侧和右侧的上下文会通过所有结点共享的加权值被结合[16]。顶端结点的状态则会被输入分类器。递归神经网络(RNN)可以被视为一种周期性的神经网络的特殊情况:按照一定顺序进行结合,通常是从左往右。RNN 的最终状态,会被作为该语句的固定尺寸表征来使用,或者最终成为所有隐藏状态的结合。
最早在自然语言处理领域(NLP)使用卷积神经网络的应该是[3, 4],接着,卷积神经网络被用于语句分类[12, 11, 20]。我们会在下文更详细地探讨这些技术。如果没有另外说明,所有方法皆操作于投射在高维空间的单词之上。
Kim 的论文展示了一个非常浅的神经网[12]:一个卷积层(包含多个宽度和过滤器)渐渐与一个最大池化层相连接,最后的分类器则使用一个含有漏失的全连接层。实验结果包含了六个不同的数据库,特别是 Stanford Sentiment Treeban (SST)。Kalchbrenner 等人的论文也展示了一个相似的系统[11],但是他们使用了五个卷积层。另外一个重要的区别是,他们还使用了多个短时k-最值池化层,而这使得系统能独立于特征的位置,来决定在句子中第k重要的特征,并保留它们之间的顺序。k 值由句子长度和当前层在网络中的位置决定。Zhang 等人的论文[20] 是第一篇完全从字符层面进行情绪分析的研究。他们的系统最多使用六个卷积层,其连接着三个全连接分类层,同时他们使用尺寸为 3 和 7 的卷积核,以及简单最大池化层。这篇论文还有一个有趣的地方是,作者们将一些大型数据集用于文本分类。我们使用的是一样的实验配置(见 4.1 节)。dos Santos 和 Gatti 的论文[5]也使用了字符层面的信息:一个单词的所有字符向量通过最大值操作相结合,并作为一个整体与词向量信息一起使用。其整体结构是非常浅的,只有两个卷积层,但其在 SST 和 Stanford Twitter Sentiment corpus 语料库的一个小型数据集上的表现非常好。
在计算机视觉领域,将递归和卷积网络相结合,也是许多人在探索的结构,而其目标是「取二者之精华」,如[14]。同样的想法最近也被应用在了句子分类上[19],这篇论文中使用一个最多只有五层的卷积网络,来学习输入到一个长短时记忆的高层特征。作者们最初的目标是使用参数极少的网络,得到像 Zhang 等人一样的操作[20]。他们的报告结果与 Zhang 等人[20] 的结果十分相近,甚至在某些数据集上的表现比 ConvNets 还要更好。
总而言之,我们没有看到在句子分类上使用超过六个卷积层的研究,也没有看见对更深层网络的尝试,或者它们对改善结果并没有帮助。这与近来计算机视觉领域使用更深层网络的潮流大相径庭,后者使用多达 19 层的网络[15],有时甚至达到 152 层[7]。在本篇文章接下来的部分,我们会描述我们使用的非常深的卷积结构,并报告在 Zhang 等人使用的语料库下的结果。我们的实验显示,使用更深的网络能够提升操作结果,而其最多达到 29 个卷积层。
3、架构
之前大多数卷积网络在自然语言处理任务中应用时,只采用了非常浅层的网络结构(最多到 6 层),然后用不同大小窗口的卷积层进行组合,比如扩展 3、5、7 个符号。
这种思路受启发于从文本序列中提取 n 元特征的方法,不同的 n 对应着不同的符号大小。
本文中,我们采用了具有很多层的网络结构,每一层的卷积符号大小为 3。
在深度分层模型中,用一个四层的卷积网络来处理 9 个符号的序列,可以自主学习如何组合这些不同的 3 组元特征。
本文模型的结构实际上可以看做是一种考虑时序的 VGG 网络(注:VGG 是牛津大学提出的一种卷积网络)结构。同时,我们也考察了同样类型的 ResNet(注:ResNet 是微软提出的一种卷积网络)结构。本文模型结构可参见图1:
其中每一个卷积块可参见图2:
4、实验评测
本文在八组大型分类数据集上进行了评测,数据集如下表:
实验结果:
本文模型在大型数据集上表现尤为突出,甚至是只用很浅的深度。
模型的性能随着深度地增加而提升。
最大池化技术比其他池化技术表现更好。
本文模型在所有卷积网络模型中是最领先的。
如果网络再深一些的话,将会降低准确率,而 ResNet 中的快速连接技术(shortcut connections)可以来解决这个问题。
本文模型如果应用在类别更多的文本分类任务中效果会更明显。
5、结论
我们遵循以下两种设计原则提出了这个新的自然语言处理结构:1)基于表示文本的最小表示进行操作,例如字符。2)利用本地操作的深度堆栈,例如卷积层和卷积符号为3的最大池化,来学习句子的高层次表示。
我们用八个完全开放的大规模数据集对这个结构进行评估,结果表明,当增加卷积层的深度增到29层,模型的性能一直稳定提高,性能与网络深度成正比。我们模型的网络深度远比早前发布的所有卷积神经网络的深度都要深,并且在所有的数据集评估中表现都要更好。
据我们所知,这是第一次将卷积神经网络应用于自然语言处理的「深度的优势」展现出来。视觉是复合而成的,所以卷积网络很适合图像处理。像素构成形状和轮廓。在卷积网络中,高级特征可以从低级特征中推导而来,就形成了层次化表示。
卷积网络的卷积过滤器创建了规模和复合度持续增加的模式:例如,从轮廓到形状再到脸。一幅图像和一小段文本有许多相似的属性。在许多语言中,文本也是复合的。例如字符组成 n 元文法、词根、词、短语及句子。这些相似的属性有利于对计算机视觉和自然语言处理进行对比。并且我们相信,未来的研究将会关注使文本处理模型更深。
我们的工作是达成这个目标的首次尝试。在这篇论文里,我们侧重于将深度卷积神经网络用于句子分类任务。同时,类似的理念也可以用于其他序列处理任务,特别是基于神经网络的机器翻译。需要注意的是,这两种任务在概念上是不同的。一方面,对于句子分类,系统需要提取出典型特征并且忽略与分类任务无关的信息(比如词法)。另一方面,在基于神经网络的机器翻译中,句子中的所有信息都必须保留。是否要对这个模型结构进行调整,使之能够应对用深度卷积编码器进行序列到序列的处理,还需要进一步调研。
欢迎加入本站公开兴趣群
商业智能与数据分析群
兴趣范围包括各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识
QQ群:81035754