- 1 Variational Graph Auto-Encoders(VGAE,GAE)
- 2 Adversarially Regularized Graph Autoencoder for Graph Embedding (ARGA,ARVGA)
- 3 Attributed Graph Clustering: A Deep Attentional Embedding Approach(DAEGC)
- 4 Graph Attention Auto-Encoders(GATE)
- 5 Graph embedding clustering: Graph attention auto-encoder with cluster-specificity distribution(GEC-CSD)
- 6 Self-supervised graph convolutional clustering by preserving latent distribution(SGCPD)
本文包括了 GCN,GAT 及基於這些模型的 AE 來獲取 embedding 和 進行 clustering 相關論文。着重介紹其方法、框架、訓練流程、效果。
名稱 | 會議/期刊 | 時間 |
---|---|---|
Variational Graph Auto-Encoders | NIPS | 2016 |
Adversarially Regularized Graph Autoencoder for Graph Embedding | 2019.1 | |
Attributed Graph Clustering: A Deep Attentional Embedding Approach | IJCAI | 2019.1 |
Graph Attention Auto-Encoders | 2019.5.26 | |
Graph embedding clustering: Graph attention auto-encoder with cluster-specificity distribution | 2021.5 | |
Self-supervised graph convolutional clustering by preserving latent distribution | 2021 |
1 Variational Graph Auto-Encoders(VGAE,GAE)
本文只介紹圖自編碼器部分,不介紹變分圖自編碼器。
1.1 編碼器
編碼器部分為一個二層GCN,原始圖的鄰接矩陣 \(A\) 和節點特征矩陣 \(X\) 被送入 \(GCN\) ,網絡輸出節點 embedding 矩陣 \(Z\) :
1.2 解碼器
這里解碼器與編碼器並非完全對稱的結構,即並非將 embedding 再經過兩層 \(GCN\) 得到一個與輸入特征同緯度的節點特征矩陣\(\hat{X}\),並考慮 \(\hat{X}\) 對 \(X\) 的重構(有的模型是這么做的,本文后面會提到),而是簡單將 \(Z\) 乘以自身轉置,以計算節點間相似度:
將節點間相似度看作兩個節點間存在邊的概率,以此衡量重構圖和原始圖之間的差異,從而計算重構誤差:
上式本質上是計算 \(A\) 和 \(\hat{A}\) 的交叉熵。
1.3 實驗結果
* 代表不使用節點特征矩陣 \(X\) ,僅考慮圖結構信息 \(A\) 。
2 Adversarially Regularized Graph Autoencoder for Graph Embedding (ARGA,ARVGA)
本文在GAE的基礎上增添了一個對抗模型,總體稱為ARGA;如果引入變分機制,則為在VGAE的基礎上增添對抗模型,整體稱為ARVGA。本文同樣不介紹變分的部分,只介紹 ARGA。
2.2 問題定義
-
圖
一個圖被表示為 \(G = \{V,E,X\}\) ,\(V\) 為節點集合 \(V=\{v_i\}_{i=1...n}\),\(E\) 為邊集合,每一個元素都是一個二元組 \(e_{i,j}=<v_i,v_j> \in E\) 根據 \(V,E\) 可以構造圖 \(G\) 的鄰接矩陣 \(A\) ,這是一個 \(01-\)矩陣, \(A_{ij}=1 \ \ \ \iff \ \ \ e_{i,j} \in E\) 。 矩陣 \(X \in \R^{N\times F}\),表示着每一個節點的初始特征。
-
圖 embedding
給定一個圖 \(G\), 我們的任務是將每一個節點 \(v_i \in V\) 的特征從 \(\R^{F}\) 映射到一個低維空間 \(\R^d\)。即需要構造一個函數 \(f\),完成 \(f:(A,X) \to Z\),其中 \(z_i^T\) 是矩陣 \(Z \in \R^{n\times d}\) 的第 \(i\) 行。我們將 \(Z\) 稱為 embedding 矩陣,期望這個 embedding 可以重構拓撲結構 \(A\) 和節點特征矩陣 \(X\) 。
2.2 整體框架
包含兩部分
-
自編碼模型
自編碼模型接受圖的拓撲結構信息 \(A\) 及節點特征信息 \(A\),經過兩層 \(GCN\) 得到 embedding 矩陣 \(Z\),並使用 \(Z\) 重構 \(A\)。
-
對抗模型
對抗模型強制潛變量盡可能匹配先驗分布 ,該模塊用於判斷當前潛變量是來自於編碼器得到的 embedding 矩陣 \(Z\) 還是先驗分布(本文假設為高斯分布)所產生的噪聲。
整個框架圖如下:
2.2.1 自編碼模型
這一部分與GAE完全相同
2.2.2 對抗模型
我們將先驗分布產生的高斯噪聲視作真實樣本,將 embedding 視作 虛假樣本,利用判別器強制使得 embedding 匹配先驗分布,以使 embedding 滿足高斯分布。這是一種 VAE-GAN 的思想。需要注意的是,\(Z'\) 來自於 \(GCN-1\) 的輸出 \(+\) 高斯噪聲 , \(Z\) 來自於 \(GCN-2\) 的輸出,二者維度不一定相同,因此判別器在對二者進行判別時,需要各自經過兩個輸入維度不同的 \(MLP\),最終輸出一個實數來代表分數 \(R\) 。
2.3 實驗結果


可以看到,節點聚類任務上,ARGE還是明顯優於GAE的。
3 Attributed Graph Clustering: A Deep Attentional Embedding Approach(DAEGC)
本文是一個 t-order 模型,即原本的 \(GCN\) 只考慮了一階鄰域,而本方法考慮了 \(t\) 階鄰域。與此相同的還有與本模型同時提出的 \(AGC\) 模型。二者的區別在於 \(DAEGC\) 為 $t-order $ 注意力模型,而 \(AGC\) 為 \(t-order\) 卷積模型
3.1 模型
首先對圖的鄰接矩陣 \(A\) 進行轉移獲取 \(t-order\) 鄰接矩陣:
然后 encoder 就是一個簡單的 \(GAT\) 模型;decoder 的 loss 由結構和特征兩部分組成,結構部分與 \(GAE\) 相同,都是 $\hat{A}_{ij} = sigmoid(z_i^T z_j) $ 且 \(L_r = \sum_{i=1}^n loss(A_{i,j}, \hat{A}_{i,j})\);特征部分采用鄰域這一思想,在損失函數中引入中心節點 \(u\),這樣就能表示中心節點周圍對於 \(u\) 的距離,使得 \(P\) 的分布盡量接近 \(Q\) 的分布,即上調 \(P\) ,下調 \(Q\) 。

3.2 實驗結果
\(DAEGC\) 效果比 \(GAE\) 好很多

4 Graph Attention Auto-Encoders(GATE)
這個之前寫過一個博客
https://www.cnblogs.com/popodynasty/p/15064675.html
5 Graph embedding clustering: Graph attention auto-encoder with cluster-specificity distribution(GEC-CSD)
這是一個最近提出的圖深度聚類的 SOTA 方法。本篇論文提出的模型將節點表示學習(nodes representations learning)和聚類(clustering)統一到一個框架中,並提出一個新的深度圖注意力自編碼器(deep graph attention auto-encoder)來做節點聚類,從而利用自注意力機制(self-attention mechanism)和節點屬性重構(node attributes reconstruction)來表示節點。此外,該模型還通過\(L_1,L_2\) 范數來約束節點分布。
5.1 迄今提出的圖卷積自編碼器聚類的局限
-
他們忽略了集群特異性分布
上圖為 Cora 數據集上的集群特異性分布示意圖。
-
圖1中,當沒有 CSD 約束時,節點的特征分布在近 10 個維度上,而且它們非常凌亂。即使在多數維度上,節點的特征也非常相似,這可能會使算法將它們全部聚類為同一類。
-
圖2中,節點的特征在 CSD 約束下更具辨別力。例如,屬於第一個集群的樣本的特征主要集中分布在第6維和第7維。因此,CSD 約束有助於算法划分樣本。
-
-
無法同時重構節點屬性和圖結構,導致 embedding 不夠良好
-
embedding 和 clustering 分別獨立進行,因此網絡無法通過端到端的方式訓練節點集群方式,這限制了它的性能
5.2 主要貢獻
- 我們提出了一種新穎的基於圖注意力自編碼器的聚類模型,它加入了節點表示學習和聚類,形成一個統一的框架。 因此,學習到的節點表示不僅可以很好地編碼數據信息,還可以很好地編碼表征集群結構。
- 我們發現 \(L_1,L_2\) 范數在表征圖結構數據的維度 CSD 空間,然后將其應用於學習節點表示,這很好地表征了集群結構,因此提高聚類結果。
- 聚類時考慮了節點屬性重構和節點鄰居信息,這有更好地進行圖 embedding 。
5.3 相關工作的局限
- \(GAE, ARGAE:\) 只對圖結構信息進行重構
- \(GATE:\) 重構了圖節點信息和圖結構信息,但只做到了 embedding 這一步,還需要后處理操作以得到聚類標簽
- \(DAEGC:\) 得到 embedding 並進行了聚類工作,但解碼器部分只是簡單地進行了一個 \(sigmoid(Z^TZ)\) 計算相似度,即解碼器無法學習
無論如何,之前的方法都沒考慮 CSD 約束。
5.4 模型
圖為 \(GEC-CSD\) 的整體架構:
該模型包含兩部分:
-
生成器 \(G\):
事實上生成器 \(G\) 就是在之前學到的 \(GATE\) 的基礎上,加上了 \(L_{1,2}\) 范式約束。
-
encoder 輸入 \(A, X\) ,通過兩層非線性的圖自注意力編碼器,得到潛變量 embedding 矩陣 \(Z\)。
為了使潛變量 embedding \(Z\) 更具有意義,我們強制 \(Z\) 的實際分布 \(Q\) 盡可能近似一個目標分布 \(P\)。根據 \(t-SNE\) 的思想,如果分布 \(P\) 和分布 \(Q\) 相似,則兩個空間的數據也應該近似。因此如果對 \(Z\) 進行聚類得到的簇 \(\mu_t\) 不夠理想,那么 \(P,Q\) 就會有較大的差距。
-
decoder 分為兩部分,一部分采用內積重建圖結構 \(A\), 另一部分采用兩層非線性的圖自注意力解碼器,重建圖節點信息 \(X\)。之前提到 decoder 是部分可學習的,此處可以看出 Inner Product Decoder 不可學習, Graph Attention Decoder 可學習。
重構損失:
\[L_R = \frac{1}{N}\sum_{S=1}^N[||x_S-\hat{x}_S]||^2_2 - \epsilon_r \sum_{j \in N_S} \phi (-z_S^Tz_j) \]\(L_{1,2}\) 范式懲罰(使得 embedding \(Z\) 的實際分布 \(Q\) 近似目標分布\(P\)):
為了使得 embedding 能夠更好的用於聚類任務,我們需要對 embedding 的分布進行約束,這是簡單的 K-Means 所無法完成的。因此,本文提出了一種優化的聚類方法:定義一個簇類中心矩陣 \(\mu \in \R^{C\times F}\),它是可訓練的。\(\mu\) 第一次被初始化為 \(X\) 的 K-Means 結果。然后本文提出了一個方法來訓練 \(\mu\):
為了表征節點 embedding 向量 \(z_i\) 與簇類中心 \(\mu_t\) 的關系,本文提出了一個獨特的激活函數 \(A(·,·)\) 如下:
\[A(z_s,\mu_t) =\frac{(1+||z_s-\mu_t||^2)^{-1}}{\sum_{t'}(1+||z_s-\mu_{t'}||^2)^{-1}} \]這個激活函數實際上是一個歸一化的過程。
利用這個激活函數,我們可以求得數據的真實分布矩陣 \(Q \in \R^{N\times C}\),\(q_{st} = A(z_s,\mu_t)\) 。
接下來,借助 t-SNE 算法的思想,我們可以利用 \(Q\) 來計算一個目標分布 \(P\),即將 \(Q\) 映射到 \(P\)。我們希望目標分布 \(P\) 具有以下屬性:
(1)它可以進一步強調更多高置信度分配的節點(2)它可以加強預測(3)它可以防止大集群扭曲節點的潛在表示。 最終 \(P\) 的計算公式被定義如下:
\[p_{st} = \frac{q_{st}^2/\sum_s q_{st}}{\sum_{t'}q_{st'}^2/\sum_sq_{st'}} \]然后我們期望當前分布與目標分布盡可能接近,一種方法是使用 \(KLD\) ,本文采用的是 \(L_{1-2}\) 范式:
\[L_C = \sum f(Q,P) = \epsilon_c ||Q-P||^2_F \]最后,本文加了一個小 trick ,引入 CSD 損失,一定程度上進一步提升了模型效果
CSD 損失(使聚類滿足集群特異性分布):
\[L_{CSD} = \beta||Z||^2_{1,2}=\beta\sum_{S=1}^N||Z_S||^2_1 \] -
-
判別器 \(D:\)
判別器用於判斷當前數據來自目標分布 \(P\)(true)還是 \(G\) 產生的實際分布 \(Q\) (false)
最終模型的聚類結果由 self-training clustering layer 的 \(Q\) 矩陣對各行求最大值索引得到。
5.5 實驗結果
\(SOTA\) 方法

6 Self-supervised graph convolutional clustering by preserving latent distribution(SGCPD)
本文與上一篇 GEC-CSD 同為西交的工作。性能上本文更優。本文提出的框架 SGCPD 主要分為四個模塊:
- Graph Attention Auto-Encoder
- Distribution Preserving Module
- Node Clustering Network
- Self-Supervision Network
整個模型框架圖如下:
6.1 Graph Attention Auto-Encoder
這里就是簡單的兩層 GATE 框架,輸入 \(X\) 和 \(A\) ,Graph Attention Encoder 學習得到 embedding 矩陣 \(Z\),Graph Attention Decoder 對 \(Z\) 進行解碼輸出 \(\hat{X}\) 重構 \(X\),Inner Product Decoder 對 \(Z\) 進行階碼(簡單的內積)輸出 \(\hat{A}\) 重構 \(A\)。
該模塊損失表示如下:
6.2 Distribution Preserving Module
設計這一模塊的主要目的是使得 embedding 矩陣 \(Z\) 與原本的節點特征矩陣 \(X\) 保持相同的分布。
該模塊進行的工作如下:
-
首先定義一個可訓練的簇類中心矩陣 \(\xi \in \R^{K\times F}\)。 對節點特征矩陣 \(X \in \R^{N\times F}\) 進行 K-Means 聚類,得到的結果用於初始化 \(\xi\) 。
-
將 Graph Attention Auto-Encoder 模塊得到的 embedding 矩陣 \(Z \in \R^{N \times d}\) 經過一個三層全連接層,線性變換到 \(\R^{N \times F}\),記作 \(g(Z)\)
-
將 \(X\) 和 \(g(Z)\) 分別與 \(\xi\) 共同傳入一個激活函數函數 \(f(·,·)\) ,得到兩個目標分布 \(f(X;\xi)\) 和實際分布 \(f(g(Z);\xi)\)
這個激活函數 \(f\) 與上一篇論文 GEC-CSD 中提出的激活函數相同,都反映了節點分配到簇類中心的概率。
\[f(z_s,\mu_t) =\frac{(1+||z_s-\mu_t||^2)^{-1}}{\sum_{t'}(1+||z_s-\mu_{t'}||^2)^{-1}} \] -
求上述兩個分布的 KLD ,作為該模塊的損失,即:
\[L_D = \sum_{i=1}^N f(X;\xi) \log \frac{f(X;\xi)}{f(g(Z); \xi)} \]
6.3 Node Clustering Network
這一模塊 GEC-CSD 的 self-training clustering layer 模塊完全一致,作用是約束 embedding 的分布滿足 t 分布,以獲得一系列良好的特性,這里不再贅述。
最終整個框架的聚類結果由 Node Clustering Network 模塊中的 真實分布 \(Q\) 矩陣對各行求最大值索引得到。
6.4 Self-Supervision Network
這一部分是將各個節點的 embedding \(z_i\) 作為 input ,將 Node Clustering Network 中的目標分布 \(p_i\) 作為 label,采用三層全連接網絡進行自監督學習的模塊。最終該模塊的 loss 加入到整個模型的 loss 中,強制 Graph Attention Auto-Encoder 模塊學習 \(P\) 分布,進一步使得 embedding 接近目標分布 \(P\) ,從而提高了 embedding 的質量。

6.5 整個框架
整個框架的 loss 合並了各個模塊的 loss,即:
模型最終的聚類結果直接由 Node Clustering Network 模塊中的真實分布矩陣 \(Q\) 對各行求最大值索引得到。