論文解讀(SDCN)《Structural Deep Clustering Network》


論文信息

論文標題:Structural Deep Clustering Network
論文作者:Junyuan Xie, Ross Girshick, Ali Farhadi
論文來源:2020, WWW
論文地址:download 
論文代碼:download 

1 Introduction

  深度聚類同時考慮屬性信息和結構信息。

    • 屬性信息采用 Autoencoder
    • 結構信息采用 GCN

2 Method

  在本節中,將介紹 SDCN,其整體框架如 Figure 1 所示。

  

  首先基於原始數據構建一個KNN圖。

  然后,將原始數據和  KNN  圖分別輸入到自動編碼器和GCN中。並將每一層的自動編碼器與相應的  GCN  層連接起來,這樣就可以通過  delivery operator  將自動編碼器特定的表示集成到  GCN  的表示中。

  同時,我們提出了一種雙重自監督機制來監督自動編碼器和  GCN  的訓練進程。本文將在下面詳細描述我們提出的模型。

2.1 KNN Graph

  假設我們有原始數據  $\mathrm{X} \in \mathbb{R}^{N \times d} $,其中每一行  $\mathbf{x}_{i}$  代表  $i-th$  樣本,$N$ 是樣本數,$d$  是維度。 對於每個樣本,我們首先找到它的  $top-K$  相似鄰居並設置邊以將其與其鄰居連接。 有很多方法可以計算樣本的相似度矩陣  $S \in \mathbb{R}^{N} \times N$。

  這里列出在構建 KNN 圖時使用的兩種相似度計算的流行方法:

  • Heat Kernel. 樣本  $i$  和  $j$  之間的相似度計算如下:

    $ \mathrm{S}_{i j}=e^{-\frac{\left\|\mathrm{x}_{i}-\mathrm{x}_{j}\right\|^{2}}{t}}\quad \quad(1)$

   其中, $t$  為熱傳導方程中的時間參數。對於連續的數據,如:圖像。

  • Dot-product. 樣本  $i$  和樣本  $j$  之間的相似性的計算方法為:

     $\mathrm{S}_{i j}=\mathbf{x}_{j}^{T} \mathbf{x}_{i} \quad \quad (2)$

   對於離散數據,如: bag-of-words,使用點積相似性,使相似性只與相同 word 的數量相關。

  在計算相似度矩陣 $S$  后,選擇每個樣本的前  $k$  個相似度點作為其鄰居,構造一個無向的  $k$  近鄰圖,從非圖數據中得到鄰接矩陣  $A$。

2.2 DNN Module

  使用基本的自動編碼器學習原始數據的表示。

  Encoder  部分:

    $\mathbf{H}^{(\ell)}=\phi\left(\mathbf{W}_{e}^{(\ell)} \mathbf{H}^{(\ell-1)}+\mathbf{b}_{e}^{(\ell)}\right) \quad \quad (3)$

  Decoder 部分:

    $\mathbf{H}^{(\ell)}=\phi\left(\mathbf{W}_{d}^{(\ell)} \mathbf{H}^{(\ell-1)}+\mathbf{b}_{d}^{(\ell)}\right) \quad \quad (4)$

  DNN module 的目標函數:

    $\mathcal{L}_{r e s}=\frac{1}{2 N} \sum \limits _{i=1}^{N}\left\|\mathbf{x}_{i}-\hat{\mathbf{x}}_{i}\right\|_{2}^{2}=\frac{1}{2 N}\|\mathbf{X}-\hat{\mathbf{X}}\|_{F}^{2}\quad \quad (5)$

2.3 GCN Module

  自編碼器能夠從數據本身中學習有用的表示,例如   $\mathrm{H}^{(1)}$ , $\mathrm{H}^{(2)}$ , $\cdots$ ,  $\mathrm{H}^{(L)}$ ,但忽略了樣本之間的關系。 在本節中,將介紹如何使用  GCN  模塊來傳播  DNN  模塊生成的這些表示。 一旦將 DNN 模塊學習到的所有表示都集成到 GCN 中,那么 GCN 可學習表示將能夠適應兩種不同類型的信息,即數據本身和數據之間的關系。

  使用 $\mathrm{GCN}$ 來學習圖結構信息:

    $\mathrm{Z}^{(\ell)}=\phi\left(\widetilde{\mathrm{D}}^{-\frac{1}{2}} \widetilde{\mathrm{A}} \widetilde{\mathrm{D}}^{-\frac{1}{2}} \mathbf{Z}^{(\ell-1)} \mathbf{W}^{(\ell-1)}\right)  \quad \quad (6)$

  其中 

    • $\widetilde{\mathbf{A}}=\mathbf{A}+\mathbf{I}$
    • $\widetilde{\mathbf{D}}_{ii}=\sum_{j} \widetilde{\mathbf {A}}_{\mathbf{ij}}$ , $\mathbf{I}$

  接着講自編碼器學習到的表示 $\mathbf{H}^{(\ell-1)}$ 與 GCN 學到的表示 $\mathbf{Z}^{( \ell-1)}$ 結合起來: 

    $\widetilde{\mathbf{Z}}^{(\ell-1)}=(1-\epsilon) \mathbf{Z}^{(\ell-1)}+\epsilon \mathbf{H}^{(\ell-1)} \quad \quad (7)$

  其中  $ϵ$  是一個平衡系數,本文設為  $0.5$ 。

  然后使用   $\widetilde{\mathbf{Z}}^{(\ell-1)}$  作為 $\mathrm{GCN}$ 中 $l $ 層的輸入來生成表示   $Z^{ (\ell)}  $:

    $\mathbf{Z}^{(\ell)}=\phi\left(\widetilde{\mathbf{D}}^{-\frac{1}{2}} \widetilde{\mathbf{A}} \widetilde{\mathbf{D}}^{-\frac{1}{2}} \widetilde{\mathbf{Z}}^{(\ell-1)} \mathbf{W}^{(\ell-1)}\right)  \quad \quad (8)$

  注意,第一層GCN的輸入是原始數據  $X$:

    $\mathrm{Z}^{(1)}=\phi\left(\widetilde{\mathbf{D}}^{-\frac{1}{2}} \widetilde{\mathrm{A}} \widetilde{\mathbf{D}}^{-\frac{1}{2}} \mathbf{X} \mathbf{W}^{(1)}\right) \quad \quad (9)$

  GCN模塊的最后一層是具有 softmax 功能的多分類層:

    $Z=\operatorname{softmax}\left(\widetilde{\mathbf{D}}^{-\frac{1}{2}} \widetilde{\mathbf{A}} \widetilde{\mathbf{D}}^{-\frac{1}{2}} \mathbf{Z}^{(L)} \mathbf{W}^{(L)}\right) \quad \quad (10)$

  結果  $z_{i j} \in Z$  表示概率樣本  $i$  屬於聚類中心  $j$ ,我們可以將  $Z$  視為概率分布。

 

