論文信息
論文標題: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 切換到中文版本
