论文阅读:Towards Faster Deep Graph Clustering via Efficient Graph Auto-Encoder

论文地址:Towards Faster Deep Graph Clustering via Efficient Graph Auto-Encoder | ACM Transactions on Knowledge Discovery from Data

代码地址: https://github.com/Marigoldwu/FastDGC


摘要

深度图聚类(Deep Graph Clustering, DGC)近年来已成为图数据聚类的一个有前途的方法。然而,现有研究主要通过提高嵌入表示的质量来优化聚类结果,这往往导致模型复杂且运行速度较慢。此外,这些方法在更新节点嵌入后,在迭代优化过程中未能考虑节点相似度的变化以及对原始结构的相应调整,容易出现表示崩溃问题。为了解决这些问题,作者提出了一种高效图自动编码器(Efficient Graph Auto-Encoder, EGAE)和动态图权重更新策略,构成了本文提出的快速深度图聚类(FastDGC)网络的基础。

具体来说,作者通过线性变换大幅度降低特征维度,同时保留原始节点的相似性。随后,采用单层图卷积过滤近似替代多层图卷积神经网络,从而降低计算复杂度和参数数量。在迭代过程中,利用线性变换后的特征计算节点之间的相似度,并定期更新原始图结构,减少低相似度的边,以增强判别性和聚合性表示的学习。理论分析表明,EGAE具有较低的计算复杂度。基于标准数据集的大量实验表明,与最先进的方法相比,作者提出的方法不仅提高了聚类性能,还实现了2到3个数量级的速度提升,展现了卓越的性能。

引言

无监督学习旨在从无标签数据中识别复杂模式,使机器能够胜任各种场景中的无监督任务。作为最经典的无监督任务之一,聚类在过去几十年中得到了广泛研究。然而,近年来,对图数据的聚类提出了新挑战,因为它需要学习属性信息并挖掘节点之间的结构信息。由于对结构信息的需求,传统方法已达到瓶颈。随着图神经网络(Graph Neural Networks, GNNs)的引入,探索节点间结构信息取得了新进展,将图数据聚类推向了前所未有的高度。在此背景下,各种基于GNN的图聚类方法相继涌现。

其中,图卷积神经网络(Graph Convolutional Network, GCN)、图自动编码器(Graph Auto-Encoder, GAE)和图注意力网络(Graph Attention Network, GAT)作为挖掘图数据的重要方法,引起了广泛关注。这些方法通常将高维节点特征嵌入到低维表示中以进行聚类。GAE通过堆叠不同大小的GCN对高维特征进行编码,并通过简单的解码器重构邻接矩阵。随后,通过最小化输入和输出之间的重构损失,获得节点的低维特征。然而,GAE面临表示崩溃(Representation Collapse)的问题。为了解决这一问题,Liu等人提出了双相关性减少网络(Dual Correlation Reduction Network, DCRN),Gong等人提出了基于双冗余减少的属性图聚类方法(Attribute Graph Clustering with Dual Redundancy Reduction, AGC-DRR)。

DCRN通过Siamese网络对样本进行编码,然后逼近跨视图样本相关矩阵和跨视图特征相关矩阵至单位矩阵,从两个层面减少信息相关性,提高特征判别能力。AGC-DRR通过引入对抗学习机制,自适应学习冗余边的丢弃矩阵,确保被比较样本的多样性,从而减少输入空间中的冗余信息。此外,该方法通过强制嵌入在跨增强样本中的相关矩阵逼近单位矩阵,进一步减少潜在空间中的冗余信息。尽管这些方法在一定程度上缓解了表示崩溃问题,但冗余信息减少方法较为复杂且模型参数较多,亟需优化。此外,Zhao等人的研究证实,当图中存在不同类别的连接节点时,经过多次迭代后,连接节点的特征趋于一致。这被认为是导致表示崩溃问题的重要原因。