2.4 Dual Self-Supervised Module

  在此,提出一個雙自監督模塊,它將自編碼器和  GCN 模塊統一在一個框架內,有效地對這兩個模塊進行端到端訓練以進行聚類。

  對於第  $i$  個樣本和第  $j$  個簇,我們使用 Student’s t-distribution  來度量數據表示  $h_i$  和簇中心向量  $µ_j$  之間的相似性:

    ${\large q_{i j}=\frac{\left(1+\left\|\mathbf{h}_{i}-\boldsymbol{\mu}_{j}\right\|^{2} / v\right)^{-\frac{v+1}{2}}}{\sum_{j^{\prime}}\left(1+\left\|\mathbf{h}_{i}-\boldsymbol{\mu}_{j^{\prime}}\right\|^{2} / v\right)^{-\frac{v+1}{2}}}} \quad \quad (11)$

  其中 

    • $\mathbf{h}_{i}$  是  $\mathbf{H}^{(L)}$  的第  $i$  行;
    • $\boldsymbol{\mu}_{j}$   初始化為  $K -means$  在預訓練自動編碼器學習的表征上;
    • $v$  是 Student’s t-distribution  的自由度,實驗中設置為 $1$;
    • $q_{i j}$  可以認為是將樣本  $i$  分配給集群  $j$  的概率,即軟分配;

  在獲得聚類結果分布  $Q$  后,本文目標是通過從高置信度分配中學習來優化數據表示。具體來說,希望使數據表示更接近集群中心,從而提高集群的凝聚力。因此,計算一個目標分布  $P$  如下:

    ${\large p_{i j}=\frac{q_{i j}^{2} / f_{j}}{\sum_{j^{\prime}} q_{i j^{\prime}}^{2} / f_{j^{\prime}}}}  \quad \quad (12)$

  其中 $f_{j}=\sum_{i} q_{i j}$ 是軟聚類頻率。在目標分布  $P$  中,對  $Q$  中的每個分配進行平方和歸一化,以便分配具有更高的置信度,采用  KL 散度來比較兩類概率:

    $\mathcal{L}_{c l u}=K L(P \| Q)=\sum \limits _{i} \sum\limits _{j} p_{i j} \log \frac{p_{i j}}{q_{i j}} \quad \quad (13)$

  即:最小化  $Q$  和  $P$  分布之間的  $KL$  散度損失。

  目標分布  $P$  可以幫助DNN模塊學習更好的聚類任務表示,即使數據表示更接近聚類中心。這被認為是一個自監督機制,因為目標分布  $P$  是由分布  $Q$  計算出來的,而  $P$  分布依次監督分布  $Q$  的更新。

  另一個自監督模塊在:對於 GCN 模塊的訓練,GCN 模塊也會出現提供一個聚類分配分布  $Z$  。因此,可以使用分配  $P$  來監督分配  $Z$  如下:

    $\mathcal{L}_{g c n}=K L(P \| Z)=\sum \limits_{i} \sum \limits _{j} p_{i j} \log \frac{p_{i j}}{z_{i j}}\quad \quad (14)$

  通過這種機制,SDCN可將聚類目標和分類目標這兩個不同的目標集中在一個損失函數中。 SDCN 的總損失函數是:

    $\mathcal{L}=\mathcal{L}_{\text {res }}+\alpha \mathcal{L}_{\text {clu }}+\beta \mathcal{L}_{g c n}\quad \quad (15)$

  當訓練穩定后,可為樣本設置標簽。本文選擇分布  $Z$  中的軟分配作為最終的聚類結果,因為 GCN 學習到的表示包含了兩種不同類型的信息。分配給樣本  $i$  的標簽是:

    $r_{i}=\underset{j}{arg\  max} \  z_{i j}\quad \quad (16)$

  算法流程:

      

3 Experiments

  

節點聚類

  

  $SDCN_{Q}$ : 利用 $Q$ 軟聚類做輸出;

  $SDCN$: 利用 $Z$ 軟聚類做輸出;

模型分析

  驗證GCN在學習結構信息方面的能力傳遞算子(delivery operator)的生態能力

      

  • SDCN-w/o: 不使用傳遞算子
  • SDCN-MLP: 將GCN代替為MLP

傳遞層數影響

  

平衡系數 ϵ 研究

  

K 值敏感分析

  

訓練過程分析

  

4 Conclusion

  提出雙自監督模塊,將GCN 和 DNN 模型表示融合起來。

 

修改l歷史

2021-12-25 創建文章

2022-06-08 切換到中文版本

 

論文解讀目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM