馮永強(qiáng) 李亞軍
摘 要:文檔聚類是將文檔集自動歸成若干類別的過程,是對文本信息進(jìn)行分類的有效方式。為了解決半結(jié)構(gòu)化的文本數(shù)據(jù)轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù)時出現(xiàn)的數(shù)據(jù)高維性問題,本文提出了一種卷積自編碼器的文檔聚類模型CASC,利用卷積神經(jīng)網(wǎng)絡(luò)和自編碼器的特征提取能力,在盡可能保留原始數(shù)據(jù)內(nèi)部結(jié)構(gòu)的同時,將其嵌入到低維潛在空間,然后使用譜聚類算法進(jìn)行聚類。實驗表明,CASC模型在保證聚類準(zhǔn)確率不降低的前提下減少了算法運行時間,同時也降低了算法時間復(fù)雜度。
關(guān)鍵詞:聚類;卷積神經(jīng)網(wǎng)絡(luò);自編碼器;無監(jiān)督模型
中圖分類號:TP391;TN911.2 文獻(xiàn)標(biāo)識碼: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
引 言
近年來,隨著時代的進(jìn)步與發(fā)展,互聯(lián)網(wǎng)的普及程度越來越高,人們可以在互聯(lián)網(wǎng)上接觸到大量的信息并發(fā)表自己的觀點,其中絕大部分信息都表現(xiàn)為文本形式,并且存在大量噪聲,因此,如何才能從大量的文本信息中快速提取出潛在有用的和用戶感興趣的內(nèi)容成為一個需要解決的問題。
目前互聯(lián)網(wǎng)上的許多文本數(shù)據(jù),如新聞、用戶發(fā)布的微博和人們在論壇上發(fā)表的言論等,都沒有明顯的類別信息,是一種無標(biāo)簽數(shù)據(jù)。因此,如何將這些文本數(shù)據(jù)自動歸成若干類別成為自然語言處理領(lǐng)域的一個研究熱點。
文檔聚類是將無標(biāo)簽的文檔集按照內(nèi)容相似性進(jìn)行自動歸類的過程,文本聚類的目標(biāo)是將文檔集合理劃分為若干類,使得同一類中的文檔相似度盡可能地大,而不同類之間的文檔相似度盡可能地小[1,2]。
在對文檔集進(jìn)行聚類之前,需要使用某種算法將文檔表示成計算機(jī)可以識別的向量,如詞袋模型[3]、TF-IDF算法[4]、word2vec算法[5,6]等。Johnson等人提出基于層次的層次聚類法[7],該方法通過某種相似性來度量計算節(jié)點之間的相似性,并按照相似度降序排列,逐步將各個節(jié)點重新連接起來。
隨后Hartigan等人提出基于劃分的k-means算法[8],以空間中K個點為中心進(jìn)行聚類,然后選擇距離中心點最近的點進(jìn)行歸類,之后又出現(xiàn)許多方法對其進(jìn)行改進(jìn),例如k-means++算法[9]、Fuzzy C-means算法[10]等。
而后又有人提出基于密度的DBSCAN算法[11]和基于圖論的譜聚類算法[12]等。但是由于表示后的文檔向量的高維性,既導(dǎo)致了維數(shù)災(zāi)難現(xiàn)象的發(fā)生,也掩蓋了數(shù)據(jù)的內(nèi)在特性,從而使得上述算法性能較差。
隨著神經(jīng)網(wǎng)絡(luò)的發(fā)展和深度學(xué)習(xí)技術(shù)的興起,使用神經(jīng)網(wǎng)絡(luò)如自編碼器來學(xué)習(xí)數(shù)據(jù)的內(nèi)在特征成為一種新的可能,且可以將數(shù)據(jù)嵌入到低維潛在空間中,能一定程度上改善數(shù)據(jù)高維性問題,其中卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)[13]可以利用其卷積和池化操作學(xué)習(xí)到強(qiáng)魯棒性特征。
針對文本數(shù)據(jù)高維性問題,本文提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的文檔聚類算法CASC(Convolutional Autoencoder Spectral Clustering),即首先使用word2vec算法將文檔表示為高維向量,然后利用卷積神經(jīng)網(wǎng)絡(luò)和自編碼器的特征提取能力,將文檔向量嵌入到低維潛在空間中,最后使用譜聚類算法將得到的文檔低維表示進(jìn)行聚類,從而避免數(shù)據(jù)高維性帶來的諸多問題。
1 卷積自編碼器介紹
自編碼器是一種前饋神經(jīng)網(wǎng)絡(luò),最簡單的自編碼器由三層神經(jīng)網(wǎng)絡(luò)構(gòu)成:輸入層、隱藏層和輸出層,其中輸入層到隱藏層稱為編碼器部分,隱藏層到輸出層稱為解碼器部分。編碼器的輸入節(jié)點個數(shù)和解碼器的輸出節(jié)點個數(shù)相等,目的是通過訓(xùn)練學(xué)習(xí)到一個恒等映射,使輸入盡可能和輸出相等,從而找出原始數(shù)據(jù)之間潛在的隱藏關(guān)聯(lián)。假設(shè)原始數(shù)據(jù)用x={x1,x2,…,xm}表示,解碼器的輸出用表示,中間隱藏層用h={h1,h2,…,hk}表示,映射函數(shù)為σe和σd,相鄰兩層網(wǎng)絡(luò)的連接權(quán)重用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)}表示,通過反向傳播算法訓(xùn)練不斷調(diào)整輸入層和輸出層各自分別與中間隱藏層之間的連接權(quán)重和偏置項,使得=σd(σe(x))≈x,即盡可能使解碼器得到的重構(gòu)輸出與原始數(shù)據(jù)相等。編碼器的輸出hj和最終得到的原始數(shù)據(jù)x的重構(gòu)輸出分別如式(1)和式(2)所示:
訓(xùn)練自編碼器的目標(biāo)是最小化原始數(shù)據(jù)和重構(gòu)數(shù)據(jù)之間的誤差L,在文檔聚類中,由于已經(jīng)將文檔表示成連續(xù)向量,故可以使用平方誤差來計算L,如式(3)所示:
其中第二項為正則項,用于避免模型過擬合問題,η為正則系數(shù)。
自編碼器可以說是一個算法思想,其編碼器和解碼器部分可以使用任何形式的神經(jīng)網(wǎng)絡(luò)來構(gòu)成不同的自編碼器,由于卷積神經(jīng)網(wǎng)絡(luò)可以有效地分層提取原始數(shù)據(jù)的內(nèi)在特征,因此可以使用它來構(gòu)成編碼器部分,使用反卷積網(wǎng)絡(luò)來構(gòu)成解碼器部分,即構(gòu)成一個卷積自編碼器,其結(jié)構(gòu)如圖1所示。
假設(shè)卷積自編碼器有N個卷積核,第k個卷積核為Nk,偏置分別為bk、ck,其余參數(shù)與自編碼器相同,對于輸入數(shù)據(jù)x,第k個卷積核的輸入及解碼層的重構(gòu)數(shù)據(jù)分別如式(4)和式(5)所示:
其中表示第k個特征圖的權(quán)重矩陣Wk的轉(zhuǎn)置,*表示二維卷積運算。卷積自編碼器的訓(xùn)練方法與自編碼器相同。
2 CASC模型的構(gòu)建
CASC模型主要由三部分構(gòu)成:文檔預(yù)處理、文檔向量嵌入表示和聚類。文檔預(yù)處理主要包括中文分詞、去除停用詞以及文檔向量表示,其中中文分詞和去除停用詞使用分詞庫Jieba完成,文檔向量表示則使用基于word2vec的方法。word2vec是一種通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)得到詞的向量表示的方法,有CBOW和Skip-gram兩種實現(xiàn)方式,本文使用Skip-gram方法來得到詞向量,該方法根據(jù)當(dāng)前詞來預(yù)測該詞周圍的詞,從而學(xué)習(xí)到當(dāng)前詞的向量表示。在得到所有詞的詞向量后,將每篇文檔看成是所包含詞的組合,由此該文檔所含詞的詞向量堆疊構(gòu)成文檔詞矩陣來表示該文檔。假設(shè)Dj表示第j篇文檔的向量表示,nj表示第j篇文檔所含單詞的數(shù)量,wi表示通過Skip-gram訓(xùn)練得到的詞向量,那么最終構(gòu)成的nj×d文檔詞矩陣如式(6)所示:
以上得到的文檔向量通常來說維數(shù)較高,含有較多冗余信息,如果直接進(jìn)行聚類則難以捕捉到其內(nèi)部潛在關(guān)聯(lián)。因此在CASC模型中,使用卷積自編碼器將得到的高維文檔矩陣通過訓(xùn)練學(xué)習(xí)嵌入到低維潛在向量空間中,在降低向量維度的同時,最大程度地保留原始數(shù)據(jù)的內(nèi)部結(jié)構(gòu),以縮短聚類所需時間。將文檔矩陣嵌入到低維潛在空間后,使用得到的低維向量表示進(jìn)行譜聚類進(jìn)而得到最終的聚類結(jié)果。算法流程圖如圖2所示。
3 實驗
3.1 實驗設(shè)置
為檢驗CASC模型的聚類效果,本文使用爬取的食品安全新聞所構(gòu)成的數(shù)據(jù)集進(jìn)行實驗,該數(shù)據(jù)集共有11530篇新聞文檔,并手動分為8類,聚類的類別數(shù)也與此相同。數(shù)據(jù)集進(jìn)行了中文分詞、去除停用詞等預(yù)處理,其中分詞使用Jieba分詞庫,經(jīng)過預(yù)處理后總計剩余3932805個詞,去重后剩余95334個獨立詞,實驗環(huán)境采用Windows 7旗艦版64位操作系統(tǒng)和Python 3.5.2。
實驗中卷積自編碼器共有4層,其中有兩層相同的卷積層、中間隱藏層和輸出層,卷積層和隱藏層的激勵函數(shù)使用ReLU函數(shù),其形式為?(x)=max(0,x),且實用批量規(guī)范化(BatchNormalization)[14]以避免過擬合。
本文使用學(xué)習(xí)率為0.001的RMSProp優(yōu)化算法來訓(xùn)練卷積自編碼器,訓(xùn)練步數(shù)為10000步。其他超參數(shù)如表1所示。本文算法與經(jīng)典的k-means算法和譜聚類算法進(jìn)行了對比實驗。
3.2 實驗結(jié)果及分析
本文使用查準(zhǔn)率(Precision)、召回率(Recall)、F1值以及算法運行時間作為模型評價標(biāo)準(zhǔn)。查準(zhǔn)率是指在經(jīng)過聚類算法之后,正確被聚類的樣本數(shù)量,數(shù)值越大,說明效果越好。召回率則指在實際聚類結(jié)果中被正確聚類的樣本數(shù)量在應(yīng)該被正確聚類的樣本數(shù)量中占有的比例。F1是準(zhǔn)確率與召回率的復(fù)合指標(biāo),數(shù)值越大,說明效果越好。三者公式如下:
其中P指準(zhǔn)確率,其變量m指被正確聚類的文檔數(shù)量,n指未被正確聚類的文檔數(shù)量,R指召回率,p指聚為同一類的文檔數(shù)量,q指此類中應(yīng)該有的文檔數(shù)量。
實驗結(jié)果如表2所示。
由表2可知,在聚類數(shù)目相同的情況下,CASC算法在查準(zhǔn)率、召回率以及F1指標(biāo)上均優(yōu)于其他兩種算法,可見卷積自編碼器在將高維向量嵌入到低維空間時并未因損失太多信息而導(dǎo)致聚類性能下降,而基于圖論的譜聚類算法在處理高維樣本向量時一定程度上要優(yōu)于k-means算法。由圖3可知,CASC算法運行時間最短,這得益于卷積自編碼器大大地降低了文檔向量維度,減少了算法時間復(fù)雜度,而其他兩種算法由于需要進(jìn)行高維向量的大量運算,耗費時間較多。
4 結(jié) 論
針對半結(jié)構(gòu)化的文本數(shù)據(jù)轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù)時帶來的數(shù)據(jù)高維性問題,本文提出了CASC算法,通過探索利用卷積神經(jīng)網(wǎng)絡(luò)和自編碼器的特征提取能力,最大程度地保留原始數(shù)據(jù)內(nèi)部結(jié)構(gòu),來發(fā)掘其潛在關(guān)聯(lián),并使用較低的文檔向量維度來替代原始高維向量進(jìn)行聚類,在不降低聚類準(zhǔn)確率的前提下縮短了算法運行時間,降低了算法時間復(fù)雜度。
同時,聚類算法作為一種無監(jiān)督模型在文檔自動處理中占有重要地位,如何進(jìn)一步結(jié)合深度學(xué)習(xí)技術(shù)來提升聚類算法性能值得我們進(jìn)行更深入地研究。
參考文獻(xiàn):
[1] Xu Jiaming et al. "Short text clustering via convolutional neural networks."2015.
[2] 譚晉秀,何躍.基于k-means文本聚類的新浪微博個性化博文推薦研究 [J].情報科學(xué),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.
作者簡介:馮永強(qiáng)(1963-),男,漢族,天津人,天津海河乳業(yè)公司研發(fā)部經(jīng)理,高級工程師;李亞軍(1993-),漢族,河南新鄉(xiāng)人,計算機(jī)應(yīng)用技術(shù)專業(yè)碩士研究生。