计算机应用   2017, Vol. 37 Issue (11): 3323-3329  DOI: 10.11772/j.issn.1001-9081.2017.11.3323
0

引用本文 

俸世洲, 周尚波. 基于深度自编码网络的高校招生咨询算法[J]. 计算机应用, 2017, 37(11): 3323-3329.DOI: 10.11772/j.issn.1001-9081.2017.11.3323.
FENG Shizhou, ZHOU Shangbo. College enrollment consultation algorithm based on deep autoencoders[J]. Journal of Computer Applications, 2017, 37(11): 3323-3329. DOI: 10.11772/j.issn.1001-9081.2017.11.3323.

基金项目

重庆市教委科学技术研究项目(KJ1501703);重庆市基础科学与前沿技术研究专项计划重点项目(cstc2015jcyjBX0124)

通信作者

周尚波, E-mail:shbzhou@cqu.edu.cn

作者简介

俸世洲(1981-), 男, 四川广汉人, 助理研究员, 硕士, CCF会员, 主要研究方向:人工神经网络、数据挖掘;
周尚波(1963-), 男, 广西宁明人, 教授, 博士, 主要研究方向:人工神经网络、信息安全、图像处理、计算机仿真

文章历史

收稿日期:2017-05-16
修回日期:2017-06-15
基于深度自编码网络的高校招生咨询算法
俸世洲1,2, 周尚波2    
1. 重庆师范大学 涉外商贸学院, 重庆 401520;
2. 重庆大学 计算机学院, 重庆 400030
摘要: 高校招生在线咨询通常采用人工回复或基于关键词匹配的问答系统来处理,常存在人工回复效率低下,问答系统答非所问的问题;此外,咨询文本往往比较简短,文本向量化表示易导致高维稀疏问题。针对上述问题,提出一种基于栈式降噪稀疏自编码网络(SDSAE)的招生咨询算法。首先,利用自编码网络对短文本进行特征提取和降维,引入数据集增强技术和添加噪声技术解决训练样本规模较小且分类不均问题,提高算法的泛化能力;获得短文本低维特征表示后,结合反向传播(BP)算法对文本进行分类。所提算法分类效果优于BP、支持向量机(SVM)、极限学习机(ELM)等算法,能显著提高招生咨询文本的分类效果。
关键词: 深度学习    自编码    神经网络    文本分类    
College enrollment consultation algorithm based on deep autoencoders
FENG Shizhou1,2, ZHOU Shangbo2     
1. College of Foreign Trade and Business, Chongqing Normal University, Chongqing 401520, China;
2. College of Computer Science, Chongqing University, Chongqing 400030, China
Abstract: College enrollment consultation service usually relies on artificial reply or keyword matching Question and Answer (Q&A) system, which exists the problems of low efficiency and irrelevant answers. In addition, a consultation text is often a short statement, therefore its vectorized representation may easily lead to the high-dimensional sparse problem. To solve the problems mentioned above, an enrollment consultation algorithm based on Stacked Denoising Sparse AutoEncoders (SDSAE) was proposed. First of all, to improve generalization ability of the algorithm, an autoencoder network was used to extract features and reduce the data dimension; at the same time, dataset enhancement technique and noise-adding technique were introduced to solve the problems of small training sample set and uneven classification. After low dimensional representation of short texts being obtained, a text classification was conducted afterwards by using Back Propagation (BP) algorithm. The experimental results show that the proposed algorithm has a better classification performance over BP, Support Vector Machine (SVM), Extreme Learning Machine (ELM) algorithm and etc., and it significantly improves the classification effect of enrollment consultant texts.
Key words: deep learning    autoencoder    neural network    text classification    
0 引言

近年来,在线咨询平台、微信、营销QQ等新媒体在高校招生领域的应用越来越广泛,在这些系统中积存了大量的咨询数据,如何利用已有的数据资源,为招生咨询决策提供依据,已成为招生工作的新挑战[1]。招生咨询是高校招生工作中的重要环节,除提供电话咨询服务外,还提供在线咨询。一方面,解答考生问题,具有公益性质;另一方面,推荐本校,吸引生源。所以,很多高校已开通各类在线咨询平台,以扩大宣传范围。目前,高校使用的中文在线咨询平台都是基于关键词匹配的问答系统,需要人工在后台制定问答模板。考生提问后,系统根据考生咨询文本中的某些关键词来查找答案,并将其反馈给考生。这样的问答模式过于形式化,只是简单的关键字匹配,并没有理解问题本质,有时甚至答非所问。然而,在线咨询数据量非常大,全部依靠人工来处理已不可能。因此,在高校招生领域中,引入智能化的咨询平台就显得尤为重要。为此本文引入深度学习理论,构建能够对咨询文本进行特征提取及分类的模型。首先利用深度模型对已有的招生历史数据进行学习,获取咨询问题的特征; 然后将该模型应用于招生咨询系统中,在线处理考生提问,并对考生提问进行分类统计,了解考生关注热点。它为高校及时调整招生宣传策略和咨询接待方案提供了决策依据,也为高校设计制作智能咨询决策系统提供了一种新途径,这也是深度学习在高校招生领域的首次尝试。

