APP下载

基于Word2vec和改进型TF-IDF的卷积神经网络文本分类模型

2019-05-10王根生黄学坚

小型微型计算机系统 2019年5期
关键词:文档向量卷积

王根生,黄学坚

1(江西财经大学 计算机实践教学中心,南昌 330013)2(江西财经大学 国际经贸学院,南昌 330013)3(江西财经大学 人文学院,南昌 330013)

1 引 言

文本分类是自然语言处理(NLP)领域的一个经典问题,在上个世纪50年代就有学者进行了相关研究,提出通过先验规则进行分类;到80年代,建立了使用专家知识构建文本分类专家系统;随着90年代机器学习的发展,形成了基于人工特征工程的浅层分类模型,该模型中特征工程是极为关键的一个步骤,主要包括文本预处理、特征提取、特征表示、文本表示,该模型如图1所示.

1.1 国内外研究现状

基于人工特征工程的浅层分类模型是现今主流的文本分类算法,国内外许多学者对该模型的不同阶段展开了相关研究.

1)文本预处理阶段.文本预处理主要包括分词和去除停用词,传统的分词算法主要有基于字符串匹配、基于语义和句法、基于统计互信息等方法[1];随着深度学习算法的发展,WordEmbedding+Bi-LSTM+CRF的深度学习文本分词算法凭借无需构建手工特征和出色的性能,成为了目前主流的分词算法[2].停用词处理主要针对文本中高频出现的连词、代词、介词等进行去除,因为这些词不仅增加了文本表示的维度,而且对文本分类毫无作用.

图1 基于人工特征工程的浅层分类模型Fig.1 Shallow classification model based on artificial feature engineering

2)特征提取阶段.特征提取常用的方法有文件频率(Document Frequency,DF)、信息增益(Information Gain,IG)、卡方检测(chi-square test,CHI)等[3];DF[4]通过阈值,删除低频词,但有些低频词对类别的判决具有很大贡献;IG[5]通过计算特征词对信息熵的影响进行选择,但也会出对分类贡献大的词漏判;CHI[6]是以X2分布为基础,描述特征词与类别的独立性,缺点是对低频词的区分效果不好.针对这些传统特征提取算法的不足,不少学者提出了相关的改进算法.赵倩针对CHI和IG方法的不足,提出一种基于词频、类间和类内文档频的特征选择方法[7];李明江通过引入类词频的概念,构建“文档+类+词”的立方体模型进行特征选择[8].随着近年来Word2vec的提出,基于Word2vec词向量特征选择成为一个研究热点,陈磊基于Word2vec进行文本特征选择,并且发现基于该方法的分类效果好于传统的特征选择方法[9];Lei Zhu利用Word2vec词向量和IG方法进行结合,改进IG的不足[10];Dongwen利用Word2vec词向量计算和情感词的余弦相似度进行情感特征词的选取[11].

3)特征表示阶段.传统的表示方法有单词网络(WordNet)、独热编码(one-hot encoding)、词频-逆文本频率(TF-IDF)[12].WordNet是基于认知语言学的英文字典,通过对不同词性进行编码,组成一个词汇语义网[13].WordNet编码保持了语义相似度,但对相邻同义词的差别不能衡量,且它是主观构建的,维护和添加新词的成本高[14];one-hot encoding[15]把词编码成一个稀疏向量,这种编码方式简单,但无法表达语义信息;TF-IDF使用词语对文件的重要度进行特征表示[16],但依然无法表达语义信息.2013年,Mikolov基于神经网络提出了Word2vec模型[17],通过对词语上下文和语义关系进行建模,将词语映射到低维实数空间,语义相似的词语在这个空间中也相近,这个特性使得Word2vec广泛运用于自然语义处理(NLP)中,如聚类、标注、词性分析等任务[18].

4)文本表示与分类阶段.文本表示传统的方法为词袋模型(bag-of-words,BOW)[19],该模型把文档看成是一个无序的词语集合,词语间彼此独立,忽略了词语的上下文关系,并且存在高纬度、高稀疏性的问题;针对这两个问题空间向量模型(Vector Space Model,VSM)[20]在词袋模型的基础上通过特征选择与计算特征权重进行降维和增加稠密性;文本的分类器大部分都是基于统计学的机器学习算法,如朴素贝叶斯(Naive Bayes)[21]、KNN[22]、SVM[23]、和神经网络[24]等.

