APP下载

基于神经网络的文本分类方法研究

2020-03-19王芝辉王晓东

计算机工程 2020年3期
关键词:语句卷积向量

王芝辉,王晓东

(国防科技大学 计算机学院,长沙 410072)

0 概述

在大数据时代背景下,网络中积累的历史数据,以及数以亿计的网民每天产生的新数据,使互联网数据规模爆发式增长,这其中包含了文本数据、声音数据、图像数据等多样化的数据形式。而在各种数据中,文本数据所占比例最大、数量最多,如何处理和利用海量文本数据显得尤为重要。此类数据虽然数量巨大,但如果只是单纯地存储并不能产生实际价值,同时也并非所有文本都具有实际价值或对特定用户有意义,因此,海量文本分析是实现大数据理解和价值发现的重要手段。

人工神经网络技术是从信息处理角度对人脑神经元进行抽象,建立简单模型,按不同连接方式组成不同网络的技术。研究者于20世纪40年代建立神经网络及其数学模型,之后又提出了感知器等更完善的神经网络模型。随着研究的进一步深入,此后研究者又提出性能更好的Hopfield网络模型,以及多层前馈神经网络的学习算法,推动了人工神经网络的发展,并使其在众多领域得到成功应用。

面对海量文本数据分析的需求以及人工神经网络技术迅速发展和广泛应用的现状,基于人工神经网络的文本分析成为目前重要的研究方向。作为海量文本处理的关键技术,文本分类可以根据具体需要将文本划分成不同的类别,从而方便进一步分析和应用。近年来人工神经网络在文本分类问题中取得了显著效果,进一步促进了两者的结合和发展。在此环境下,本文介绍不同结构的人工神经网络在文本分类中的应用及发展历程,比较其在常用数据集上的分类效果,同时展望未来的发展方向。

1 问题分析

文本分类问题是自然语言处理中一个经典问题,也是文本分析的常用方法。该问题定义为:对于一篇文档,是将其划入预先定义的多个类别中的某一个或几个。作为处理海量文本数据的关键技术,它能够帮助用户更好地组织文本、挖掘文本信息,方便用户准确地定位所需的信息。

以在线社交网络上对文本分类的应用需求为例,主要有以下类型:

1)基于内容的主题分类[1]。文本的内容通常涉及社会中的多个方面,如政治、经济、体育、娱乐、军事等,可根据文本的内容将其划分为不同的领域,用户再根据自身的需求选择其中的某一个或者某几个领域的文本数据做进一步处理。这种需求下的分类类别通常是多个,可能达到十几个。一篇文本很可能同时涉及多个领域的内容,因此,根据用户需要,分类结果可以是只有一个标签,只属于某一类别,也可以拥有多个标签,划入与文本最相关的多个类别。

2)基于观点的情感极性分类。对于社会热点新闻,网民及公共媒体经常在社交网络中发表自己的观点看法,对于书籍和影视作品等也有对应的大量评论数据。根据网民的观点,可以对他们的情感态度进行分类:积极或是消极,支持或是反对,以及保持中立态度。对于这种分类需求,分类类别通常只有2类或3类,也可根据情感态度的强弱做更细的划分。

分类前的一个重要步骤是文本数据预处理。预处理过程如下:

1)分词处理,将连续的文字流切分成单独的词汇,对于英文只需通过空格和标点即可完成,对于中文则较为复杂,常用的工具为结巴分词,分词的效果对文本分类的效果影响很大,是后续流程的基础。

2)去除停止词,目的是将一些辅助性文字删除,一般都是通过查一个对应表来完成。

3)词性标注,判断单词的词性,如名词、动词等

4)还原词根,对于中文,预处理已经完成,对于英文,由于单词有词形的变化,如名词的单复数、动词的时态等,因此还需要还原词根。