深度学习是机器学习中的一个新领域,近年来在自然语言处理中得到了广泛的应用[2-4]。文献[5]提出一种基于稀疏自编码网络的文本特征提取算法,并用于文本分类,该算法能实现高维数据的分类。文献[6]提出基于自编码网络的短文本流形表示方法,通过自编码网络提取短文本的特征,并利用外部标签扩充短文本信息,使用该模型生成的流形表示能更准确描述短文本的特征信息,使分类效果得到显著提升。文献[7]将栈式自编码网络用于提取文本的语义特征,实验证明高阶特征表示训练的情感分类器的学习性能明显优于其他方法。文献[8]将深层噪声自动编码器用于短文本的特征提取,引入L1范式增加稀疏性,然后手动添加噪声增加鲁棒性,实验证明,此方法提取的文本特征明显有利于提高聚类效果,有效地解决了短文本表示的高维稀疏性问题。

招生咨询文本自身存在两方面问题:一方面文本长度较短,文本表示存在高维稀疏性[9];另一方面由于训练样本的人工标注成本较高,所以获得的训练样本数量有限,而且咨询问题的分类并不均匀,这导致在数据库中随机选取的训练样本也存在分类不均问题。以上问题对深度学习模型的鲁棒性提出了更高的要求。本文参考文献[8]的特征提取方法,选择栈式降噪稀疏自编码网络(Stacked Denoising Sparse Autoencoders, SDSAE)用于特征提取, 并针对招生咨询短文本自身的特点,在算法上进行相应的改进:一方面在算法中引入数据集增强技术来增加训练样本数量,并使训练样本分类更加均匀;另一方面在训练阶段引入Denoising方法和Dropout机制向网络的输入层和隐藏层添加噪声来增强模型的鲁棒性,改进网络的泛化能力。本文采用改进后的栈式降噪稀疏自编码网络进行无监督学习,对文本进行特征提取和降维。然后,将自编码网络学习得到的权值作为反向传播(Back Propagation, BP)网络权值的初始值,通过监督学习对BP网络的权值进行微调,最后用于测试样本的分类。

1 栈式降噪稀疏自编码网络 1.1 基本自编码网络

自编码网络(AutoEncoders, AE)[10]是一种尽可能复现输入信号的前馈神经网络,是一种无监督学习算法。图 1(a)(b)分别是AE网络的结构和抽象图,该网络可以看作由编码器和解码器两部分组成。

图 1 AE网络的结构和抽象图 Figure 1 Structure and abstract graph AutoEncoders neural networks

AE网络尝试学习一个hW, b(x)≈x的函数,也就是尝试逼近一个恒等函数,使得输出接近于输入。这种方法看似并没有学习的意义,但是当隐藏层神经元个数小于输入层神经元个数时,迫使AE网络学习输入数据的压缩表示,即是对输入数据的降维。自编码网络采用梯度下降算法来求解网络,其代价函数为:

$ \begin{align} &J\left( \mathit{\boldsymbol{W}}, \mathit{\boldsymbol{b}} \right)=\left[\frac{1}{m}\underset{i=1}{\overset{m}{\mathop \sum }}\, J\left( \mathit{\boldsymbol{W}}, \mathit{\boldsymbol{b}};{{x}^{\left( i \right)}}, {{y}^{\left( i \right)}} \right) \right]+ \\ &\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \frac{\lambda }{2}\underset{l=1}{\overset{{{n}_{l}}-1}{\mathop \sum }}\, \underset{i=1}{\overset{{{s}_{l}}}{\mathop \sum }}\, \underset{j=1}{\overset{{{s}_{l}}+1}{\mathop \sum }}\, {{\text{(}W_{ji}^{\left( l \right)}\text{)}}^{2}}= \\ &\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \left[\frac{1}{m}\underset{i=1}{\overset{m}{\mathop \sum }}\, \left( \frac{1}{2}{{\left\| {{h}_{\mathit{\boldsymbol{W}}, \mathit{\boldsymbol{b}}}}\left( {{x}^{\left( i \right)}} \right)-{{y}^{\left( i \right)}} \right\|}^{2}} \right) \right]+ \\ &\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \frac{\lambda }{2}\underset{l=1}{\overset{{{n}_{l}}-1}{\mathop \sum }}\, \underset{i=1}{\overset{{{s}_{l}}}{\mathop \sum }}\, \underset{j=1}{\overset{{{s}_{l}}+1}{\mathop \sum }}\, {{(W_{ji}^{\left( l \right)})}^{2}} \\ \end{align} $ (1)

