基于深度特征语义学习模型的垃圾短信文本聚类研究

2018-04-24 07:54张毓陈军清
现代计算机 2018年7期
关键词:类别短信聚类

张毓,陈军清

(四川大学计算机学院,成都610065)

0 引言

随着社交媒体的广泛流行,短信业务得到了迅猛的发展,但是垃圾短信对人们的骚扰也越来越严重,已经严重扰乱了我们正常的经济生活,不利于我们社会的和谐稳定。随着我们国家现代化的不断建设和发展,使用信息技术来自动化的处理垃圾短信文本的需要也越来越紧迫。但是不同于正常文本聚类研究,垃圾短信文本具有其稀疏性[1],文本中的大部分词语只出现一次,因此词频-逆次序(TF-IDF)算法没法在短信文本聚类研究中起作用。一些研究人员已经通过增加预料例如Wikipedia[2]或者Ontology[3],来解决这个问题。

本文我们提出了一种基于深度特征语义学习模型的垃圾短信文本聚类方法。这些模型包括RNN模型,GRU模型,LSTM模型,bidirectional LSTM模型(BILISTM)。我们的贡献总结如下:(1)我们系统对比了上述模型在垃圾短信数据集上的聚类效果。(2)我们是第一个在垃圾短信文本数据集上运用BI-LISTM模型进行聚类研究的。我们的模型由于使用了BI-LSTM神经网络,既可以利用过去的信息,又可以利用将来的信息。该模型达到了极其可观的聚类效果。(3)我们的研究表明,相对于其他模型而言,BI-LISM模型具有强大的健壮性。其对于词向量依赖更小。

1 模型

本节LSTM、BI-LISTM以及K-means。

1.1 LSTM

在自然语言处理任务中,循环神经网络(RNN)[4]已经取得巨大的成功以及广泛应用。RNN引入了循环单元,能够使模型对前面的信息进行记忆并应用到当前输出的计算中。

如图1所示,我们给RNN模型加入了一层池化层(pooling),其包含输入层x,隐藏层h,输出层y.在短信文本聚类研究,x代表词向量,y代表垃圾短信类别。图1我们展示了一个垃圾短信聚类的例子,“代开正规发票”作为四个词向量,被聚类到商业广告类别中。输入层由各个时间段的特征构成,即词向量,可以用onehot来表示,不过容易导致词维度过大,而且导致“语义鸿沟”。本文使用Word2Vec来生成词向量。每个词向量拥有相同的维度,80维。输出层表示每条短信经过模型运算之后的最可能的类别,其维数和垃圾短信的类别数目相同,为5。与前馈网络相比,RNN网络加强了当前隐藏层与之前隐藏层之间的联系(RNN隐藏层的权值共享)。BNN循环层被设计,用来存储历史信息。在这篇文章中,我们运用了长短期时间记忆网络(LSTM)[5]来进行垃圾短信聚类研究。LSTM网络与RNN网络类似,除了引入了cell单元,其可以避免长期依赖关系问题。所以,与RNN相比,LSTM网络在处理长期依赖问题上,表现地更好。图1表示了用于提取短信聚类文本特征的LSTM模型。

图1 LSTM模型

1.2 Bidirectional-LSTM

在自然语言处理领域,对于序列标注任务,我们可以通过双向LSTM网络模型,来获取任意时刻过去和将来的输入特征。基于此,在垃圾短信文本聚类任务中,我们也可以在任意时刻,通过双向LSTM网络模型(图2)[6]充分利用过去的特征(通过前向状态)以及将来的特征(通过后向状态)。我们使用反向传播算法(BPTT)来训练双向LSTM神经网络。任意时刻的信息,经过展开的网络以前向、后向两种相同的方式传递,来达到训练网络的目的。我们仅仅需要在句子的开头及结尾区别对待就好。在实际实现中,我们在整条垃圾短信文本做前向、后向传递,仅仅在每条垃圾短信文本的开头重置隐藏状态为0,我们运用批处理技术,使得多个句子在同一时刻,可以并行运行。

1.3 K means聚类方法

Kmeans聚类方法[7]是一种典型基于划分的聚类方法。其利用文本对象之间的距离来判断聚类对象之间的相似性。它的目标是使下面的表达式值最小:

将包含有N个文档的文本数据集,划分成文K个分组,且K<=N,每一个分组代表的是一个聚类对象。一般来说基于划分的方式是采用迭代计算的方式,不断地计算每一个分组的中心类别,同时不断地将文本对象分配给与中心对象相似度最接近的类别对象中,直到准则函数开始收敛,就不再进行迭代过程。

图2 双向LSTM模型

其具体操作步骤如下:(1)任意选取K个对象作为最初的类别对象中心。(2)将数据集中的对象根据最小距离分配到最相近的类别中心。

(3)使用每一个聚类中的平均值作为新的类别对象中心。

(4)重复步骤(2)-(3)直到聚类的中心不再发生变化。

