当今世界信息技术飞速发展,带来数据量的井喷式增长。面对不同类型的海量数据,人们希望能够准确高效地筛选出有用信息,因此数据挖掘技术成为近年来研究的热点。基于机器学习的文本分类技术是该领域中创新性较强、应用价值较高的一类信息处理技术[1],通常包括文本预处理、文本表示及特征选择、训练分类器等模块,而文本表示及特征选择是其中的关键环节,直接影响分类的精度。文本表示多采用词袋(bag-of-words, BOW)模型,但BOW模型只关注词频而忽略词义和词间联系。也有一些研究[2]提出结合词义、短语等复杂项的词向量化模型(word embedding),将文本中的词赋予新的含义映射到新的空间并建立联系,但这种表示方法容易出现维度爆炸,在文本分类应用领域没有明显的优势。特征提取多基于线性计算模型,需要依赖相关领域经验。近年来深度学习(deep learning)成为机器学习研究的重要方向,深度学习模型对数据有着更优异的表达和处理能力,但存在不易有效训练的问题[3]。
深度置信网络模型(deep belief network,DBN)采用逐层训练的方式,有效降低训练难度,打破了深度学习研究的僵局[4],使深度学习的多层结构能够较准确地从低层特征中提取高层特征,更好地实现文本精细分类的目标。本文采用基于关键词的词向量表示来弥补传统文本表示模型高维度、高稀疏及语义损失的缺点,结合深度模型在特征提取方面的优势,提出一种基于DBN融合深度玻尔兹曼机模型(deep Boltzmann machine,DBM)改进的特征提取模型,改进的模型在低层利用DBM去噪和初降维,修正了DBN在降维时易丢失信息的缺陷,保证特征提取的准确性。
1 深度置信网络特征提取方法 1.1 基于关键词的词向量表示关键词是选择出的最契合文本内容表达的词语,也可以说是最具代表性的特征词。假设一篇文章提取出的关键词个数为n,则对应词向量模型维度为n×50,大大降低输入向量的维度,同时保证了对文本输入高拟合。采用改进的基于类别区分度的TF-IDF算法[5]作为关键词的权值依据,其权值表达式为
$ W\left( t \right) = TM\left( {t,{C_i}} \right) $ | (1) |
式中,W(t)是特征词t的权值;T为特征词t的词频;M(t, Ci)是表征类别区分度的函数,用来替换TF-IDF算法中的反文档频率,弥补了原算法中忽略类内与类间分布情况的缺陷。M(t, Ci)的数学表达式为
$ M\left( {t,{C_i}} \right) = D\left( t \right)E\left( {t,{C_i}} \right) $ | (2) |
由离散度函数D(t)来描述特征词在不同文档类别间分布情况
$ D\left( t \right) = \frac{{\sqrt {\frac{1}{{m - 1}}\sum\limits_{i = 1}^m {{{\left( {{f_i}\left( t \right) - \overline {f\left( t \right)} } \right)}^2}} } }}{{\overline {f\left( t \right)} }} $ | (3) |
式中,fi(t)表示在类别Ci的文档中出现特征词t的频率,
由熵值函数E(t, Ci)来描述类内特征词的分布均匀度
$ E\left( {t,{C_i}} \right) = - \sum\limits_{j = 1}^n {\frac{{N\left( {{d_j}} \right)}}{{N\left( {{C_i}} \right)}}\lg \frac{{N\left( {{d_j}} \right)}}{{N\left( {{C_i}} \right)}}} $ | (4) |
式中n表示类别Ci中的文档数,N(dj)表示属于类别Ci的第j篇文档中特征词t出现的次数,N(Ci)表示特征词t在类别Ci文档中出现的总次数。由式(4)可以得出类内能量均匀度越高,则熵值越大,类别的区分能力也越强。通过改进的TF-IDF计算文本预处理后各词语的权重并排序,权重最大的词即为一篇文本的关键词,然后将关键词作为词向量模型的输入。
1.2 基于深度置信网络的特征提取模型 1.2.1 模型设计本文综合考虑训练成本和模型精度,选择使用2层DBM模型和3层DBN模型的组合。在低层,用信息还原度较优的2层DBM对文本内容进行初降维,得到去噪好完整度高的数据作为3层DBN的输入,然后用DBN抽取高层特征,最终得到整个模型的文本表示型如图 1所示。
选择2层DBM原因有:①同样层数的DBM的计算复杂度约是DBN模型的3倍,更深层的DBM模型会使训练的时间成本过高;②在测试中,当层数超过2层,其实际训练中的表现并不会优于同等层数的DBN模型[6];DBM与DBN因结构的不同,在计算时有很大不同,DBM在低层的分布求解同时依赖低层和高层的分布;在DBM的逼近推导过程中,除了有同DBN相同的自底向上传播外,还有由高向低的反馈调节,从而使DBM能更好地传播模糊(弱标签)输入的不确定性,有优于DBN的表达能力。
1.2.3 模型结构分析本模型一共有5层。v是可视层同时也是模型的输入层,每一个文本输入用长度固定的向量表示,最高的标签输出层是模型最后的输出;h1、h2、h3、h4和h5分别对应5个隐层,w1、w2、w3、w4和w5分别对应各个层间权重。模型中h2是DBM的输出层,同时也是DBN模型的输入层,h5是整个模型的特征输出层。模型图中,每层节点间不连接,不同层间全连接。DBN模型与DBM模型都是以受限玻尔兹曼机(restricted Boltzmann machines,RBM)作为基本单元构成的深度网络模型,不同之处在于DBN层间是有向连接,而DBM层间是无向连接[7]。
1.2.4 模型的训练在模型训练中,通过引入能量模型来描述一个深度网络模型各项变量间的相关性,所以模型的具体搭建过程就是对能量模型中各参数最优解的求值过程。对于一个给定(v, h)的RBM系统,其能量函数定义为
$ \begin{array}{l} E\left( {v,h} \right) = - \sum\limits_{i = 1}^m {\sum\limits_{j = 1}^n {{w_{i,j}}{v_i}{h_j}} } - \sum\limits_{i = 1}^m {{a_i}{v_i}} - \\ \sum\limits_{j = 1}^n {{b_j}{h_j}\left( {\forall i,j,{v_i} \in \left\{ {0,1} \right\},{h_j} \in \left\{ {0,1} \right\}} \right)} \end{array} $ | (5) |
式(5)表示了RBM模型的能量函数与各层节点的依赖关系。其中,m、n分别对应可视层和隐层的节点数,参数ai、bj分别表示可视层节点i偏移量和隐藏层节点j的偏移量,vi和hj分别为可视层节点i和隐藏层节点j的状态,wi, j为可视层节点i与隐藏层节点j的连接权重。通过能量函数将各层能量相加,最终可以得到RBM模型的连接结构之间的能量,而要求解各层偏移量ai、bi与权值wi, j,需要将能量函数转换为概率函数。在得到RBM的能量函数后,相应的可视节点与隐藏节点的联合概率为
$ P\left( {v,h} \right) = \frac{{{{\rm{e}}^{ - E\left( {v,h} \right)}}}}{{\sum\limits_{v,h} {{{\rm{e}}^{ - E\left( {v,h} \right)}}} }} $ | (6) |
由式(6)简化得到了一个参数为θ=(w, v, h)的特殊Gibbs分布后,RBM关于v的分布P(v)由式(7)表示
$ P\left( v \right) = \frac{1}{{Z\left( \theta \right)}}\sum\limits_h {{{\rm{e}}^{ - E\left( {v,h} \right)}}} $ | (7) |
式(7)中,
RBM训练的最终目的是让Gibbs分布能够尽可能准确地拟合样本的输入,因此引入距离函数K来表示样本分布Q(v)与边缘分布P(v)的距离
$ \begin{array}{l} K = \sum\limits_{v \in \mathit{\Omega }} {Q\left( v \right)\ln \frac{{Q\left( v \right)}}{{P\left( v \right)}}} = \sum\limits_{v \in \mathit{\Omega }} {Q\left( v \right)\ln Q\left( v \right)} - \\ \sum\limits_{v \in \mathit{\Omega }} {Q\left( v \right)\ln P\left( v \right)} \end{array} $ | (8) |
式中,Ω是样本输入集。由式(8)可知,K值为训练后对样本的拟合度,K值越小,表明对输入的拟合程度越高,所以参数的求解就是求解lnP(v)的极大似然估计值[8]。
对模型的训练分为无监督训练和有监督微调两部分,而每个阶段又分别针对DBN和DBM两部分进行训练。DBN的预训练采用Hinton提出的逐层贪婪无监督学习算法[9],对一系列堆叠的RBM进行逐个、依次训练。具体方法为:首先将可视层映射到隐层,可视层参数由隐层节点重构;然后将新的可视层再次用于计算新的隐层,重构隐层激活单元。对DBN的有监督微调过程使用contrastive wake-sleep算法,具体步骤为:首先将顶层以外的RBM权重分为向上的认知权重和向下的生成权重;然后在Wake阶段(认知过程), 通过外界的特征和向上的权重(认知权重)产生每一层的抽象表示,并且使用梯度下降修改层间的下行权重(生成权重);再在Sleep阶段(生成过程),通过顶层表示和向下权重生成底层的状态,同时修改层间向上的权重。
DBM的预训练采用Salakhutdinov等[10]改进的逐层贪婪无监督算法,为了解决由无向连接带来的重复计算问题,对于最下层的RBM,将输入单元加倍且约束住可视层与隐含层间的权值。修改过的RBM对隐层节点和可视层节点的条件概率分布分别为
$ p\left( {h_j^1 = 1\left| v \right.} \right) = \sigma \left( {\sum\limits_i {W_{ij}^1{v_i}} + \sum\limits_i {W_{ij}^1{v_i}} } \right) $ | (9) |
$ p\left( {{v_i} = 1\left| {{h^1}} \right.} \right) = \sigma \left( {\sum\limits_i {W_{ij}^1{h_j}} } \right) $ | (10) |
然后取2倍的顶层RBM隐层节点数,得到顶层RBM的条件分布为
$ p\left( {h_j^1 = 1\left| {{h^2}} \right.} \right) = \sigma \left( {\sum\limits_m {W_{jm}^2h_m^2} + \sum\limits_m {W_{jm}^2h_m^2} } \right) $ | (11) |
$ p\left( {h_m^2 = 1\left| {{h^1}} \right.} \right) = \sigma \left( {\sum\limits_j {W_{jm}^2h_j^1} } \right) $ | (12) |
合并式(11)、(12),对于输入v,其隐层h1的条件分布为
$ p\left( {h_j^1 = 1\left| {v,{h^2}} \right.} \right) = \sigma \left( {\sum\limits_i {W_{ij}^1{v_i}} + \sum\limits_m {W_{jm}^2h_m^2} } \right) $ | (13) |
在DBM微调阶段,对于每个输入v,通过平均场推导可得到一个近似后验分布q(h|v),将其边缘分布q(hj2=1|v)与样本数据一起作为该深度多层神经网络的增广输入,然后通过标准的后向传播微调整个模型。
2 实验部分 2.1 实验数据集本文采用由搜狗实验室语料库整理而成的数据集,共分为财经、互联网、健康、教育、军事、旅游、体育、文化、招聘9大类,为了保证每篇文章归属一个类别,筛选出各类别中分布均匀且分类明确的文章共14755篇,其中训练样本数8849,测试样本数5906,详细样本分布如表 1。
首先对数据集进行分词、去停用词等预处理,并按词频排序后选择前2000的单词作为BOW模型的特征词,用改进的TF-IDF算法筛选出前40的单词作为词向量模型的关键特征词。词向量模型选用Mikolov等[11]提出的基于语言模型的循环神经网络(RNNLM),最后每篇文章会得到一个2000维(40×50)的特征表示。分别以传统的DBN模型(基于BOW)(模型1)、改进的DBM+DBN模型(基于BOW)(模型2)、DBN模型(基于词向量特征表示)(模型3)、改进的DBM+DBN模型(基于词向量特征表示)(本文方法)进行实验并对比实验结果。将各模型统一设置为5层结构,训练迭代步数为50,学习率为0.01,并采用Softmax函数预测分类标签,以文本分类的准确率作为模型性能的评估标准。
2.3 实验结果及分析表 2、图 2显示了不同模型文本分类的准确率。可以发现,不同的模型、训练方式及输出节点数(n)都会对分类结果造成影响。
本文方法与模型2相比,模型2采用的是传统BOW模型,而本文方法采用了基于关键词的词向量模型。由于两种方法文本表示方式的不同,对应的分类准确率有着明显的差异。原因是基于关键词的RNNLM在对文本进行表示时,不仅考虑每个词本身对文本的表达,还会利用上下文信息推论出新的特征词,对文本的表达能力更强。同时利用改进的TFIDF算法筛选出前40的关键词,既保证信息的完整又避免词向量模型维度灾难,是很好的折中方式。
本文方法与模型3相比,在文本表示均使用词向量模型的条件下,本文方法在分类准确率上明显优于模型3,这是因为本文方法在低层引入2层DBM进行初降维,DBM的无向图连接特点使得在训练时不仅能自上而下调参,还能捕捉高阶相关性,即每个DBM节点都依赖上下层节点的共同作用,因此在低层的降维效果更好。
本文方法与模型1相比,在文本表示和特征提取方法均做出改进,分类准确率明显更高,表明本文方法进行的改进是行之有效的。
3 结束语本文基于对现有文本分类技术在文本表示、特征提取上所存在缺陷的分析,提出了一种面向文本分类的深度置信网络特征提取方法,该方法采用基于关键词的词向量作为文本表示型,弥补了BOW模型忽略语义造成的信息缺失,设计了基于DBN融合DBM的特征提取模型。模型采用低层2层DBM+高层3层DBN的复合5层深度网络结构,利用DBM对低层输入有效的去噪和初降维,总体表现了更强的特征提取能力。
[1] |
QIU J F, WU Q H, DING G R, et al. A survey of machine learning for big data processing[J/OL]. EURASIP Journal on Advances in Signal Processing. (2016-05-28). https://link.springer.com/article/10.1186/s13634-016-0355-x.
|
[2] |
BIAN J, GAO B, LIU T Y. Knowledge-powered deep learning for word embedding[C]//Proceedings of the European Conference on Machine Learning and Knowledge Discovery in Databases. Nancy, 2014: 132-148.
|
[3] |
刘建伟, 刘媛, 罗雄麟. 深度学习研究进展[J]. 计算机应用研究, 2014, 31(7): 1921-1930. LIU J W, LIU Y, LUO X L. Research and development on deep learning[J]. Application Research of Computers, 2014, 31(7): 1921-1930. (in Chinese) |
[4] |
LIU W B, WANG Z D, LIU X C, et al. A survey of deep neural network architectures and their applications[J]. Neurocomputing, 2017, 234: 11-26. DOI:10.1016/j.neucom.2016.12.038 |
[5] |
易军凯, 田立康. 基于类别区分度的文本特征选择算法研究[J]. 北京化工大学学报(自然科学版), 2013, 40(增刊1): 72-75. YI J K, TIAN L K. A text feature selection algorithm based on class discrimination[J]. Journal of Beijing University of Chemical Technology (Natural Science), 2013, 40(s1): 72-75. (in Chinese) |
[6] |
SALAKHUTDINOV R, LAROCHELLE H. Efficient learning of deep boltzmann machines[C]//The 13th International Conference on Artificial Intelligence and Statistics. Sardinia, 2010: 693-700.
|
[7] |
CHO K H, RAIKO T, ILIN A, et al. A two-stage pretraining algorithm for deep boltzmann machines[C]//ICANN 2013. Berlin: Springer International Publishing, 2013: 106-113.
|
[8] |
HINTON G E. A practical guide to training restricted Boltzmann machines[J]. Momentum, 2012, 9(1): 599-619. |
[9] |
HINTON G E, OSINDERO S, TEH Y W. A fast learning algorithm for deep belief nets[J]. Neural Computation, 2006, 18(7): 1527-1554. DOI:10.1162/neco.2006.18.7.1527 |
[10] |
SALAKHUTDINOV R, HINTON G. Deep Boltzmann machines[C]//The 12th International Conference on Artificial Intelligence and Statistics. Clearwater Beach, 2009: 1967-2006.
|
[11] |
MIKOLOV T, KARAFIAT M, BURGET L, et al. Recurrent neural network based language model[C]//The 11th Annual Conference of the International Speech Communication Association. Chiba, 2010: 1045-1048.
|