Structural Deep Clustering Network 基於GNN的深度聚類算法 WWW2020

在這裏插入圖片描述
論文鏈接:https://arxiv.org/abs/2002.01633
代碼與數據集鏈接:https://github.com/lxk-yb/SDCN

摘要

聚類是數據分析中一個基礎任務。最近,深度聚類(從深度學習方法中獲取到主要的靈感)取得了領先的效果,並且吸引了很多的注意力。目前的深度聚類方法一般通過深度學習強大的表示能力提升聚類的結果,例如,自動編碼器表明,對聚類來說學到一個有效的表示是必須的。深度聚類方法的要點一般在於能夠從數據本身抽取出有用的表示,而不是數據的結構,這(因此數據的結構)在表示學習中很少受到關注。受到GCN成功編碼圖結構的啓發,我們提出了一個結構化的深度聚類網絡(SDCN),用來將結構化的信息整合到深度聚類中。具體來說,我們設計了一個(delivery operation)傳送操作,用以把被自動編碼器學到的表示傳送到對應的GCN層,然後使用一個雙重的自監督機制去統一這兩個不同的深度神經結構,並且引導整個模型的更新。通過這種方法,這個多層數據結構,從低階到高階,就自然的和由自動編碼器學到的表示結合在一起。比如,通過傳送操作,GCN將autoencoder指定的表示改進爲高階圖正則化約束,autoencoder有助於緩解GCN中的過平滑問題。通過綜合的實驗,我們表明了我們提出的模型可以一直比其他當前最好的工作好。

1、引言

隨着深度學習的突破,神經網絡在聚類等許多重要任務上取得了巨大成功,深度聚類引起了人們的廣泛關注。深度聚類的基本思想是將深度學習強大的表徵能力融入到聚類的目標中。因此,有效的學習數據的表徵是深度聚類的關鍵前提。

儘管深度聚類取得了成功,但現有的工作[1][2][3][4]通常只關注數據自身的特性,在學習表徵時很少考慮數據的結構。值得注意的是,在數據表徵領域,考慮數據樣本之間關係的重要性已經被以往的文獻和結果所公認。這種結構揭示了樣本之間潛在的相似性,從而爲學習表徵提供了有價值的指導。一種典型的方法是譜聚類,它將樣本作爲加權圖中的節點,利用數據的圖結構進行聚類。

最近,新興的圖卷積網絡(GCN)同時對圖結構和節點屬性進行了編碼,用於節點表徵。目前已經有一些基於GCN的圖數據聚類方法[5][6],他們通過重構圖的鄰接矩陣來保持數據間的結構,但是這類方法缺少了對數據自身的特性的關注。因此我們考慮如何在保持現有深度聚類框架優點的同時,加入結構化信息。

2、模型結構

在這裏插入圖片描述
爲了引入數據間的結構信息,在初始化模型之前,我們首先基於原始數據計算出一個K最近鄰圖。這個圖會被作爲GCN模塊的輸入。整個模型大概包括三部分:深度神經網絡模塊,圖卷積模塊和雙重自監督模塊。
在這個模型中,XX是輸入數據,X^\hat{X}是輸出數據,H(L)H^{(L)}是經過LL層DNN的輸出,Z(L)Z^{(L)} 是經過LL層GCN的輸出,PP是目標分佈,QQ是節點的類別分佈。

3、模型詳解

3.1、KNN Graph

KNN是有監督學習的K近鄰的機器學習算法,K值是最近的K個樣本的意思;它的思想是 ‘近朱者赤近墨者黑’,如果空間中某些樣本具有相近的特徵屬性(樣本距離比較近),我們可以認爲它們的目標屬性Y是相近的。我們可以用已有的最近K個樣本的目標屬性來預測(分類:加權多票表決,迴歸:加權均值)待測樣本的目標屬性。

在計算相似度矩陣S之後,選擇每個樣本的前K個相似度點作爲其鄰居,以構造無向K最近鄰圖。對於非圖類型的數據,基於原始數據計算出一個K最近鄰圖,以此得到原始數據的之間的約束關係,形式爲鄰接矩陣。文中提到了兩種近期最受歡迎的構造KNN圖的方法:
1、Heat Kernel:
Sij=exixj2tS_{ij}=e^{-\frac{||x_i-x_j||^2}{t}}
2、Dot-product:
Sij=xjTxiS_{ij}=x_j^Tx_i

3.2、DNN Module

