一种基于内容和ERNIE3.0-CapsNet的中文垃圾邮件识别方法

2024-03-12 09:18单晨棱张新有邢焕来
信息安全研究 2024年3期
关键词:垃圾邮件邮件卷积

单晨棱 张新有, 邢焕来, 冯 力

1(西南交通大学唐山研究院 河北唐山 063000)

2(西南交通大学计算机与人工智能学院 成都 611756)

随着互联网的高速发展,人们的通信越来越方便,特别是手机短信、微信、电子邮件等得到广泛普及.其中,电子邮件因其可以在云端服务器持久性存储的特性,人们更愿意通过电子邮件来传递重要文件或重要信息.但随之而来的就是邮件中混杂的垃圾电子邮件带来的网络安全问题及其造成的经济损失问题.2016年6月至2021年12月期间美国联邦调查局IC3向金融机构提交的文件统计数据显示,因BEC/EAC(商业电子邮件泄露/电子邮件账户泄露)骗局而在全球所产生的个人和企业损失高达433亿美元[1].此前,信息安全厂商卡巴斯基实验室发布的一份统计报告也提到,2021年源于中国的垃圾邮件在全球占比达到8.73%,比2020年提升2.52个百分点,居全球第四[2].因此,如何更准确检测中文垃圾邮件对当前维护网络安全和避免相关经济损失具有重要意义.

目前,对垃圾邮件进行检测的主要方式之一就是基于内容识别.基于内容的垃圾邮件识别方式实质也是对邮件内容文本进行二分类的研究问题.但目前文本分类的优异算法模型正快速迭代,而针对垃圾邮件识别应用领域的优异文本分类的算法应用研究相对欠缺.本文提出了将ERNIE3.0与改进CapsNet相结合的ERNIE3.0-CapsNet文本分类模型,对现有垃圾邮件识别算法词向量表示不足和特征提取丰富度不够有所弥补.ERNIE3.0相对其他主流预训练模型有增强文本信息的知识记忆和推理能力的优势,其最大化丰富了文本表示特征,而CapsNet对保留信息的混合特征和形变特征更有优势[3].最后通过对比实验证实本文方法在垃圾邮件识别中具有更加显著的效果.

1 相关研究

垃圾邮件一直是全球性的网络安全痛点,国内外对此都非常关注,对垃圾邮件的识别方法也在不断更新与改进.

早期,传统机器学习算法常被青睐用于垃圾邮件检测.但深度学习因其可以避免繁杂的人工特征工程和可以从文本中学习到更好的语义特征等显著优点,渐渐有取代传统机器学习算法在垃圾邮件识别地位的趋势.Sheneamer[4]比较了深度学习模型和传统机器模型在垃圾邮件中的检测性能,在与5种机器学习方法进行对比实验后得出,LSTM,GloVe-CNN等深度学习模型性能表现更佳.Siddique等人[5]利用朴素贝叶斯、CNN、SVM和LSTM来检测和分类乌尔都语电子邮件内容,研究结果表明LSTM更优于其他模型.

在文本分类的任务研究中[6-8],使用神经网络进行分类任务之前,常会借助文本表示模型将文本转换为语义词向量,以消除人工特征工程的复杂性,达到直接对原始文本数据进行端到端分析的目的.于是,Word2Vec-LSTM[9],ALBERT-RNN[10]等词向量表示模型结合神经网络分类模型的方式也相继被提出,并在垃圾邮件识别领域的效果表现出优于传统机器学习甚至一些神经网络模型的检测方法.

上述很多研究是针对英文等语言的垃圾邮件检测的探索,在中文垃圾邮件检测领域,目前研究还相对较少,其中文献[10]是针对中文垃圾邮件的研究,提出融合ALBERT动态词向量的RNN网络模型,提升了文本表示中对词语多义理解的程度,在TREC06C中文垃圾邮件数据集子集的准确率达到99.13%.Tong等人[11]提出多通道结合长短注意力机制的胶囊网络模型,提取更多复杂特征,增强关键特征的影响力,表现出优于TextCNN,LSTM及BERT方法的效果,且进一步提升了在TREC06C平衡子集的准确率(99.30%).但这些方法对于文本表示的丰富度和特征提取的力度还有进一步提升的空间.