文本分类本质上与其他分类问题是一致的,是根据待分类数据的特征进行匹配从而划归到正确的类别,因此,核心问题就可转化为如何选取文本的特征以保证有效和快速地分类。最原始的方法是词匹配法,仅根据文档中是否出现了与类名及其近义词语相同的词来判断文档的类别,这种方法简单,但是分类效果却很差。进一步则是利用知识工程的方法为每个类别定义大量的推理规则,根据文档是否满足规则来判断类别,此时与特定规则的匹配程度就是文本的特征。这种方法准确度比词匹配法高了很多,但缺点也很明显,一是分类效果严重依赖于规则的质量,而推理规则是由用户制定的,高质量的规则需要专家制定,大幅提升了人力成本;另一个缺点则是完全不具备推广性。之后则是统计学习方法的思想,让机器像人类一样通过对大量同类文档的观察来总结经验,作为分类的特征和依据,也称为机器学习,并已经成为目前文本分类领域的主流方法[2]。

机器学习方法的发展,起初是传统的朴素贝叶斯、Rocchio、KNN[3]、决策树等算法,这些方法与之前的方法相比有着很好的分类效果,但是文本表示的特征表达能力很弱,而且耗时耗力,成本很高。之后随着计算能力的提升和人工神经网络的兴起,基于神经网络的深度学习方法逐渐成为研究的主要方向。

对于文本分类的结果,主要有2个评价指标:

1)准确率,也称为精度,是指检索出的相关文本数与检索出的文本总数的比率,衡量的是分类的查准率。

2)召回率,是指检索出的相关文本数与文本库中所有相关文本的比率,衡量的是文本的查全率。

上述2个指标是相互影响的,最理想的情况下是两者都高,但是在一般情况下,一个指标高,另一个指标就会低。

2 神经网络在文本分类中的应用

在文本分类中,神经网络是一组连接的输入输出神经元,输入神经元代表词条,输出神经元代表文本类别,神经元之间的连接都有相应的权值。在训练阶段,通过正向传播算法、反向修正算法等多种算法调整权值,可使测试文本能够根据调整后的权值准确地学习,从而得到多个不同的神经网络模型,然后将一篇未知类别的文本依次通过这些神经网络模型得到不同的输出值,并通过比较最终确定文本的类别。应用神经网络可以利用网络结构自动获取文本特征解决分类问题[4],避免了繁杂的人工特征工程。

2.1 卷积神经网络

卷积神经网络(Convolutional Neural Network,CNN)本质上就是多层卷积运算,外加对每层的输出用非线性激活函数做转换。在传统的前馈神经网络中,网络把每个输入神经元与下一层的输出神经元相连接,这种方式也被称作是全连接层。而在卷积神经网络中,则是用输入层的卷积结果来计算输出,这相当于局部连接,每块局部的输入区域与输出的一个神经元相连接,对每一层应用不同的滤波器,然后汇总结果。

文献[5]将卷积神经网络应用到文本分类问题中,提出了TextCNN模型。如图1所示,该模型的结构为:输入层是一个表示句子的矩阵,每一行是句子中一个单词的词向量,此处使用的是Google的word2vec[6],卷积层由若干个滤波器组成,在最大池化层之后,利用SoftMax函数处理池化层的输出进行分类。该文也尝试了2种不同形式的通道,分别是动态和静态词向量,其中一个通道在训练时动态调整而另一个不变。

图1 TextCNN模型示意图Fig.1 TextCNN model schematic diagram

文献[7]在TextCNN模型的基础提出了改进的DCNN模型,模型仍然是基于卷积的,在每一层卷积操作之后增加一个最大池化操作,同时对池化层进行了优化,不是传统地选出最大值,而是动态地选出最大的k个值。

利用卷积神经网络做文本分类时,需要先选择一定尺寸的滑动窗口,然后使用滤波器每次选取一个特征组成特征图,最后利用池化操作选择出最重要的特征用于分类。对于该过程,滑动窗口大小的

选取是关键,如果过小则会导致不能获取长距离的语句信息,如果过大则会导致数据十分稀疏。