(5)结束操作,得到K个聚类中心。

1.4 BiLSTM-K-means

BiLSTM-K-means模型总体的结构如图3所示,它由三个主要部分构成:词向量层,BiLSTM网络和K-means(来聚类提取到的垃圾短信文本特征)。网络的输入是一段垃圾短信文本序列,其经过结巴分词,再将分词后的垃圾短信文本,向量化,(文中向量的方法有Word2Vec已经随机初始化)。再通过模型提取特征之后,运行K-means聚类方法,来达到垃圾短信文本聚类的目的。

每条垃圾短信文本的词通过词向量表达输入到Bi-LSTM网络中,经过前向。后向传播,其输出会包含上下文信息。在得到BILSTM网络双向表达的词向量[8]之后,我们运用Pooling机制去融合每条垃圾短信中不同时刻的词向量信息,即句向量,也就是我们所要提取的特征向量。常见的Pooling方式有Max Pooling和Mean Pooling等。当一个序列中的关键部分能代表其含义时,Max Pooling能很好地捕捉到这一突出部分并在Pooling表达中呈现出来;Mean Pooling则考虑序列中全局的信息,当要求序列总体反映某种性质时,可以通过Mean Pooling汇总序列的信息。在垃圾短信文本聚类任务上,不能由单一关键信息表达,其目标重要性程度并不集中,因此我们选取Mean Pooling的方式.我们也通过实验比较了两者的效果,证实Mean Pooling效果更加明显。

由词向量构成的垃圾短信文本,经过Pooling机制后,得到句向量,本文中的维度为100维度,也就是我们经过网络提取得到的特征。再将其当做K-means的输入,就实现了我们垃圾短信文本聚类的目的。

图3 BiLSTM-K-means模型

2 实验介绍

2.1 实验数据

本文中的数据来源于中国移动苏州研究院提供的20w条垃圾短信数据,其一共有5个类型,分别为广告短信、政治短信、涉黑短信、诈骗短信以及涉黄短信。我们采用了10折交叉验证的方式,来将20w条垃圾短信文本划分为如下训练集、测试集、验证集。

表1 数据集分布

C:集合当中垃圾短信文本的类别

Number:集合中包含垃圾短信文本的条数

L(mean/max):每条垃圾短信包含词的个数

|V|:数据中包含词的个数

2.2 实验数据处理

本文中所使用的数据时由中国移动苏州研究院提供的垃圾短信文本数据,通过观察,其存在大量难以处理的文本。例如,为了逃过关键词的审查机制,垃圾短信文本中含有大量的非法字符,其主要是加在敏感词汇之间如:普*稅、做*账、上-葡-京、【农 -行】等;还有垃圾短信文本中含有大量的变体字,如:“幵”是“开”的变体等。给我们的文本向量化带来了很多难度。因此,本文对垃圾短信文本数据首先进行了规范化处理。包括清除干扰字符、转换不了的字符等。

这样经过一系列的处理后,垃圾短信文本数据就变成正常的可以用来向量化的文本数据了。我们首先采用结巴分词工具来对垃圾短信文本数据进行切分,这样我们就得到了经过分词之后,最长由160个词组组成的垃圾短信文本数据。