其中:第一项是一个均方差项,第二项是一个规则化项,也叫权重衰减项,其目的是减小权重的幅度,防止过拟合,x(i)y(i)分别表示网络的输入和输出,W是权重,b是偏置项,m是输入样本的个数。梯度下降算法的每一次迭代都按式(2)和(3)对参数Wb进行更新, 式中α是学习率。

$ W_{ji}^{\left( l \right)} = W_{ji}^{\left( l \right)} - \alpha \frac{\partial }{{\partial W_{ji}^{\left( l \right)}}}J\left( {\mathit{\boldsymbol{W}}, \mathit{\boldsymbol{b}}} \right) $ (2)
$ b_i^{\left( l \right)} = b_i^{\left( l \right)} - \alpha \frac{\partial }{{\partial b_i^{\left( l \right)}}}J\left( {\mathit{\boldsymbol{W}}, \mathit{\boldsymbol{b}}} \right) $ (3)
1.2 栈式稀疏自编码网络

如果本文给自编码网络加上L1正则化限制,即稀疏性(Sparseness)限制(主要是约束隐藏层大部分节点输出为0,只有少数不为0,咨询短文本的表示存在高维稀疏性,加入稀疏性限制会提高训练效果),则形成稀疏自编码网络。其代价函数表示为:

$ {J_{{\rm{sparse}}}}\left( {\mathit{\boldsymbol{W}}, \mathit{\boldsymbol{b}}} \right) = J\left( {\mathit{\boldsymbol{W}}, \mathit{\boldsymbol{b}}} \right) + \beta \mathop \sum \limits_{j = 1}^{{s_2}} KL\left( {\rho \parallel {{\hat \rho }_j}} \right) $ (4)

其中: J(W, b)如式(1)的定义,β是控制稀疏性惩罚因子的权重。$ \mathop \sum \limits_{j = 1}^{{s_2}} KL\left( {\rho \parallel {{\hat \rho }_j}} \right) $是惩罚因子,其中,$ KL\left( {\rho \parallel {{\hat \rho }_j}} \right) = \rho \ {\rm{lb}}\frac{\rho }{{{{\hat \rho }_j}}} + \left( {1-\rho } \right)\ {\rm{lb}}\frac{{1-\rho }}{{1-{{\hat \rho }_j}}} $是一个相对熵,用来测量ρ$ {{{\hat \rho }_j}} $的差异,并且随着$ {{{\hat \rho }_j}} $ρ之间的差异增大而单调递增。ρ是稀疏性参数,通常是一个较小的值(比如ρ=0.05)。$ {{{\hat \rho }_j}} $是网络隐藏神经元j的平均激活度。

求出代价函数之后,利用反向传播算法求代价函数的偏导数,计算方法如式(5)和(6)所示,其中δi(l+1)为残差:

$ \frac{\partial }{{\partial W_{ji}^{\left( l \right)}}}J\left( {\mathit{\boldsymbol{W}}, \mathit{\boldsymbol{b}};x, y} \right) = a_j^{\left( l \right)}\delta _i^{\left( {l + 1} \right)} $ (5)
$ \frac{\partial }{{\partial b_i^{\left( l \right)}}}J\left( {\mathit{\boldsymbol{W}}, \mathit{\boldsymbol{b}};x, y} \right) = \delta _i^{\left( {l + 1} \right)} $ (6)

获得代价函数及偏导数后,采用梯度下降法减小代价函数J(W, b)的值,进而求解整个网络。整个步骤如下:

1) 对于所有层l, 令ΔW(l)=0, Δb(l)=0。

2) 使用反向传播算法计算▽W(l)J(W, b; x, y)和▽b(l)J(W, b; x, y)。

3) 计算ΔW(l)W(l)+▽W(l)J(W, b; x, y)和Δb(l)b(l)+▽b(l)J(W, b; x, y)。

4) 更新权重参数:

