論文解讀(AGCN)《 Attention-driven Graph Clustering Network》


論文信息

論文標題:Attention-driven Graph Clustering Network
論文作者:Zhihao Peng, Hui Liu, Yuheng Jia, Junhui Hou
論文來源:2021, ACM Multimedia
論文地址:download 
論文代碼:download 

1 Introduction

  研究現狀:使用自動編碼器提取節點屬性特征,利用圖卷積網絡捕獲拓撲圖特征。

  缺點如下:

    • 沒有一種靈活的機制融合 AE 和 GCN 產生的特征表示。[ 說白了就是實驗效果不好 ]
    • 忽略不同層 embedding 的多尺度信息,進行后續的聚類分配導致聚類結果較差。[  本文的一個優勢 ]

  AGCN 包括了兩個 融合 模塊

    • AGCN heterogeneity-wise fusion module (AGCN-H):AGCN-H 自適應地合並了來自同一層的 GCN 特征和 AE 特征。
    • AGCN scale-wise fusion module (AGCN-S):AGCN-S 動態地連接了來自不同層的多尺度特征。

  上述兩個模塊都是基於注意力機制 ,動態度量相應特征對后續特征融合的重要性。

  定義如 Table 1 所示:

    

2 Method

  本章節,先介紹  AGCN-H 和 AGCN-S ,然后介紹訓練過程。

  AGCN 架構如下

  

  具體的兩個模塊:

  

2.1 AGCN-H

  AGCN-H 自適應地合並了來自同一層的 GCN 特征和 AE 特征。通過注意力系數學習,隨后進行加權特征融合。

  AGCN-H 的對應說明如 Figure 2(a) 所示,實現細節如下:

  Step1:利用自編碼器提取潛在表示,重構損失如下:

    $\begin{array}{l}\mathcal{L}_{R}=\|\mathrm{X}-\hat{\mathrm{X}}\|_{F}^{2} \\\text { s.t. } \quad\left\{\mathrm{H}_{i}=\phi\left(\mathrm{W}_{i}^{\mathrm{e}} \mathrm{H}_{i-1}+\mathrm{b}_{i}^{\mathrm{e}}\right)\right. \\\left.\hat{\mathrm{H}}_{i}=\phi\left(\mathrm{W}_{i}^{d} \hat{\mathrm{H}}_{i-1}+\mathrm{b}_{i}^{d}\right), i=1, \cdots, l\right\}\end{array}\quad \quad \quad (1)$

class AE(nn.Module): def __init__(self, n_enc_1, n_enc_2, n_enc_3, n_dec_1, n_dec_2, n_dec_3, n_input, n_z): super(AE, self).__init__() # encoder
        self.enc_1 = Linear(n_input, n_enc_1) self.enc_2 = Linear(n_enc_1, n_enc_2) self.enc_3 = Linear(n_enc_2, n_enc_3) # extracted feature by AE
        self.z_layer = Linear(n_enc_3, n_z) # decoder
        self.dec_1 = Linear(n_z, n_dec_1) self.dec_2 = Linear(n_dec_1, n_dec_2) self.dec_3 = Linear(n_dec_2, n_dec_3) self.x_bar_layer = Linear(n_dec_3, n_input) def forward(self, x): enc_z2 = F.relu(self.enc_1(x)) enc_z3 = F.relu(self.enc_2(enc_z2)) enc_z4 = F.relu(self.enc_3(enc_z3)) z = self.z_layer(enc_z4) dec_z2 = F.relu(self.dec_1(z)) dec_z3 = F.relu(self.dec_2(dec_z2)) dec_z4 = F.relu(self.dec_3(dec_z3)) x_bar = self.x_bar_layer(dec_z4) return x_bar, enc_z2, enc_z3, enc_z4, z