为了得到更好的初始词向量,本文采用Word2Vec(http://code.google.com/p/word2vec)来初始化词向量,经效果对比,我们采用skip-gram语言模型,负采样来训练模型,来生成80维的词向量,其语料库由中文维基百科预料以及垃圾短信文本数据构成。

2.3 评价指标

聚类效果性能可以通过比较垃圾短信的标签以及所聚类结果的类别来评价。在本文中,我们通过ACC(准确度)以及SSE(Sum of Squared Error,误差平方和)这两种指标来衡量聚类的效果。对于一条给定的垃圾短信文本,其ACC(准确度)[9]可以通过如下得出:

其中,yi以及ci分别是其对应的真实标签类别和经过聚类后其所属的聚类类别标签,n是所有垃圾短信文本的总数,δ(yi,ci)是制式函数,当且仅当yi与ci相同时,其值为1,其余为0。

2.4 模型参数设置

我们所有模型的训练数据都是由20w条垃圾短信基于10折交叉验证得到的14w训练集,我们借鉴了常用的训练词向量方法,限制了词向量词表的长度为5w,我们只训练出现评论最高的5w个词向量,其他的词向量我们用一个非常见词向量<UNK>来表示。

我们的模型有两层BI-LSTM,第一层有100个神经元,第二层有20个神经元。模型参数[-1,1]随机初始化,我们的激活函数采用Sgmoid,droupout值为0.5,对于学习率我们采用这种策略:在前五次迭代过程中,学习率设置为1,五次迭代之后,每经过一次迭代,学习率减半;训练集的batch-size设置为64,测试集的batch-size则为128。

训练过程中,采用了基于随机打乱的mini-batches的随机梯度下降法的Adadelta更新规则,而当迭代次数超过50次,或者验证数据集上的F1值连续下降10次后,我们就终止训练,并选择在验证集上F1值最高时的模型参数。

3 垃圾短信文本聚类实验及结果

在本文中,我们训练了RNN,LSTM,BI-lstm,以及GRU等模型来进行垃圾短信文本聚类实验,采用ACC(准确度)作为评价指标。同时为了验证我们模型的健壮性,我们使用了两种方式Word2Vec以及随机初始化来初始化词向量,实验结果如表2所示。

表2 垃圾短信文本聚类模型性能对比

如上表所示,RANDOM是词向量都是随机生成的80维向量,而下面的词向量则是经过Word2Vec训练得来的。从上面可以得知,无论在哪个模型当中,经过训练之后的词向量,即使直接用K-means来进行聚类研究,也比RANDOM词向量的效果高10%。通过对比。两种词向量在不同模型中的表现,我们不难发现,即使只是用了最简单的RNN-K-means模型,其对词向量的依赖也没有K-means模型那么大,其性能提升大概有8个百分点。在所有的模型中,BI-LSTM-K-means模型,其性能提升大概5.3个百分点,而LSTMK-means提升6.9个百分点,GRU-KMEANS提升7.2个百分点,这表明我们的BI-LSTM模型对词向量的质量依赖最小。表明其模型健壮性最佳。

在聚类模型中,我们的BI-LSTM模型的性能最佳,无论在哪种词向量中,RANDOM词向量实验中,其ACC可以达到90%,而Word2Vec实验中,ACC达到了97^,而且我们可以发现,无论是哪种词向量,在没有应用神经网络模型来提取特征时,其效果都不高,在73%,而引入 RNN(RNN,GRU,LSTM,BI-LIST)模型之后,其效果有了质的提升,即使是在RANDOM词向量实验中,其ACC都在81%以上,在效果最好的BILSTM-K-means模型中,其ACC在90%;而在Word2-Vec实验中,其效果更是高达97%。

4 结语

本文根据基于神经网络的大数据分析方法,设计了一种使用回复式神经网络BI-LSTM学习模型的文本特征提取架构。根据网络模型学习到的文本向量特征,利用传统K-means聚类算法进行聚类操作,实验的数据来源于实际的生产生活中。通过实验的结果表明,通过神经网络模型进行文本特征提取后处理的实验结果要好于直接使用词向量文本聚类的实验结果。

同时本文系统的比较了一些基于深度特征语义学习模型的垃圾短信文本聚类方法的效果,这些模型包括RNN-K-means模型,GRU-K-means模型,LSTMK-means模型,BI-LSTM-K-means模型,实验结果证明BI-LSTM-K-means最优。

最后我们使用RANDOM以及Word2Vec两种模型来验证模型的健壮性,通过对比实验我们发现,相对于其他模型而言,BI-LISM模型具有强大的健壮性。其对于词向量依赖更小。

参考文献:

[1]Charu CAggarwal and Cheng Xiang Zhai.2012.ASurvey of Text Clustering Algorithms.In Mining Text Data,pages77-128.Springer.

[2]Sommath Banerjee,Krishnam Ramanathan,and Ajay Vupta.2007.Clustering Short Texts Using Wikipedia.In SIGIR,pages787-788.ACM.

[3]Samah Fodeh,BillPunch,and Pang-Ning Tan.2011.On Ontology-Driven Document Clustering Using Core Semantic Fieatures.Knowledge and Information Systems,28(2):395-421.

[4]TomasMikolov,Stefan Kombrink,Lukas Burget,Jan H Cernocky,and Sacjeev Khudanpur.2011.Extensions of Recurrent Neural Network Language Model.In ICASSP,pages 5528-5531.IEEE.

[5]Swpp Hochreiterand Jurgen Schmidhuber.1997.Long Short-Term Memory.Neural Computation,9(8):1735-1780.

[6]A.Gravesand J.Schmidhuber.2005.Frame wise Phoneme Classification with Bidirecional LSTM and Other Neural Network Architectures.Neural Networks.

[7]KiriWagstaff,Claire Cardie,Seth Rogers,Stefan Schrodl,etal.2011.Constrained K-means Clustering with Background Knowledge.In ICML,volume1,pages577-584.

[8]Jeffrey Penningtom,Richard Socher,and Christopher D Manning.2014.Gove:Global Vectors for Word Representation.EMNLP,12.

[9]Pehihao Huang,Yan Huang,Wei Wang,and Liang Wang.2014.Deep Embedding Network for Clustering.ICPR,2014.

猜你喜欢
类别短信聚类
一种傅里叶域海量数据高速谱聚类方法
论陶瓷刻划花艺术类别与特征
一起去图书馆吧
道歉短信
面向WSN的聚类头选举与维护协议的研究综述
代发短信
改进K均值聚类算法
基于Spark平台的K-means聚类算法改进及并行化实现
选相纸 打照片
“八一”节日短信之一