$ {\mathit{\boldsymbol{W}}^{\left( l \right)}} = {\mathit{\boldsymbol{W}}^{\left( l \right)}}- \alpha \left[{\left( {\frac{1}{m}\Delta {\mathit{\boldsymbol{W}}^{\left( l \right)}}} \right) + \lambda {\mathit{\boldsymbol{W}}^{\left( l \right)}}} \right] $ (7)
$ {\mathit{\boldsymbol{b}}^{\left( l \right)}} = {\mathit{\boldsymbol{b}}^{\left( l \right)}} - \alpha \left[{\left( {\frac{1}{m}\Delta {\mathit{\boldsymbol{b}}^{\left( l \right)}}} \right)} \right] $ (8)

栈式自编码网络是一个由多层自编码器组成的神经网络,前一层AE的输出作为后一层AE的输入,每一层都会得到原始输入的不同表达。采用逐层贪婪训练算法依次训练网络的每一层。先利用原始输入x来训练网络的第一层,得到其参数W(1)b(1);然后,网络的第一层将原始输入转化成为由隐藏层单元激活值组成的向量A,接着将A作为第二层的输入,继续训练得到W(2)b(2);后面的各层采用同样的策略,进而训练整个栈式自编码网络。至于需要多少层,应根据实际应用需求通过实验确定。

1.3 数据集增强与噪声鲁棒性

提高深度学习模型泛化能力的最好办法是使用更多的数据进行训练[11]。但是由于招生咨询文本的人工标注成本较高,因此获得的训练样本数量有限且分类不均。要解决以上问题,并使模型具有较强的鲁棒性,就必须增加训练样本,即增强数据集。本文将标注的训练样本数据转化为短文本向量后,在样本数量较少的类别中随机选取一定比例的样本,将样本向量中某些值置为0或者1并生成新的样本,然后将其与原始训练样本合并,生成最终的训练样本集。网络短文本在输入时本身就具有很高的随意性,输入错误经常发生,数据集增强可以大幅改善模型的泛化能力。

在网络的输入层注入噪声通常被看作数据集增加的一种形式。在模型的输入中加入噪声相当于对权重施加范数惩罚。Vincent等[12]指出,普通AE在不加生成约束的情况下,很容易将输入向量直接复制到输出向量,当训练集和测试集不符合同一分布时,训练效果急剧下降,网络的泛化能力很差。为此,Vincent等提出降噪自编码网络(Denoising Autoencoder, DAE),如图 2所示,该算法对原始样本X进行毁坏(以一定概率将输入层某些节点值置零),使原始样本成为X′,再用于网络的训练。降噪自动编码器是在自动编码器的基础上,训练数据加入噪声,所以自动编码器必须学习去去除这种噪声而获得真正的没有被噪声污染过的输入。因此,这就迫使编码器去学习输入信号的更加鲁棒的表达,这也是它的泛化能力比一般编码器强的原因。本文使用深度学习工具包中神经网络参数inputZeroMaskedFraction向输入层添加噪声。

图 2 降噪自编码网络 Figure 2 Denoising AutoEncoders

2012年,Hinton教授提出Dropout方法,该方法将噪声添加到隐藏层单元,这被看作在抽象层上进行的数据集增强,它能更好地解决网络的过拟合问题,文献[13]证明了Dropout方法的有效性。Dropout方法称为丢失数据技术,这种方法的关键步骤在于训练时随机让网络某些隐藏层节点的权重不工作,被抑制权重的节点暂时不作为网络的一部分,但是节点的权重保留,在下次训练样本输入时有机会处于工作状态。它的作用相当于为隐藏层加入了稀疏性,这种方法有效地缓解了网络的过拟合问题,并且效果比其他正则化方法有了明显的提升。Dropout神经网络模型如图 3所示, 图 3(b)网络的某些节点被丢失。Dropout方法相比其他正则化项,如权重衰减、参数范数惩罚、稀疏性限制等更有效。Dropout也可以与其他形式的正则化合并,使效果得到进一步提升。Dropout的另一个显著优点是不怎么限制适用的模型或训练过程,几乎在所有使用分布式表示且可以用随机梯度下降训练的模型上都表现得很好,其中包括前馈神经网络、概率模型。本文将Dropout机制加入栈式自编码网络,提高网络的泛化能力,防止过拟合。本文使用深度学习工具包中神经网络参数dropoutFraction向隐藏层添加噪声。

图 3 加入Dropout机制的神经网络模型 Figure 3 Dropout neural network model
2 招生咨询数据选择与文本预处理 2.1 招生咨询数据选择