AE Code

  Step2:學習相應的注意力系數

    1. 將  $\mathrm{Z}_{i}$  和  $\mathrm{H}_{i}$  先進行拼接,
    2. 將上述拼接的 $ \left[\mathrm{Z}_{i} \| \mathrm{H}_{i}\right] \in \mathbb{R}^{n \times 2 d_{i}}$  ,進行全連接操作;
    3. 將上述結果使用激活函數 LeakyReLU ;
    4. 最后再使用 softmax function 和 $\ell_{2}$  normalization;

  Step2 可以公式化為 :

    $\mathrm{M}_{i}=\ell_{2}\left(\operatorname{softmax}\left(\left(\text { LeakyReLU }\left(\left[\mathrm{Z}_{i} \| \mathrm{H}_{i}\right] \mathrm{W}_{i}^{a}\right)\right)\right)\right)\quad \quad\quad(2)$

  其中:

    • $\mathrm{M}_{i}=\left[\mathrm{m}_{i, 1} \| \mathrm{m}_{i, 2}\right] \in \mathbb{R}^{n \times 2}$ 是 attention coefficient matrix  ,且 每項大於 0;
    • $\mathrm{m}_{i, 1}$,$ \mathrm{~m}_{i, 2}$ 是衡量 $\mathrm{Z}_{i}$、$\mathrm{H}_{i}$ 重要性的權重向量;
        m1 = self.mlp1( torch.cat((h1,z1), 1) ) m1 = F.normalize(m1,p=2)
Step2 Code

  Step 3融合第 $i$ 層的 GCN 的特征 $Z_{i}$ 和  AE 的特征  $ \mathrm{H}_{i} $ :

    $\mathrm{Z}_{i}^{\prime}=\left(\mathrm{m}_{i, 1} 1_{i}\right) \odot \mathrm{Z}_{i}+\left(\mathrm{m}_{i, 2} 1_{i}\right) \odot \mathrm{H}_{i}\quad \quad \quad (3)$ 

  其中:

    • $1_{i} \in \mathbb{R}^{1 \times d_{i}}$ 代表着全 $1$ 向量;
    • $ '\odot'$ 代表着  Hadamard product  ;
        m11 = torch.reshape(m1[:,0], [n_x, 1]) m12 = torch.reshape(m1[:,1], [n_x, 1]) m11_broadcast =  m11.repeat(1,500) m12_broadcast =  m12.repeat(1,500) z1_bar = m11_broadcast.mul(z1)+m12_broadcast.mul(h1)
Step3 Code

  Step 4將上述生成的  $Z_{i}^{\prime} \in   \mathbb{R}^{n \times d_{i}}$  當作第 $i+1$ 層 GCN 的輸入,獲得 $\mathrm{Z}_{i+1}$  :

    $\mathrm{Z}_{i+1}=\text { LeakyReLU }\left(\mathrm{D}^{-\frac{1}{2}}(\mathrm{~A}+\mathrm{I}) \mathrm{D}^{-\frac{1}{2}} \mathrm{Z}_{i}^{\prime} \mathrm{W}_{i}\right)\quad \quad (4)$

  其中

    • GCN 原始模型中的鄰接矩陣 $A$ 變形為 $ D^{-\frac{1}{2}}(A+  I)  \mathrm{D}^{-\frac{1}{2}}$ ;
    • $\mathrm{I} \in \mathbb{R}^{n \times n}$ ;
z2 = self.agcn_1( z1_bar, adj)
Step4 Code

2.2 AGCN-S

  Step1:將  multi-scale features $Z_{i}$  拼接在一起。

    $\mathrm{Z}^{\prime}=\left[\mathrm{Z}_{1}\|\cdots\| \mathrm{Z}_{i}\|\cdots\| \mathrm{Z}_{l} \| \mathrm{Z}_{l+1}\right]\quad\quad \quad (5)$

  其中:

    • $\mathrm{Z}_{l+1}=\mathrm{H}_{l} \in   \mathbb{R}^{n \times d_{l}}$  表示  $\mathrm{Z}_{l+1}$  的信息只來自自編碼器。

  Step2:將上述生成的 $\mathrm{Z}^{\prime}$ 放入全連接網絡,並使用  $\text { softmax- } \ell_{2}$  標准化:

    $\mathrm{U}=\ell_{2}\left(\operatorname{softmax}\left(\operatorname{LeakyReLU}\left(\left[\mathrm{Z}_{1}\|\cdots\| \mathrm{Z}_{i}\|\cdots\| \mathrm{Z}_{l} \| \mathrm{Z}_{l+1}\right] \mathrm{W}^{s}\right)\right)\right)\quad \quad\quad(6)$

  其中:

    • $\mathrm{U}=\left[\mathrm{u}_{1}\|\cdots\| \mathrm{u}_{i}\|\cdots\| \mathrm{u}_{l} \| \mathrm{u}_{l+1}\right] \in \mathbb{R}^{n \times(l+1)}$  且每個數大於 $0$ ;
    • $u_{i}$  代表了  $\mathrm{Z}_{i}$  的  parallel attention coefficient ;