在本文中,使用基本的自動編碼器來學習原始數據的表示,以便適應不同種類的數據特徵。
其中,編碼器encoder表示爲:H(l)=ϕ(We(l)H(l1)+be(l))H^{(l)}=\phi(W_e^{(l)}H^{(l-1)}+b_e^{(l)})解碼器decoder表示爲:H(l)=ϕ(Wd(l)H(l1)+be(l))H^{(l)}=\phi(W_d^{(l)}H^{(l-1)}+b_e^{(l)})其中原始數據特徵矩陣爲H(0)H^{(0)},同時WW,bb分別代表編碼器和解碼器的權重和偏置。

深度神經網絡模塊主要是利用自編碼器學習數據自身的特性,損失函數爲解碼器的重構數據和原始數據之間的誤差:
Lres=12Ni=1Nxix^i22=12NXX^F2L_{res}=\frac{1}{2N}\sum_{i=1}^N||x_i-\hat{x}_i||_2^2=\frac{1}{2N}||X-\hat{X}||_F^2

3.3、GCN Module

圖卷積模塊主要是將圖卷積層學到的GCN特定表徵和自編碼器學到的特徵表徵進行結合,然後通過在KNN圖上進行傳播學習到結構信息。

此模塊說明了如何將DNN模塊生成的結果應用到GCN模塊中。 一旦將DNN模塊學習到的結果集成到GCN中,則此時GCN通過迭代所生成的結果將同時包含兩部分信息:圖中節點的拓樸關係和節點自身特徵,這將有利於圖聚類任務,即數據本身和數據之間的關係。 特別是在權重矩陣W的情況下,可以通過以下卷積運算來獲得GCN的第layer層學習到結果:Z(l)=ϕ(D~12A~D~12Z(l1)W(l1))Z^{(l)}=\phi(\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}Z^{(l-1)}W^{(l-1)})這就是常規的GCN形式,以切比雪夫不等式的一階近似作爲卷積覈對圖進行卷積操作。

與標準圖卷積層不同,我們的圖卷積模塊爲了同時學習到GCN的表徵和自編碼器的表徵,引入了一個傳遞算子,它將兩個表徵進行加權求和:Z~(l1)=(1ε)Z(l1)+εH(l1)\tilde{Z}^{(l-1)}=(1-\varepsilon)Z^{(l-1)}+\varepsilon H^{(l-1)}然後再傳入標準圖卷積層中學習結構信息,(作者在文章中提到一般加權比重爲0.5,即ε=0.5\varepsilon=0.5):Z(l)=ϕ(D~12A~D~12Z~(l1)W(l1))Z^{(l)}=\phi(\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}\tilde{Z}^{(l-1)}W^{(l-1)})

因爲每個DNN都學習了不同的表示形式層,爲了儘可能保留信息,從每個DNN層學到的表示轉換爲相應的GCN層進行信息傳播,這也就解釋了上面提到的網絡架構中,每一層都要進行信息的融合
第一層爲:Z(1)=ϕ(D~12A~D~12XW(1))Z^{(1)}=\phi(\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}XW^{(1)})最後一層:Z=softmax(D~12A~D~12Z(L)W(L))Z=softmax(\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}Z^{(L)}W^{(L)})這樣我們就可以爲自編碼器中每一層學習到的表徵都加入結構信息,同時保留自編碼器學習數據自身特性的作用。

3.4、Dual Self-Supervised Module

現在已經在神經網絡架構中將自動編碼器與GCN連接起來。 但是,它們不是爲聚類而設計的。 基本上,自動編碼器主要用於數據表示學習,這是一種無監督的學習方案,而傳統的GCN則處於半監督的學習方案。 它們都不能直接應用於聚類問題。 在這裏,提出了一個雙重自我監督模塊,該模塊將自動編碼器和GCN模塊統一在一個統一的框架中,並有效地端對端地訓練了這兩個模塊以進行聚類任務的學習。

對於第ii個樣本和第jj個聚類,使用Student的t分佈作爲內核來測量數據表示hih_i和聚類中心向量μj\mu_j之間的相似性,如下所示:qij=(1+hiμj2/v)v+12j(1+hiμj2/v)v+12q_{ij}=\frac{(1+||h_i-\mu_j||^2/v)^{-\frac{v+1}{2}}}{\sum_{j'}(1+||h_i-\mu_{j'}||^2/v)^{-\frac{v+1}{2}}}其中hih_iH(L)H(L)的第ii行,μj\mu_j是K-means在訓練前自動編碼器學習的表示形式上的初始化,vv是學生tt分佈的自由度。 可以將qijq_{ij}視爲將樣本ii分配給聚類jj的概率,即軟分配。 我們將Q=[qij]Q = [q_{ij}]視爲所有樣本分配的分佈。

