结合TFIDF的Self-Attention-Based Bi-LSTM的垃圾短信识别①
2020-09-22吴思慧陈世平
吴思慧,陈世平
1(上海理工大学 光电信息与计算机工程学院,上海 200093)
2(复旦大学 上海市数据科学重点实验室,上海 201203)
21世纪以来,手机用户不断增加,特别是智能手机的使用越来越多,人们可以通过短信快速高效的获取信息,但随之而来的是垃圾短信的泛滥,垃圾短信不仅仅影响到人们正常的手机使用和体验,更主要的是垃圾短信会带来严重的安全隐患,很多不法分子通过垃圾短信获取用户的私人信息,危害到用户隐私安全.因此,垃圾短信的识别具有重要的现实意义.治理垃圾短信不仅需要有关部门的持法监督和相应手机安全厂商的屏蔽,同时应该利用先进的技术,直接在源头上消灭垃圾短信.
目前常用的垃圾短信识别的方法主要包括基于黑白名单的方法,基于规则的方法和基于短信内容的方法这样3 种[1],前两种方法要人工手动添加发送垃圾短信号码的名单或者手动添加与垃圾短信对应关键词,由于手动添加的数据量有限且效率低,因此目前主要是使用基于短信内容的方法来进行短信识别,即将文本分类技术用于识别垃圾短信.
文本分类是计算机应用于根据特定的分类系统或者标准自动分类文本[2,3].随着深度学习在自然语言预处理领域的应用,相对于传统的文本分类算法如朴素贝叶斯,支持向量机等[4-6],深度学习在文本分类上获得了令人满意的结果.目前长短时记忆网络(Long Short-Term Memory,LSTM)已经广泛应用在文本分类里面,与循环神经网络(Recurrent Neural Network,RNN)相比,LSTM 网络采用了特殊隐式单元,因此更适合于处理长期依赖关系,很好的解决了RNN 的梯度消失或者梯度爆炸的问题,可以更好的获取文本的全局特征信息.以LSTM 网络为基础的双向循环神经网络(Bidirectional LSTM,Bi-LSTM) 网络是由向前的LSTM 和向后的LSTM 组成[7-13],在处理文本分类上面可以更好的捕捉双向的语义依赖,对于词向量[14]的依赖更少,从而提高文本的分类效率.
专家学者根据基于对人类视觉的研究,提出注意力(attention)机制[15],目前Attention 机制已经引入到自然语言预处理领域[16,17],学习并重点关注目标区域,使得模型在有效资源的情况下关注重点消息.Attention机制通常结合编码解码(encoder-decoder)模型使用,应用场景十分广泛,因此随后出现多种注意力机制的变形,如自注意力(self-attention)机制.
根据以上背景本文提出一种结合TFIDF 的selfattention-based Bi-LSTM 神经网络模型.首先,使用Word2Vec[18-20]将短信文本处理成词向量形式,随后使用Bi-LSTM 模型对词向量形式的短信文本的特征信息进行提取,接着引入自注意机制,并结合TFIDF 模型,对重点词汇进行加权,最后将输出的特征向量输入Softmax 分类器得到分类结果.该模型不仅能够充分利用上下文本信息来进行短信文本特征提取,还能在对短信文本进行分类时分辨中不同词语的重要程度从而实现对重点词语的提取,与未使用自注意机制和TFIDF 模型的Bi-LSTM 模型相比,在对垃圾短信和正常短信分类时的分类准确率,召回率,F1 值,运行时间等值上有较大的提升,其中分类准确率达到了90.1%,召回率达到了90.5%,F1 值达到了90.2%,说明该模型在对短信文本处理时具有更好的分类能力[21],同时从实验结果的准确率与训练集大小的性能趋势曲线上来看,该模型始终优于其他模型,该模型相较于其他模型需要更少的训练数据就可以到达较高的准确率.实验结果验证了结合TFIDF 的self-attention-based Bi-LSTM神经网络模型的可行性和有效性.
本文的主要贡献如下:
(1)将Bi-LSTM 模型运用到垃圾短信识别中,既可以利用过去的信息也可以利用将来的信息.
(2)将自注意机制和TFIDF 模型相结合,进一步加强重点词汇的权重,增强分类效果.
(3)在BI-LSTM 模型中引用自注意机制和TFIDF模型,进一步获取对短信文本分类结果产生影响的重点词语的特征.
1 模型构建
本文结合TFIDF 的self-attention-based Bi-LSTM神经网络总体模型如图1所示,模型包含词向量输入层,Bi-LSTM 网络层,结合TFIDF 的自注意层,Softmax 层.模型流程主要是短信文本以词向量的方式输入到Bi-LSTM 层,经过特征提取并结合TFIDF 和自注意层的重点词汇加权从而获得最后的特征向量,最后通过Softmax 分类器对最终的特征向量进行分类从而得到短信文本分类结果.
1.1 RNN 模型
RNN 能处理序列问题,允许信息持久化,即将上一刻运算结果添加到当前计算的输入中去,从而实现了“考虑上下文信息”的功能,可用于一段段连续的语义,一段段连续的段落等,RNN 包含循环结构,例如一个tanh 层.具体运行过程是t时刻输入当前信息xt并由神经网络模块A 接收,之后由A 得到t时刻的输出ht,并且将当前时刻的部分信息传递到下一刻t+1,RNN结构如图2所示.
图1 结合TFIDF 的self-attention-based Bi-LSTM 模型
1.2 LSTM 模型
在RNN 模型中仅靠一条线来记录所有的输入信息其工作效果并不是很理想,很难完美的处理具有长期依赖的信息,如一段很长的英语句子,RNN 很难记住前面主语的时态形式从而在句子后面选择相应的合适的时态.因此在RNN 模型的基础上,出现了LSTM.LSTM 是一种特殊的循环神经网络,可以学习长期依赖信息,其结构和传统的RNN 结构相同,只是重复模块A 结构更加复杂些,多了一个单元控制器Cell,其能够判断信息是否有用,从而解决了RNN 常有的梯度消失或者梯度爆炸的问题.LSTM 结构内部主要包括输入门it,遗忘门ft,输出门ot和Cell 状态更新向量ct等部分,LSTM 结构如图3所示.
图3 LSTM 结构
(1)遗忘门ft决定需要舍弃的信息部分,其计算公式如下:
其中,Wf和bf分别表示遗忘门的权重矩阵和遗忘门的偏置矩阵,σ为激活函数,ht-1表示历史信息,xt表示当前流入Cell 中新的信息,xt作用是为了根据当前输入的新的信息来决定要忘记哪些历史信息,将上一时刻的输出ht-1和 本时刻的输入xt两个向量拼接起来,通过激活函数输出一个在0 到1 之间的数值,0 表示完全抛弃,1 表示完全保留,同时,绝大部分数值都是接近0 或者1 的,这个数据决定要遗忘多少历史信息,0 表示完全抛弃,1 表示完全保留.
(2)输入门it处理当前位置的输入,确定什么样的新信息被存放在Cell 中,此处包含两个部分,首先,Sigmoid 层的“输入门层”会决定更新哪些值,接着tanh 层会建立一个新的候选值向量,在获得了输入门和遗忘门系数之后则更新当前的Cell 状态,Ct-1更新为Ct,其计算公式如下:
其中,Wi和bi分别表示输入门的权重,tanh 为激活函数.
(3)输出门控制哪些信息用于此刻的输出,输出门是由历史信息ht-1和 新的信息xt来决定的,此处包含两个部分,首先,运行一个Sigmoid 层,主要用于决定Cell 状态的哪个部分将被输出出去,将Cell 状态通过一个tanh 层进行处理,得到一个在-1 到1 之间的值,将这个值乘以Sigmoid 门的输出,最后模型将仅输出确定要输出的部分,其计算公式如下:
其中,Wo和bo分别表示输入门的权重矩阵和输入门的偏置矩阵.
1.3 Bi-LSTM 模型
Bi-LSTM 是对LSTM 的改进,因为LSTM 是序列化处理信息,所以在信息处理上有先后的顺序,也就是常常忽略下文信息,不能综合上下文的信息,例如:“作业写完了,我想_手机”,要在横线中填词,如果只考虑前面的信息,那么横线可以填“睡觉”,“玩”,“看电视”等,但是如果同时结合后面的信息“手机”一词,那么横线处填“玩”的概率最大,而Bi-LSTM 模型包含一个前向的LSTM 模型和一个后向的LSTM 模型,可以获取足够的上下文信息,并且两个模型都被连接到相同的输出层,Bi-LSTM 结构如图4所示.
图4 Bi-LSTM 结构
图4中前向的LSTM 模型捕捉当前时刻的前文特征信息,后向的LSTM 模型捕捉当前时刻的后文特征信息,Bi-LSTM 模型t时刻的输入的计算公式如下:
1.4 TFIDF 模型
TFIDF 是一种于咨询检索与咨询勘探的常用加权技术,主要用以评估一字词对于一个文集的重要程度或者对于一个语料库中的其中一份文件的重要程度,字词的重要程度与它在文档中出现的次数成正比,与它在整个语料库出现次数成反比.该模型主要包括:词频(TF)和逆文档频率(IDF)两个部分,TF表示某个词wn在文档dm中的出现频率,IDF 代表该词的类别区分,计算公式如下:
其中,dm为文档集中任意一篇,M为文档集中文档的总数,dm有词汇集合w={wn,wn,···,wn,···,wN},N为每篇文档的词汇总数,fn,m表示词wn在文档dm中出现的次数;表示文档dm中出现的所有词汇数;D为文档集合所有的文档数量,Dwn表示出现了词wn的文档数量,并且为了不会出现由于语料集不包括词wn而导致的分母等于零的情况,在此将分母加上一个常数1.
TFIDF权重即为TF和IDF的乘积,计算公式如下:
1.5 Self-Attention 机制
短信文本的识别过程中,文本所包含的词数比较少,很难获取更多的句子语义信息,但通过对比语料库可以发现,在句子中的某些重点词汇可以更快的帮助识别短信类别,如在“元旦特惠,原价xxx 的三星手机现在特惠,全部八折,最高直降xxx”这样的一条垃圾短信中,就包含了一些重点词汇:“三星”(品牌名称),“特惠”,“八折”,“直降”等.对于不同的词汇,其对文本分类起到的作用也不一样,因此为突出关键词并优化特征词提取过程,引入Attention 机制,结构如图5所示.
图5 Attention 机制结构
Attention 机制通过对不同的词汇分配不同的权重从而强化关键信息的比重.传统的attention 机制模型需要依赖部分外部信息,而self-attention 机制不需要使用其他外部的信息,它会自动从自身所给的信息训练来更新参数从而给不同信息分配不同的权重,因此本文采用self-attention 机制.
根据Bi-LSTM 所有的输出向量组成的矩阵H=[H1,H2,···,HN],结合TFIDF 模型所得到了当前输入文本的权重,更好将注意力集中的重点词汇上,从而获得更好的分类效果,基于TFIDF 的self-attention 机制的计算公式下:
计算公式如下:
H包含Bi-LSTM 所输出向量 [H1,H2,···,HN],TFIDFN为当前输入文本的权重,eN为N 维单位向量,N为输入文本的长度,WT为随机初始化并在训练中学习的权重矩阵,γ基于TFIDF 的self-attention 层的输出值,将输出值输入激活函数得到分类结果,短信文本进行“正常短信”和“垃圾短信”的二元分类.
2 实验介绍
2.1 实验数据
本文参与实验的短信数据共有20 万条,分为垃圾短信(negative)和正常短信(positive)两种,其中正常短信数量为10 万条,垃圾短信数量为10 万条,这些数据在初始化时已经被分为了垃圾短信或者正常短信.
2.2 实验数据预处理和参数设置
原始短信数据包含了很多非法符号,例如表情符号这些对于短信分类并没有用,所以数据不直接使用,先进行数据的清洗.经过清洗过的短信数据要进行中文分词处理,将短信的句子拆成单个中文单词,本文中使用结巴分词工具对短信进行分词,分词结束之后去除短信文本中的停用词,常见的停用词有“的”“得”“在”等,提高关键词密度,增强搜索效率.
分词处理之后,本文使用Word2Vec 工具初始化词向量,同时使用Skip-gram[22,23]模型训练数据集,并结合维基中文语料库训练词向量维度,词向量维度越高可以越好的表达中文单词的语义,但是随着维度的升高也会增加模型参数的数量,因此经过实验对比,将词向量维度设置为100,隐藏层设置为128,窗口大小设置为5,经过预处理之后的短信数据最长的一条为100 个中文词汇,因此每条短信的特征矩阵大小均为,将特征矩阵作为TFIDF-self-attention-based Bi-LSTM模型的输入参与到模型的训练中去.
2.3 评价指标
本文以准确率Precision,召回率Recall和F1 作为指标来评估模型在垃圾短信识别任务中的有效性,计算公式如下:
其中,Nright,Nwrong,TP,FN分别表示短信分类准确的数量,短信分类错误的数量,正常短信被判断成正常短信的数量和正常短信被判断成垃圾短信的数量.
本文采用十折交叉验证法来评估模型在短信测试集上的准确率.
3 结语
3.1 实验结果
在本文中,设计了4 组对比实验,分别使用了LSTM,Bi-LSTM,self-attention-based Bi-LSTM (SA Bi-LSTM),结合TFIDF 的self-attention-based Bi-LSTM (TSA Bi-LSTM) 4 组不同的模型,准确率实验结果和运行时间对比实验结果分别如表1和表2所示,对4 种模型根据不同训练集的大小进行实验结果如图6所示.
表1 准确率对比实验结果
表2 运行时间对比实验结果
图6 训练集大小与准确率比较
3.2 模型对比分析
4种不同模型的准确率可以看出,LSTM 模型的准确率低于Bi-LSTM 模型的准确率,在Bi-LSTM 模型中引入attention 机制准确率得到了提高,而self-attentionbased BI-LSTM 模型结合TFIDF 则又进一步提高了模型准确率.
因此,通过以上实验结果可得出结论:
(1)对比LSTM 模型和Bi-LSTM 模型,发现Bi-LSTM1 模型准确率高于LSTM 模型,同时模型用时更短,所以Bi-LSTM 模型对文本特征信息提取具有更精确的效果.
(2)对比Bi-LSTM 模型和self-attention-based Bi-LSTM 模型,可以得出在Bi-LSTM 模型引入selfattention 机制之后可以提高模型的准确率并且一定程度上缩短了模型运行时间,证明了self-attention 机制的有效性.
(3)对比self-attention-based Bi-LSTM 模型和结合TFIDF 的self-attention-based Bi-LSTM 模型,可以得出将注意力机制和TFIDF 模型相结合,更能有效提高重点词汇的权重达到更好的分类效果.
4 结语
本文将self-attention 机制和TFIDF 模型相结合加入到Bi-LSTM 模型,设计出结合TFIDF 的selfattention-based Bi-LSTM 模型,并应用到垃圾短信识别中,通过4 组对比实验,验证了该模型具有良好的使用效果.
由于self-attention 机制的引用需要消耗一定的计算成本,因此在未来的工作中,将考虑如何在减少selfattention 机制对计算成本消耗的基础上继续优化结合TFIDF 的self-attention-based Bi-LSTM 模型,使得该模型能在未来的应用中达到更好的使用表现.