针对上述问题,本文提出了ERNIE3.0-CapsNet文本分类模型.主要贡献点如下:

1) 预训练语言模型ERNIE3.0将自回归网络和自动编码网络进行结合,并预先训练了具有百亿参数的大规模知识增强模型[12].本文利用其对邮件进行文本表示,使邮件文本与世界知识关联,能达到更优异的底层语义语法表示的效果.

2) 本文对胶囊网络的结构作了优化,增强了底层特征提取,同时对胶囊网络动态路由算法中的激活函数进行了研究,发现一种更适合垃圾邮件识别的激活函数,提升了模型的整体性能.

3) 本文提出的ERNIE3.0-CapsNet文本分类模型在TREC06C中文邮件数据集表现出色,其表现效果总体优于ERNIE3.0-TextCNN,ERNIE3.0-RNN等模型.

2 ERNIE3.0-CapsNet模型

2.1 文本表示:ERNIE3.0

近年来,大规模的预训练语言模型研究成为趋势,其中ERNIE(enhanced representation through knowledge integration)系列的预训练模型表现尤为突出.2019年,ERNIE 1.0改进于BERT[13],其直接对先验语义知识单元进行建模,使模型语义表示能力进一步提升,其在中文任务上全面超过了BERT中文模型.同年,基于持续学习的语义理解预训练框架ERNIE2.0很快被提出,它使用多任务学习增量式构建预训练任务,在中英文任务上都超越了BERT.到2021年,ERNIE3.0出现,相比其他预训练模型,其主要优点是可以从大规模知识图谱中汲取世界知识,其英文版本在SuperGLUE[14]基准(2021年7月3日)测试取得冠军,进一步提高了预训练语言模型的性能.其模型框架如图1所示.

图1 ERNIE3.0模型框架

因此,由于ERNIE3.0的出色优势,本文利用开源的轻量级ERNIE3.0预训练语言模型来生成中文邮件文本的词向量.利用其将邮件文本向量化的具体过程如图2所示.

ERNIE3.0与Transformer类预训练模型数据处理步骤类似,先是将原始输入的批量邮件文本进行词级编码,也就是切分Token,同时拼接上预训练模型对应的特殊Token,如CLS,SEP,再将Token映射为ERNIE3.0对应的分词编码(Token ids),每个Token id还有分句编码(Segment ids),来表示对应的Token是属于文本第几个句子.

分词编码及分句编码的同时,还将进行补齐与截断(Padding),形成文本长度一致的编码序列,然后将编码序列输入ERNIE3.0预训练语言模型,经过ERNIE3.0对词向量的学习后,最终生成具有先验知识和世界知识的特征向量sequence_output和pooled_output.其中,sequence_output是对应每个输入Token的语义特征表示,pooled_output是对应整个句子或整个文本的语义特征表示.

由于sequence_out相比pooled_output更关注序列特征,对原始文本信息表示更完整且丰富,本文最终选择sequence_out作为邮件文本表示的特征向量.

2.2 CapsNet优化模型

胶囊网络模型(CapsNet)最早由Sabour等人[15]提出,其目的是为了解决CNN在图像处理中由于池化无法保留原始信息的空间关系等问题,其在MNIST上表现出当时最好的分类效果.在自然语言处理领域,CapsNet同样大放异彩.Zhao等人[16]首次提出胶囊网络的文本分类模型CapsNet-A和CapsNet-B,后者模型在多标签文本分类任务中表现出比CNN和LSTM更好的效果.本文得益于CapsNet-B和文献[11]的灵感,在原始胶囊网络的基础上作了微调和优化.优化后的胶囊网络模型如图3所示:

图3 胶囊网络优化模型