近年来,网络宣传是高校招生宣传的重点,几乎所有高校都提供在线咨询服务,如:在线留言板、QQ咨询等。本文以重庆某高校在线留言板的考生咨询数据为例,其前台形式如图 4所示。选取后台数据库中咨询问题的“title”和“content”两字段进行分析,如图 5所示,“title”信息通常只有一个词或几个字,很少考生在标题字段准确描述问题的主题,问题细节都是在内容字段进行描述。所以只通过标题来判断主题是不可行的,必须通过对内容文本进行挖掘才能了解考生真实意图。另外,从图 4中还可以看出,在线留言板内容文本的字词数量较少,和微博等媒体相似,字词数量一般不超过140个,有时甚至只有十几个,这将导致文本向量化表示存在高维稀疏问题。为扩充信息量,本文将标题文本和内容文本融合在一起进行挖掘。

图 4 招生在线留言板 Figure 4 Online message board of enrollment
图 5 招生在线留言板数据 Figure 5 Online message board data of enrollment

通过对往年咨询问题进行分析,统计出考生咨询的热门主题有14类,加上“其他”类,总共15个类别,如图 6所示。该校每年录取新生3 900人左右,通过分析往年的咨询量,并考虑到人工标注训练样本的成本较高,决定从数据库中随机选取8 000条记录进行人工标注类别, 其中7 000条作为训练样本,1 000条作为测试样本。

图 6 招生咨询各类别占比 Figure 6 Proportion of category
2.2 文本预处理

从网络获取的文本样式各异,计算机根本无法识别,要想用深度学习算法对文本进行学习,必须将其转化成计算机能够识别的形式[14]。文本预处理流程如图 7所示,下面对关键步骤进行说明。

图 7 文本预处理步骤 Figure 7 Preprocessing steps of text data

1) 中文分词。中文分词采用教育部语言文字应用研究所研发的分词工具,此系统可对文件进行批量处理,并同时标注词性。如图 8所示。

图 8 中文分词程序 Figure 8 Chinese word segmentation procedure

2) 生成特征词表。利用程序对分词结果进行统计,剔除出现次数小于等于2的词,剩下1 410个特征词,如图 9所示,其中A1为特征词,A2为词频。招生咨询属于专业领域,涉及面并不广,特征词数量在合理范围内。

图 9 特征词表 Figure 9 Word-frequency table

3) 文本向量化表示。把一条文本表示为一组向量,即为向量空间模型(Vector Space Model, VSM)[15]。在该模型中,所有出现在全部文本中的特征词被作为向量空间中的一维,n个特征词就构成n维特征词表。每篇文档都表示成一组特征词组成的特征向量di=(w1i, w2i, …, wki, …, wni),其中wki表示特征词k在文档di中的权重。权重的取值范围为[0, 1]。布尔加权法也叫二值权重,其权重计算方式如式(9)所示:

$ {{w}_{ki}}=\left\{ \begin{align} &1, \ \ \ \text{当特征词}{{t}_{k}}\text{出现在文档}{{\mathit{\boldsymbol{d}}}_{i}}\text{中时} \\ &0, \ \ \ 其他 \\ \end{align} \right. $ (9)

基于自编码网络对输入数据的要求,并且由于咨询文本属于短文本,字词数量较少,采用词频加权法或TF-IDF(Term Frequency-Inverse Document Frequency)加权法进行表示并无太大意义,所以选择简单实用的布尔加权法进行表示。利用程序将人工标注的8 000条样本转化为布尔向量,如图 10所示。

图 10 短文本向量表示(稀疏矩阵) Figure 10 Short text vector (sparse matrix)

短文本向量表示存在高维稀疏性,在数据处理过程中,通常采用稀疏矩阵存储,图 10中A1为咨询文本的序号,A2为该词出现在特征词表中的位置,A3为该词的权重,出现即为1。向神经网络输入数据之前,先将稀疏矩阵转换成全矩阵,即神经网络的输入矩阵为8 000×1 410、输出矩阵为8 000×15,其中1 410为特征词个数,15为类别个数。

3 仿真实验及结果分析 3.1 算法原理及实验流程

实验的目的是为了验证算法的分类效果,该算法主要流程如图 11所示。算法的关键步骤是SDSAE无监督学习阶段,短文本无监督学习结构如图 12所示。将数据输入到神经网络之前先用程序对原始文本向量进行数据集增强处理,新生成的训练样本占原始训练样本20%左右,然后将原始训练样本与新生成的训练样本合并,生成最终的训练样本集。

图 11 本文算法主要流程 Figure 11 Main process of the proposed algorithm
图 12 短文本无监督学习结构 Figure 12 Architecture of unsupervised learning

为验证短文本无监督学习对模型分类效果的影响将进行两项实验:第一项实验加入1层稀疏自编码网络进行预训练; 第二项实验加入2层稀疏自编码网络进行预训练。其中每一项实验又分为两步:第一步为不进行数据集增强和不添加噪声进行预训练;第二步为数据集增强和添加噪声进行预训练,分别记录这4种情况的实验结果。最后,把实验的最优结果与其他算法进行比较。

在进行这两项实验之前,首先要确定网络的基本参数,如:激活函数、学习率、稀疏参数、隐藏层的节点数和训练迭代次数等,其中一部分参数通过经验确定,另一部分通过多次实验确定。下面详细介绍网络参数的调制及训练步骤。

3.2 仿真实验

本文选择Windows 10专业版64位操作系统,CPU为i5 2.8 GHz, 内存为8 GB, 仿真平台为Matlab R2015b,深度学习算法采用DeepLearnToolbox工具包。

1) 第一项实验:加入1层稀疏自编码网络进行预训练。AE参数的初始值为:激活函数为sigm,学习率为1,Sparse值为0.05,Denoising值为0,Dropout值为0,迭代次数为10,batchsize为100。隐藏层节点数是通过多次实验确定:根据经验将隐藏层节点数初始值设为80(当输入层与输出层节点数为1 000左右时,隐藏层节点数一般为100左右)。训练时以10为步长逐步增加,实验中不断观察误差值。图 13是隐藏层节点个数变化对误差的影响。由图 13可知,AE网络中隐藏层节点个数对分类效果影响比较大,因为隐藏层节点个数决定能否有效描述输入数据的特征。对于1 410维的输入单元,隐藏层单元在100时达到最优分类效果。目前,并没有快速设置隐藏层节点个数的方法,只能通过经验和不断的实验来寻找最优的隐藏层节点数。

