譜聚類算法(Spectral Clustering)
譜聚類(Spectral Clustering, SC)是一種基於圖論的聚類方法——將帶權無向圖劃分爲兩個或兩個以上的最優子圖,使子圖內部儘量相似,而子圖間距離儘量距離較遠,以達到常見的聚類的目的。其中的最優是指最優目標函數不同,可以是割邊最小分割——如圖1的Smallest cut(如後文的Min cut), 也可以是分割規模差不多且割邊最小的分割——如圖1的Best cut(如後文的Normalized cut)。
圖1 譜聚類無向圖劃分——Smallest cut和Best cut
這樣,譜聚類能夠識別任意形狀的樣本空間且收斂於全局最優解,其基本思想是利用樣本數據的相似矩陣(拉普拉斯矩陣)進行特徵分解後得到的特徵向量進行聚類。
1 理論基礎
對於如下空間向量item-user matrix:
如果要將item做聚類,常常想到k-means聚類方法,複雜度爲o(tknm),t爲迭代次數,k爲類的個數、n爲item個數、m爲空間向量特徵數:
1 如果M足夠大呢?
2 K的選取?
3 類的假設是凸球形的?
4 如果item是不同的實體呢?
5 Kmeans無可避免的局部最優收斂?
……
這些都使常見的聚類問題變得相當複雜。
1.1 圖的表示
如果我們計算出item與item之間的相似度,便可以得到一個只有item的相似矩陣,進一步,將item看成了Graph(G)中Vertex(V),歌曲之間的相似度看成G中的Edge(E),這樣便得到我們常見的圖的概念。
對於圖的表示(如圖2),常用的有:
鄰接矩陣:E,eij表示vi和vi的邊的權值,E爲對稱矩陣,對角線上元素爲0,如圖2-2。
Laplacian矩陣:L = D – E, 其中di (行或列元素的和),如圖2-3。
1.2 特徵值與L矩陣
先考慮一種最優化圖像分割方法,以二分爲例,將圖cut爲S和T兩部分,等價於如下損失函數cut(S, T),如公式1所示,即最小(砍掉的邊的加權和)。
假設二分成兩類,S和T,用q(如公式2所示)表示分類情況,且q滿足公式3的關係,用於類標識。
那麼:
其中D爲對角矩陣,行或列元素的和,L爲拉普拉斯矩陣。
由:
有:
1、 L爲對稱半正定矩陣,保證所有特徵值都大於等於0;
2、 L矩陣有唯一的0特徵值,其對應的特徵向量爲1。
離散求解q很困難,如果將問題鬆弛化爲連續實數值,由瑞利熵的性質知其二將你型的最小值就是L的特徵值們(最小值,第二小值,......,最大值分別對應矩陣L的最小特徵值,第二小特徵值,......,最大特徵值,且極值q相應的特徵向量處取得,請參見瑞利熵(Rayleigh quotient))。
寫到此,不得不對數學家們致敬,將cut(S,T),巧妙地轉換成拉普拉斯矩陣特徵值(向量)的問題,將離散的聚類問題,鬆弛爲連續的特徵向量,最小的系列特徵向量對應着圖最優的系列劃分方法。剩下的僅是將鬆弛化的問題再離散化,即將特徵向量再劃分開,便可以得到相應的類別,如將圖3中的最小特徵向量,按正負劃分,便得類{A,B,C}和類{D,E,F,G}。在K分類時,常將前K個特徵向量,採用kmeans分類。
PS:
1、此處雖再次提到kmeans,但意義已經遠非引入概念時的討論的kmeans了,此處的kmeans,更多的是與ensemble learning相關,在此不述;
2、k與聚類個數並非要求相同,可從第4節的相關物理意義中意會;
3、在前k個特徵向量中,第一列值完全相同(迭代算法計算特徵向量時,值極其相近),kmeans時可以刪除,同時也可以通過這一列來簡易判斷求解特徵值(向量)方法是否正確,常常問題在於鄰接矩陣不對稱。
圖3 圖的L矩陣的特徵值與特徵向量
2 最優化方法
在kmeans等其它聚類方法中,很難刻劃類的大小關係,局部最優解也是無法迴避的漏病。當然這與kmeans的廣泛使用相斥——原理簡單。
2.1 Min cut方法
如2.2節的計算方法,最優目標函數如下的圖cut方法:
計算方法,可直接由計算L的最小特徵值(特徵向量),求解。
2.2 Nomarlized cut方法
Normarlized cut,目標是同時考慮最小化cut邊和劃分平衡,以免像圖1中的cut出一個單獨的H。衡量子圖大小的標準是:子圖各個端點的Degree之和。
2.3 Ratio Cut 方法
Ratio cut的目標是同時考慮最小化cut邊和劃分平衡,以免像圖1中的cut出一個單獨的H。
最優目標函數爲:
2.4 Normalized相似變換
歸一化的L矩陣有:
因而L’的最小特徵值與D-(1/2)E D-(1/2)的最大特徵值對應。
而計算的L’相比計算L要稍具優勢,在具體實用中,常以L’替代L,但是min cut和ratio cut不可以。
PS:這也是常常在人們的博客中,A說譜聚類爲求最大K特徵值(向量),B說譜聚類爲求最小K個特徵值(向量的原因)。
3 譜聚類步驟
第一步:數據準備,生成圖的鄰接矩陣;
第二步:歸一化普拉斯矩陣;
第三步:生成最小的k個特徵值和對應的特徵向量;
第四步:將特徵向量kmeans聚類(少量的特徵向量);
4 譜聚類的物理意義
譜聚類中的矩陣:
可見不管是L、L’都與E聯繫特別大。如果將E看成一個高維向量空間,也能在一定程度上反映item之間的關係。將E直接kmeans聚類,得到的結果也能反映V的聚類特性,而譜聚類的引入L和L’是使得G的分割具有物理意義。
而且,如果E的item(即n)足夠大,將難計算出它的kmeans,我們完全可以用PCA降維(仍爲top的特徵值與向量)。
上述對將E當成向量空間矩陣,直觀地看符合我們的認知,但缺乏理論基礎;而L(L’等)的引入,如第2節所述,使得計算具有理論基礎,其前k個特徵向量,也等價於對L(L’等)的降維。
因而聚類就是爲圖的劃分找了理論基礎,能達到降維的目的。
其中不少圖出源於Mining of Massive Datasets,對於同仁們的佈道授業,一併感謝。
推薦相關相關文檔:Wen-Yen Chen, Yangqiu Song, Hongjie Bai, Chih-Jen Lin, Edward Y. Chang. Parallel Spectral Clustering in Distributed Systems.
推薦相關源碼:https://code.google.com/p/pspectralclustering/ (真心很贊)
------