为解决滑动窗口尺寸的问题,与DCNN的动态池化不同,文献[8]提出的MVCNN模型利用尺寸动态改变的滤波器来处理文本,获得长度不同的子句,从而可以提取多粒度的短语特征。此外,词向量对于句子的表示以及分类效果有着很大的影响,该文结合了skip-gram、GloVe[9]和C&W[10]3种表现较好的词向量方法,将它们看作单词的不同表示,从而可以包含比单一词向量更为丰富的信息,提取出更高质量的语句特征,进而提高分类效果。

上文介绍的模型都是在单词或者短语层面上对文本进行处理。文献[11]则将卷积神经网络模型直接用于字符层面,提取出更高层次的抽象概念,提出char-CNN模型。该文首先构建字母表,使用one-hot编码的69个字符外加一个全零向量,共70个字符。同时提出large和small两种规模的神经网络,都由6个卷积层和3个全连接层总共9层神经网络组成,使用一维卷积神经网络。从字符层面分类的优点是不需要使用预训练的词向量和语法句法结构等信息,而且容易推广到所有语言。

2.2 时间递归神经网络

在一段文本中,每个单词并不是完全独立的,词与词之间是连续的,文本的语义与单词的顺序也是有关系的。但是利用卷积神经网络解决文本分类时并没有考虑到词序问题,对语义的理解存在偏差。时间递归神经网络(Recurrent Neural Network,RNN)是一种对序列数据建模的神经网络,即一个序列当前的输出不仅与当前的输入有关,与前面的输出也有关,因此,具有记忆功能的RNN可以很好地解决文本分类问题,而可以学习长期依赖信息的LSTM更是一种应用十分广泛的时间递归神经网络,其中的交互神经网络层如图2所示。

图2 LSTM重复模块中的交互神经网络层Fig.2 Interactive neural network layer in repetitive LSTM module

LSTM虽然可以保存序列信息,但是后面信息的重要性要强于前面的信息,然而在一段文本中对分类结果起重要作用的信息并不一定出现在后半部分,双向LSTM则是从2个方向对文本进行处理从而可以更好地包含每个单词的上下文信息,因此,利用LSTM进行分本分类应用更为广泛。此外,在LSTM的研究及应用过程中衍生出了许多改进,其中门控循环单元(Gated Recurrent Unit,GRU)可以捕获更长距离的依赖信息,因此也得到了广泛的应用。

为进一步提高语句表示的效果,文献[12]提出了一种树形的长短期记忆网络模型Tree-LSTM,与标准LSTM隐藏状态由当前输入和前一阶段隐藏状态组成相比,Tree-LSTM的当前隐藏状态由当前的输入向量和任意个子单元的隐藏状态组成。标准LSTM模型可以看作是该模型的特例,即每个节点只存在单个子单元。该模型在语义相关性测试和情感分类中都取得了较好的效果。

文献[13]提出密集连接的双向LSTM(DC-Bi-LSTM)模型用于文本分类。对于输入的一段文本,首先使用双向LSTM进行编码,并将隐藏状态序列作为每一层的reading memory。原始输入作为第1层的reading memory,然后将原始输入和第1层的输出位置做级联操作,作为第2层的输入,以此类推,最终得到第n层的输出并作最后分类的特征表示。该模型解决了梯度消失和过拟合问题,最多可成功训练20层并且需要的参数较少。

2.3 卷积神经网络与时间递归神经网络的结合

CNN利用最大池化层可以很好地判断文章中的重要单词,但是滑动窗口尺寸的选择是一个问题,同时CNN也缺乏学习与顺序相关的知识的能力,而RNN可以顺序建模,但是无法以并行的方式提取特征,同时也是有偏模型。考虑到2种网络的特点,研究者从不同角度将两者结构进行了结合,提出了多种新的分类模型。

文献[14]提出了RCNN模型,在学习语句表示时运用时间递归神经网络的双向循环结构来最大限度获取文本信息,然后利用卷积神经网络的最大池化层判定哪个特征在文本分类中起着更重要的作用。该模型通过结合RNN的递归结构和CNN的最大池化层,同时利用了2种神经网络的优点。

