• 论文解读(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:利用自编码器提取潜在表示,重构损失如下:

        LR=XˆX2F s.t. {Hi=ϕ(WeiHi1+bei)ˆHi=ϕ(WdiˆHi1+bdi),i=1,,l}(1)LR=XX^2F s.t. {Hi=ϕ(WeiHi1+bei)H^i=ϕ(WdiH^i1+bdi),i=1,,l}(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. 将  ZiZi  和  HiHi  先进行拼接,
      2. 将上述拼接的 [ZiHi]Rn×2di  ,进行全连接操作;
      3. 将上述结果使用激活函数 LeakyReLU ;
      4. 最后再使用 softmax function 和 2  normalization;

      Step2 可以公式化为 :

        Mi=2(softmax(( LeakyReLU ([ZiHi]Wai))))(2)

      其中:

      • Mi=[mi,1mi,2]Rn×2 是 attention coefficient matrix  ,且 每项大于 0;
      • mi,1 mi,2 是衡量 ZiHi 重要性的权重向量;
            m1 = self.mlp1( torch.cat((h1,z1), 1) )
            m1 = F.normalize(m1,p=2)
    Step2 Code

      Step 3融合第 i 层的 GCN 的特征 Zi 和  AE 的特征  Hi

        Zi=(mi,11i)Zi+(mi,21i)Hi(3) 

      其中:

      • 1iR1×di 代表着全 1 向量;
      • 代表着  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将上述生成的  ZiRn×di  当作第 i+1 层 GCN 的输入,获得 Zi+1  :

        Zi+1= LeakyReLU (D12( A+I)D12ZiWi)(4)

      其中

      • GCN 原始模型中的邻接矩阵 A 变形为 D12(A+I)D12
      • IRn×n
    z2 = self.agcn_1( z1_bar, adj)
    Step4 Code

    2.2 AGCN-S

      Step1:将  multi-scale features Zi  拼接在一起。

        Z=[Z1ZiZlZl+1](5)

      其中:

      • Zl+1=HlRn×dl  表示  Zl+1  的信息只来自自编码器。

      Step2:将上述生成的 Z 放入全连接网络,并使用   softmax- 2  标准化:

        U=2(softmax(LeakyReLU([Z1ZiZlZl+1]Ws)))(6)

      其中:

      • U=[u1uiulul+1]Rn×(l+1)  且每个数大于 0
      • ui  代表了  Zi  的  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 系数上施加一个相应的权重:

        Z=[(u111)Z1(ui1i)Zi(ul1l)Zl(ul+11l+1)Zl+1](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 将作为最终预测的输入,预测输出为 ZRn×k ,其中  k 代表聚类数。 

        Z=softmax(D12( A+I)D12ZW) s.t. kj=1zi,j=1,zi,j>0(8)

      预测输出计算:

        yi=argmaxjzi,j s.t. j=1,,k(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  和质心之间的相似度:

        qi,j=(1+hiμj2/α)α+12j(1+hiμj2/α)α+12(10)

        辅助目标分布 P

        pi,j=q2i,j/iqi,jjq2i,j/iqi,j(11)

      Step 2 

      通过辅助目标分布  P  最小化组合特征分布  Z  和自编码器特征分布 H  的 KL 散度。

        LKL=λ1KL(P,Z)+λ2KL(P,H)=λ1ijpi,jlogpi,jzi,j+λ2ijpi,jlogpi,jqi,j(12)

      其中:

      • λ1>0  和  λ2>0  是 trade-off parameters ;

      联合 Eq.1 和 Eq.12 得到总损失为:

        L=LR+LKL(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 修订文章

     

     

     

    论文解读目录


    __EOF__

  • 本文作者: Blair
  • 本文链接: https://www.cnblogs.com/BlairGrowing/p/15901648.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    VsCode SSH远程设置不用重复输入密码
    Cocoa-window
    新增只考数据结构的电子信息专硕!陕西科技大学计算机考研
    驱动开发:内核枚举DpcTimer定时器
    GAM注意力机制
    ai智能电话机器人语音识别技术
    【笔者感悟】笔者的学习感悟【二】
    Leetcode第21题:合并两个有序链表
    设计模式之:享元模式FlyweightPattern的实现
    【负荷预测】基于蚂蚁优化算法的BP神经网络在负荷预测中的应用研究(Matlab完整代码实现)
  • 原文地址:https://www.cnblogs.com/BlairGrowing/p/15901648.html