論文信息
論文標題: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 動態地連接了來自不同層的多尺度特征。
- AGCN heterogeneity-wise fusion module (
上述兩個模塊都是基於注意力機制 ,動態度量相應特征對后續特征融合的重要性。
定義如 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
Step2:學習相應的注意力系數
-
- 將 $\mathrm{Z}_{i}$ 和 $\mathrm{H}_{i}$ 先進行拼接,
- 將上述拼接的 $ \left[\mathrm{Z}_{i} \| \mathrm{H}_{i}\right] \in \mathbb{R}^{n \times 2 d_{i}}$ ,進行全連接操作;
- 將上述結果使用激活函數 LeakyReLU ;
- 最后再使用 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)
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)
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)
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])
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 )
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)
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:
-
- the multi-scale feature fusion (marked as AGCN-S[S]) ;
- the attention-based scale-wise strategy (marked as AGCN-S[A]) ;
在第一個方面,通過比較表4中每個數據集的第二行和第三行的實驗結果,我們可以發現,在大多數情況下,多尺度特征融合可以幫助獲得更好的聚類性能。唯一的例外是HHAR,其中間層的一些特征受到過度平滑的問題,導致負傳播。
對於第二個方面,通過比較表4中第三行和第四行的每個數據集的結果,我們可以發現,考慮基於注意力的規模級策略能夠獲得最好的聚類性能。特別是在HHAR數據集中,考慮基於注意力的規模級策略可以充分應對上述性能下降的問題。這一現象被認為是由於基於注意力的尺度策略可以分配一些權值較小的負特征,避免了負傳播。這曾經驗證了基於注意力的機制的有效性。
多尺度特征分析
鄰居數量 𝑘′ 實驗
由於鄰域 𝑘‘ 的數量顯著影響鄰接矩陣的質量,我們對非圖數據集,即USPS、HHAR和路透社進行了 𝑘’ 的參數分析。從 Figure 4 中,我們可以觀察到我們的模型對 𝑘‘ 不敏感。
可視化
為了直觀地驗證我們的方法的有效性,我們繪制了我們方法的學習表示的二維t分布隨機鄰域嵌入(t-SNE) 可視化,以及圖5中HHAR數據集上比較最好的[24]可視化。我們可以發現,通過我們的方法獲得的特征表示對不同的簇具有最好的可分性,其中來自同一類的樣本自然地聚集在一起,不同組之間的差距是最明顯的一個。這一現象證實了,與最先進的方法相比,我們的方法產生了最有區別的表示。
4 Conclusion
在本文中,我們提出了一種新的深度聚類方法,即注意驅動圖聚類網絡(AGCN),它同時考慮了動態融合策略和多尺度特征融合。通過利用兩個新的基於注意力的融合模塊,AGCN能夠自適應地學習權重的異質性,以實現這些特征融合。此外,在常用的基准數據集上進行的大量實驗,驗證了所提出的網絡優於最先進的方法,特別是對於低質量的圖。
修改歷史
2022-02-17 創建文章
2022-06-09 修訂文章