APP下载

基于LDA和深度学习的文本分类方法

2020-09-04韦德壕

计算机工程与设计 2020年8期
关键词:卷积向量神经网络

郑 飞,韦德壕,黄 胜

(1.重庆邮电大学 通信与信息工程学院,重庆 400065;2.重庆邮电大学 光通信与网络重点实验室,重庆 400065)

0 引 言

在运用深度学习进行文本分类领域,国内外的研究学者已经进行了大量的探索。文献[1]提出的英文文本分类的模型,在用词向量模型构建好文本输入矩阵后,利用卷积神经网络能够提取局部特征的特点,提高了文本分类结果指标。文献[2]改进了池化层,提出了一个动态卷积神经网络,保留了池化层后的语义顺序。文献[3]在卷积神经网络里面加入注意力机制,突出了对任务起重要作用的特征。文献[4]在传统的卷积神经网络模型池化层加入了注意力机制,实验结果表明,由于选择性保存了最重要的特征,使文本分类结果有了明显的提高。文献[5]利用卷积神经网络对Twitter文本情感分析,解决了现有情感分类方法难以挖掘文本中隐含的深层语义特征的难题。文献[6]通过TF-IDF和Word2Vec进行词向量矩阵的构建,突出了文本里的重要词语信息。文献[7]运用卷积神经网络来解决Web文本分类问题,降低了模型的复杂度。文献[8]利用Word2Vec对新产品评论构建词向量矩阵,然后进行情感分类。

基于上述的研究,在本文中结合LDA主题模型和Word2Vec模型对文本输入矩阵进行构建,使构建的文本输入矩阵维度相等的同时,又丰富了特征信息。然后采用结合融合层的卷积神经网络模型进行分类,解决了特征提取困难造成文本分类准确率不高等问题。

1 总体框架流程

本文为了提升文本分类的准确率,设计了一种基于LDA和深度学习的文本分类方法,如图1所示。方法的总体框架流程为3个模块,词向量矩阵生成模块、词向量矩阵填充模块、结合融合层的卷积神经网络模块,最后得到文本的分类结果。在整个过程中,生成词向量矩阵模块将大规模的语料库先进行预处理,过滤掉所有标点符号、特殊字符和停用词,只保留有较多语义的信息,对数据中格式不正确的文本进行改变,然后分词处理。利用Word2Vec对词语进行编码,形成低维、稠密可供计算机识别的向量,文档集里经过预处理过后的文本经过预训练的词向量映射过后形成词向量矩阵。在形成了词向量矩阵后,由于文档集里的各个文本长度不一(分词后每个文本包含的词语不同),造成文档集里的每个文本形成的词向量矩阵的行数不一,在实验过程中,不能进行批处理数据。因此利用填充词向量矩阵模块对其进行填充,采用的方法是利用LDA主题模型训练得到文本-主题矩阵和主题-词矩阵,基于最大概率的主题下的词映射为词向量对词向量矩阵进行填充,直到词向量矩阵的行数为文档集里的最大文本长度。最后利用深度学习模块对构建好的词向量矩阵提取深度特征以此分类,在原有的卷积神经网络里面添加了一层融合层,解决了特征表示不足造成文本分类准确率不高的问题,增加了特征表示的丰富性。

图1 文本分类流程框架

2 模型及优化

2.1 词向量矩阵生成模块

2.1.1 词向量

在对词向量进行训练之前,首先需要对文本进行预处理,本文采用的办法是Jieba分词模块,在分词模块中加入了停用词表和自定义词表,去掉文本中的介词、代词、虚词以及特殊符号等,减少文本的冗余度,并且加入了一些自定义的新词,使分词更加的精确。分词过后的文本需要转换成计算机能够识别的形式,传统的独热表示将词语表示为一维向量,维度为语料库词汇数,在向量中位置处为1,其余位置为0。这种方式虽然容易理解,但是造成词向量维度大、稀疏和词与词之间语义缺乏语义联系等缺点。相反Word2Vec模型很好解决了一系列问题,Word2Vec模型包含了CBOW和Skip-gram两种训练模型,两种训练模型都是由输入层、投影层、输出层构成,选择哪种模型主要看语料集规模的大小,在大型的语料库里,CBOW模型的性能优于Skip-gram模型,在较小的数据集里面则相反。相比较于传统训练语言模型,词向量只是一个副产品,这两种方法的直接目的是得到高质量的词向量,降低了整体模型训练的参数规模和复杂度。本文选用的Skip-gram模型能够针对某个文本数据集高效训练出低维、稠密的词向量[9]。