图 13 隐藏层节点数对分类效果的影响 Figure 13 Influence of nodes in hidden layer on classification accuracy

隐藏层节点个数确定后,通过实验观察迭代次数的增加对训练误差的影响。首先构建一个结构为[1 410, 100, 1 410]的1层AE网络,并对AE进行预训练。然后构建一个结构为[1 410, 100, 15]的BP网络,并把AE网络预训练获得的权值W(1)赋给BP网络,再用训练样本对BP网络的参数进行微调,最后用测试样本测试分类效果。AE网络和BP网络的迭代次数都以1为步长,分别从1调整到10和20,实验中观察到的误差曲线如图 14所示。

图 14 不同网络的训练误差 Figure 14 Train error of different network

图 14(a)看出训练误差已经收敛到一个较小的值,测试样本的分类错误率为4.6%。由于AE的作用是对权值进行预训练,所以并不需要收敛到一个很小的值,根据多次实验最终把AE网络和BP网络的训练迭代次数定为10和20。当网络基本参数确定后,将数据集增强、Denoising方法和Dropout机制加入AE网络再次进行训练,此时测试样本的分类错误率为4.5%,具体实验结果如表 1所示。

表 1 加入1层稀疏自编码网络进行预训练的实验结果 Table 1 Experimental results with 1 layer of SAE for pre-training

2) 第二项实验:加入2层稀疏自编码网络进行预训练。首先构建一个结构为[1 410, 200, 60]的2层AE网络,采用逐层贪婪算法依次训练网络的每一层。先利用原始输入x来训练网络的第一层[1 410, 200, 1 410],得到其参数W(1)b(1);然后,网络的第一层将原始输入转化成为由隐藏层单元激活值组成的向量A,接着将A作为第二层[200, 60, 200]的输入,继续训练得到W(2)b(2)。然后构建一个结构为[1 410, 200, 60, 15]的BP网络,并把AE网络预训练获得的权值W(1)W(2)赋给BP网络,权值替换方式如图 15所示,此处只替换了BP网络的权值W(1)W(2),权值W(3)仍为初始值。然后用训练样本对BP网络的权值进行微调,最后用测试样本进行测试。BP网络的训练误差曲线如图 16所示,迭代次数在20次时,网络已基本收敛。此时测试样本的分类错误率为4.3%,具体实验结果如表 2所示。

图 15 权值替换图 Figure 15 Weight replacement
图 16 BP网络训练误差(2层自编码网络) Figure 16 Train error of BP (2 layers of AE) network
表 2 加入2层稀疏自编码网络进行预训练的实验结果 Table 2 Experimental results with 2 layers of SAE for pre-training
3.3 结果分析

对比表 1表 2的实验结果可以发现,实验二的测试误差较低,说明采用多层降噪稀疏自编码进行预训练可以提高分类准确率,而且数据集增强与噪声的加入明显缩小了测试误差与训练误差的差距,说明数据集增强和加入噪声可以提高网络的泛化能力,避免过拟合;实验结果最优的为2层DSAE+BP结构,其训练误差、测试误差以及测试误差和训练误差的差距都为较小值,这说明Denoising方法和Dropout机制针对深度网络更能体现出良好的效果。评价机器学习算法效果是否好的因素包括:降低训练误差,缩小训练误差和测试误差的差距。从以上4组实验数据来看,采用SDASE结构对网络进行预训练, 不仅可以取得良好的分类效果,并且能防止过拟合的发生,体现出良好的泛化能力。

