Spectral Clustering(譜聚類)是一種基於圖論的聚類方法,它能夠識別任意形狀的樣本空間且收斂於全局最有解,其基本思想是利用樣本數據的相似矩陣進行特征分解后得到的特征向量進行聚類,可見,它與樣本feature無關而只與樣本個數有關。
一、圖的划分
圖划分的目的是將有權無向圖划分為兩個或以上子圖,使得子圖規模差不多而割邊權重之和最小。圖的划分可以看做是有約束的最優化問題,它的目的是看怎么把每個點划分到某個子圖中,比較不幸的是當你選擇各種目標函數后發現該優化問題往往是NP-hard的。
怎么解決這個問題呢?松弛方法往往是一種利器(比如SVM中的松弛變量),對於圖的划分可以認為能夠將某個點的一部分划分在子圖1中,另一部分划分在子圖2中,而不是非此即彼,使用松弛方法的目的是將組合優化問題轉化為數值優化問題,從而可以在多項式時間內解決之,最后在還原划分時可以通過閾值來還原,或者使用類似K-Means這樣的方法,之后會有相關說明。
二、相關定義
1、用表示無向圖,其中
和
分別為其頂點集和邊集;
2、說某條邊屬於某個子圖是指該邊的兩個頂點都包含在子圖中;
3、假設邊的兩個不同端點為
和
,則該邊的權重用
表示,對於無向無環圖有
且
,為方便以下的“圖”都指無向無環圖;
4、對於圖的某種划分方案的定義為:所有兩端點不在同一子圖中的邊的權重之和,它可以被看成該划分方案的損失函數,希望這種損失越小越好,本文以二分無向圖為例,假設原無向圖
被划分為
和
,那么有:
三、Laplacian矩陣
假設無向圖被划分為
和
兩個子圖,該圖的頂點數為:
,用
表示
維指示向量,表明該划分方案,每個分量定義如下:
於是有:
又因為:
其中,為對角矩陣,對角線元素為:
為權重矩陣:
且
。
重新定義一個對稱矩陣,它便是Laplacian矩陣:
矩陣元素為:
如果所有權重值都為非負,那么就有,這說明Laplacian矩陣
是半正定矩陣;而當無向圖為連通圖時
有特征值0且對應特征向量為
,這反映了,如果將無向圖
划分成兩個子圖,一個為其本身,另一個為空時,
為0(當然,這種划分是沒有意義的)。
這個等式的核心價值在於:將最小化划分的問題轉變為最小化二次函數
;從另一個角度看,實際上是把原來求離散值松弛為求連續實數值。
觀察下圖:
圖1
它所對應的矩陣為:
[,1] [,2] [,3] [,4] [,5] [,6] [1,] 0.0 0.8 0.6 0.0 0.1 0.0 [2,] 0.8 0.0 0.8 0.0 0.0 0.0 [3,] 0.6 0.8 0.0 0.2 0.0 0.0 [4,] 0.0 0.0 0.2 0.0 0.8 0.7 [5,] 0.1 0.0 0.0 0.8 0.0 0.8 [6,] 0.0 0.0 0.0 0.7 0.8 0.0
矩陣為:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1.5 0.0 0.0 0.0 0.0 0.0
[2,] 0.0 1.6 0.0 0.0 0.0 0.0
[3,] 0.0 0.0 1.6 0.0 0.0 0.0
[4,] 0.0 0.0 0.0 1.7 0.0 0.0
[5,] 0.0 0.0 0.0 0.0 1.7 0.0
[6,] 0.0 0.0 0.0 0.0 0.0 1.5
Laplacian矩陣為:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1.5 -0.8 -0.6 0.0 -0.1 0.0
[2,] -0.8 1.6 -0.8 0.0 0.0 0.0
[3,] -0.6 -0.8 1.6 -0.2 0.0 0.0
[4,] 0.0 0.0 -0.2 1.7 -0.8 -0.7
[5,] -0.1 0.0 0.0 -0.8 1.7 -0.8
[6,] 0.0 0.0 0.0 -0.7 -0.8 1.5
Laplacian矩陣是一種有效表示圖的方式,任何一個Laplacian矩陣都對應一個權重非負地無向有權圖,而滿足以下條件的就是Laplacian矩陣:
1、
為對稱半正定矩陣,保證所有特征值都大於等於0;
2、
矩陣有唯一的0特征值,其對應的特征向量為
,它反映了圖的一種划分方式:一個子圖包含原圖所有端點,另一個子圖為空。
四、划分方法
1、Minimum Cut 方法
考慮最簡單情況,另,無向圖划分指示向量定義為:
要優化的目標為,由之前的推導可以將該問題松弛為以下問題:
從這個問題的形式可以聯想到Rayleigh quotient:
原問題的最優解就是該Rayleigh quotient的最優解,而由Rayleigh quotient的性質可知:它的最小值,第二小值,......,最大值分別對應矩陣的最小特征值,第二小特征值,......,最大特征值,且極值
在相應的特征向量處取得,即需要求解下特征系統的特征值和特征向量:
這里需要注意約束條件,顯然
的最小特征值為0,此時對應特征向量為
,不滿足這個約束條件(剔除了無意義划分),於是最優解應該在第二小特征值對應的特征向量處取得。
當然,求得特征向量后還要考慮如何恢復划分,比如可以這樣:特征向量分量值為正所對應的端點划分為,反之划分為
;也可以這樣:將特征向量分量值從小到大排列,以中位數為界划分
和
;還可以用K-Means算法聚類。
2、Ratio Cut 方法
實際當中,划分圖時除了要考慮最小化外還要考慮划分的平衡性,為緩解出現類似一個子圖包含非常多端點而另一個只包含很少端點的情況,出現了Ratio Cut,它衡量子圖大小的標准是子圖包含的端點個數。
定義為子圖1包含端點數,
為子圖2包含端點數,
,則優化目標函數為:
其中:
做一個簡單變換:
其中:
看吧,這形式多給力,原問題就松弛為下面這個問題了:
依然用Rayleigh quotient求解其第二小特征值及其特征向量。
3、Normalized Cut 方法
與Ratio Cut類似,不同之處是,它衡量子圖大小的標准是:子圖各個端點的Degree之和。
定義:為子圖1Degree之和:
為子圖2Degree之和:
則優化目標函數為:
其中:
原問題就松弛為下面這個問題了:
用泛化的Rayleigh quotient表示為:
那問題就變成求解下特征系統的特征值和特征向量:
——式子1
(注:
是一個對角矩陣,且
)
(其中:
,
) ——式子2
顯然,式子1和式子2有相同的特征值,但是對應特征值的特征向量關系為:,因此我們可以先求式子2的特征值及其特征向量,然后為每個特征向量乘以
就得到式子1的特征向量。
哦,對了,矩陣叫做Normalized Laplacian,因為它對角線元素值都為1。
五、Spectral Clustering