本文采用的Skip-gram模型是利用中心词预测上下文,假设存在由ω组成的一组词序列,长度为N,其训练目标就是使式(1)的目标值最大

(1)

其中,c是窗口大小,表示以当前词语为中心的前后文词语次数。窗口越大,包含的信息越多,模型训练的越佳,但是带来的计算复杂度也会增大。

2.1.2 词向量矩阵生成方式

本文的文本词向量矩阵生成方式如图2所示,用Skip-gram词向量模型对大量的数据进行预训练,以此产生V×H大小的矩阵,V代表了语料库词汇的数量,H代表了单个词语训练后得到的维度,文档集里面的每个文本经过数据清洗、分词后,词对应预训练好的词向量对文本构建词向量矩阵,维度为N×H,N表示此文本经过数据预处理过后的词语数量。

图2 词向量矩阵生成流程

2.2 词向量矩阵填充模块

2.2.1 LDA模型

判断两个文本是否具有相似性,传统的方式往往是寻找共现单词的多少,但这种方法忽略了内在的语义关联,使两个原本相似的文档因为几乎没有共现的单词而造成判断错误。所以在考虑文档相关性的时候,语义也是非常重要的一个因素,本文中LDA主题模型就很好解决了这一问题[10]。LDA主题模型是一种无监督模型,也是分为3层贝叶斯概率生成模型,由“文档-主题-词”构成。对于一系列的文档,如何利用LDA主题模型进行生成。通过混合主题上的概率分布选择一种主题,从被抽取到的主题上所对应的混合单词概率分布中抽取一个单词,然后重复上述过程直至遍历文档中的每一个单词。

图3为LDA生成一篇文档的生成模型。图中K为Topic个数,M为文档集里文本数量,N表示一篇文档里的单词数量,两个隐含变量θ和Φ分别表示文档下的主题分布和主题下的词分布,前者维度是K(K为主题总数),后者维度是v(v为词典中不同词语的数量),ɑ为θ的狄利克雷先验参数,β是Φ的狄利克雷先验参数。

图3 LDA生成模型

主题模型学习参数主要有两种方法:第一种是基于Gibbs采样算法求解,另外一种是基于变分推断EM算法求解。Gibbs采样算法是一种特殊的基于马氏链的蒙特卡洛方法,经过对词的主题采样生成马氏链。

马氏链的生成过程是根据其它时刻所有词的主题分布估计当前词分配各个主题的概率,当重新选择了一个与原先不同的主题,反过来又会影响文本-主题矩阵和主题-词矩阵。这样进行循环迭代之后,就会收敛到LDA所想要的实验结果了。当完成主题采样过后,就可以学习到模型的最终结果,生成两个矩阵分别为文本-主题分布矩阵θ及主题-词分布矩阵Φ,公式如下

(2)

(3)

在式(2)、式(3)中|V|代表了语料库不同单词的数量,K代表总的主题数,n代表采样的数量。

2.2.2 基于最大概率主题下的填充方式

运用词向量模型对输入文本进行词向量矩阵生成之后,因为文档集里的文本长度长短不一(各个文本里包含的词语数目不同),导致文档集里的各个文本生成的词向量矩阵的行数各不相等,在目前的方法中,通常采用填零法、循环法和随机法进行填充,导致构建的词向量矩阵存在稀疏性以及语义混乱等问题。从为了在实验中能够进行批处理数据和丰富文本特征信息两方面考虑,本文结合Word2Vec模型和LDA模型的基于最大概率主题下的填充方式,以文档集里的最大文本长度为基准,寻找文本对应文本-主题矩阵最大的概率主题,找到此主题下的词概率分布,依照概率大小将词映射为词向量按序对词向量矩阵进行填充,直至构建的词向量矩阵行数等于最大文本长度。该方法填充了具有正向促进意义的词向量,解决了文本特征不足的问题。具体的流程如图4所示。

图4 词向量矩阵填充流程

2.3 结合融合层的卷积神经网络模块

2.3.1 卷积神经网络模型

卷积神经网络[11]在许多领域都获得了不错的效果,如图像分类、语音识别和自然语言处理等等,相比较于传统的神经网络,卷积神经网络解决了多层感知器全连接和梯度发散的问题,利用其局部感知、权值共享、池化三大核心思想。卷积神经网络的隐层由卷积层、池化层和全连接层组成,与其它领域有所不同的是,在自然语言处理领域,一层卷积层由多种不同大小的卷积核构成,每一个卷积核提取出来的文本特征称为特征图谱。对各个特征图谱进行池化处理过后,通过全连接层和softmax分类器进行分类。