针对现有模型在解决图聚类中表示崩溃问题的复杂性,以及未充分考虑可能削弱节点间GNN性能的边的问题,作者提出了一种基于高效图自动编码器(Efficient Graph Auto-Encoder, EGAE)和动态图权重更新策略的快速深度图聚类网络(Fast Deep Graph Clustering, FastDGC)。具体来说,作者增强了传统GAE的编码器,通过引入线性变换,隐式地结合显式结构信息,并将多层堆叠的图卷积层近似为单层简单图卷积过滤。这些操作显著降低了模型复杂性,从而减少了运行时间。此外,在迭代过程中,作者持续利用生成的信息指导原始邻接矩阵的更新,减少不同类别节点之间的边,充分发挥GNN的能力。最后,通过自监督学习联合优化节点嵌入和聚类。

图1展示了ACM数据集中我们的方法与GAE、DCRN、AGC-DRR在嵌入相似性热图上的比较。可以看出,作者的方法显著提升了节点嵌入的聚合性和判别性。此外,图2展示了不同算法之间的性能比较。作者的方法不仅在精度上优于现有方法,还在速度上实现了2–3个数量级的提升。

本文的主要贡献总结如下:
— 提出了一种用于图聚类的EGAE,缓解了传统GAE在聚类时遇到的表示崩溃问题。
— 引入了一种动态图权重更新策略,在聚类迭代中利用学习到的表示优化邻接矩阵,旨在减少存在边但节点不相似的情况。
— 基于EGAE和动态图权重更新策略,构建了FastDGC网络。该方法显著提升了聚类精度(ACC),并在速度上实现了2–3个数量级的加速。

模型

FastDGC 的框架如图 3 所示。

EGAE(高效图自动编码器)

传统的图自动编码器(GAEs)使用图卷积网络(GCN)进行编码,其中拓扑结构在聚合邻居信息时被隐式嵌入。这种方法需要显式地学习结构信息,导致结构信息学习不足。此外,图卷积层通常直接对输入特征进行卷积计算,然后通过参数矩阵进行调整,这在一定程度上引入了不必要的计算。因此,作者设计了一个更高效的编码器。

在作者提出的 EGAE 中,首先通过线性变换对输入数据进行降维。此外,由于线性变换包含偏置矩阵,在后续优化过程中可以控制显式的结构信息:

Xt=XWa+Wb

其中,Wa 和 Wb 是参数和偏置。在这一变换过程中,如果不施加约束,很容易导致原始特征信息的严重丢失。如图 4 所示,不同数据集中节点相似性的分布有所不同,可以利用这一特性来约束线性变换。具体而言,计算原始节点特征与线性变换后节点特征的余弦相似性,以此进行约束。

相似性矩阵计算

线性变换后的节点特征相似性矩阵 S 和原始节点特征相似性矩阵 Sr的定义如下:

通过计算两种特征的相似性矩阵,确保线性变换不会丢失过多信息。

交叉熵损失

在优化过程中,最小化这两种相似性矩阵之间的交叉熵损失,以确保线性变换尽可能保留原始特征的信息:

图卷积过滤

为了减少模型复杂度,使用了 m 次图卷积过滤迭代替代多层 GCN 的叠加:

这种单层网络的方法参考 Wu 等人的理论【44】,在学习结构信息方面可以达到类似于多层 GCN 的效果,同时显著减少了模型参数数量。

解码阶段

在解码阶段,重构邻接矩阵:

其中,σ是非线性激活函数,本文采用 ReLU

重构损失

EGAE 的优化目标是最小化重构矩阵 A^和原始邻接矩阵 Ae之间的误差:

最终优化目标

EGAE 的最终优化公式结合了重构损失和交叉熵损失,用于预训练:

其中,ϵ 是权衡超参数,需根据具体数据集进行调整。

通过上述方法,EGAE 在保证较低模型复杂度的情况下,有效地学习和保留了结构信息,为 FastDGC 的高效聚类奠定了基础。

动态图权重更新策略

背景与问题
图神经网络(GNNs)通常遵循消息传递的范式,其中关键信息通过图中的边进行传播。因此,边的可靠性至关重要。如果一条边连接了不同类别的节点,通过该边进行的信息聚合可能会导致难以区分这两个节点及其邻居节点。此外,GCN 在信息聚合时基于节点结构的重要性,这可能引入偏差。为了解决这两个问题,提出了一种 动态图权重更新策略