3.4 对比实验

将SDSAE+BP算法与BP、支持向量机(Support Vector Machine, SVM)、极限学习机(Extreme Learning Machine, ELM)等算法进行比较,各分类算法的性能采用综合正确率来评价, 即:

$ \rm{综合正确率}=\frac{\rm{各类被分类正确的样本总和}}{各类的样本数总和} $ (10)

BP算法采用深度学习工具包,SVM算法采用LIBSVM[16]软件包,ELM算法采用ELM[17]源代码,下面详细介绍主要参数的调整和设置。

BP参数  激活函数为sigm,学习率为0.8,batchsize为100,迭代次数和隐藏层节点个数经多次实验确定为24和80,此时网络性能基本趋于稳定,网络结构为[1 410,80, 15]。

SVM参数  svm_type为C-SVC,在惩罚参数c不变的情况,分别使用常用的SVM分类核函数(linear、polynomial、BRF和sigmoid)进行实验,在综合考虑分类性能、训练速度和泛化速度等因素的情况下,将核函数确定为径向基函数(Radial Basis Function, RBF),g参数根据特征数量确定为0.001,惩罚参数c是SVM的复杂性和容许错分的样本的平衡,通过多次实验确定为10。

ELM参数  隐藏层节点个数是极限学习机非常重要的参数,由于输入层节点数为1 410,所以隐藏层节点数分别选取200、300、400、500、700五种维度进行实验,对比分类结果后,将隐藏层节点定为500,最后综合考虑分类精度和运行时间将激活函数定为sigm。各分类算法的性能比较如表 3所示。

表 3 几种算法的性能比较 Table 3 Performance comparison of several algorithms

从表中可以看出,直接使用BP网络进行分类效果最差,说明高维稀疏的招生短文本对传统的神经网络分类方法影响很大。SDSAE+BP算法分类精度明显高于SVM算法,说明深层自编码网络能够利用其非线性特性,从高维低层的特征中学习到低维抽象特征,更能提取文本的本质。ELM算法在运行效率上较SDSAE+BP算法有较大优势,其分类性能也不错;但是随着将来训练数据规模的增大,特征维度的增加,SDSAE+BP算法较ELM算法的优势会越来越明显。

3.5 结果应用

该模型在训练结束后,可应用于智能招生咨询系统中。当考生提问后,系统自动对考生咨询文本进行分词并生成布尔向量,然后将文本向量输入到BP网络进行降维和分类。网络有两个输出结果:一是文本向量的低维特征表示(60维),该低维特征表示可用于进一步分析该条文本的情感信息[18],便于高校及时了解考生对本校的评价是正面的还是负面的;另一个是该条文本所属类别(15个类别之一),问答系统会根据所属类别反馈相应答案给考生,并且对类别进行计数统计,随时监控各类咨询问题的增长量,便于高校及时了解考生关注点。如考生关注补录问题增多,则说明落榜考生增多,那么高校可以及时增加补录招生计划进行扩招,既可以降低考生落榜率,又可以提高学校生源数量;如考生关注艺术问题增多,那么说明报考艺术类专业的考生增多,那么在艺术类招生方面可以加强招生宣传力度;如考生关注迎新问题增多,则提醒高校应根据考生关注点完善迎新方案,做到精准服务。

4 结语

本文提出一种基于栈式降噪稀疏自编码网络的招生咨询算法,首先对历史数据进行学习,然后用于新咨询文本的分类。针对招生咨询短文本的自身特点,在输入数据处理方面引入数据集增强算法解决训练样本规模较小且分类不均问题。在网络的训练阶段引入Denoising方法和Dropout机制增加算法的鲁棒性,改进算法的泛化能力。该模型在实验中表现出良好的分类能力和泛化能力。由于监督训练的成本较高(主要是人工标注数据成本),以后将尝试利用无监督学习算法(聚类算法)对招生咨询数据进行挖掘。在高校招生领域,将深度模型用于咨询文本分类,并且取得较好分类效果,尚属首次。利用该模型能明显提高招生咨询的工作效率,其输出结果可用于招生咨询决策,它在高校招生领域具有较好的应用前景。

