基于层次特征提取的文本分类研究

2020-03-11 12:50刘汉永宁向南孟宪哲
计算机应用与软件 2020年2期
关键词:卷积向量神经网络

宋 岩 刘汉永 宁向南 孟宪哲

(国网天津市电力公司信息通信公司 天津 300000)

0 引 言

文本分类是自然语言处理研究中最为广泛的任务之一,也是其他自然语言处理任务的基础。文本分类是指通过构建模型实现对文本内容进行自动分类,文本分类在文本挖掘中有很多应用场景。比如:① 新闻过滤[1-2]。因为当今时代新闻数量庞大,很难手动过滤新闻文章,因此自动地对新闻文章过滤十分重要;② 意见挖掘。客户评论或意见通常都是较短的文本,通过挖掘这些文本来从评论中获得有用信息,包括客户的情感倾向等。③ 垃圾邮件过滤。通过对电子邮件进行分类来确定垃圾邮件。

传统的文本分类方法是使用稀疏词汇的特征来表示文本,然后用一个线性模型进行分类,研究工作通常是利用主成分分析[3]、主题模型[4]或计算TF-IDF[5-6]等方法得到文本的语义表示,而这种浅层的表示方法难以全面地捕获文本描述中所蕴含的隐藏语义信息。近年来,大部分研究采用深度学习的方法学习文本的表示,比如:利用Word2vec[7]模型学习文本中的词向量表示,进而得到文本的语义表示用于文本分类[8],以及采用卷积神经网络(CNN)[9]、 长短期记忆网络(LSTM)[10]

等神经网络模型提取特征并进行分类。

通过观察发现,文本是有层次结构的,文本是由句子组成,句子是由单词组成。虽然基于神经网络的文本分类方法已经相当有效,但是这些方法忽视了文本的层次结构。针对上述问题,本文提出了基于层次特征提取的文本分类方法,对于待分类的文本,分别使用CNN学习到句子特征,然后用LSTM学习文本的特征,最后进行文本类别划分。

1 相关工作

文本分类的流程:文本预处理,抽取文本特征,构造分类器。其中最关键部分为文本特征的抽取。关于抽取文本特征,目前最有效的方法就是采用神经网络模型,下面介绍三种采用神经网络进行文本分类的模型。

1.1 直接应用CNN的模型

文献[11]针对句子级的文本使用卷积神经网络进行文本分类,该方法使用一层简单的卷积神经网络在词向量的基础上卷积,词向量是在公开的谷歌新闻的数据集上训练的,数据集规模为1 000亿词。

该方法的处理流程如图1所示,首先句子的表示可以看作一个矩阵,行代表单词,列代表词向量维度,然后经过不同的卷积核卷积,可以得到多个向量,之后经过最大池化,再经过一个全连接层输出该文本对应的标签。

图1 卷积神经网络的文本分类模型

1.2 基于CNN改进的模型

Johnson等[12]对基于CNN的文本分类进行研究,利用文本数据的一维结构(即词序)进行精确预测。他们直接将CNN应用于高维文本数据,输入的是词的热编码,维度为字典大小,而不是像上一种方法那样使用学好的低维的词向量作为输入,从而直接学习用于分类的小文本区域的表示,在学习过程中也不需要学习单词的表示。因为可以在GPU上有效处理高维稀疏的数据,所以该方法是可行的。

为了获得更高的精度,Johnson等还探索了将多个卷积层结合起来的扩展。实验证明他们的方法是有效的,且具有训练速度快、简化系统(需要调整的参数较少)的优点。

1.3 基于字符级CNN的模型

之前的基于神经网络的方法都是在更高层面的单元对文本进行建模,比如单词层面、短语层面等,Zhang等[13]提出基于字符层面进行建模来对文本进行分类,这样就不需要使用预训练好的词向量和语法句法结构信息。通过实验证明,当训练集规模足够大的时候,卷积网络不需要单词层面的意义,也不需要语言的语法句法结构等信息就能达到较好的效果,因此基于字符级的方法可以很容易地推广到所有语言。