主要思路
由于数据是无标签的,无法预先确定节点的类别,因此很难直接评估边的可靠性。采用节点特征相似度来估计两节点属于同一类别的可能性。为克服不同数据集中节点特征相似度分布的差异性,不直接使用原始特征的相似度,而是采用线性变换后的特征相似度 S,并利用聚类和 EGAE 的联合优化使该相似度在每次迭代中动态调整。


更新过程

  1. 相似性矩阵的计算与修剪
    通过节点特征 Xt 计算相似性矩阵 S:

其中 l 表示当前迭代轮次。通过 Hadamard 元素积修剪图中的边,即将相似度为 0 的边去除。

为了进一步去除可能连接不同类别节点的弱相似边,引入修剪阈值 τ,定义修剪规则和修剪后的邻接矩阵表示如下:

动态图权重更新策略通过结合特征相似性动态调整边的权重,有效减少了噪声边对信息聚合的影响,同时显著降低了计算复杂度。完整流程如 图5 所示,进一步展现了该方法的高效性和适用性。

聚类(Clustering)


通过结合 EGAE(增强图自动编码器)动态图权重更新策略 获取节点嵌入后,使用软聚类分布来生成聚类标签。为了联合优化聚类和表示学习,引入了辅助聚类分布【5, 39】。


聚类步骤

  1. 预训练与初始化
    首先对 EGAE 进行预训练,并使用 k-means 算法对预训练阶段生成的节点嵌入执行聚类,以获得可靠的初始聚类中心。

  2. 计算软聚类分布与辅助聚类分布
    通过以下公式计算软聚类分布 Q 和辅助聚类分布 P:

  3. 计算聚类损失
    聚类损失 Lclu 采用交叉熵计算:

  4. 总损失函数
    在微调阶段,方法的总损失函数由两部分组成:

    其中 Lrec表示重构损失。

  5. 最终聚类结果
    根据每个节点在软聚类分布中概率最大的索引,生成最终聚类结果:


完整训练流程

算法 1 展示了 FastDGC 的完整训练过程。通过上述步骤,模型能够联合优化表示学习与聚类,从而提高节点分类和聚类的性能。

实验

在八个数据集上的不同方法的聚类结果记录在表 4 中。

根据这些结果,作者记录了以下观察:

  1. 我们的方法在除 CORA 以外的数据集上取得了最佳聚类结果

    • 以 ACM 和 DBLP 数据集为例,与 AGC-DRR 方法相比,我们的方法在 ACM 数据集上的 ACC、NMI、ARI 和 F1 分别提高了 1.03%2.68%2.73%1.04%,而在 DBLP 数据集上的对应指标分别提高了 2.59%4.95%5.43%2.50%
    • 根据 p 值,这些改进具有显著性,表明我们提出的 EGAE 提取的特征具有更强的判别力。
    • 尽管在 CORA 数据集上未能取得最佳结果,我们的方法依然接近最优。这主要归因于使用 GNN 从数据中提取结构信息。
  2. 基于对比学习的方法优于深度生成方法(如 DCRN 和 AGC-DRR)

    • 对比学习更注重节点间的相似性与差异性,这与聚类的特性一致,而生成方法更多关注输入与输出之间的差异性。
    • 尽管我们的方法属于生成式方法,但表现良好,因为我们更加关注同一聚类内节点的相似性。
  3. 与基线 GAE 相比,我们的方法平均在 ACC 上提升了 10%

    • 在 DBLP 数据集上,特别实现了 21.79% 的显著提升。
    • 原因分析:
      • 首先,GAE 学习隐式的结构信息,而我们的方法通过带偏置矩阵的线性变换引入显式的结构信息,使其更具灵活性。
      • 其次,我们的方法在线性变换过程中保留了节点相似性信息,减少了信息丢失。
      • 最后,GAE 在每层变换中使用固定维度,这可能导致信息冗余或欠拟合问题,而我们的方法根据不同数据集调整特征维度,有效缓解了这些问题。
  4. 我们的方法在高同质性图和低同质性图上的表现

    • 我们的方法在高同质性图上表现出色,同时在低同质性图上也取得了改进。
    • 这是因为我们的方法能够在迭代过程中根据节点间的相似性动态调整图结构,抑制不同类别节点间的信息传递,从而增强聚类的判别性。
    • 然而,我们注意到我们的方法在引文网络上表现较差,这可能与高维稀疏特征的判别能力有限有关。
  5. 在部分数据集上的 NMI 表现较差

    • 除 ACM、DBLP、Wisconsin 和 Texas 数据集外,我们的方法在其他数据集上的 NMI 表现较差。
    • 这主要是由于这些数据集中存在类别不平衡问题。
    • 使用 GNN 时,模型倾向于学习来自占主导地位类别的信息,从而在样本较少的类别上的泛化能力较弱。