本文对CapsNet的优化主要体现在2个方面:

1) 结构上的优化.

为了获取丰富的底层特征,本文在胶囊网络的卷积层对文本的矩阵向量进行3种不同卷积核大小的n-gram特征提取处理,然后在主胶囊层将所有特征堆叠输入到数字胶囊层,这使得动态路由更新后的高级特征更加饱满.

同时为了更好的邮件文本分类效果,各个层级的相关超参数通过实验进行了微调.

2) 动态路由激活函数的替换.

在原始胶囊网络动态路由[15]过程中,每次迭代都会利用Squash激活函数将更新过程的过渡向量sj压缩到0~1之间,压缩过程保留了向量方向,以此得到高级向量vj.其原理如式(1)所示:

(1)

本文用GELU激活函数[17]替换了Squash激活函数,相比Squash激活函数,变换激活函数后的动态路由有效地提升了胶囊网络模型的性能.替换为GELU激活函数后vj更新过程如式(2)所示:

vj=GELU(sj)=sjP(X≤sj)=sjΦ(sj),

(2)

其中X~N(0,1),Φ(sj)是标准正态分布的累积分布函数.

2.3 ERNIE3.0-CapsNet模型结构

本文提出的ERNIE3.0-CapsNet文本分类模型整体结构如图4所示:

图4 ERNEI3.0-CapsNet文本分类模型整体结构

模型主要由ERNIE3.0预训练语言模型层、卷积层、主胶囊层和数字胶囊层组成.

首先,通过ERNIE3.0 Tokenizer工具对邮件文本语料进行分词、词表ID映射和Padding填充,再通过ERNIE3.0预训练模型层生成具有先验知识和世界知识的词向量矩阵T∈n×d(其中n是文本的长度,d是词向量维度).T可用式(3)表示:

T=[t1,t2,…,tn],

(3)

其中ti为输入文本中第i个Token的d维词向量.

然后,卷积层采用3个并行网络对词向量矩阵T∈n×d进行2维卷积操作以生成特征Ci,且每个网络的卷积核不同,分别为3-gram滤波器、4-gram滤波器、5-gram滤波器.其卷积操作原理如式(4)所示:

Ci=ReLU(Wi*T+b),i={1,2,3},

(4)

其中,ReLU为非线性激活函数,Wi表示卷积层第i个网络的滤波器,*表示卷积操作,b表示偏置项.

主胶囊层同样采用3个并行网络,分别对接卷积层的3个并行网络,并分别接收其对应的底层特征Ci.同时,每个并行网络以同样的方式再次卷积,即对特征Ci进行n次卷积核值w为4-gram、步幅为2的1维卷积操作以生成胶囊向量Si,如式(5)、式(6)所示:

sj=Squash(w*Ci+b),

(5)

Si=[s1,s2,…,sn].

(6)

然后拼接3个网络的胶囊向量Si为最终的低级胶囊向量S,输入到数字胶囊层.如式(7)所示:

S=cat(S1,S2,S3).

(7)

数字胶囊层主要对输入的低级胶囊向量S进行动态路由传播与更新,因为垃圾邮件识别也可归结为二分类,所以将得到2个16维的高级胶囊向量vj.同时为了缓解梯度消失,继续对高级胶囊vj进行批归一化处理以得到标量p,批归一化处理原理如式(8)所示:

(8)

最终使用模长(范数)描述类别概率,并得到最后的输出o,以用于后续计算分类损失.

o=norm(p).

(9)

3 实 验

3.1 实验环境

本文所有实验在同一实验环境下进行,具体实验环境信息如表1所示:

表1 实验环境信息

3.2 实验数据与评价指标