文献[15]提出了C-LSTM模型。首先在大量无标签文本数据预训练得到的词向量上构建CNN,学习N-Gram的更高级表示,然后从更高层次的语句表示中学习与次序有关的知识,将经过卷积操作得到的特征窗口组织成有序的形式,把相同滤波器提取到的特征放在一起,然后依次排列作为LSTM的输入,从而综合利用CNN和RNN的优势。

文献[16]提出BLSTM-2DPooling和BLSTM-2DCNN模型。首先用双向LSTM网络将文本转化为向量形式,然后使用二维的最大池化操作获得长度固定的向量,再利用二维卷积操作获取输入文本的特征表示用于分类。通过双向LSTM网络处理文本可以获取文本较完整的上下文信息,然后利用卷积和最大池化操作提取出最重要的信息。

文献[17]将基于CNN的“region embedding+pooling”模式引入到LSTM中,使得RNN在对全局的把控以及训练时间上都得到了优化。优化主要体现在以下3个方面:

1)消除了词向量层,直接使用one-hot作为输入。

2)增加了池化,LSTM模型的一个缺点是最后一个隐层必须很好地概括全局,但是文本很长时很难达到,因此,此处不再以最后的向量作为输出,而是以每个时刻的输出共同进行池化来得到一个全局性的输出。

3)分块,将长段的文本分为若干个小段落,每个段落用LSTM来进行特征提取,然后用前面提到的池化操作来处理。

文献[18]将一个卷积层建在LSTM上,提出了DSCNN模型。对于单个语句,首先使用LSTM处理词向量来获取语句内部长距离的依赖信息,隐藏单元被抽取出来组成低级别的表示,然后用一个含有不同尺寸的滤波器和最大池化操作的卷积层来提取用于分类任务的特征。对于文章的建模,首先使用LSTM对每个子语句进行建模,然后在第1个LSTM层和卷积层之间添加第2个LSTM层来编码不同语句之间的依赖信息。

2.4 结构递归神经网络

结构递归神经网络是一类用结构递归的方式构建的网络,在自然语言处理的神经网络分析方法中常用于解析语句。单个词的语义向量空间广泛被用作特征,但它不能很好地表示长语句的意义,因此,语义向量空间的组合性得到研究者的广泛关注。在此背景下,文献[19]提出了RNTN模型,模型将任意长度的短语作为输入,把短语表示成词向量和解析树,然后用相同的张量组合函数计算高层节点的向量。文献[20]提出DRNN模型,将多个递归层堆积在一起,在每一层都有一个额外的处理结构,在前向传播过程中,信息会通过每一层的这一结构。结构中的每一个节点都将它的隐藏状态传递给下一层的对应部分,可以看作是前向反馈和递归网络的结合。结构递归神经网络在构建句子表示方面具有很好的效果,但是也取决于文章的树结构,而且时间复杂度较高,不适合构建长语句或者文档。

2.5 预训练模型

预训练的词向量给文本分类效果带来了很大的改善,但也存在局限性,它们仅包含模型第1层的先验知识,网络的其余部分还需要重新训练。在计算机视觉领域中,预训练整个模型以获得初级和高级特征已经采用多年,通常预训练模型是在ImageNet大型数据集上训练图像分类而获得的。受此启发,将语言建模作为预训练任务得到了广泛探索。ELMo[21]和OpenAI Transformer[22]模型经实验证明可以取得良好的效果。文献[23]提出的基于双向Transformer的模型BERT则进一步提高了多项自然语言处理任务的性能。因此,预训练模型将会在自然语言处理领域造成广泛而深刻的影响。

2.6 其他神经网络方法

文献[24]提出了快速的文本分类器fasttext,其由word2vec衍生而来,模型架构与word2vec的CBOW架构类似,同时还引入了层次SoftMax和N-Gram特征。该模型的优点是在保证分类效果的情况下能够快速地学习和完成分类任务。

文献[25]提出分层注意网络模型HAN。鉴于在文章结构中是单词组成语句、语句组成文章这种分层机制,因此,在文章表示中也采用先构建语句表示,再将语句表示合并为文档表示的分层结构。此外,根据不同的单词和语句在文档中的重要性不同,提出了单词级别和语句级别2种不同的注意力机制,对不同的独立单词和语句赋予不同的重要性,从而更好地提升文本分类效果。