1、Unnormalized Spectral Clustering算法

2、Normalized Spectral Clustering算法




3、以圖1為例,取K=2,使用Unnormalized Spectral Clustering算法,此時聚類的對象其實就是矩陣L的第二小特征向量(使用R模擬):
● L矩陣為:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1.5 -0.8 -0.6 0.0 -0.1 0.0
[2,] -0.8 1.6 -0.8 0.0 0.0 0.0
[3,] -0.6 -0.8 1.6 -0.2 0.0 0.0
[4,] 0.0 0.0 -0.2 1.7 -0.8 -0.7
[5,] -0.1 0.0 0.0 -0.8 1.7 -0.8
[6,] 0.0 0.0 0.0 -0.7 -0.8 1.5
● q<-eigen(L) 求得L的特征值和特征向量分別為:
$values
[1] 2.573487e+00 2.469025e+00 2.285298e+00 2.084006e+00 1.881842e-01 1.776357e-15
$vectors
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] -0.10598786 -0.3788245748 -0.30546656 0.64690880 0.4084006 -0.4082483
[2,] -0.21517718 0.7063206485 0.30450981 -0.01441501 0.4418249 -0.4082483
[3,] 0.36782805 -0.3884382495 0.04461661 -0.63818761 0.3713186 -0.4082483
[4,] -0.61170644 -0.0009962363 -0.45451793 -0.33863293 -0.3713338 -0.4082483
[5,] 0.65221488 0.3509689196 -0.30495543 0.16645901 -0.4050475 -0.4082483
[6,] -0.08717145 -0.2890305075 0.71581349 0.17786774 -0.4451628 -0.4082483
● q$vectors[,5] 取第二小特征向量:
[1] 0.4084006 0.4418249 0.3713186 -0.3713338 -0.4050475 -0.4451628
● kmeans(q$vectors[,5],2) 利用K-Means算法聚類:
K-means clustering with 2 clusters of sizes 3, 3
Cluster means:
[,1]
1 -0.4071814
2 0.4071814
Clustering vector:
[1] 2 2 2 1 1 1
Within cluster sum of squares by cluster:
[1] 0.002732195 0.002487796
(between_SS / total_SS = 99.5 %)
從結果上可以看到頂點1、2、3被聚為一類,頂點4、5、6被聚為一類,與實際情況相符。
在Mahout中已經有相應實現,放在下次學習吧。
六、總結
1、圖划分問題中的關鍵點在於選擇合適的指示向量並將其進行松弛化處理,從而將最小化划分
的問題轉變為最小化二次函數
,進而轉化為求Rayleigh quotient極值的問題;
2、 Spectral Clustering的各個階段為:
● 選擇合適的相似性函數計算相似度矩陣;
●計算矩陣L的特征值及其特征向量,比如可以用Lanczos迭代算法;
●如何選擇K,可以采用啟發式方法,比如,發現第1到m的特征值都挺小的,到了m+1突然變成較大的數,那么就可以選擇K=m;
● 使用K-Means算法聚類,當然它不是唯一選擇;
● Normalized Spectral Clustering在讓Cluster間相似度最小而Cluster內部相似度最大方面表現要更好,所以首選這類方法。
六、參考資料
1、Chris Ding.《A Tutorial on Spectral Clustering》、《Data Mining using Matrix and Graphs》
2、Jonathan Richard Shewchuk. 《Spectral and Isoperimetric Graph Partitioning》
3、Denis Hamad、Philippe Biela.《Introduction to spectral clustering》
4、Francis R. Bach、Michael I. Jordan.《Learning Spectral Clustering》