u  = self.mlp(torch.cat((z1,z2,z3,z4,z),1)) u = F.normalize(u,p=2) u0 = torch.reshape(u[:,0], [n_x, 1]) u1 = torch.reshape(u[:,1], [n_x, 1]) u2 = torch.reshape(u[:,2], [n_x, 1]) u3 = torch.reshape(u[:,3], [n_x, 1]) u4 = torch.reshape(u[:,4], [n_x, 1])
Step1&2 Code

  Step3:為了進一步探究多尺度特征,考慮在 attention 系數上施加一個相應的權重:

    $\mathrm{Z}^{\prime}= {\left[\left(\mathrm{u}_{1} 1_{1}\right) \odot \mathrm{Z}_{1}\|\cdots\|\left(\mathrm{u}_{i} 1_{i}\right) \odot \mathrm{Z}_{i}\|\cdots\|\left(\mathrm{u}_{l} 1_{l}\right) \odot \mathrm{Z}_{l} \|\right.} \left.\left(\mathrm{u}_{l+1} 1_{l+1}\right) \odot \mathrm{Z}_{l+1}\right]\quad \quad \quad (7)$

        tile_u0 = u0.repeat(1,500) tile_u1 = u1.repeat(1,500) tile_u2 = u2.repeat(1,2000) tile_u3 = u3.repeat(1,10) tile_u4 = u4.repeat(1,10) net_output = torch.cat((tile_u0.mul(z1), tile_u1.mul(z2), tile_u2.mul(z3), tile_u3.mul(z4), tile_u4.mul(z)), 1 ) 
Step3 Code

  Step4 :$ Z^{\prime}$ 將作為最終預測的輸入,預測輸出為 $Z \in \mathbb{R}^{n \times k} $ ,其中  $k$ 代表聚類數。 

    $\begin{array}{l}\mathrm{Z}=\operatorname{softmax}\left(\mathrm{D}^{-\frac{1}{2}}(\mathrm{~A}+\mathrm{I}) \mathrm{D}^{-\frac{1}{2}} \mathrm{Z}^{\prime} \mathrm{W}\right) \\\text { s.t. } \quad \sum_{j=1}^{k} z_{i, j}=1, z_{i, j}>0\end{array}\quad \quad\quad (8)$

  預測輸出計算:

    $\begin{array}{l} y_{i}=\underset{j}{\arg \max }\;\;\; \mathrm{z}_{i, j} \\ \text { s.t. } \quad j=1, \cdots, k \end{array}\quad\quad\quad (9)$

net_output = self.agcn_z(net_output, adj, active=False)
Step4 Code