模型的输入是字符序列,首先需要将字符转化为可处理的数字序列,每个字符都转化为字典长度的热编码向量,然后将字符序列变换成固定长度的序列,长度不够的进行填充。模型结构为六层卷积层之后加上三层全连接层,在三个全连接层之间加入两个丢弃层(dropout)来实现模型的正则化。

此外,作者还使用词典来进行数据的扩充。实验表明,合适的数据扩充可以降低泛化误差,但是文本的数据扩充不能像图像处理中对图片进行缩放、平移、旋转等操作那样进行数据转换,在文本处理中,不能随意调换字符顺序,因为顺序代表了语义。最理想的数据增强方法是使用人工复述句子的方式,但是对大规模语料来说代价昂贵。因此使用词语的同义词进行替换更为合适,可以达到数据增强的目的。

2 模型构建

本文提出了基于层次特征提取的文本分类模型,将文本分为多个句子进行处理。句子分为多个单词进行处理。首先分别对句子中单词使用卷积神经网络进行处理,得到句子的表示,然后按照文本中句子的顺序将得到的对应句子的表示依次输入到长短期记忆网络中,并取最后一层的隐藏层表示当作文本的表示并对其进行分类。本文使用的模型的主体结构如图2所示。

图2 基于层次特征提取的文本分类模型

下面将沿自顶向下的方向,对模型的具体结构进行详细介绍。

2.1 卷积神经网络(CNN)

卷积神经网络(CNN)是近些年逐步兴起的一种人工神经网络模型,在图像和语音识别方面被广泛使用。其同样可以用于自然语言处理任务中,用于解决语义分析、搜索结果提取、句子建模、分类、预测、和其他传统的自然语言处理任务等。

卷积神经网络的输入层可以处理多维数据,在本文的工作中则是使用二维的输入值,对于待分类的文本d,将其按句分割为d={s1,s2,…,sT},T代表文本所包含的句子的个数,每一个句子si均为一个二维向量,其每一行均为一个单词的向量表示。在本文的实际处理中对句子的个数进行了一定的对齐操作,如截断、填充等手段,使得模型的输入具有相同的结构。

在接受句子s的输入后,使用卷积操作来提取句子级的特征表示。在二维数组离散的输入形式下,卷积运算一般可以定义为:

(1)

式中:I为输入的二维句子矩阵,K为指定大小的卷积核,S为卷积结果。在二维矩阵的(i,j)位置上进行卷积就是使用卷积核在(i,j)及其对应的卷积核的位置上对应位置的元素相乘,然后结果相加作为在该点卷积的结果。卷积核在输入矩阵上不断调整位置,得到输出的特征表示S。在本文的工作中,以单词为基本单位来进行卷积操作,一次卷积过程用来提取几个相邻单词的之间的相关特征,其过程如图3所示,其中wi为一个单词通过随机初始化方法产生的向量表示。

图3 对句子矩阵进行卷积计算

在获得句子级特征表示后,使用池化(pooling)的方法来对其进行处理,可以有效地减少模型的参数并防止过拟合。常用的池化方法主要有最大池化、平均池化等,在本文中选用最大池化来处理特征表示向量S,进一步提取句子向量的特征,然后将提取后的特征作为LSTM网络的输入。

2.2 长短期记忆网络(LSTM)

在完成对句子级的特征提取之后,是对句子之间的时序关系的建模,循环神经网络(RNN)通常是最佳的选择。该网络使用循环单元来保存信息,具有强大的时序关系捕捉能力来建模长时间的序列依赖关系。对于循环神经网络,可以将其沿时间展开,基本结构如图4所示。

图4 循环神经网络的基本结构

而在实际应用中,循环神经网络通常会存在梯度消失和梯度爆炸的问题,长短期记忆网络(LSTM)则是一种循环神经网络的特殊类型,适合处理和预测时间序列中间隔和延迟相对较长的情况,因此选择使用LSTM来完成本文的工作。LSTM依靠三个部分来完成对细胞状态的保护和处理,分别为输入门、遗忘门和输出门,其中的门结构均是通过Sigmoid函数以及按位乘运算操作来实现的。其中Sigmoid函数的计算方式如下:

