張毓,陳軍清
(四川大學計算機學院,成都610065)
隨著社交媒體的廣泛流行,短信業(yè)務得到了迅猛的發(fā)展,但是垃圾短信對人們的騷擾也越來越嚴重,已經嚴重擾亂了我們正常的經濟生活,不利于我們社會的和諧穩(wěn)定。隨著我們國家現(xiàn)代化的不斷建設和發(fā)展,使用信息技術來自動化的處理垃圾短信文本的需要也越來越緊迫。但是不同于正常文本聚類研究,垃圾短信文本具有其稀疏性[1],文本中的大部分詞語只出現(xiàn)一次,因此詞頻-逆次序(TF-IDF)算法沒法在短信文本聚類研究中起作用。一些研究人員已經通過增加預料例如Wikipedia[2]或者Ontology[3],來解決這個問題。
本文我們提出了一種基于深度特征語義學習模型的垃圾短信文本聚類方法。這些模型包括RNN模型,GRU模型,LSTM模型,bidirectional LSTM模型(BILISTM)。我們的貢獻總結如下:(1)我們系統(tǒng)對比了上述模型在垃圾短信數(shù)據(jù)集上的聚類效果。(2)我們是第一個在垃圾短信文本數(shù)據(jù)集上運用BI-LISTM模型進行聚類研究的。我們的模型由于使用了BI-LSTM神經網(wǎng)絡,既可以利用過去的信息,又可以利用將來的信息。該模型達到了極其可觀的聚類效果。(3)我們的研究表明,相對于其他模型而言,BI-LISM模型具有強大的健壯性。其對于詞向量依賴更小。
本節(jié)LSTM、BI-LISTM以及K-means。
在自然語言處理任務中,循環(huán)神經網(wǎng)絡(RNN)[4]已經取得巨大的成功以及廣泛應用。RNN引入了循環(huán)單元,能夠使模型對前面的信息進行記憶并應用到當前輸出的計算中。
如圖1所示,我們給RNN模型加入了一層池化層(pooling),其包含輸入層x,隱藏層h,輸出層y.在短信文本聚類研究,x代表詞向量,y代表垃圾短信類別。圖1我們展示了一個垃圾短信聚類的例子,“代開正規(guī)發(fā)票”作為四個詞向量,被聚類到商業(yè)廣告類別中。輸入層由各個時間段的特征構成,即詞向量,可以用onehot來表示,不過容易導致詞維度過大,而且導致“語義鴻溝”。本文使用Word2Vec來生成詞向量。每個詞向量擁有相同的維度,80維。輸出層表示每條短信經過模型運算之后的最可能的類別,其維數(shù)和垃圾短信的類別數(shù)目相同,為5。與前饋網(wǎng)絡相比,RNN網(wǎng)絡加強了當前隱藏層與之前隱藏層之間的聯(lián)系(RNN隱藏層的權值共享)。BNN循環(huán)層被設計,用來存儲歷史信息。在這篇文章中,我們運用了長短期時間記憶網(wǎng)絡(LSTM)[5]來進行垃圾短信聚類研究。LSTM網(wǎng)絡與RNN網(wǎng)絡類似,除了引入了cell單元,其可以避免長期依賴關系問題。所以,與RNN相比,LSTM網(wǎng)絡在處理長期依賴問題上,表現(xiàn)地更好。圖1表示了用于提取短信聚類文本特征的LSTM模型。
圖1 LSTM模型
在自然語言處理領域,對于序列標注任務,我們可以通過雙向LSTM網(wǎng)絡模型,來獲取任意時刻過去和將來的輸入特征。基于此,在垃圾短信文本聚類任務中,我們也可以在任意時刻,通過雙向LSTM網(wǎng)絡模型(圖2)[6]充分利用過去的特征(通過前向狀態(tài))以及將來的特征(通過后向狀態(tài))。我們使用反向傳播算法(BPTT)來訓練雙向LSTM神經網(wǎng)絡。任意時刻的信息,經過展開的網(wǎng)絡以前向、后向兩種相同的方式傳遞,來達到訓練網(wǎng)絡的目的。我們僅僅需要在句子的開頭及結尾區(qū)別對待就好。在實際實現(xiàn)中,我們在整條垃圾短信文本做前向、后向傳遞,僅僅在每條垃圾短信文本的開頭重置隱藏狀態(tài)為0,我們運用批處理技術,使得多個句子在同一時刻,可以并行運行。
Kmeans聚類方法[7]是一種典型基于劃分的聚類方法。其利用文本對象之間的距離來判斷聚類對象之間的相似性。它的目標是使下面的表達式值最?。?/p>
將包含有N個文檔的文本數(shù)據(jù)集,劃分成文K個分組,且K<=N,每一個分組代表的是一個聚類對象。一般來說基于劃分的方式是采用迭代計算的方式,不斷地計算每一個分組的中心類別,同時不斷地將文本對象分配給與中心對象相似度最接近的類別對象中,直到準則函數(shù)開始收斂,就不再進行迭代過程。
圖2 雙向LSTM模型
其具體操作步驟如下:(1)任意選取K個對象作為最初的類別對象中心。(2)將數(shù)據(jù)集中的對象根據(jù)最小距離分配到最相近的類別中心。
(3)使用每一個聚類中的平均值作為新的類別對象中心。
(4)重復步驟(2)-(3)直到聚類的中心不再發(fā)生變化。
(5)結束操作,得到K個聚類中心。
BiLSTM-K-means模型總體的結構如圖3所示,它由三個主要部分構成:詞向量層,BiLSTM網(wǎng)絡和K-means(來聚類提取到的垃圾短信文本特征)。網(wǎng)絡的輸入是一段垃圾短信文本序列,其經過結巴分詞,再將分詞后的垃圾短信文本,向量化,(文中向量的方法有Word2Vec已經隨機初始化)。再通過模型提取特征之后,運行K-means聚類方法,來達到垃圾短信文本聚類的目的。
每條垃圾短信文本的詞通過詞向量表達輸入到Bi-LSTM網(wǎng)絡中,經過前向。后向傳播,其輸出會包含上下文信息。在得到BILSTM網(wǎng)絡雙向表達的詞向量[8]之后,我們運用Pooling機制去融合每條垃圾短信中不同時刻的詞向量信息,即句向量,也就是我們所要提取的特征向量。常見的Pooling方式有Max Pooling和Mean Pooling等。當一個序列中的關鍵部分能代表其含義時,Max Pooling能很好地捕捉到這一突出部分并在Pooling表達中呈現(xiàn)出來;Mean Pooling則考慮序列中全局的信息,當要求序列總體反映某種性質時,可以通過Mean Pooling匯總序列的信息。在垃圾短信文本聚類任務上,不能由單一關鍵信息表達,其目標重要性程度并不集中,因此我們選取Mean Pooling的方式.我們也通過實驗比較了兩者的效果,證實Mean Pooling效果更加明顯。
由詞向量構成的垃圾短信文本,經過Pooling機制后,得到句向量,本文中的維度為100維度,也就是我們經過網(wǎng)絡提取得到的特征。再將其當做K-means的輸入,就實現(xiàn)了我們垃圾短信文本聚類的目的。
圖3 BiLSTM-K-means模型
本文中的數(shù)據(jù)來源于中國移動蘇州研究院提供的20w條垃圾短信數(shù)據(jù),其一共有5個類型,分別為廣告短信、政治短信、涉黑短信、詐騙短信以及涉黃短信。我們采用了10折交叉驗證的方式,來將20w條垃圾短信文本劃分為如下訓練集、測試集、驗證集。
表1 數(shù)據(jù)集分布
C:集合當中垃圾短信文本的類別
Number:集合中包含垃圾短信文本的條數(shù)
L(mean/max):每條垃圾短信包含詞的個數(shù)
|V|:數(shù)據(jù)中包含詞的個數(shù)
本文中所使用的數(shù)據(jù)時由中國移動蘇州研究院提供的垃圾短信文本數(shù)據(jù),通過觀察,其存在大量難以處理的文本。例如,為了逃過關鍵詞的審查機制,垃圾短信文本中含有大量的非法字符,其主要是加在敏感詞匯之間如:普*稅、做*賬、上-葡-京、【農 -行】等;還有垃圾短信文本中含有大量的變體字,如:“幵”是“開”的變體等。給我們的文本向量化帶來了很多難度。因此,本文對垃圾短信文本數(shù)據(jù)首先進行了規(guī)范化處理。包括清除干擾字符、轉換不了的字符等。
這樣經過一系列的處理后,垃圾短信文本數(shù)據(jù)就變成正常的可以用來向量化的文本數(shù)據(jù)了。我們首先采用結巴分詞工具來對垃圾短信文本數(shù)據(jù)進行切分,這樣我們就得到了經過分詞之后,最長由160個詞組組成的垃圾短信文本數(shù)據(jù)。
為了得到更好的初始詞向量,本文采用Word2Vec(http://code.google.com/p/word2vec)來初始化詞向量,經效果對比,我們采用skip-gram語言模型,負采樣來訓練模型,來生成80維的詞向量,其語料庫由中文維基百科預料以及垃圾短信文本數(shù)據(jù)構成。
聚類效果性能可以通過比較垃圾短信的標簽以及所聚類結果的類別來評價。在本文中,我們通過ACC(準確度)以及SSE(Sum of Squared Error,誤差平方和)這兩種指標來衡量聚類的效果。對于一條給定的垃圾短信文本,其ACC(準確度)[9]可以通過如下得出:
其中,yi以及ci分別是其對應的真實標簽類別和經過聚類后其所屬的聚類類別標簽,n是所有垃圾短信文本的總數(shù),δ(yi,ci)是制式函數(shù),當且僅當yi與ci相同時,其值為1,其余為0。
我們所有模型的訓練數(shù)據(jù)都是由20w條垃圾短信基于10折交叉驗證得到的14w訓練集,我們借鑒了常用的訓練詞向量方法,限制了詞向量詞表的長度為5w,我們只訓練出現(xiàn)評論最高的5w個詞向量,其他的詞向量我們用一個非常見詞向量<UNK>來表示。
我們的模型有兩層BI-LSTM,第一層有100個神經元,第二層有20個神經元。模型參數(shù)[-1,1]隨機初始化,我們的激活函數(shù)采用Sgmoid,droupout值為0.5,對于學習率我們采用這種策略:在前五次迭代過程中,學習率設置為1,五次迭代之后,每經過一次迭代,學習率減半;訓練集的batch-size設置為64,測試集的batch-size則為128。
訓練過程中,采用了基于隨機打亂的mini-batches的隨機梯度下降法的Adadelta更新規(guī)則,而當?shù)螖?shù)超過50次,或者驗證數(shù)據(jù)集上的F1值連續(xù)下降10次后,我們就終止訓練,并選擇在驗證集上F1值最高時的模型參數(shù)。
在本文中,我們訓練了RNN,LSTM,BI-lstm,以及GRU等模型來進行垃圾短信文本聚類實驗,采用ACC(準確度)作為評價指標。同時為了驗證我們模型的健壯性,我們使用了兩種方式Word2Vec以及隨機初始化來初始化詞向量,實驗結果如表2所示。
表2 垃圾短信文本聚類模型性能對比
如上表所示,RANDOM是詞向量都是隨機生成的80維向量,而下面的詞向量則是經過Word2Vec訓練得來的。從上面可以得知,無論在哪個模型當中,經過訓練之后的詞向量,即使直接用K-means來進行聚類研究,也比RANDOM詞向量的效果高10%。通過對比。兩種詞向量在不同模型中的表現(xiàn),我們不難發(fā)現(xiàn),即使只是用了最簡單的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^,而且我們可以發(fā)現(xiàn),無論是哪種詞向量,在沒有應用神經網(wǎng)絡模型來提取特征時,其效果都不高,在73%,而引入 RNN(RNN,GRU,LSTM,BI-LIST)模型之后,其效果有了質的提升,即使是在RANDOM詞向量實驗中,其ACC都在81%以上,在效果最好的BILSTM-K-means模型中,其ACC在90%;而在Word2-Vec實驗中,其效果更是高達97%。
本文根據(jù)基于神經網(wǎng)絡的大數(shù)據(jù)分析方法,設計了一種使用回復式神經網(wǎng)絡BI-LSTM學習模型的文本特征提取架構。根據(jù)網(wǎng)絡模型學習到的文本向量特征,利用傳統(tǒng)K-means聚類算法進行聚類操作,實驗的數(shù)據(jù)來源于實際的生產生活中。通過實驗的結果表明,通過神經網(wǎng)絡模型進行文本特征提取后處理的實驗結果要好于直接使用詞向量文本聚類的實驗結果。
同時本文系統(tǒng)的比較了一些基于深度特征語義學習模型的垃圾短信文本聚類方法的效果,這些模型包括RNN-K-means模型,GRU-K-means模型,LSTMK-means模型,BI-LSTM-K-means模型,實驗結果證明BI-LSTM-K-means最優(yōu)。
最后我們使用RANDOM以及Word2Vec兩種模型來驗證模型的健壯性,通過對比實驗我們發(fā)現(xiàn),相對于其他模型而言,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.