5)研究深入阶段.在传统的基于人工特征工程的浅层分类模型中,特征表达语义弱、文本表示维度高、词序丢失、矩阵稀疏等问题是影响分类算法性能的重要因素.随着研究的不断深入,针对这些问题不少学者提出了相关改进算法.张谦针对特征维度高、语义弱提出Word2vec模型和SVM结合的分类算法[25];张群针对特征矩阵稀疏问题,设计了基于Word2vec与LAD主题模型相结合的文本分类算法[26];吕淑宝针对传统机器学习文本分类算法准确率低和分布不均的问题,提出基于深度学习的文本分类算法[27].

1.2 小 结

通过以上分析发现,不同阶段的算法都几乎存在一些不足,且大部分改进型算法是基于某一个问题进行的局部改进,针对这一现象,本文提出基于Word2vec、改进型TP-IDF和卷积神经网络三者结合的文本分类模型(CTMWT).使用Word2vec进行词语表示,得到的词向量为低维稠密性实数,并且很好的保留了语义信息,由于Word2vec无法表达词汇的重要程度,所以引入TF-IDF算法计算每个词向量在文本中的权重;TF-IDF算法中只考虑特征词在整个语料库中出现的频率,忽略了在不同类别中的分布,针对这个问题本文提出基于类频方差改进型TF-IDF算法,运用改进型TF-IDF算法构成基于词向量和权重的向量文本表示,这种文本表示很好的保留了词语上下文关系;最后利用卷积神经网络从局部到全局相关性特征的学习能力,对大量文本向量进行深度学习.

2 相关研究基础

2.1 Word2vec模型

Word2vec是基于神经网络从大量文本库中得到语义知识的模型,主要有CBOW和Skip-Gram两种模型.Skip-Gram模型通过给定的输入词wt来预测其上下文Swt=(wt-k,…,wt-1,wt+1,…,wt+k),其中k为wt上下文窗口大小,即左右选取词的个数,CBOW模型则是根据上下文Swt去预测wt.Skip-Gram和CBOW训练目标优化函数分别如公式(1)和公式(2)所示:

(1)

(2)

其中C为文本库中所有的词语,k为wt上下文窗口大小.Word2vec模型的建立并不是为了处理新的预测任务,而是为了得到训练后神经网络中隐藏层的参数矩阵,这些隐藏层参数才是Word2vec去学习的词向量.

在对Word2vec模型进行训练时,样本为(输入词,输出词),Skip-Gram模型的输入词和输出词分别为wt和Swt,CBOW模型与之相反.神经网络只能处理数值计算,所以需要对词语进行数值编码,常用的方法是基于训练样本库构建词语表(vocabulary),再根据词语表中的索引对词语进行one-hot编码,但会发现神经网络的参数矩阵会非常大.例如,包含10000词语的词汇表,每个词one-hot编码为10000维的向量,如果想构造300维的词向量,隐藏层就至少需要300个神经元,输入-隐藏层的参数矩阵将会有10000*300=300万个参数,在这么大规模的神经网络中进行梯度下降是很慢的,但由于one-hot编码只有一个维度的数值为1,其余的所有为0,所以只需选取数值为1的输入-隐藏层参数进行更新,为了算法的随机性,再从数值为0的连接参数随机选取5-10个,这样需要更新的参数就大大减少,降低了训练复杂度.训练后模型的输出为一个概率分布,使得公式(1)或公式(2)和训练样本间的误差最小,训练得到的每个输入-隐藏层的参数数值就是该输入词的词向量.这种训练方式,会使得有着相似上下文的词语在词向量空间也非常相近,而有着相似上下文的词语他们的语义也是相近.

2.2 卷积神经网络

卷积神经网络(CNN)是深度学习领域中一个重要的算法,在图像处理方面取得了很好的效果.一个典型的卷积神经网络由输入和输出以及多个隐藏层构成,隐藏层由卷积层、池化层和全连接层组成,其中卷积层和池化层配合组成卷积组,逐层学习局部到全局的特征,在最终通过若干个全连接层完成分类工作.

1)卷积层

卷积层是CNN的核心,具有权值共享和局部连接特征.卷积层由一组可学习卷积核(kernels)组成,每个卷积核和上层输入数据的不同局部窗口进行卷积计算,如公式(3)所示:

s(t)=(X·W)(t)

(3)

其中X为输入,W为卷积核,操作符(·)表示卷积,常见的二维卷积如公式(4)所示:

(4)

