聶耀鑫,蔣東來,程國軍
(太極計算機股份有限公司 北京 100012)
隨著大量數據的產生,數據分析手段越來越重要,尤其是聚類方法的作用越來越重要。其在文獻分析等領域和促進科技創新方面發揮著重要的作用,有助于學者發掘更深層次的數據關系。例如截至2019 年1 月,僅生物醫學文獻數據庫PubMed(https:/ /pubmed. ncbi. nlm. nih.gov/)中就包含有2 900 萬篇文章,更有每天超3 000 篇新文章在不斷地被加入到其中。因此越來越需要精準可靠的方法對海量數據進行聚類和分析。但這些聚類方法仍然存在很多尚未攻克或研究較少的問題,例如聚類數目k對于大多數聚類算法而言都很重要,不管是對于劃分式聚類方法或是基于密度的聚類方法或其他方法而言,都需要聚類數目k作為輸入。但是以往的工作證明了對k的良好預估并非易事。
近年來,聚類數目的重要性越來越被研究者們所關注。對于傳統方法來說,不管是對于以k 均值聚類(kmeans)等為代表的劃分聚類、以DBSCAN 為代表的密度聚類、以Chameleon 聚類為代表的層次聚類,還是以譜聚類為代表的圖聚類和以高斯混合模型(Gaussian mixture model, GMM)為代表的模型聚類,都需要聚類數目k作為輸入。這就導致了上述的傳統方法雖然有其各自擅長的聚類情形,但是一旦聚類數目k預估失誤,將會使聚類結果性能下降。
深度學習(deep learning, DL)的發展也沒有繞開聚類這個經典問題。DL 憑借其層次化結構和非線性映射能力使得大規模深層次特征提取成為了可能。雖然各種深度聚類算法也進一步提高了準確率,但這些聚類方法大多數也是參數化方法,預先輸入的k值是對聚類效果非常重要的影響因素,例如:熱點研究[1],航天數據檢測[2],對于k-means 友好算法的研究[3]以及對電力數據的分析[4]。
本文提出了一種有效的方法來預測高維數據集的聚類數目。利用自編碼器技術[5]和T-SNE 技術[6]實現了對高維數據集的降維并學習提取特征,使用基于蒙特卡洛的方法預測聚類數目。
自編碼器是一種能夠基于輸入數據來學習有效編碼方法的神經網絡模型。其結構通常包括一個輸入層、一個或多個隱藏層和一個輸出層。大部分技術在考慮數據集未知聚類數量問題時,都不直接在數據集空間上預測。例如在對xi=1 ∈X這組數據聚類時,不直接在X的空間上預測,而是提出了一個非線性映射f來將xi轉換為zi,其中Z是潛在特征空間。為了使Z適合聚類,特征空間Z的維數應盡可能低。本算法的目標是找到一個合適的方法來達到f的效果,從而可以提取生成低維嵌入點和一個合適的聚類算法來確定聚類數目k。
首先是從輸入層到隱藏層的編碼過程:
其次是從隱藏層到輸入層的解碼過程:
最后算法的優化目標函數為:
這里dist是使用均方方差來計算兩者的距離度量函數。但是為了使數據可視化,算法仍然需要降低維數。因此采用T-SNE 降維方法對數據進行可視化處理。此方法可以使高維數據可視化為更低維的數據。例如本模型需要2 維特征進行判斷指數計算。因此算法將提取到的特征可視化為2 維數據。
本模型確定聚類數目的指標主要有如下幾個:模型的貝葉斯信息量準則(Bayesian information criterion, BIC)值、赤池信息量準則(Akaike information criterion, AIC)值[7]、輪廓系數[8](Silhoutte) 值[9]和Calinski Harabasz(CH)值[10]。訓練模型時,增加參數數量也就增加了模型復雜度,進而會導致過擬合現象。針對該問題,AIC 和BIC均引入了與模型參數個數相關的懲罰項,BIC 的懲罰項比AIC 的大,考慮了樣本數量,樣本數量過多時,可有效防止模型精度過高造成的模型復雜度過高。輪廓系數可以作為定義為該聚類是否合理、有效的度量。聚類結果的輪廓系數的取值在[-1,1]之間,值越大,說明同類樣本相距越近,不同樣本相距越遠,則聚類效果越好。模型CH 值越大代表著類自身越緊密,類與類之間越分散,即更優的聚類結果。
第一步是創建一個高斯混合模型,該模型具有為簇數[2,n]預設的k值范圍,其中n=3,4,5,…,在基于k值范圍創建一組模型之后,通過蒙特卡洛方法判斷最佳聚類數目。具體來說由于存在局部最優,單個值是波動的。因此,從統計的角度出發,引入了蒙特卡洛方法(Monte Carlo method)來獲取期望值,以避免局部最優,并導出最佳簇數。因此,算法可以根據得到的最佳聚類數量對數據進行GMM 聚類分析。其中,GMM 模型的概率密度函數如式(4)所示。
式(4)中,設n為觀測值的數量,k為聚類數目,RSS 為殘差平方和,L為似然函數,AIC 和BIC 的計算方法如式(5)、式(6)所示。
簇內不相似度為a(i),簇間差異為b(i)。S(i) 的計算方法如式(7)所示。
CH 的計算方法如式(8)所示。
式(8)中,ki為當前類別,trB(k)為類間偏離矩陣的軌跡,trW(k)為類內偏離矩陣的軌跡。
多次運行模型后,本算法可以得到聚類預測數目。獲得聚類數目的總體公式如式(9)所示。
本文選擇的數據集和基準模型方法有:差距分析(gap analysis, GAP),輪廓系數,卷積自編碼器(convolutional autoencoder, CAE)方法,均值漂移(mean-shift),改進的GMM 方法(improved-GMM)。這些方法和本文算法都屬于較為完整的模型,可以在聚類數目預測精準度和聚類效果上與本文算法的方法進行比較。
這里分別挑選了3 種類型的數據集用來證明自聚類算法對于多種類數據的適配性。它們分別是文本數據集20Newsgroup,圖像手寫數字數據集MNIST 和音頻數據集Urbansound8k。
20Newsgroup 語料庫是18 846 個文本文檔的集合,這些文檔分為20 個不同的新聞組。使用這個語料庫,可以觀察到所提出的方法是如何在文本樣本上工作的。我們使用文檔的TF-IDF 表示,但這樣數據的維度會過高。因此我們選擇10 000 個最常用的單詞作為特征。特別需要說明的是,在文檔數據集20Newsgroup 中同時存在某些類別過于相似(如IBM 系統下的個人電腦硬件(comp. sys.ibm.pc.hardware)/ mac 系統下的個人電腦硬件(comp.sys.mac.hardware))的情況。因此選擇完全不同的15 個類作為原始數據集。
MNIST 是一個非常簡單的數據集。這個數據集包含一些手寫的阿拉伯數字(0 ~90 個數字)。其中訓練集有60 000 張圖片,測試集有10 000 張圖片。
Urbansound8k 是一個廣泛用于城市環境聲音自動分類研究的公共數據集。該數據集包含10 個類別共8 732個標記的聲音片段(≤4 s),如:空調、汽車警報聲、兒童玩耍聲、狗叫聲、鉆孔聲、發動機空轉聲、槍聲、手持鉆孔機聲、警報聲和街頭音樂。
本文對3 個數據集分別在基準算法和自聚類算法上進行了測試。計算了它們的準確率和平均預測值。通過表1 和表2 的實驗結果可以看出,在所有基準算法當中自聚類算法取得了最好的結果。

表1 聚類性能實驗結果

表2 消融實驗結果
在這一小節中進行了消融實驗分別驗證自聚類算法每一組成部分對自聚類模型的影響。消融實驗的設計是為了探究實驗中4 個參數的重要性。如表2 分別對每個參數進行一次缺失處理,只采用其余3 個參數的值進入下一步蒙特卡洛方法。其中缺失了CH 值的實驗結果表現最差,這證明了CH 值對算法的影響最大。
綜上所述,本文提出了一種基于蒙特卡洛方法預測聚類數目的深度學習方法。此算法設計了多個工作模塊,從學習到的信息中提取關鍵特征,以進行聚類數目的預測。廣泛的實驗表明,本算法達到了最先進的聚類性能。此外,由于許多實際應用中高維數據較多,所以預訓練模型的編碼速度較慢。今后,研究人員將研究如何在保持實驗結果基本不變的情況下,降低模型參數,提高訓練速度。