圖 embedding & clustering 相關論文筆記


本文包括了 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\)

\[Z = GCN(X,A) \]

1.2 解碼器

這里解碼器與編碼器並非完全對稱的結構,即並非embedding 再經過兩層 \(GCN\) 得到一個與輸入特征同緯度的節點特征矩陣\(\hat{X}\),並考慮 \(\hat{X}\)\(X\) 的重構(有的模型是這么做的,本文后面會提到),而是簡單將 \(Z\) 乘以自身轉置,以計算節點間相似度:

\[\hat{A} = sigmoid(ZZ^T) \]

將節點間相似度看作兩個節點間存在邊的概率,以此衡量重構圖和原始圖之間的差異,從而計算重構誤差:

\[L = E_{q(Z|X,A)}[\log p(A|Z)] \]

上式本質上是計算 \(A\)\(\hat{A}\) 的交叉熵。

1.3 實驗結果

* 代表不使用節點特征矩陣 \(X\) ,僅考慮圖結構信息 \(A\)

image-20210730121500202


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 整體框架

包含兩部分

  1. 自編碼模型

    自編碼模型接受圖的拓撲結構信息 \(A\) 及節點特征信息 \(A\),經過兩層 \(GCN\) 得到 embedding 矩陣 \(Z\),並使用 \(Z\) 重構 \(A\)

  2. 對抗模型

    對抗模型強制潛變量盡可能匹配先驗分布 ,該模塊用於判斷當前潛變量是來自於編碼器得到的 embedding 矩陣 \(Z\) 還是先驗分布(本文假設為高斯分布)所產生的噪聲。

整個框架圖如下:

image-20210730205837864

2.2.1 自編碼模型

這一部分與GAE完全相同

2.2.2 對抗模型

我們將先驗分布產生的高斯噪聲視作真實樣本,將 embedding 視作 虛假樣本,利用判別器強制使得 embedding 匹配先驗分布,以使 embedding 滿足高斯分布。這是一種 VAE-GAN 的思想。需要注意的是,\(Z'\) 來自於 \(GCN-1\) 的輸出 \(+\) 高斯噪聲 , \(Z\) 來自於 \(GCN-2\) 的輸出,二者維度不一定相同,因此判別器在對二者進行判別時,需要各自經過兩個輸入維度不同的 \(MLP\),最終輸出一個實數來代表分數 \(R\)

2.3 實驗結果

image-20210731203451866 image-20210731203520677

可以看到,節點聚類任務上,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\) 鄰接矩陣:

\[A = \frac{A + A^2 + A^3 + ... + A^t}{t} \]

然后 encoder 就是一個簡單的 \(GAT\) 模型;decoderloss 由結構和特征兩部分組成,結構部分與 \(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\)

image-20210731210511232

3.2 實驗結果

\(DAEGC\) 效果比 \(GAE\) 好很多

image-20210731210609497

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 迄今提出的圖卷積自編碼器聚類的局限

  1. 他們忽略了集群特異性分布

    image-20210801165558079

    上圖為 Cora 數據集上的集群特異性分布示意圖。

    • 圖1中,當沒有 CSD 約束時,節點的特征分布在近 10 個維度上,而且它們非常凌亂。即使在多數維度上,節點的特征也非常相似,這可能會使算法將它們全部聚類為同一類。

    • 圖2中,節點的特征在 CSD 約束下更具辨別力。例如,屬於第一個集群的樣本的特征主要集中分布在第6維和第7維。因此,CSD 約束有助於算法划分樣本。

  2. 無法同時重構節點屬性和圖結構,導致 embedding 不夠良好

  3. embeddingclustering 分別獨立進行,因此網絡無法通過端到端的方式訓練節點集群方式,這限制了它的性能

5.2 主要貢獻

  1. 我們提出了一種新穎的基於圖注意力自編碼器的聚類模型,它加入了節點表示學習和聚類,形成一個統一的框架。 因此,學習到的節點表示不僅可以很好地編碼數據信息,還可以很好地編碼表征集群結構。
  2. 我們發現 \(L_1,L_2\) 范數在表征圖結構數據的維度 CSD 空間,然后將其應用於學習節點表示,這很好地表征了集群結構,因此提高聚類結果。
  3. 聚類時考慮了節點屬性重構和節點鄰居信息,這有更好地進行圖 embedding

5.3 相關工作的局限

  1. \(GAE, ARGAE:\) 只對圖結構信息進行重構
  2. \(GATE:\) 重構了圖節點信息和圖結構信息,但只做到了 embedding 這一步,還需要后處理操作以得到聚類標簽
  3. \(DAEGC:\) 得到 embedding 並進行了聚類工作,但解碼器部分只是簡單地進行了一個 \(sigmoid(Z^TZ)\) 計算相似度,即解碼器無法學習

無論如何,之前的方法都沒考慮 CSD 約束。

5.4 模型

圖為 \(GEC-CSD\) 的整體架構:

image-20210801184714049

該模型包含兩部分:

  • 生成器 \(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'}} \]

    image-20210801185944844

    然后我們期望當前分布與目標分布盡可能接近,一種方法是使用 \(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\) 方法

image-20210801193525760

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

整個模型框架圖如下:

image-20210808201703472

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\)

image-20210808201138449

該模塊損失表示如下:

\[L_{R_c} = \sum_{i=1}^N ||x_i-\hat{x}_i||^2_2\\ L_{R_a} = \sum_{j\in \N_i} \phi(z_i^Tz_j) \\ L_R = \frac{1}{N}\sum_{i=1}^N[||x_i-\hat{x}_i||^2_2 + \eta_r \sum_{j \in \N_i}\phi(z_i^Tz_j)] \]

6.2 Distribution Preserving Module

設計這一模塊的主要目的是使得 embedding 矩陣 \(Z\) 與原本的節點特征矩陣 \(X\) 保持相同的分布。

image-20210808223304152

該模塊進行的工作如下:

  • 首先定義一個可訓練的簇類中心矩陣 \(\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-CSDself-training clustering layer 模塊完全一致,作用是約束 embedding 的分布滿足 t 分布,以獲得一系列良好的特性,這里不再贅述。

image-20210809000500757

最終整個框架的聚類結果由 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 的質量。

image-20210809001348949

6.5 整個框架

整個框架的 loss 合並了各個模塊的 loss,即:

\[\varphi = \varphi_R \text{(reconstruction loss)} + \lambda_1 \varphi_D \text{(distribution loss)} + \lambda_2 \varphi_C \text{(node clustring loss)} + \lambda_3 \varphi_S \text{(self-supervision loss)} \]

模型最終的聚類結果直接由 Node Clustering Network 模塊中的真實分布矩陣 \(Q\) 對各行求最大值索引得到。

6.6 實驗結果

image-20210809002331165


免責聲明!

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



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