在獲得聚類結果分佈QQ之後,我們旨在通過從高可信度分配中學習來優化數據表示。 具體來說,我們希望使數據表示更接近聚類中心,從而提高聚類凝聚力。 因此,我們計算目標分佈PP如下:pij=qij2/fjjqij2/fjp_{ij}=\frac{q_{ij}^2/f_j}{\sum_{j'}q_{ij'}^2/f_{j'}}fj=iqijf_j=\sum_iq_{ij}在目標分佈PP中,對QQ中的每個分配進行平方和歸一化,以便分配具有更高的置信度,採用KL散度來比較兩類概率:Lclu=KL(PQ)=ijpijlogpijqijL_{clu}=KL(P||Q)=\sum_i\sum_jp_{ij}\log\frac{p_{ij}}{q_{ij}}通過最小化QQPP分佈之間的KL散度損失,目標分佈PP可以幫助DNN模塊學習更好的聚類任務表示,即使數據表示圍繞聚類中心更近。 這是一種自我監督機制,因爲目標分佈PP由分佈QQ計算,並且PP分佈監督依次更新分佈QQ

至於訓練GCN模塊,一種可能的方法是將聚類分配視爲真實標籤。 但是,此策略將帶來噪音和瑣碎的解決方案,並導致整個模型崩潰。 如前所述,GCN模塊還將提供聚類分配分佈ZZ。因此,我們可以使用分佈PP來監督分佈ZZ,如下所Lgcn=KL(PZ)=ijpijlogpijzijL_{gcn}=KL(P||Z)=\sum_i\sum_jp_{ij}\log\frac{p_{ij}}{z_{ij}}目標函數有兩個優點:
(1)與傳統的多分類損失函數相比,KL散度以更“溫和”的方式更新整個模型,以防止數據表示受到嚴重干擾。
(2)GCN和DNN模塊都統一在同一優化目標中,使得它們的結果在訓練過程中趨於一致。 由於DNN模塊和GCN模塊的目標是近似目標分佈P(在兩個模塊之間具有很強的聯繫),因此我們將其稱爲雙重自監督機制。

整個模型的整體損失函數爲:L=Lres+αLclu+βLgcnL=L_{res}+\alpha L_{clu}+\beta L_{gcn}其中,α\alpha是平衡原始數據聚類優化和局部結構保存的超參數,β\beta是控制圖卷積模塊對嵌入空間干擾的係數。通過對這個損失函數的優化,我們可以以端到端的方式更新整個模型。

3.5、算法流程

在這裏插入圖片描述

3.6、理論分析

我們還進行了一些理論分析來證明我們提出的模型的優越性:一是GCN模塊可以爲自編碼器學習到的表徵施加二階圖正則,相當於爲自編碼器表徵提供了結構信息;
在這裏插入圖片描述
二是傳遞算子可以緩解GCN中出現的過擬合現象。
在這裏插入圖片描述

4、實驗

我們在六個數據集上分別和現有的深度聚類算法以及基於GCN的聚類算法進行了比較,並做了變體實驗,傳播層數實驗,傳遞算子參數實驗,K敏感性實驗等。
下圖爲變體實驗:
在這裏插入圖片描述
下圖爲數據集信息:
在這裏插入圖片描述
下圖爲對比實驗結果:
在這裏插入圖片描述
下圖爲傳遞算子參數實驗:
在這裏插入圖片描述
下圖爲訓練輪次實驗:
在這裏插入圖片描述
下圖爲K敏感性實驗:
在這裏插入圖片描述

5、參考文獻

https://zhuanlan.zhihu.com/p/107648120
[1] Bo Yang, Xiao Fu, Nicholas D Sidiropoulos, and Mingyi Hong. 2017. Towards k-means-friendly spaces: Simultaneous deep learning and clustering. In ICML. 3861–3870.

[2] Junyuan Xie, Ross Girshick, and Ali Farhadi. 2016. Unsupervised deep embedding for clustering analysis. In ICML. 478–487.

[3] Xifeng Guo, Long Gao, Xinwang Liu, and Jianping Yin. 2017. Improved deep embedded clustering with local structure preservation. In IJCAI. 1753–1759.

[4] Zhuxi Jiang, Yin Zheng, Huachun Tan, Bangsheng Tang, and Hanning Zhou.2017. Variational deep embedding: An unsupervised and generative approach to clustering. IJCAI (2017).

[5] Thomas N Kipf and Max Welling. 2016. Variational graph auto-encoders. arXiv preprint arXiv:1611.07308 (2016).

[6] Chun Wang, Shirui Pan, Ruiqi Hu, Guodong Long, Jing Jiang, and Chengqi Zhang.

Attributed Graph Clustering: A Deep Attentional Embedding Approach. IJCAI (2019).

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章