(2)

Sigmoid函数对于任意范围的x值的输入,均可以将结果映射到0到1的范围内,该输出值代表有多少量可以通过,其中1代表允许任何量通过,为0则代表不允许任何量通过。

在时间序列的第t个时间段,长短期记忆网络的各个部分的计算方法如下:

ft=σ(Wf·[ht-1,xt]+bf)

(3)

it=σ(Wi·[ht-1,xt]+bi)

(4)

(5)

(6)

ot=σ(Wo·[ht-1,xt]+bo)

(7)

ht=ot⊙tanh(Ct)

(8)

在完成了CNN提取句子级特征的过程后,对于每个文本d,可以将其表示为d={v1,v2,…,vT},其中T为该文本所包含的句子的个数,每一个向量vi均为文本中一句话的特征表示,使用长短时记忆网络LSTM来对d中的向量进行时序关系的建模,来提取文本级特征表示,进而利用该特征表示进行分类。

2.3 文本类别划分

在通过上述的CNN和LSTM模块来完成层次级特征提取后,我们选用LSTM的最后时刻的隐藏层状态作为文本的最终表示,该状态包含了层次化的深度语义信息,可以用于文本分类的特征向量。在本文的工作中使用一个softmax层来实现文本类别的划分,具体的计算方法如下:

p=softmax(Wd+b)

(9)

式中:W和b为待学习权重矩阵和偏置向量。softmax(·)函数为归一化指数函数,其形式为:

(10)

该函数值代表了特征x划分为类别的概率。因此文本分类的损失函数可以写为如下负对数似然函数的形式:

(11)

式中:l为文本d的所属类别标签。通过最小化上述损失函数来完成整体模型的训练。

3 实 验

3.1 数据简介

为了证明本模型的有效性,本文分别在中文和英文数据集上进行了分类结果测试。其中在英文数据集上的实验使用cora数据集来进行效果的验证,在实验中采用了cora数据集中的一部分数据进行实验,该部分数据一共包含了2 211条文本内容,其中每一个文本为一篇论文的摘要内容以及其所属的学科类别,共分为7类,包含人工智能、数据库、信息检索等学科内容。

而在中文数据集的测试结果方面,现存的中文文本数据集均存在文本长度不一致的问题,文本之间的长度相去甚远,并不能很好地证明本文方法的有效性。因此为了进行在中文文本数据上的分类测试实验,我们使用网络爬虫来进行数据集的收集,其数据来源于新浪新闻,一共2 605条新闻文本,每一个文本均包含不定长的句子,每个句子的长度均在十句到四十句之间,一共包含了经济、政治、体育和科技等四大类别。

为了验证本文方法的实际效果,本文将数据集以0.1、0.3、0.5、0.7、0.9等比例划分训练集和测试集,以此来分别检验在不同训练集比例下测试模型的效果。

3.2 对比方法

为了证明所提出方法的性能,将其与其他几种常用的文本分类方法的实验效果进行了对比。所选择的方法如下:

Doc2vec-LR:又称文本向量化算法,它接受不同长度的句子做训练样本,通过无监督的学习方式生成文本的向量表示。该方法首先利用Doc2vec算法对文本的内容进行特征向量表示,然后基于该特征向量表示利用逻辑斯谛回归(LR)进行文本所属类别划分。

LSTM:该方法利用LSTM训练得到文本表示的特征向量,然后基于该特征向量表示利用一层Softmax进行文本分类。

3.3 实验设置