其中m,n分别代表卷积核窗口的高度和宽度,得到的卷积结果会作为激活函数f的输入,经过f处理后的结果为该层的输出特征图(feature maps),激活函数如公式(5)所示:

ci,j=f(s(i,j)+b)

(5)

激活函数f常用的为sigmoid或tanh等非线性函数,b为偏置项.

2)池化层

池化层的任务是对卷积层的输出特征图进行下采样,简化卷积层的输出,从而减少训练参数,并且可以避免过拟合.常用的采样方法为最大值下采样(Max-Pooling)和平均值下采样(Mean-Pooling).假设采样窗口的宽度为w,高度为h,池化过程先以窗口的大小作为步长,把卷积层的输出特征矩阵划分为若干个w×h大小的子区域,在使用相关的采样方法对每个子区域进行采样.最大值下采样方法得到的是该区域的最大特征值,平均值下采样得到的是该区域所有特征的平均值.

3)全连接层

全连接(FC)处于卷积神经网络最后,通过多层的卷积层与池化层处理后,原始的输入数据被映射到了隐含特征空间,全连接层则通过特征空间转换,把得到的“分布式特征表示”映射为样本的标记空间.全连接层可由卷积操作实现,使用w*h个1×1大小的卷积核对前层卷积输出进行卷积计算,w,h分别代表前层卷积输出的特征图的宽和高.全连接给整个神经网络带来了大量参数,是限制算法性能的一个重要瓶颈,近期有学者提出了一些新的网络模型,如ResNet和GoogLeNet等[28],这些模型使用全局平均池化(global average pooling,GAP)取代FC,来融合前层卷积得到的特征图,仍采用softmax等非线性损失函数作为网络目标函数引导学习过程.

3 卷积神经网络文本分类模型构建

3.1 改进型TF-IDF算法

TF-IDF是一种计算词语权重的经典统计方法,由词频(term frequency,TF)和逆向文档频率(inverse document frequency,IDF)两部分数据组成,词频计算如公式(6)所示:

(6)

tfi,j代表词语wi在文档dj中出现频率,ni,j为wi在文档dj中出现的次数,分母为文档dj中所有词语出现次数总和,k为文档dj中不同词语的个数.逆向文档频率计算如公式(7)所示:

(7)

其中idfi代表词语wi在文本库d中的逆向文档频率,nd为文本库d中文档的总个数,df(d,wi)为文档库d中包含词语wi的文档个数,加1是为了防止df(d,wi)为零的情况.最后TF-IDF归一化处理的计算如公式(8)所示:

(8)

通过公式可以看出,词语wi对文档dj的重要程度和它在文档dj中出现的频率成正比,和在整个文本库d中包含词语wi的文档数成反比.

在文本分类研究中,文本库中的文本通常被标记成几个不同类别,而TF-IDF算法只考虑特征词在整个文本库中出现的总频率,忽略了在类别中的分布,例如某个词语wi在文本库中的几个类别的文本中出现频率较高,而在其他几个类别的文本中出现频率较低,说明该wi对文本的判别具有一定贡献,而传统的TF-IDF算法没有考虑这种不同类别间的分布情况,导致某些对类别判断具有贡献的词丢失.因此本文提出引入类频方差的TF-IDF算法,类频方差衡量的是词语在不同类别的分布情况,计算如公式(9)所示:

(9)

τi为词语wi的类频方差,N为文本类别数,df(d,wi)为整个文本库d中包含词语wi的文档个数,df(cj,wi)为在类别cj中包含词语wi的文档个数.τi越大说明词语wi在类别中波动越大,分布越不均匀,对类别的判断作用越大,所以基于类频方差的TF-IDF算法计算如公式(10)所示:

tf-idf-τi,j=tf-idfi,j*τi

(10)

tf-idfi,j和τi的计算分别如公式(8)、公式(9)所示.公式(10)就是本文提出的改进型TF-IDF算法.

3.2 CTMWT模型构建

针对传统机器学习文本分类算法的语义特征表达弱、文本表示维度高、词序丢失、矩阵稀疏等问题,本文提出基于Word2vec、改进型TF-IDF和卷积神经网络三者相结合的文本分类模型(CTMWT),如图2所示.

1)Word2vec词向量库建设

Word2vec词向量的获取一般有两种方式,一种是使用开源的全局词向量库,这种词向量库是通过对全网超大规模文本库训练得到,如2018年北京师范大学和人民大学的自然语言处理小组开源的一套中文词向量库.还有一种方式是根据自己收集的文本库训练,得到一个局部的词向量库.由于我们处理的是针对某个问题领域的文本分类,所以采用该领域的文本进行向量库的训练,得出的词向量更贴合该问题领域.具体词向量库建设流程如图3所示.