在本文前面经过词向量矩阵的构建和填充之后,产生了词向量矩阵S,其中xi由词语经过预训练出的词向量映射得到的,如式(4)所示

S={x1,x2,…,xn}

(4)

在卷积层一般并行使用多种卷积核作为一层卷积。若使用行数为h的卷积核对词向量矩阵进行卷积操作,提取的局部特征为c。卷积的核心公式如式(5)所示

ci=f(w·xi:i+h-1+b)

(5)

在公式里面w和b是模型的超参数,f是非线性激活函数,在一个卷积核卷积后,产生的特征图谱表示为式(6)

c=[c1,c2,…,cn-h+1]

(6)

产生了特征图谱后,为了防止过拟合且减少训练的参数,对特征进行聚合统计,需要经历池化层,池化层的措施有最大池化,平均池化,K-max等方法。在经历了池化后,将各个特征图谱拼接起来经过全连接层后,经过softmax分类器完成分类,如式(7)

p(y|c,w,b)=softmax(F·c+b)

(7)

在模型训练阶段,利用实际分类中的标签通过反向传播基于梯度下降的策略进行参数优化,损失函数采用分类交叉熵,并且引入L2正则化,丢失掉一些固定的参数以防在分类上出现过拟合的现象。

2.3.2 结合融合层的卷积神经网络模型

本文利用的文本分类神经网络模块,如图5所示。对于传统的卷积神经网络进行了改进,在构造好了词向量矩阵后,采用了一种大小为行数为3,列数为词向量大小的卷积核对其提取局部特征,卷积核的数量为300,形成了高级特征。然后通过改变高级特征的维度和添加通道数后,又通过一层大小为行数为1,列数为300的卷积层对其提取特征,形成更高级的特征,在融合层中由高级特征和更高级的特征进行融合拼接,以此丰富了特征信息。此过程中,都没有使用池化层,因为池化层会打乱特征的顺序。经历融合层过后,再通过一个完整的卷积神经网络模型进行分类,由卷积层、池化层、全连接层和分类器构成。该方法解决了短文本分类任务中特征表示不足的问题,增加了特征的多样性,对文本分类的准确率有一定的提升。

图5 深度学习模型分类框架

2.4 模型参数选择及训练

基于LDA和深度学习的文本分类模型采用随机梯度下降法的方法进行训练,以反向传播的形式来自动学习模型中的超参数,如连接系数和偏置等。学习率也是非常重要的一个因素,学习率越大,更新参数的步伐越大,虽然训练时间减少但造成了细节丢失,局部直线化较为严重,更有可能错过全局最优点。相反学习率过小,必然造成代价过高,如学习的样本和训练的时间,也可能会产生过拟合现象。参数学习的变化区间在0.001到0.06,经上面综合考略,本文选择的学习率为0.01。还有另外一个参数Dropout对结果也会产生重要的影响,其在神经网络训练过程中使部分参数概率性失活和一部分权重值不再发生变化,在改善性能的同时由于减少了训练参数避免了过拟合的现象,本文在其参数的设定上,通过交叉验证将Dropout的值设定为0.5,Batch_size为64,在优化方法上选择应用广泛且性能较好的Adam Optimizer优化方法。

在词向量训练上,利用大规模的语料库进行数据预处理过后,将词语训练成不同维度的向量,考虑词向量长度对模型性能的影响。在训练文本-主题分布矩阵和主题-词分布矩阵的时候采用吉布斯采样方法训练,根据GibbsLDA++手册设置参数[12],因为本文是做情感二分类,所以在设置隐含主题数的时候K为2,超参数设置α=0.5,β=0.1。为了允许训练时使用更大的学习率,本文在训练过程中加入了批归一化处理,使得神经网络模型在训练时内部数据分布更加的稳定。

3 实验与分析

3.1 数据集

本文利用设计的基于正向促进的深度学习分类方法实验于文本情感分类数据集上,来源于京东商品的用户数据集中总共40 000条,其中正负情感样本各有20 000条,分别为用户对某商品的积极和消极评价,为了能够对本文模型做出可靠的评价,将积极和消极数据集各分为两份,训练集和测试集的比例为8∶2。

3.2 评价指标