将词转化为向量有2种常用方式,其中考虑语法顺序的方法表现更好但是需要更长的训练时间,特别是数据集非常大或者计算资源有限时无法使用。文献[26]提出一种深度无序模型DAN,首先取与输入的字符序列相关的词向量的平均值,然后将平均值传入一个或多个前向反馈层,并在最后的表示层中进行分类。模型还可以通过在计算平均值前随机丢弃一些向量实现性能优化。

3 模型性能分析

本节主要列出了文本分类任务中常用的公开数据集以及各类神经网络模型在这些数据集上的分类效果,以分类的准确率作为评价的依据。数据集中既包括了电影评论MR[27]、SST-1[28]、SST-2、主观性测试Subj[29]等分类类别较少的情感极性测试数据集,同时也包括新闻分类20NewsGroup[30]、AG、Sogou[31]、问题分类TREC[32]、商品评分Amazon[33]等分类结果较多的数据集。具体分类效果如表1所示。

表1 各类神经网络模型的分类准确率对比Table 1 Comparison of classification accuracy of various neural network models %

分析表1中数据可知,对于分类类别较少的情感极性测试数据集,采用密集连接的双向LSTM的DC-Bi-LSTM模型表现最为出色,即使在五分类的SST-1和六分类的TREC数据集上的准确率也与最好效果十分接近。此外,使用双向LSTM的BLSTM-2DCNN模型的表现也较为突出。由此可见,双向LSTM对于文本表示效果较好,既获取了长距离的依赖信息,其双向的结构又可以更好地包含每个词的上下文信息。但由于结构复杂,双向LSTM通常需要很长的训练时间,训练成本高,在数据集规模较大的情况下这个问题尤为突出。

对于新闻分类数据集,从表1中可以看出fasttext模型取得了很好的效果,该模型的优点在于结构简单,而且分类效果也相对令人满意,在对时效性要求较高的情况下是不错的选择。

相较于图像领域,CNN在文本分类方面并不具备明显的优势,虽然与传统的分类方法相比性能已有了较大的提升,但即使对结构进行改进之后效果依然要比LSTM差,这可能与文本数据本身的特点有关。即便如此,CNN在文本方面依然可以发挥重要的作用,从表1中数据可以看出,将CNN与RNN结合之后在某些数据集上可以达到所有模型中的最佳效果,因此,在探索新的网络结构时也是不可忽视的一部分。

上述实验结果基本都是利用英文数据集进行实验,但这些模型同样也适用于中文数据集,而且也能达到很好的效果。在应用神经网络进行文本分类时,首先要通过空间向量模型将文本转化为由数字组成的向量,然后再利用各种结构的神经网络对向量进行处理获得最终的分类结果。因此,中文文本分类与英文的差别主要在于数据的预处理部分以及转化后所获得的词向量。应用上述模型解决中文文本分类时,需要利用中文的语料库和word2vec等工具训练得到可用的词向量,BERT预训练模型开发者也已公布了中文模型,可以供研究者直接使用。数据集方面常用的主要有清华大学和复旦大学整理的新闻分类数据集以及用于情感分析的新浪微博数据集和京东商品评论数据集等。

4 结束语

本文总结当前用于文本分类任务的主流神经网络,介绍不同网络的应用和研究进展,并对比其在常用数据集上的分类效果。分析结果表明,卷积神经网络[34]、时间递归神经网络[35]和以OpenAI Transformer为代表的预训练模型分类效果较好,而预训练模型在特征抽取和并行计算方面的综合表现更为优异,是未来的主要发展趋势。同时,对三者各取所长进行组合,以及借鉴神经网络在图像领域的研究成果,也将是文本分类方法的改进方向。

猜你喜欢

语句卷积向量
向量的分解
基于3D-Winograd的快速卷积算法设计及FPGA实现
聚焦“向量与三角”创新题
重点:语句衔接
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
我喜欢