文本库包含所用的训练样本和测试样本,神经网络隐藏层神经元的个数为100-300之间,隐藏层神经元的个数即词向量的维数,针对大规模输入-隐藏层参数矩阵训练时梯度下降慢的问题采用负采样(negative sampling)技术改进.

2)文本向量表示

图2 CTMWT模型Fig.2 CTMWT model

先对文本di进行分词处理Wi=[wi,…,wn],n为词语个数.在根据Word2vec词向量库把分词后的文本替换成低维数值向量VWi=[Vw1,…,Vwn],Vwi为词wi的词向量,Vwi=[v1,v2,…,vk],k为词向量的维度.使文本表示从神经网络难处理的高纬度高稀疏传统数据,变成了类似图像的连续稠密矩阵数据表示.并且这种文本表示免去了传统机器学习文本分类算法中人工特征选择的繁琐工作,让文本原始信息得到了最大程度保留.但Word2vec的词向量不能刻画词语对文本的重要度,所以用公式(10)改进型TF-IDF算法进行向量词权重计算,最终文本表示如公式(11)所示:

图3 词向量库建设Fig.3 Construction of word vector library

(11)

其中tf-idf-τt,i的计算见公式(10).

3)卷积神经网络文本分类

通过公式(11)处理后的文本被表示成类似图像的连续稠密矩阵数据,深度学习算法具有很强的数据迁移性,在图像领域取得很好效果的卷积神经网络也可以迁移到文本处理领域,卷积神经网络文本分类模型如图4所示.

卷积网络一般是由多个卷积层、池化层连接组成,图4只是画出了一层.一个卷积层中有多个不同的卷积核w,w∈Rhk,h为卷积核的高度,k为词向量的空间维度,卷积核以步长1向下滑动,每经过一个文本向量h*k的窗口时进行卷积运算,产生一个新的特征值,计算如公式(12)所示:

ci=f(w·Wi:i+h+b)

(12)

图4 卷积神经网络文本分类模型Fig.4 Text classification model based on convolutional neural network

4 实验分析

4.1 实验数据

实验环境主要基于TensorFlow和Python3.6.实验数据来源于清华大学自然语言处理实验室的中文文本分类数据集THUCNews,该数据集根据新浪新闻RSS订阅频道2005-2011年间的历史数据筛选过滤生产,共包括14个新闻类别,共74万篇新闻文档,均为UTF-8的纯文本格式.本实验为了减少神经网络的训练时间,从THUCNews数据集中选取了体育、财经、房产、家居、教育、科技、时尚、时政、游戏、娱乐10个类别,每个类别12000篇新闻文档,其中10000为训练集(train set)、1000为测试集(test set)、1000为验证集(validation set),验证集用于指导神经网络结构的调整,总共训练集10万,测试集1万,验证集1万.实验的第一步是要得到词向量库,使用所有的训练集、测试集、验证集共12万文本进行训练,对12万的文本分词后,得到近5000万的词汇,包含60万个不同的词,选取大小为4的上下文窗口,得到(输入词,输出词)的训练样本近2亿组,设定词向量维度为100,采用CBOW模型进行训练得到词向量库.

4.2 CTMWT模型实验

4.2.1 CTMWT模型实验

卷积神经网搭建参数的不同也会影响到实验效果,但这些不同参数的实验对比不是本文重点,所以通过查阅相关资料,确定本实验的卷积神经网络的主要参数如表1所示.

表1 卷积神经网络参数
Table 1 Convolution neural network parameters

参数名称参数值词向量维度100卷积核个数256卷积核窗口高度3,4,5池化方法1-max pooling全连接层神经元个数128每批训练大小(batch_size)64迭代轮次(num_epochs)10丢弃率(dropout_keep_prob)0.5学习率1e-3

通过表1参数搭建卷积神经网络,采用训练集(train set)对CTMWT模型进行训练,得出分类结果模型;再使用测试集(test set)对分类结果模型进行性能测试,分类算法的性能主要从精准率(precision)、召回率(recall)、F1-Measure三个指标进行评价,测试结果如表2所示.

表2 算法测试结果
Table 2 Algorithm test results