本文在数据集上进行实验,为了验证本文提出的模型的可行性,采用精度、召回率、F-score的多评价指标。评价指标由混淆矩阵里面的参数决定。表1是二分类器的混淆矩阵,TP表示实际为正例,预测为正例的文档数量;FN表示实际为正例、预测为反例的文本数量;FP表示实际为反例,预测为正例的文本数量;TN表示实际为反例、预测也为反例的文本数量。

表1 混淆矩阵

在评价指标中,准确率定义为

(8)

在评价指标中,召回率定义为

(9)

在实际评估模型的时候,需要综合考虑上面两个参数,准确率和召回率。两者的调和平均数作为一个重要的评价指标,称之为F-score

(10)

3.3 结果分析

对文本所使用的实验数据集进行数据预处理过后,利用LDA主题模型对其进行训练,得到所需要的文档-主题矩阵和主题-词矩阵,因为本文是做基于文本情感的二分类问题,所以设置的隐含主题数K=2。实验得到的结果见表 2。

表2 主题词文件示例

与目前的文本分类方法进行对比,word2vec+SVM、word2vec+CNN、word2vec+LSTM为了能够正确公平地突出本文采用的方法在各项评价指标上得到提高,本文实验均使用同一数据集,并且对于不能通过训练改变的参数在各个比较的方法上设置一致。模型对比的结果见表3。

表3 实验结果

从表2的结果分析上看,在情感分类的数据集中,文本所提出的方法从各项指标上看,准确率、召回率、F-score值相比于以往的方法都有一定的提高,验证了结合LDA主题模型和融合层卷积神经网络的方法有效性,原因在于使构建的词向量矩阵含有了更多重要的信息特征,解决了特征表示不足的问题。

词向量的维度对于模型最终的性能存在着影响,所以本文在词向量的维度上进行了实验,在预训练词向量的时候,设置不同大小的维度。分析在词向量不同的维度下,对文本所提出的模型的影响。在不同词向量的维度下,本文模型准确率对比实验结果如图6所示。

图6 词向量长度对模型性能的影响

从实验结果分析可知,当词向量的维度为128的情况,本文设计的模型准确率最高。从理论上分析可知,当预训练的词向量维度过小,并不能完全表征词语蕴含的丰富信息,神经网络模型不能精确的对文本进行分类,导致准确率较低。当预训练的词向量维度过大的时候,使得词与词之间的区别变得模糊,单个词语的特征表达能力不强,除此之外,维度过高必然付出更高的代价,如模型的复杂度等。从理论上和实验对比综合考虑下,当预训练的词向量维度为128的时候,本文设计的模型性能最佳。

为了能够找到本文设计的模型最佳的迭代次数,在都使用本模型的情况下,在不同的迭代次数下,训练得到的准确率的对比实验结果如图7所示。

图7 迭代次数对模型性能的影响

从图7分析可知,基于本模型训练的迭代次数为45的时候,就可以达到模型的最佳性能,在得到了最佳模型参数的同时也大大减少了模型拟合的时间,节约了运算的成本。从模型的性能和模型拟合综合考虑下,本模型训练的时候最佳迭代次数为45次。

4 结束语

本文提出的一种基于LDA和深度学习的文本分类方法,该方法结合了LDA主题模型和Word2Vec对词向量矩阵进行构建,然后通过加入融合层的卷积神经网络进行特征提取分类,辅以批归一化处理等机制对本文模型进行了优化,最终将该模型在情感分类文本上进行了实验,与目前的方法相比,在各项评价指标上都取得了更好的实验结果。本文提出的方法利用LDA主题模型训练的结果影响词向量矩阵的构建,在丰富词向量矩阵特征信息的同时又使构建的各个文本输入矩阵具有相同的维度,以此可批处理数据,在卷积神经网络的融合层利用了更多的特征信息,在整个模型训练中,解决了人工设计特征的难题。由于文本数据可以看作基于序列化的信息,接来的工作是在本文模型的基础上加入双向长短期记忆网络,更加全面地提取文本特征,以此提升文本分类的准确率。

猜你喜欢

卷积向量神经网络
向量的分解
基于3D-Winograd的快速卷积算法设计及FPGA实现
聚焦“向量与三角”创新题
卷积神经网络的分析与设计
神经网络抑制无线通信干扰探究
从滤波器理解卷积
基于神经网络的中小学生情感分析
基于傅里叶域卷积表示的目标跟踪算法
向量垂直在解析几何中的应用
基于神经网络的拉矫机控制模型建立