参考文献(References)
[1] 俸世洲, 周尚波. SOM神经网络在独立学院招生决策中的应用[J]. 计算机工程与科学, 2011, 33(5): 136-140. (FENG S Z, ZHOU S B. Application of the SOM neural network in enrollment decision for independent college[J]. Computer Engineering and Science, 2011, 33(5): 136-140.)
[2] COLLOBERT R. Deep learning for efficient discriminative parsing[EB/OL].[2016-11-20]. http://proceedings.mlr.press/v15/collobert11a/collobert11a.pdf.
[3] BENGIO Y, YAO L, ALAIN G, et al. Generalized denoising auto-encoders as generative models[EB/OL].[2016-11-20].http://www.iro.umontreal.ca/~bengioy/papers/1305.6663v3.pdf.
[4] 周杭霞, 叶佳骏, 任欢. 基于快速自编码的RELM的文本分类[J]. 计算机工程与科学, 2016, 38(5): 871-876. (ZHOU H X, YE J J, REN H. Text classification based on fast auto-encoder RELM[J]. Computer Engineering and Science, 2016, 38(5): 871-876.)
[5] 秦胜君, 卢志平. 稀疏自动编码器在文本分类中的应用研究[J]. 科学技术与工程, 2013, 13(31): 9422-9426. (QIN S J, LU Z P. Research of text categorization based on sparse autoencoder algorithm[J]. Science Technology and Engineering, 2013, 13(31): 9422-9426. DOI:10.3969/j.issn.1671-1815.2013.31.051)
[6] 魏超, 罗森林, 张竞, 等. 自编码网络短文本流形表示方法[J]. 浙江大学学报(工学版), 2015, 49(8): 1591-1599. (WEI C, LUO S L, ZHANG J, et al. Short text manifold representation based on autoencoder network[J]. Journal of Zhejiang University (Engineering Science), 2015, 49(8): 1591-1599.)
[7] 李敏, 禹龙, 田生伟, 等. 基于深度学习的维吾尔语语句情感倾向分析[J]. 计算机工程与设计, 2016, 37(8): 2213-2217. (LI M, YU L, TIAN S W, et al. Emotional tendency analysis of Uyghur statement based on deep learning[J]. Computer Engineering and Design, 2016, 37(8): 2213-2217.)
[8] 刘勘, 袁蕴英. 基于自动编码器的短文本特征提取及聚类研究[J]. 北京大学学报(自然学科版), 2015, 51(2): 282-288. (LIU K, YUAN Y Y. Short texts feature extraction and clustering based on auto-encoder[J]. Acta Scientiarum Naturalium Universitatis Pekinensis, 2015, 51(2): 282-288.)
[9] 杨杰明. 文本分类中文本表示模型和特征选择算法研究[D]. 长春: 吉林大学, 2013. (YANG J M. The research of text representation and feature selection in text categorization[D]. Changchun:Jilin University, 2013.) http://cdmd.cnki.com.cn/Article/CDMD-10183-1013193215.htm
[10] HINTON G E. Reducing the dimensionality of data with neural networks[J]. Science, 2006, 313(5786): 504-510. DOI:10.1126/science.1127647
[11] GOODFELLOW I, BENGIO Y, COURVILLE A. Deep Learning[EB/OL].[2017-05-01] http://www.deeplearningbook.org/front_matter.pdf.
[12] VINCENT P, LATOCHELLE H, LAJOIE I, et al. Stacked denoising autoencoders:learning useful representations in a deep network with a local denoising criterion[J]. Journal of Machine Learning Research, 2010, 11(12): 3371-3408.
[13] SRIVASTAVA N, HINTON G E, KRIZHEVSKY A, et al. Dropout:a simple way to prevent neural networks from overfitting[J]. Journal of Machine Learning Research, 2014, 15: 1929-1958.
[14] SONG F, LIU S, YANG J. A comparative study on text representation schemes in text categorization[J]. Pattern Analysis and Applications, 2005, 8(1/2): 199-209.
[15] SALTON G, WONG A, YANG C S. A vector space model for automatic indexing[J]. Communications of the ACM, 1975, 18(11): 613-620. DOI:10.1145/361219.361220
[16] CHANG C C, LIN C J. LIBSVM:a library for support vector machines[J]. ACM Transactions on Intelligent System and Technology, 2011, 2(3): 27.
[17] HUANG G B, ZHU Q Y, SIEW C K. Extreme learning machine:theory and applications[J]. Neurocomputing, 2006, 70(1/2/3): 489-501.
[18] 朱少杰. 基于深度学习的文本情感分类研究[D]. 哈尔滨: 哈尔滨工业大学, 2014. (ZHU S J. Research on text sentiment classification based on deep learning[D]. Harbin:Harbin Institute of Technology, 2014.) http://cdmd.cnki.com.cn/Article/CDMD-10213-1014081814.htm