本实验中所有的特征表示向量都使用随机初始化,在英文数据集cora上进行实验时,词特征向量的维度设为256,模型中所有权重矩阵均为随机初始化,偏置向量初始化为0,神经网络的层数均为一层。对于我们的CNN-LSTM模型,均使用大小为3×256的卷积核,其中3为每次卷积涉及的内容为前后三个单词,256为单词向量的维度。卷积核个数为256。对于LSTM模型以及CNN-LSTM模型,其在LSTM层的神经元单元数为CNN的卷积核个数。由于数据较多,为了提升训练速度采用批处理的方式进行训练,batch的大小设为50。在参数优化过程中,本文选择Adam进行优化,训练的学习率设为0.001,最大迭代次数设为50轮。此外,本文在训练过程中引入dropout策略和正则化项来防止出现过拟合的现象,dropout比率设为0.3,正则化项使用L2正则化,系数为0.05。而在中文数据集上进行实验时,针对于中文的特殊性,我们首先去除一些中文的特殊字符,然后使用开源工具jieba分词对文本进行了分词处理,再依次完成词表生成、划分句子以及网络模型训练的过程。为了达到更好的精确率,我们设定词向量的维度为128维,权重矩阵同样选用随机初始化的方式,卷积核的个数为128个,每个卷积核的大小为3×128,长短时记忆网络LSTM的神经元个数为128,为了避免一些生僻汉字的影响,设定频度达到3的词组才会加入词表中。其他参数设定与在英文数据集上的实验一致。

3.4 实验结果

基于上述实验设置,本文在两个数据集上进行文本分类对比实验,使用判断分类结果的精确度作为评价指标,该值越大代表分类性能越好。在英文测试集上的实验结果如表1所示。

表1 英文数据集分类实验结果

表1中首列为训练集所占总体数据的比例。由表1可以看出,无论是在以何种比例划分的测试集上,本文所提出的基于层次特征提取的文本分类模型(CNN-LSTM)都具有优于其他对比方法的分类效果,在使用较小的训练集的情况下,依然具有较高的准确率,证明了本文方法的有效性。而在中文数据集上的文本分类结果如表2所示,相较于传统的文本分类方法,本文使用的基于层次特征提取的方法在中文文本分类任务上同样具有较好的效果。

表2 中文数据集分类实验结果

除上述对比实验外,本文同时也对模型的参数敏感性进行分析。相对于传统方法如LSTM等,我们使用了CNN模型来提取出句子级的语义表示,然后再对句子级表示使用LSTM进行文本向量建模,其句子级特征的提取在本文提出的方法中扮演着重要的角色。因此这里主要研究了用于提取句子级特征的CNN模型的参数对于模型分类效果的影响。图5展示了卷积核个数从16变化到128的过程中模型在cora数据集上分类准确率的变化情况。

图5 分类性能随卷积核个数变化情况

从图中可以看出,当卷积神经网络的卷积核的个数增加时,模型的分类性能在整体趋势上有所上升。但当卷积神经网络的卷积核的个数过多时,模型的性能反而会略微下降,原因是卷积核的个数过多,神经网络模型过于复杂,很容易处于过拟合的状态,不能很好地完成预测任务。因此本实验使用256个卷积核进行句子级特征的提取,以达到最佳的分类效果。

4 结 语

文本分类是一个值得研究的问题,这个任务有很多应用场景,因此具有很重要的意义。本文提出了一个基于层次特征提取的文本分类方法,使用卷积神经网络模型完成句子级的文本建模,然后使用长短时记忆网络提取文本级特征进行分类,并在真实的数据集上验证了本文模型的有效性。

在本文提出的模型中,均是通过截断的方式对句子级和文本级特征进行处理,并没有完全利用文本的完整信息,因此在后续的研究工作将对模型进行进一步改进,使得模型可以接受不同长度的句子、段落作为输入,以达到更好的分类效果。

猜你喜欢
卷积向量神经网络
基于全卷积神经网络的猪背膘厚快速准确测定
基于神经网络的船舶电力系统故障诊断方法
向量的分解
MIV-PSO-BP神经网络用户热负荷预测
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
聚焦“向量与三角”创新题
三次样条和二次删除相辅助的WASD神经网络与日本人口预测