这篇论文的动态图生成的创新不错,实验用的展示方式也挺丰富,可以去学习学习。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/65655.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python爬虫教程——7个爬虫小案例(附源码)_爬虫实例

本文介绍了7个Python爬虫小案例,包括爬取豆瓣电影Top250、猫眼电影Top100、全国高校名单、中国天气网、当当网图书、糗事百科段子和新浪微博信息,帮助读者理解并实践Python爬虫基础知识。 包含编程资料、学习路线图、源代码、软件安装包等!【…

BMS存储模块的设计

目的 电池管理系统中存在着数据本地存储的要求,保证控制器重新上电后能够根据存储器中的一些参数恢复控制状态,和信息的下电存储1.继电器故障信息的存储。2. 系统性故障的存储。3.SOC、SOH相关信息的存储。4.均衡参数的存储。5.系统时间信息。6.出厂信息…

Python爬取城市天气信息,并存储到csv文件中

1.爬取的网址为:天气网 (weather.com.cn) 2.需要建立Weather.txt文件,并在里面加入如下形式的字段: 101120701济宁 101010100北京 3.代码运行后,在命令行输入Weather.txt文件中添加过的城市,如:济宁。 …

MySQL线上事故:使用`WHERE`条件`!=xxx`无法查询到NULL数据

前言 在一次 MySQL 的线上查询操作中,因为 ! 的特性导致未能正确查询到为 NULL 的数据,险些引发严重后果。本文将详细解析 NULL 在 SQL 中的行为,如何避免类似问题,并提供实际操作建议。 1. 为什么NULL会查询不到? 在…

Solidworks打开无法获得许可,提示(-15,10,10061)错误解决办法

参考文章: https://blog.csdn.net/2301_81263647/article/details/140904773

【电路理论四】正弦电流电路

正弦电流 正弦量是随时间按正弦规律变动的电路变量。 随时间按正弦规律变动的电流称为正弦电流。 正弦电流的瞬时值表达式: 称为正弦电流的三要素。 分别为振幅/幅值,角频率,初相。 幅值为正弦电流的最大值,恒为正。 为正弦电…

解决Windows无法同时使用有线网和无线网WIFI的问题

参考资料 电脑无线网wifi和有线网同时使用(内网外网同时使用)用route命令解决Wifi和网卡不能同时上内外网问题 解决方法 对于Windows系统同时连接有线网和无线网Wifi时,只会有一个网关生效,因此我们需要手动通过route命令设置网…

FOC控制原理-ADC采样时机

0、文章推荐 SimpleFOC移植STM32(五)—— 电流采样及其变换_极对数对电流采样的影响-CSDN博客 FOC 电流采样方案对比(单电阻/双电阻/三电阻) - 知乎 (zhihu.com) FOC中的三种电流采样方式,你真的会选择吗?…

uniapp:编译微信、h5都正常的,编译钉钉小程序无法找到页面

我们在做uniapp的开发的时候遇到很多莫名其妙的问题,其中就有个很奇葩的问题,我们开发的过程中使用微信小程序/h5调试都是正常编译正常跳转,然后在要上架的时候,编译钉钉小程序成功,但是访问页面无法访问, …

zentao ubuntu上安装

