堆叠去噪自编码器在垃圾邮件过滤中的应用

时间:2020-10-03 10:53:41 计算机毕业论文 我要投稿

堆叠去噪自编码器在垃圾邮件过滤中的应用

  摘要:针对垃圾邮件数量日益攀升的问题,提出了将堆叠去噪自编码器应用到垃圾邮件分类中。首先,在无标签数据集上,使用无监督学习方法最小化重构误差,对堆叠去噪自编码器进行贪心逐层预训练,从而获得原始数据更加抽象和健壮的特征表示; 然后,在堆叠去噪自编码器的最上层添加一个分类器后,在有标签数据集上,利用有监督学习方法最小化分类误差,对预训练获得的网络参数进行微调,获得最优化的模型; 最后, 利用训练完成的堆叠去噪编码器在6个不同的公开数据集上进行测试。将准确率、召回率、更具有平衡性的马修斯相关系数作为实验性能评价标准,实验结果表明,相比支持向量机算法、贝叶斯方法和深度置信网络的分类效果,基于堆叠去噪自编码器的垃圾邮件分类器的准确率都高于95%,马修斯相关系数都大于0.88,在应用中具有更高的准确率和更好的健壮性。

堆叠去噪自编码器在垃圾邮件过滤中的应用

  关键词:堆叠去噪自编码器;分类;支持向量机;贝叶斯方法;垃圾邮件

  引言

  电子邮件因为易于使用、速度快、沟通方便等原因,已经成为人们重要的联系方式,但与此同时,垃圾邮件的数量却急剧地增加:卡巴斯基实验室的研究发现,2014年第1季度的垃圾邮件数目占总邮件的66.34%;McAfee实验室2015年2月的威胁报告表明,2014年,垃圾邮件数量大概为31.2万亿,占该年邮件总量的69.02%。其中大部分垃圾邮件带有商业性质,但有些邮件可能会包含病毒和其他具有危害性质的内容,给用户带来精力的损耗和财力上的损失,文献[1]表明,由于垃圾邮件的原因,美国接近360万用户的损失高达32亿美元。大量的垃圾邮件同时造成带宽浪费和邮件系统超载。

  垃圾邮件过滤方法用来解决上述问题。垃圾邮件过滤的目的是为了隔离垃圾邮件和合法邮件。一般的过滤方式包括:邮件客户端扩展和邮件服务终端过滤过程,简单邮件传送协议(Simple Mail Transfer Protocol,SMTP)和基于机器学习算法的方法是最常用的垃圾邮件过滤方法。一般来说,基于SMTP的过滤方法通常是指SMTP流量的检测、电子邮件交换路由验证和经过身份验证的SMTP会话。基于启发式规则的方法、黑名单/白名单的方法、协同垃圾邮件过滤也可以用来过滤垃圾邮件。机器学习方法包括邮件的分析和分类算法的部署。

  文献[2]表明在诸多过滤方法中,机器学习算法获得更多的应用和更好的性能。贝叶斯过滤器因为计算效率高、过滤性能良好得到了广泛的应用,文献[3]比较了7个版本的贝叶斯过滤器,得出布尔朴素贝叶斯(Boolean Naive Bayes)、多项式布尔朴素贝叶斯(Multinomial Boolean Naive Bayes)、基本朴素贝叶斯(Basic Naive Bayes)具有较好的性能;文献[4]提出了一些方法用来改进朴素贝叶斯过滤器,提高了过滤器的准确率; 文献[5]将不同种类核函数和数据表示的支持向量机应用到垃圾邮件过滤中;文献[6]提出了混合Taguchi方法、Staelin方法来优化支持向量机参数的选择过程,并且提高了准确率。其他的诸如随机随林、人工神经网络、提升方法(boosting)和装袋(bagging)等方法也被应用到了垃圾邮件过滤。近年来随着社交网络、云计算、网格计算、语义网络等技术的发展,出现了许多基于上述技术的垃圾邮件分类器;随着垃圾邮件中图像的增加,出现了基于图像的垃圾邮件分类器,文献[7]对新技术和图像分类应用进行了介绍。文献[8]比较了不同的特征选择和降维技术对垃圾邮件过滤的影响。文献[9]研究表明:相对支持向量机(Support Vector Machine, SVM)、提升方法(boosting)、最大熵方法等“浅层学习”方法而言,深度学习所学得的模型中,非线性操作的层级数更多。 浅层学习依靠人工经验抽取样本特征,网络模型学习后获得的是没有层次结构的单层特征;而深度学习通过对原始信号进行逐层特征变换,将样本在原空间的特征表示变换到新的特征空间,自动地学习得到层次化的特征表示。

  去噪自编码器(Denoising Autoencoder, DA)是深度学习中的变形结构,和受限玻尔兹曼机、自编码器[9](Autoencoder)一样作为深度学习架构中的训练模块,具有良好的学习数据集特征的能力。通过多个DA的堆叠可形成堆叠去噪自编码器(Stacked Denoising Autoencoder,SDA) [10]。SDA训练过程中的无监督学习过程和对数据的破坏过程,能进一步学习到数据集中的特征和数据结构,同时学习得到的隐含表示更适用于有监督分类。文献[11]的研究表明,在大部分情况下,SDA要优于深度置信网络[9](Deep Belief Network, DBN),并且因为SDA不需要吉布斯采样,所以训练更加容易。

  本文将一个5层神经网络结构的堆叠去噪自编码器应用到垃圾邮件过滤,在6个公开数据集上进行测试,使用准确率、召回率和马修斯相关系数作为测量标准,与在垃圾邮件过滤中应用最为广泛的支持向量机算法、3种贝叶斯算法和DBN进行比较。结果表明,相对于其他几种算法:堆叠去噪自编码具有最好的平均性能和较好的预测能力。

  一、堆叠去噪自编码器

  1.1去噪自编码器

  自编码器 (Autoencoder) [9]的学习只是简单地保留原始输入数据的信息,并不能确保获得一种有用的特征表示。因为自编码器可能仅仅简单地拷贝原始输入,或者简单地选取能够稍微改变重构误差,却不包含特别有用信息的特征。为了避免上述情况,并且能够学习更好的特征表示,需要给数据表示一定的约束。去噪自编码器可以通过重构含有噪声的输入数据来解决该问题。

  去噪自编码器所要实现的功能就是学习叠加噪声的原始数据,而它学习到的特征与从未叠加噪声的数据学到的特征几乎一样, 但去噪自编码器从叠加噪声的输入中学习得到的特征更具鲁棒性,并且可以避免自编码器遇到的上述问题,简单地学习相同的特征值。

  去噪自编码器通过一个随机的映射变换x~qD(x′|x),对原始输入数据x进行“破坏”,从而得到一个有部分损坏的数据x′, 其中D表示数据集。

  去噪自编码器由编码器(encoder)、解码器(decoder)和隐含层组成。编码器是输入x∈[0,1]d 的”破坏”版本x′到隐含表示 y∈[0,1]d′的映射,表示为:

  y=fθ(x)=s(Wx′+b)(1

  这个映射的参数集合是θ={W,b},s是一个非线性的函数,例如sigmoid,W是一个的d×d′权值矩阵, b是一个偏置向量。