馮永強 李亞軍



摘 要:文檔聚類是將文檔集自動歸成若干類別的過程,是對文本信息進行分類的有效方式。為了解決半結構化的文本數據轉化為結構化數據時出現的數據高維性問題,本文提出了一種卷積自編碼器的文檔聚類模型CASC,利用卷積神經網絡和自編碼器的特征提取能力,在盡可能保留原始數據內部結構的同時,將其嵌入到低維潛在空間,然后使用譜聚類算法進行聚類。實驗表明,CASC模型在保證聚類準確率不降低的前提下減少了算法運行時間,同時也降低了算法時間復雜度。
關鍵詞:聚類;卷積神經網絡;自編碼器;無監督模型
中圖分類號:TP391;TN911.2 文獻標識碼:A 文章編號:2096-4706(2018)02-0012-04
A Document Clustering Model Based on Convolutional Autoencoder
FENG Yongqiang1,LI Yajun2
(1.Tianjin Haihe Dairy Company,Tianjin 300410,China;2. Tianjin University of Science and Technology College of Computer Science and Information Engineering,Tianjin 300457,China)
Abstract:Document clustering is a process of automatically categorizing document sets into several categories and is an effective means of organizing textual information. Aiming at the problem of high dimensionality of data when converting semi-structured text data into structured data,this paper proposes a document clustering model called Convolutional Self-Encoder (CASC),which uses convolutional neural network and self-encoder feature extraction capabilities,the best possible to retain the internal structure of the original data while embedded in low-dimensional potential space,and then use the spectral clustering algorithm for clustering. Experiments show that the CASC algorithm can reduce the algorithm running time and reduce the time complexity of the algorithm without reducing the accuracy of clustering.
Keywords:clustering;convolution neural network;autoencoder;unsupervised model
引 言
近年來,隨著時代的進步與發展,互聯網的普及程度越來越高,人們可以在互聯網上接觸到大量的信息并發表自己的觀點,其中絕大部分信息都表現為文本形式,并且存在大量噪聲,因此,如何才能從大量的文本信息中快速提取出潛在有用的和用戶感興趣的內容成為一個需要解決的問題。
目前互聯網上的許多文本數據,如新聞、用戶發布的微博和人們在論壇上發表的言論等,都沒有明顯的類別信息,是一種無標簽數據。因此,如何將這些文本數據自動歸成若干類別成為自然語言處理領域的一個研究熱點。
文檔聚類是將無標簽的文檔集按照內容相似性進行自動歸類的過程,文本聚類的目標是將文檔集合理劃分為若干類,使得同一類中的文檔相似度盡可能地大,而不同類之間的文檔相似度盡可能地小[1,2]。
在對文檔集進行聚類之前,需要使用某種算法將文檔表示成計算機可以識別的向量,如詞袋模型[3]、TF-IDF算法[4]、word2vec算法[5,6]等。Johnson等人提出基于層次的層次聚類法[7],該方法通過某種相似性來度量計算節點之間的相似性,并按照相似度降序排列,逐步將各個節點重新連接起來。
隨后Hartigan等人提出基于劃分的k-means算法[8],以空間中K個點為中心進行聚類,然后選擇距離中心點最近的點進行歸類,之后又出現許多方法對其進行改進,例如k-means++算法[9]、Fuzzy C-means算法[10]等。
而后又有人提出基于密度的DBSCAN算法[11]和基于圖論的譜聚類算法[12]等。但是由于表示后的文檔向量的高維性,既導致了維數災難現象的發生,也掩蓋了數據的內在特性,從而使得上述算法性能較差。
隨著神經網絡的發展和深度學習技術的興起,使用神經網絡如自編碼器來學習數據的內在特征成為一種新的可能,且可以將數據嵌入到低維潛在空間中,能一定程度上改善數據高維性問題,其中卷積神經網絡(Convolutional Neural Networks,CNN)[13]可以利用其卷積和池化操作學習到強魯棒性特征。
針對文本數據高維性問題,本文提出一種基于卷積神經網絡的文檔聚類算法CASC(Convolutional Autoencoder Spectral Clustering),即首先使用word2vec算法將文檔表示為高維向量,然后利用卷積神經網絡和自編碼器的特征提取能力,將文檔向量嵌入到低維潛在空間中,最后使用譜聚類算法將得到的文檔低維表示進行聚類,從而避免數據高維性帶來的諸多問題。
1 卷積自編碼器介紹
自編碼器是一種前饋神經網絡,最簡單的自編碼器由三層神經網絡構成:輸入層、隱藏層和輸出層,其中輸入層到隱藏層稱為編碼器部分,隱藏層到輸出層稱為解碼器部分。編碼器的輸入節點個數和解碼器的輸出節點個數相等,目的是通過訓練學習到一個恒等映射,使輸入盡可能和輸出相等,從而找出原始數據之間潛在的隱藏關聯。假設原始數據用x={x1,x2,…,xm}表示,解碼器的輸出用表示,中間隱藏層用h={h1,h2,…,hk}表示,映射函數為σe和σd,相鄰兩層網絡的連接權重用W(1)={w11(1),w12(1),…,wkm(1)}和W(2)={w11(2),w12(2),…,wkm(2)}表示,偏置項分別用b(1)={b1(1),b2(1),…,bk(1)}和b(2)={b1(2),b2(2),…,bm(2)}表示,通過反向傳播算法訓練不斷調整輸入層和輸出層各自分別與中間隱藏層之間的連接權重和偏置項,使得=σd(σe(x))≈x,即盡可能使解碼器得到的重構輸出與原始數據相等。編碼器的輸出hj和最終得到的原始數據x的重構輸出分別如式(1)和式(2)所示:
訓練自編碼器的目標是最小化原始數據和重構數據之間的誤差L,在文檔聚類中,由于已經將文檔表示成連續向量,故可以使用平方誤差來計算L,如式(3)所示:
其中第二項為正則項,用于避免模型過擬合問題,η為正則系數。
自編碼器可以說是一個算法思想,其編碼器和解碼器部分可以使用任何形式的神經網絡來構成不同的自編碼器,由于卷積神經網絡可以有效地分層提取原始數據的內在特征,因此可以使用它來構成編碼器部分,使用反卷積網絡來構成解碼器部分,即構成一個卷積自編碼器,其結構如圖1所示。
假設卷積自編碼器有N個卷積核,第k個卷積核為Nk,偏置分別為bk、ck,其余參數與自編碼器相同,對于輸入數據x,第k個卷積核的輸入及解碼層的重構數據分別如式(4)和式(5)所示:
其中表示第k個特征圖的權重矩陣Wk的轉置,*表示二維卷積運算。卷積自編碼器的訓練方法與自編碼器相同。
2 CASC模型的構建
CASC模型主要由三部分構成:文檔預處理、文檔向量嵌入表示和聚類。文檔預處理主要包括中文分詞、去除停用詞以及文檔向量表示,其中中文分詞和去除停用詞使用分詞庫Jieba完成,文檔向量表示則使用基于word2vec的方法。word2vec是一種通過訓練神經網絡得到詞的向量表示的方法,有CBOW和Skip-gram兩種實現方式,本文使用Skip-gram方法來得到詞向量,該方法根據當前詞來預測該詞周圍的詞,從而學習到當前詞的向量表示。在得到所有詞的詞向量后,將每篇文檔看成是所包含詞的組合,由此該文檔所含詞的詞向量堆疊構成文檔詞矩陣來表示該文檔。假設Dj表示第j篇文檔的向量表示,nj表示第j篇文檔所含單詞的數量,wi表示通過Skip-gram訓練得到的詞向量,那么最終構成的nj×d文檔詞矩陣如式(6)所示:
以上得到的文檔向量通常來說維數較高,含有較多冗余信息,如果直接進行聚類則難以捕捉到其內部潛在關聯。因此在CASC模型中,使用卷積自編碼器將得到的高維文檔矩陣通過訓練學習嵌入到低維潛在向量空間中,在降低向量維度的同時,最大程度地保留原始數據的內部結構,以縮短聚類所需時間。將文檔矩陣嵌入到低維潛在空間后,使用得到的低維向量表示進行譜聚類進而得到最終的聚類結果。算法流程圖如圖2所示。
3 實驗
3.1 實驗設置
為檢驗CASC模型的聚類效果,本文使用爬取的食品安全新聞所構成的數據集進行實驗,該數據集共有11530篇新聞文檔,并手動分為8類,聚類的類別數也與此相同。數據集進行了中文分詞、去除停用詞等預處理,其中分詞使用Jieba分詞庫,經過預處理后總計剩余3932805個詞,去重后剩余95334個獨立詞,實驗環境采用Windows 7旗艦版64位操作系統和Python 3.5.2。
實驗中卷積自編碼器共有4層,其中有兩層相同的卷積層、中間隱藏層和輸出層,卷積層和隱藏層的激勵函數使用ReLU函數,其形式為?(x)=max(0,x),且實用批量規范化(BatchNormalization)[14]以避免過擬合。
本文使用學習率為0.001的RMSProp優化算法來訓練卷積自編碼器,訓練步數為10000步。其他超參數如表1所示。本文算法與經典的k-means算法和譜聚類算法進行了對比實驗。
3.2 實驗結果及分析
本文使用查準率(Precision)、召回率(Recall)、F1值以及算法運行時間作為模型評價標準。查準率是指在經過聚類算法之后,正確被聚類的樣本數量,數值越大,說明效果越好。召回率則指在實際聚類結果中被正確聚類的樣本數量在應該被正確聚類的樣本數量中占有的比例。F1是準確率與召回率的復合指標,數值越大,說明效果越好。三者公式如下:
其中P指準確率,其變量m指被正確聚類的文檔數量,n指未被正確聚類的文檔數量,R指召回率,p指聚為同一類的文檔數量,q指此類中應該有的文檔數量。
實驗結果如表2所示。
由表2可知,在聚類數目相同的情況下,CASC算法在查準率、召回率以及F1指標上均優于其他兩種算法,可見卷積自編碼器在將高維向量嵌入到低維空間時并未因損失太多信息而導致聚類性能下降,而基于圖論的譜聚類算法在處理高維樣本向量時一定程度上要優于k-means算法。由圖3可知,CASC算法運行時間最短,這得益于卷積自編碼器大大地降低了文檔向量維度,減少了算法時間復雜度,而其他兩種算法由于需要進行高維向量的大量運算,耗費時間較多。
4 結 論
針對半結構化的文本數據轉化為結構化數據時帶來的數據高維性問題,本文提出了CASC算法,通過探索利用卷積神經網絡和自編碼器的特征提取能力,最大程度地保留原始數據內部結構,來發掘其潛在關聯,并使用較低的文檔向量維度來替代原始高維向量進行聚類,在不降低聚類準確率的前提下縮短了算法運行時間,降低了算法時間復雜度。
同時,聚類算法作為一種無監督模型在文檔自動處理中占有重要地位,如何進一步結合深度學習技術來提升聚類算法性能值得我們進行更深入地研究。
參考文獻:
[1] Xu Jiaming et al. "Short text clustering via convolutional neural networks."2015.
[2] 譚晉秀,何躍.基于k-means文本聚類的新浪微博個性化博文推薦研究 [J].情報科學,2016,34(4):74-79.
[3] John Langford,Joelle Pineau.Proceedings of the 29th international conference on machine learning (icml-12) [J].CoRR,2012.
[4] Gerard Salton,Christopher Buckley.Term-weighting approaches in automatic text retrieval [J].Information Processing & Management,1988,24(5):513-523.
[5] Mikolov T,Sutskever I,Chen K,et al. Distributed Representations of Words and Phrases and their Compositionality [J].Advances in Neural Information Processing Systems,2013,26:3111-3119.
[6] Mikolov T,Chen K,Corrado G,et al. Efficient Estimation of Word Representations in Vector Space [J].Computer Science,2013.
[7] Stephen Johnson.Hierarchical clustering schemes [J].Psychometrika,1967.
[8] HARTIGAN JA,WONG MA.Algorithm as 136:a k-means clustering algorithm [J].Appl Stat,1979,28(1):100.
[9] Arthur,David,and Sergei Vassilvitskii. "k-means++: The advantages of careful seeding." Proceedings of the eighteenth annual ACM-SIAM symposium on Discrete algorithms. Society for Industrial and Applied Mathematics,2007.
[10] NAYAK J,NAIK B,BEHERA HS.Fuzzy c-means (fcm) clustering algorithm:a decade review from 2000 to 2014[M].New Delhi:Springer India,2015:133-149.
[11] Ester,Martin,et al. "A density-based algorithm for discovering clusters in large spatial databases with noise."Kdd. Vol.96.No.34.1996.
[12] Krzysztof Cios,Mark Shields.Advances in neural information processing systems 7 [J].Neurocomputing,1997,16(3):263.
[13] Yunlan Tan,Pengjie Tang,Yimin Zhou,et al.Photograph aesthetical evaluation and classification with deep convolutional neural networks [J].Neurocomputing,2016.
[14] Ioffe S,Szegedy C. Batch Normalization:Accelerating Deep Network Training by Reducing Internal Covariate Shift [J].2015:448-456.
作者簡介:馮永強(1963-),男,漢族,天津人,天津海河乳業公司研發部經理,高級工程師;李亞軍(1993-),漢族,河南新鄉人,計算機應用技術專業碩士研究生。