譜聚類(Spectral Clustering, SC)在前面的博文中已經詳述,是一種基於圖論的聚類方法,簡單形象且理論基礎充分,在社交網絡中廣泛應用。本文將講述進一步擴展其應用場景:首先是User-Item協同聚類,即spectral coclustering,之后再詳述譜聚類的進一步優化。
1 Spectral Coclustering
1.1 協同聚類(Coclustering)
在數據分析中,聚類是最常見的一種方法,對於一般的聚類算法(kmeans, spectral clustering, gmm等等),聚類結果都類似圖1所示,能挖掘出數據之間的類簇規律。
即使對於常見的數據User-Item評分矩陣(常見於各社交平台的數據之中,例如音樂網站的用戶-歌曲評分矩陣,新聞網站的用戶-新聞評分矩陣,電影網站的用戶-電影評分矩陣等等),如表1所示。在聚類分析中,也常常將數據計算成User-User的相似度關系或Item-Item的相似度關系,計算方法諸如應用Jaccard距離,將User或Item分別當成Item或User的特征,再在此基礎上計算歐氏距離、cos距離等等。
表1 User-Item評分矩陣
但是如果能聚類成如圖2中的coclustering關系,將User和Item同時聚類,將使得數據結果更具意義,即在音樂網站中的用戶和歌曲coclustering結果表明,某些用戶大都喜歡某類歌曲,同時這類歌曲也大都只被這群用戶喜歡着。這樣,不管是用於何種場景(例如歌曲推薦),都將帶來極大的益處。
1.2 Spectral Coclustering
對於User-Item評分矩陣,這是一個典型的二部圖(Bipartite Grap),Item-User矩陣A,假設A為N*M,即N個item和M個user,可展開成:
對於A的二部圖,只存在Item與User之間的鄰接邊,在Item(User)之間不存在鄰接邊。再用譜聚類原理——將帶權無向圖划分為兩個或兩個以上的最優子圖,使子圖內部盡量相似,而子圖間距離盡量距離較遠。這樣的聚類結果將Cut盡量少的邊,分割出User和Item的類,如果類記Ci(U,I)為第i個由特定的User和Item組成的類,由譜聚類原理,Cut掉的Ci邊為中的User或Item與其它類Cj(j≠i)的邊,且其滿足某種最優Cut方法,簡單地說,Cut掉的User到其它類Cj(j≠i)的Item的邊,可理解為這些User與其它Item相似關系較小;同樣Cut掉的Item到其它類Cj(j≠i)的User的邊,可理解為這些Item與其它User相似關系較小。這正好滿足coclusering的定義。
在譜聚類的基礎上,再實現Spectral Coclustering,十分簡單, 將E直接當成譜聚類的鄰接矩陣即可,至於求Laplacian矩陣、求特征值、計算Kmeans,完成與譜聚類相同。
PS:更多詳情,請參見參考文獻1。
2 譜聚類的半監督學習
假設有大量新聞需要聚類,但對於其中的部分新聞,編輯已經人工分類好了,例如(Ni1,Ni2, …, Nim),為分類好的第i類,那么對於人工分類好的數據,就相當於聚類中的先驗知識(或正則)。
在聚類時,可相應在鄰接矩陣E中增加類彼此間鄰接邊,並使得其鄰接權重較大,這樣生成的鄰接矩陣為E’。這樣,再對此鄰接矩陣E’做譜聚類,聚類結果將在一定程度上維持人工分類的結果,並達到聚類的目的。
PS:更多詳情,請參見參考文獻2,不過譜聚類的半監督學習,都有點扯。
參考文獻:
1 Inderjit S. Dhillon. Co-clustering documents and words using Bipartite Spectral Graph Partitioning;
2 W Chen. Spectral clustering: A semi-supervised approach;
3 Wen-Yen Chen, Yangqiu Song, Hongjie Bai, Chih-Jen Lin, Edward Y. Chang. Parallel Spectral Clustering in Distributed Systems.
----