#下载ZenTaoPMS-21.2-zbox_amd64.tar.gz(https://www.zentao.net/downloads.html) https://dl.zentao.net/zentao/21.2/ZenTaoPMS-21.2-zbox_amd64.tar.gzcd /opt tar -zxvf ZenTaoPMS-21.2-zbox_amd64.tar.gz#启动 /opt/zbox/zbox start /opt/zbox/zbox…

REDIS2.0

string list hash set 无序集合 声明一个key,键里面的值是元素,元素的类型是string 元素的值是唯一的,不能重复 多个集合类型之间可以进行并集,交集,集查的运算 sadd test1 a b c c d :添加5个元素&am…

【论文阅读】DebSDF:深入研究神经室内场景重建的细节和偏差

【论文阅读】DebSDF:深入研究神经室内场景重建的细节和偏差 Abstract3.METHOD3.1 Preliminaries3.2 Uncertainty Guided Prior Filtering3.3 Uncertainty-Guided Ray Sampling3.4 Uncertainty-Guided Smooth Regularization3.5 Bias-aware SDF to Density Transform…

微服务SpringCloud分布式事务之Seata

视频教程:https://www.bilibili.com/video/BV16P63Y3ESq 效果演示 准备的微服务项目调用的链路如下: 文字描述: gateway模块接收到请求,并发送到order订单模块order订单模块接收到请求,新增一个订单数据后发送一个…

Pyhton知识分享-利用KNN算法实现手写数字识别

利用KNN算法实现手写数字识别 MNIST手写数字识别 是计算机视觉领域中 "hello world"级别的数据集 1999年发布,成为分类算法基准测试的基础随着新的机器学习技术的出现,MNIST仍然是研究人员和学习者的可靠资源。 本次案例中,我们的…

多点通信、流式域套接字

一、广播 1.1广播的发送端模型&#xff1a; #include<myhead.h>#define BEN_IP "192.168.191.129" #define BEN_PORT 8888#define PORT 6666int main(int argc, const char *argv[]) {int oldfd socket(AF_INET,SOCK_DGRAM,0);if(oldfd -1){perror("soc…

AMBA-APB

目录 1.APB 协议 2.APB信号列表 3.数据传输 3.1写传输&#xff08;2种&#xff09; 3.1.1 无等待状态的写传输 3.1.2有等待状态的写传输 3.2写选通信号 (PSTRB) 字节通道映射 3.3读传输&#xff08;2种&#xff09; 3.3.1 无等待状态的读传输 3.3.2有等待状态的读传…

linux自动化一键批量检查主机端口

1、准备 我们可以使用下面命令关闭一个端口 sudo iptables -A INPUT -p tcp --dport 端口号 -j DROP我关闭的是22端口&#xff0c;各位可以关其它的或者打开其它端口测试&#xff0c;谨慎关闭22端口&#xff01;不然就会像我下面一样握手超时&#x1f62d;&#x1f62d;&…

【服务器】上传文件到服务器并训练深度学习模型下载服务器文件到本地

前言&#xff1a;本文教程为&#xff0c;上传文件到服务器并训练深度学习模型&#xff0c;与下载服务器文件到本地。演示指令输入&#xff0c;完整的上传文件到服务器&#xff0c;并训练模型过程&#xff1b;并演示完整的下载服务器文件到本地的过程。 本文使用的服务器为云服…

从零开始开发纯血鸿蒙应用之逻辑封装

从零开始开发纯血鸿蒙应用 一、前言二、逻辑封装的原则三、实现 FileUtil1、统一的存放位置2、文件的增删改查2.1、文件创建与文件保存2.2、文件读取2.2.1、读取内部文件2.2.2、读取外部文件 3、文件删除 四、总结 一、前言 应用的动态&#xff0c;借助 UI 响应完成&#xff0…

python读写文件的三种做法

对于文件操作&#xff0c;python提供了3种做法&#xff1a;open(), os.open() 和with open()语句。 1. open()函数&#xff1a;一般用于更高级的文件读写操作&#xff0c;即人能读懂的用法&#xff0c;如果是写入数据&#xff0c;可用传入字符串。 用法&#xff1a;open(path…