2.3 Training process

  訓練過程包括兩個步驟:

  Step 1

  使用    Student's t-distribution  作為核來度量 embedded point  和質心之間的相似度:

    ${\large q_{i, j}=\frac{\left(1+\left\|\mathrm{h}_{i}-\mu_{j}\right\|^{2} / \alpha\right)^{-\frac{\alpha+1}{2}}}{\sum_{j}\left(1+\left\|\mathrm{h}_{i}-\mu_{j}\right\|^{2} / \alpha\right)^{-\frac{\alpha+1}{2}}}}\quad\quad\quad(10) $

    輔助目標分布 $P$:

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

  Step 2 

  通過輔助目標分布  $P$  最小化組合特征分布  $Z$  和自編碼器特征分布 $H$  的 KL 散度。

    $\begin{aligned}\mathcal{L}_{K L} &=\lambda_{1} * K L(\mathrm{P}, \mathrm{Z})+\lambda_{2} * K L(\mathrm{P}, \mathrm{H}) \\&=\lambda_{1} \sum\limits _{i} \sum\limits_{j} p_{i, j} \log \frac{p_{i, j}}{z_{i, j}}+\lambda_{2} \sum\limits_{i} \sum\limits_{j} p_{i, j} \log \frac{p_{i, j}}{q_{i, j}}\end{aligned}\quad\quad\quad(12)$

  其中:

    • $\lambda_{1}>0$  和  $\lambda_{2}>0$  是 trade-off parameters ;

  聯合 Eq.1 和 Eq.12 得到總損失為:

    $\mathcal{L}=\mathcal{L}_{R}+\mathcal{L}_{K L}\quad\quad\quad(13)$

  AGCN 的訓練過程如  Algorithm 1  所示:

  

3 Experiments

數據集

  

聚類結果

  

消融實驗

  進行消融研究,以評估  AGCN-H  模塊和  AGCN-S  模塊的效率和有效性。此外,我們還分析了不同尺度特征對聚類性能的影響。結果如  Table 4 所示:

  

  • Analysis of AGCN-H module

    我們可以觀察到,AGCN-H 模塊在一定程度上提高了性能 【相較於沒有使用】。

  • Analysis of AGCN-S module

   從兩個方面評價 AGCN-S module:

    1. the multi-scale feature fusion (marked as AGCN-S[S])  ;
    2. the attention-based scale-wise strategy (marked as AGCN-S[A]) ;

  在第一個方面,通過比較表4中每個數據集的第二行和第三行的實驗結果,我們可以發現,在大多數情況下,多尺度特征融合可以幫助獲得更好的聚類性能。唯一的例外是HHAR,其中間層的一些特征受到過度平滑的問題,導致負傳播。

  對於第二個方面,通過比較表4中第三行和第四行的每個數據集的結果,我們可以發現,考慮基於注意力的規模級策略能夠獲得最好的聚類性能。特別是在HHAR數據集中,考慮基於注意力的規模級策略可以充分應對上述性能下降的問題。這一現象被認為是由於基於注意力的尺度策略可以分配一些權值較小的負特征,避免了負傳播。這曾經驗證了基於注意力的機制的有效性。

多尺度特征分析

  為了評估不同尺度特征對聚類性能的貢獻,我們在HHAR數據集上使用所提模型的不同層進行聚類。從 Figure 3 中,我們可以看出,與僅使用來自一層的特征相比,動態融合來自不同層的特征可以顯著提高聚類性能。

    

鄰居數量 𝑘′ 實驗

     由於鄰域 𝑘‘ 的數量顯著影響鄰接矩陣的質量,我們對非圖數據集,即USPS、HHAR和路透社進行了 𝑘’ 的參數分析。從 Figure 4 中,我們可以觀察到我們的模型對 𝑘‘ 不敏感。

    

可視化

  為了直觀地驗證我們的方法的有效性,我們繪制了我們方法的學習表示的二維t分布隨機鄰域嵌入(t-SNE) 可視化,以及圖5中HHAR數據集上比較最好的[24]可視化。我們可以發現,通過我們的方法獲得的特征表示對不同的簇具有最好的可分性,其中來自同一類的樣本自然地聚集在一起,不同組之間的差距是最明顯的一個。這一現象證實了,與最先進的方法相比,我們的方法產生了最有區別的表示。

    

4 Conclusion

  在本文中,我們提出了一種新的深度聚類方法,即注意驅動圖聚類網絡(AGCN),它同時考慮了動態融合策略和多尺度特征融合。通過利用兩個新的基於注意力的融合模塊,AGCN能夠自適應地學習權重的異質性,以實現這些特征融合。此外,在常用的基准數據集上進行的大量實驗,驗證了所提出的網絡優於最先進的方法,特別是對於低質量的圖。

 

修改歷史

2022-02-17 創建文章
2022-06-09 修訂文章

 

 

 

論文解讀目錄


免責聲明!

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



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