实验数据集使用TREC 2006中文公共语料库(https://plg.uwaterloo.ca/~gvcormac/treccorpus06/).

该数据集一共存在64620条中文邮件数据,但其正负样本并不平衡.因此,为了更好说明本文模型在垃圾邮件识别的有效性,在总样本中随机各抽取5000条非空内容的垃圾邮件和5000条正常邮件,构成平衡子集进行实验.实验涉及模型皆通过文本分类问题常用的4个实验评价指标:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1值对分类结果进行评估.具体数据集分布如表2所示:

表2 数据集分布

3.3 实验结果与分析

使用ERNIE3.0得到预训练好的词向量序列之后,可以选择static方法和no-static方法,前者在训练过程中不对词向量的参数进行更新与微调,即以静态词向量的方式结合下游模型完成分类任务.后者在训练过程中调节词向量的参数,即以动态词向量的方式配合下游模型完成分类任务.后者会显著提升模型效果,所以,本文实验以ERNIE3.0动态词向量方式结合CapsNet在TREC06C中文邮件子数据集上与4种常见模型进行对比,4组模型文本表示都采用ERNIE3.0动态词向量,以更好评估本文模型的垃圾邮件识别性能.最终实验结果如表3所示:

表3 模型对比实验结果 %

由表3可知,ERNIE3.0-CapsNet在邮件分类任务中,评估结果总体优异.其在准确率、精确率、F1值3项指标上,分别达到99.45%,99.50%,99.40%,相较于ERNIE3.0-RNN,ERNIE3.0-TextCNN,ERNIE3.0-RCNN,ERNIE3.0-DPCNN这4类模型有明显优势.而在召回率指标上,ERNIE3.0-TextCNN效果最好,ERNIE3.0-RNN次之,但ERNIE3.0-CapsNet效果表现欠佳,这表明本文模型对垃圾邮件的判对率还有提升空间,这也将是本文下一步要考虑改进的工作之一.

同时,为了验证CapsNet动态路由改进的有效性,本文还设计了4组激活函数对比实验,4组实验仅替换动态路由中的激活函数.实验结果如表4所示.

表4 激活函数对比实验结果 %

从表4可知,在垃圾邮件识别任务上,相较于胶囊网络原版动态路由激活函数Squash,ReLU激活函数在各项指标上的效果与之相差无几,而ELU激活函数和GELU激活函数在准确率、F1值这2项指标上均有提升,值得注意的是,GELU激活函数效果更为明显,同时GELU在精确率上的效果也最好,虽然结合表3可以看出,ELU激活函数的替换在召回率指标上与ERNIE3.0-TextCNN持平,且其余3项指标皆优于表3前4组对比实验,但从总体上评估,用GELU激活函数替换Squash激活函数,能使ERNIE3.0-CapsNet模型性能更为突出.

4 结 语

本文提出了一种新的文本分类模型,即ERNIE3.0与优化的CapsNet相结合的ERNIE3.0-CapsNet文本分类模型.并采用该模型进行垃圾邮件识别.其在TREC06C中文邮件数据集的平衡子集上,准确率达到99.45%.相比采用ERNIE3.0-TextCNN,ERNIE3.0-RNN等模型的垃圾邮件检测方法,ERNIE3.0-CapsNet具有显著优势.同时,激活函数GELU替换原动态路由Squash激活函数的改进,进一步提升了模型的整体性能.最后实验结果证明了ERNIE3.0-CapsNet模型在垃圾邮件识别任务上的有效性和优越性.

但ERNIE3.0-CapsNet参数较多,致使计算代价较大,后续将考虑压缩模型参数.同时,由于本文的任务特性,致使数据集较为单一,未来将引入新的数据集或应用于其他领域,进一步对ERNIE3.0-CapsNet模型进行性能探索和研究.

猜你喜欢
垃圾邮件邮件卷积
基于James的院内邮件管理系统的实现
从“scientist(科学家)”到“spam(垃圾邮件)”,英语单词的起源出人意料地有趣 精读
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种基于SMOTE和随机森林的垃圾邮件检测算法
来自朋友的邮件
从滤波器理解卷积
CMailServer
一封邮件引发的梅赛德斯反弹
基于傅里叶域卷积表示的目标跟踪算法
基于支持向量机与人工免疫系统的垃圾邮件过滤模型