第13卷第31期2013年11月 科学技术与工程 VoL 13 No.31 Nov.2013 1671—1815(2013)31・9422—05 Science Technology and En ̄neefing ⑥2013 Sci.Tech.Engrg. 稀疏自动编码器在文本分类中的应用研究 秦旺秀 芦恕平 (广西科技大学管理学院,柳州545006) 摘要传统的文本分类算法都是采用期望交叉熵、信息增益和互信息等统计方法,通过设置阈值获取特征集。如果训练集 的数据量较大,则容易出现特征项不明确、特征信息丢失等缺陷。为解决上述问题,提出运用“深度学习”中的稀疏自动编码 器算法自动提取文本特征,然后结合深度置信网络形成sD算法进行文本分类。实验表明,在训练集较少的情况下,sD算法 的分类性能低于传统的支持向量机;但是在处理高维数据时,SD算法则比支持向量机具有较高的准确率和召回率。 关键词文本分类 深度学习 稀疏自动编码器 文献标志码A 深度置信网络 中图法分类号TP391.3; 随着网络技术的不断发展,互联网成为了人们 发布和获取文本信息的重要途径。然而,文本数量 持续地递增,使文本排序变得杂乱无章,人们很难 快速而准确地获取所需的信息。因此,如何对大量 的文本进行有效的组织,帮助用户尽快找到所需的 核,最后利用SVM进行分类。实验结果显示该算法 具有良好的文本分类效果。 综上所述,研究者们采用了不同的方法提高分 类算法的有效性,然而在特征选择方面基本都是采 用期望交叉熵、信息增益和互信息等统计方法 J, 然后设定特征项的阈值,通过人工筛选选择出有效 的特征集。这种方法选取特征的缺陷在于,对于数 据量较大、维数较多的数据集,容易导致特征项不 明确,分类精度下降等情况。为解决上述问题,本 文提出运用“深度学习”中的稀疏自动编码器自动 信息成为当代信息科学技术领域的重要研究 课题 。 目前,在文本分类领域已有不少相关的研究。 例如,李学相 将香农熵作为最大熵模型中的目标 函数,然后采用均值聚类算法对最优特征进行分 类,实验证明该算法能在较短的时间内获得特征 集。王进等 以 统计方法进行特征选择,利用布 尔权重计算特征权值,并且使用超边替代策略训练 超网络分类模型,从而实现了对测试集特征向量的 分类。朱云霞 应用互信息量的特征提取方法提 取特征项后,使用基于样本中心的径向基神经网络 选取样本特征,然后结合深度置信网络对训练集进 行分类,并且将实验结果与支持向量机算法比较, 表明该算法在处理数据量较大的样本集时具有较 高的分类准确率和召回率。 1稀疏自动编码器 稀疏自动编码器(sparse auto encoder,SAE)是 利用人工神经网络的特点构造而成的网络,由于人 工神经网络本身是具有层次结构的系统,假设神经 算法进行文本分类。实验表明该算法具有较高的 运算速度和非线性映射能力。李侃等 使用信息 增益的方法选择文本特征,然后在混合多项式 (DCM)流形上建立距离度量,构建统计流形上的 网络的输人和输出相同,然后训练调整参数,得到 每一层的权重,便可获得输入Input的几种不同的 表示(每一层隐含层代表一种表示),这些表示即是 输入数据的特征,这就是自动编码器能自动获取数 据特征的原理。自动编码器(auto encoder,AE)是可 Diifchlet混合多项式扩散核和倒排文档频率扩散 2013年6月25日收到 欠发达地区工业化与信息化融合 及其系统动力机制研究(1]FJL007)资助 第一作者简介:秦胜君(1984一),女,汉族,广西桂林人,讲师,博士。 研究方向:文本分类、数据挖掘等。E—mail:jane8008@gmail.corn。 以捕捉输入数据的最重要因素,从而尽可能复现输 入信号的神经网络。在自动编码器的基础上加人 31期 秦胜君,等:稀疏自动编码器在文本分类中的应用研究 约束条件,要求节点大部分为0,只有少数不为0,则 形成稀疏自动编码器[ 。由于文本分词之后形成 ., (W,6)=.,(W,6)+卢∑KL(p 1 )。0 的矩阵是稀疏的,使用SEA的效果会更好,因此本 文选用SEA提取数据特征,其网络结构图如图1。 1层 图1 SAE结构图 为求出SAE的参数,首先根据网络的结构确定 损失函数的表达式,同时求出损失函数偏导函数的 表达式,然后利用优化算法获取网络最优的参数。 无稀疏约束时网络的损失函数表达式如下: J(W,6)=[ 耋邶, ㈤ 卜 nl一1 Sl sl+1 、争∑∑∑( ") = […1 2…( 1 ( 一 ㈤ )]+ nl一1 Sl Sl+1 、∑∑∑( D) 。 式中, 、Y分别表示SAE的输入和输出, 表示权 重,m表示输入节点的个数。 hw(b )= A =_厂(‘W A ‘ +B ‘ ’);,A‘ = W‘ ’X+B‘ ’)。 式中, )=忐l十e 。 添加稀疏编码约束条件之后,由于隐含节点输 出的平均值应尽量为0,因此,SAE的损失函数表达 式为: 后一项为KL距离,其表达式如下: KL(p l l =plg +(1一p)lg 。 pi L— 3 隐含节点输出平均值表达式如下: [ ( ]。 上述表达式说明,如果隐含层的每一个节点输 出均值接近0.05,则达到稀疏的目的。 求出损失函数之后,便可以求损失函数的偏导 函数。假设 为隐含层, 和 分别为输入和输 出层。 在输出层 中每个节点的误差表达式为 6 )_ I l Y—hrc,b( l : 一(Y —o 。 ( )。 在隐含层己:中每个节点的误差表达式为 6 )_『(∑ =1 。 )+ (一、 +p ) ))o 最终计算所需的偏导数为 J(W,6; )= ; j(w, ,y)=6 。 获得损失函数及其偏导数之后,便可以采用梯 度下降法求网络最优化的参数,整个流程如下: (1)对于每一层l,设置AW‘“:=O,Ab‘“:=0。 (2)使用反向传播计算V )‘,(W,b; ,Y)和 6(f)l,(W,b; ,Y)。 (3)令AW‘ :=AW‘ + “ .,(W,b; ,Y)和 △6‘”:=△6‘ +v6….,(W,b; ,Y)。 (4)更新参数: W㈤= (z)~[(L…aw㈣)+AW㈣]; )- 一。[ ,扎 。 由h述公式可知.损失函数是由每个训练样本 9424 科学技术与工程 13卷 的损失叠加而成,与训练样本输入网络的顺序无 关。SAE的训练过程便是通过梯度下降法,使损失 函数的偏导数尽可能达到最小。 2深度置信网络 深度置信网络(deep belief networks,DBN)是一 个概率生成模型,区别于传统的判别模型的神经网 络。生成模型建立了观察数据和标签之间的联合 分布,对P(Observation l Labe1)和P(Label IObserva- tion)都做了评估,而传统的神经网络只对后一项进 行评估。因此,使用DBN进行文本分类时需要提供 有标签的训练集 。 DBN是由多个波尔兹曼机(restrited boltz. man machines,RBM)层组成。整个网络分为可视层 和隐含层,层间连接,但是层内的节点不连接。隐 含层用于捕捉在可视层表现出来的高阶数据相关 性。DBN的结构图如图2所示。 隐含层 可视层 图2 DBN结构图 DBN的训练最开始通过对比分歧(contrastive divergence)方法进行预训练获得生成模型的权值。 然后使用Gibbs采样,隐含层单元和可视层输入之 间的相关性差别作为权值更新的主要依据。使用 Gibbs采样之后,训练时间会显著减少,只需要单个 步骤就可以接近最大似然学习,降低了网络训练时 间。另一方面,DBN通过利用带标签数据对判别性 能做调整,在分类任务中,其性能比单纯的BP算法 训练的网络好。DBN的训练是一个复杂的过程,在 此不再详述,详情可参见文献[8]。 通过SEA算法可以获取输人数据特征,而DBN 具有较好的分类效果。因此,本文结合SEA和DBN 算法,形成sD算法进行文本分类,整个算法主要过 程描述如下: 第一步选择合适的训练样本集和测试集作为 实验对象。 第二步对数据集分词,去除停用词,将文本集 转换为矩阵表示。 第三步初始化SEA和DBN的参数(如学习率、 循环次数、隐含层单元个数等)。 第四步将训练集输入SEA,取得特征向量,然 后进行验证,调整SEA的参数,直到达到满意的特 征向量。 第五步比较特征向量的余弦,如果值为0,表明 两个特征向量相同,则删除其中一项。 第六步将训练集、特征集传人DBN,进行分类, 检验分类结果,修正DBN各项参数。最后分析文本 分类结果。 3仿真实验和结果分析 3.1实验数据集 实验数据集来源于搜狗全网新闻语料库(ht. tp://www.sogou.com/labs/resources.htm1)。全网新 闻数据包含了多家新闻站点近20个栏目的分类新 闻数据,样本从每个栏目中随机抽取。训练集数目 分为300、800和1 300。文中运用lucene和IKAna. 1yzer进行分词,然后计算词的信息增益,将文本数 据转化为矩阵向量。sD算法使用java语言编写,开 发平台为eclipse。 3.2分类性能评价 文本分类的性能评价采用准确率(precision,P) 和召回率(racall,R)两个指标进行评估。 P= 0+D ;R= a+c 。 式中,0为判别正确为该类的文本数目,b为判别错 误为该类的文本数目,c为原本属于该类但是错判 为其他类的文本。 3.3结果分析 文中选取不同数目的训练集是用于和其他算 法做比较,在分析SD算法本身的参数对性能的影 响时,采用训练集的样本数目为800。SAE算法中 的初始参数设置:学习率=0.1,下降率=0.3,循环 次数=200。在SAE算法中,隐含层的单元是输入 越器桨 31期 秦胜君,等:稀疏自动编码器在文本分类中的应用研究 9425 数据的特征表示,去除掉停用词后,800的训练集的 分词维数约为4 000;因此,可以预先设置隐含层单 元个数为100,然后根据准确率逐渐增加。DBN算 法中的参数设置:对比分歧下降率=0.1,循环次 数:1 000,微调率:0.1,微调次数=1 200,输出单 元个数=20。 图3描述了不同的隐含层单元个数,训练集的 准确率和召回率的实验结果。图3中的实验结果是 在运行10次之后的平均测试结果。 器 图3 隐含单兀个数对分类效果影响 SEA算法中的隐含层单元数目对分类结果的 正确性具有较大的影响,因为隐含层单元的数目决 定着能否正确表示数据特征。隐含层的单元数目 如果太少,则特征向量的大部分都是1,只有少部分 是0,无法正确描述特征。相反,如果单元数目太 多,特征向量太稀疏也无法有效描述数据特征。由 图3可知,对于4 000维的输入单元,隐含单元在 400左右便可达到最优分类结果。隐含单元再多只 会增加训练时间,但是不会提高分类的准确性。目 前,并没有快速设置隐含单元个数的方法,只能通 过经验以及不断地实验来寻找最优的隐含单元数 目,这也是作者下一步的研究方向。 图4描述了在DBN算法中,微调次数对精确率 和召回率的影响。 由图4可知,微调的次数越多算法的精度越高, 在微调1 400次时,最高可达到90%的精度,但是随 着微调次数增加,运算的时间也会成倍增加,因此, 在设置微调次数时,应考虑其运算时间是否在可接 图4微调次数对分类效果影响 受范围。 本文除分析sD算法的性能,还将sD算法与其 他算法的分类精度进行比较,如表1所示。 表1 SD算法与支持向量机算法比较 从表1可以看出,在样本数较少的情况下,SD 算法的精度远不如SVM算法,而且sD算法在样本 数偏少时容易出现过度拟合现象,但是随着样本数 的逐渐增加,SD算法的优势也渐渐体现,准确率和 召回率都高出3个百分点。虽然sD算法的运行时 间比SVM算法多出20 s,但是对于追求高精度的数 据而言,这样的时间差应该是可被接受的。 4总结 “深度学习”是计算机科学“机器学习”领域的 一个新兴研究方向,其致力于让机器掌握学习能 力,模拟人脑进行分析学习,认知图像、声音和文本 等数据。本文应用“深度学习”中的稀疏自动编码 器进行文本数据的特征提取,然后结合深度置信网 络将数据分类。通过实验分析了SEA算法中的隐 含层单元数和DBN算法的微调次数对分类精度的 影响,最后,将sD算法与支持向量机算法比较,得 9426 科学技术与工程 13卷 出结论在样本数较多的前提下,sD算法分类的效果要优于传统的支持向量机算法。 4 朱云霞.结合聚类思想神经网络文本分类技术研究.计算机应 用研究,2012;29(1):155—158 5 王德庆,张辉.基于支持向量的迭代修正质心文本分类算法. 参考文献 6 北京航空航天大学学报,2013;39(2):269—275 单丽莉,刘秉权,孙承杰.文本分类中特征选择方法的比较与改 进.哈尔滨工业大学学报,2011;43(1):319—325 http://deeplearning.stanford.edu/wiki/index.php/Autoeneoders— 1 崔建明,刘建明,廖周宇.基于SVM算法的文本分类技术研究. 计算机仿真,2013;30(2):299—3o4 2李学相.改进的最大熵权值算法在文本分类中的应用.计算机 科学,2012;39(6):210—212 3王进,金理雄,孙开伟.基于演化超网络的中文文本分类方法. Q andSparsity —Hinton G E.Learning multiple layers of representation.Trends in Cognitive Sciences,2007;(1 1):428-----434 江苏大学学报(自然科学版),2013;34(2):196—2O1 Research of Text Categ0rizati0n Based on Sparse Autoencoder Algorithm QIN Sheng-jun,LU Zhi—ping (School of Management,Guangxi University ofTechnology,Liuzhou 545006,P.R.China) [Abstract]Tradition text classification algorithms use the expected cross entropy,information gain and mutual information statistical method to get the feature set,but these methods require setting thresholds.If the training data set iS large which prone to feature items iS not clear.the feature information loss and other defects.In order to solve the above problem,the sparse autoencoder algorithm is used which belongs to“deep learning”automatically ex— tracts text features,and then combines with the deep belief networks to form SD algorithm for text classification. Experiments show that,in the case of small training set,SD algorithm performs lower than traditional support vector machines,but when dealing with high-dimensional data,SD has higher accuracy and recall rate than support vector machine algorithm. [Key words]text classification deep learning sparse autoencoder deep belief networks