类别精准率(%)召回率(%)F1-Measure(%)体育99.099.599.2财经95.199.197.1房产99.999.699.7家居98.087.892.6教育90.892.391.5科技91.798.795.1时尚97.796.597.1时政93.895.794.8游戏98.496.797.5娱乐98.896.497.6平均值96.396.296.2

通过测试结果发现,平均精准率、召回率、F1-Measure分别达到了96.3%、96.2%、96.2%.

4.2.2 CTMWT模型与传统机器学习文本分类算法实验对比分析

为了进一步验证CTMWT模型的有效性,分别选取朴素贝叶斯(NB)、K最近邻(KNN)、支持向量机(SVM)三类传统机器学习文本分类算法进行实验对比,这三类传统机器学习文本分类算法使用信息增益(IG)进行特征选择、使用TF-IDF进行特征权重计算、使用向量空间模型进行文本表示.数据集依然使用4.1节介绍的试验数据,性能评价使用10个类别的平均F1-Measure指标,实验结果图5所示.

通过实验发现CTMWT模型的性能明显优于传统机器学习算法.为了进步和传统机器学习文本分类算法对比,在分别选择不同数量的训练数据进行实验,训练数据从每个类别选取的数量从1000到10000之间递增,每次增加1000,共10次对比.实验结果如图6所示.

通过图6实验结果发现在训练数据集比较小的情况下,CTMWT模型相比传统的机器学习算法优势并不明显,只有当训练数据达到一定规模后优势才慢慢体现,这是因为相比传统机器学习算法,卷积神经网络中的学习参数更复杂,只有在大量训练样本的情况下才能获得较好的学习效果.并且发现CTMWT模型随着训练数据的不断增加,学习能力也随之增加,而传统机器学习算法在训练样本达到一定规模后,随着训练数据的增加,算法的学习能力并没有得到明显的提升,这也是传统机器学习算法的一个弱点.

图5 算法性能对比Fig.5 Algorithm performance comparison

图6 不同训练集大小的性能对比Fig.6 Performance comparison of algorithms with different training set sizes

4.2.3 不同词向量权重的CTMWT模型实验对比分析

为了验证改进型TF-IDF词向量权重算法的有效性,分别对不加词向量权重(NONE)、基于传统TF-IDF计算词向量权重(TF-IDF)和本文提出的权重计算方法(TF-IDF-τ)进行CTMWT模型实验对比.实验结果如图7所示.

图7 不同词向量权重的CTMWT模型性能对比Fig.7 Performance comparison of CTMWT models with differ vector weights

通过实验发现,引入词向量权重后,算法的性能有所提高,因为引入权重是对词向量特征的增强.本文基于类频方差改进 TF-IDF算法又比传统的TF-IDF算法性能高,所以证明本文引入的词向量权重计算方法是有效的.并且通过实验发现,就算不引入任何的词向量权重,基于卷积神经网络的文本分类算法依然保持了较高的分类性能,这一方面得益于基于词向量的文本表示最大程度的保留了文本原始信息,另一方面得益于卷积神经网络强大的学习能力.

5 总 结

随着信息化和互联网的快速发展,产出了海量的文本数据,如何对这些文本进行准确有效的分类一直是研究的热点.本文针对传统机器学习文本分类算法语义特征表达弱、文本表示维度高、词序丢失、矩阵稀疏导致分类效果不佳的问题,提出基于Word2vec、改进型TF-IDF和卷积神经网络三者相结合的文本分类模型(CTMWT),使用Word2vec进行词语表示,生产具有语义表达能力的低维稠密性词向量;引入类频方差改进型TF-IDF算法,计算每个词向量在文本中的权重,构建基于词向量和权重的向量文本表示,保留词语上下文关系;最后利用使用卷积神经网络强大学习能力,对大量文本向量进行深度学习.通过实验发现CTMWT模型不仅能实现文本的准确分类,而且相比于传统机器学习文本分类算法具有更好的分类性能.CTMWT模型免去了传统机器学习文本分类算法中人工特征选择的繁琐工作,让文本原始信息得到了最大程度保留,为卷积神经网络的学习提供了良好的基础,但在实验过程中也发现CTMWT模型训练时间复杂度远高于传统机器学习文本分类算法,这是深度学习不可避免的问题,也是相关学者继续深入研究的方向.

猜你喜欢

文档向量卷积
基于全卷积神经网络的猪背膘厚快速准确测定
浅谈Matlab与Word文档的应用接口
向量的分解
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
有人一声不吭向你扔了个文档
轻松编辑PDF文档
聚焦“向量与三角”创新题
Word文档 高效分合有高招