【论文阅读】Attributed Graph Clustering with Dual Redundancy Reduction(AGC-DRR)

news2024/12/28 19:03:40

【论文阅读】Attributed Graph Clustering with Dual Redundancy Reduction(AGC-DRR)

文章目录

  • 【论文阅读】Attributed Graph Clustering with Dual Redundancy Reduction(AGC-DRR)
    • 1. 来源
    • 2. 动机
    • 3. 模型框架
    • 4. 方法介绍
      • 4.1 基本符号
      • 4.2 准备工作
      • 4.3 聚类子网络
        • 4.3.1 单步聚类子网络
        • 4.3.2 潜在空间冗余度的减少
      • 4.4 结构增强子网络
        • 4.4.1 边权重学习
        • 4.4.2 正则化项
      • 4.5 整体、算法流程
    • 5. 实验
      • 5.1 数据集
      • 5.2 实验设置
      • 5.3 实验结果
    • 6. 总结

1. 来源

在这里插入图片描述
Proceedings of the Thirty-First International Joint Conference on Artificial Intelligence (IJCAI-22)
论文链接:Attributed Graph Clustering with Dual Redundancy Reduction
论文code:对应code

2. 动机

属性图聚类是图数据探索的一种基本而又必要的方法。最近在图对比学习方面的努力已经取得了令人印象深刻的聚类性能。然而,作者观察到:

  • 普遍采用的InfoMax操作倾向于捕获冗余信息,限制了下游集群性能。

为此,作者开发了一种新的方法,称为双冗余减少的属性图聚类(AGC-DRR),以减少输入空间和潜在特征空间中的信息冗余。特别地,

  • 为了减少输入空间的冗余,引入了一种对抗性学习机制来自适应地学习冗余的掉边矩阵,以确保比较样本对的多样性。
  • 为了减少潜在空间中的冗余度,作者强制使用交叉增强样本嵌入的相关矩阵来近似一个单位矩阵。
  • 基于此,学习到的网络在区分不同样本的同时,必须对扰动具有鲁棒性。
  • 大量的实验已经证明,AGC-DRR在大多数基准测试上优于最先进的聚类方法。

3. 模型框架

在这里插入图片描述
AGC-DRR由两个对抗子网络组成:N1是一个结构增强子网络,自适应地学习冗余边缘矩阵获得增强图InfoMin原则减少冗余信息在输入空间;N2聚类子网络优化InfoMax原则和LMSE损失减少潜在空间冗余。

  • 最终聚类结果由C1和C2的平均值得到。

4. 方法介绍

双冗余减少(AGCDRR)的属性图聚类算法:将图的结构增强和样本聚类统一为一个通用的最小-最大优化框架,以减少输入和潜在特征空间中的信息冗余。如上图所示,AGC-DRR主要由两个组件组成,即结构增强子网络(N1)和聚类子网络(N2)。

  • 接下来,将首先介绍基本符号和准备工作,然后分别详细介绍N1和N2。

4.1 基本符号

在这里插入图片描述

4.2 准备工作

  • 图编码器:如上图所示,GCN-编码器是一个三层图卷积网络(GCN),它聚合一阶的邻居信息,更新中心节点的嵌入以进行表示学习,其表述如下:
    在这里插入图片描述

  • 图对比学习:与基于自动编码器的方法(通过重构图结构来学习节点表示)不同,图对比学习(GCL)旨在最大化正样本对之间的一致性,最小化负样本对之间的一致性。

    为此,互信息最大化(InfoMax)是一种常用的估计样本对之间一致性的方法。图的对比学习目标一般可以表述为:
    在这里插入图片描述

4.3 聚类子网络

现有的基于GCL的聚类方法大多通过保持不同视图的潜在特征空间的一致性,来学习节点表示;然后利用经典的聚类算法(例如,K-means ),在学习到的表示形式上获得聚类结果。

  • 在这种情况下,表示学习和节点聚类的优化过程是断开的,从而导致了聚类性能的次优。

4.3.1 单步聚类子网络

为了解决这个问题,作者开发了一个单步聚类子网络,它可以直接预测每个样本的聚类id的概率。具体地说,

  • 在获得两个视图的图嵌入后,我们通过将Z1和Z2输入一个具有softmax激活函数的1层多层感知(MLP),将其转换为k维聚类空间,其中K表示聚类的数量。上述学习过程可表述为:
    在这里插入图片描述
    其中 C v ∈ R N × K C^v∈R^{N×K} CvRN×K为第v个视图中的聚类指标矩阵。为了保持双视图聚类空间的一致性,我们重新制定了等式(3),从样本级别的角度来看:
    在这里插入图片描述
    其中, c i 1 c^1_i ci1 c i 2 c^2_i ci2分别是c1和c2中的第 i 行。为了提高聚类子网络对其他组件扰动的鲁棒性,进一步从聚类级别的角度考虑了一致性 (6):
    在这里插入图片描述
    其中, c j 1 T 和 c j 2 T {c ^1_j} ^T和{c^2_j}^T cj1Tcj2T分别为c1和c2中的第 j 列。这样,通过考虑同一实例的聚类分配和两个视图中的节点分布的相似性来优化该子网络,以进一步提高聚类性能。两个观点之间的总互信息被表述为:
    在这里插入图片描述

4.3.2 潜在空间冗余度的减少

尽管InfoMax原理在基于GCL的性能改进方法中起着至关重要的作用,但它可能具有使编码器在估计样本对的一致性时捕获冗余信息的风险。为了缓解这一问题,作者在潜在空间中引入了一种冗余减少策略,通过强制横视图相关矩阵近似于一个单位矩阵:
在这里插入图片描述
这个约束项减少了相应图中的双视图嵌入的冗余。通过这种方法,可以最小化嵌入中的冗余信息,并可以很好地保留更明显的鉴别特征。因此,它减少了学习到的表征受不相关信息的影响,从而保证了后续聚类任务的潜在空间的质量。

4.4 结构增强子网络

在现有的基于GCL的方法中,边缘扰动是网络学习前常用的图增强方法,而增广图通常被视为固定模式中的真实信息。

  • 由于增广图来自于原始图,因此它将包含一些不正确的或冗余的连接。如果在网络学习过程中不消除这些噪声结构,学习到的聚类空间将在最终步骤中继承它。

为了解决这一问题,作者设计了一个结构增广子网来学习一个面向聚类的结构图,它将自适应地学习一个冗余的掉边矩阵,以确保比较样本对的多样性。

4.4.1 边权重学习

如图2所示,在N1中存在一个额外的GCN编码器,它与N2中具有相同的架构。同样,该图编码器接受归一化的相邻矩阵 A ˉ \bar A Aˉ和节点属性矩阵X作为输入,输出嵌入 Z ∈ R N × d ′ Z∈R^{N×d'} ZRN×d的图。利用学习图嵌入Z生成边嵌入 E = { E 1 , E 2 , … , E M } ∈ R M × 2 d ′ E =\{E_1,E_2,…,E_M\}∈R^{M×2d'} E={E1E2EM}RM×2d,其中 E M = C ( z i , z j ) E_M=C(zi,zj) EM=Czizj C ( ⋅ , ⋅ ) C(·,·) C是一个拼接操作, z i z_i zi z j z_j zj是中心节点 v i v_i vi和邻居节点 v j v_j vj的嵌入。然后将得到的边缘嵌入E馈入具有s型激活函数的1层MLP中,得到边向权向量 W = [ w 1 , w 2 , … , w M ] T ∈ R M × 1 W = [w_1,w_2,…,w_M] T∈R^{M×1} W=[w1w2wM]TRM×1作为等式 (9):

在这里插入图片描述

其中, w i w_i wi表示对应的原始边 e i e_i ei在增广图中被保留的概率。因此, 1 − w i 1−w_i 1wi表示边下降概率。

然后,我们将权值向量 W ∈ R M × 1 W∈R^{M×1} WRM×1转换为一个面向边的权值矩阵 W ′ ∈ R N × N W'∈R^{N×N} WRN×N,生成结构增广图 G ′ G' G。具体地说,如果节点 v i v_i vi和节点 v j v_j vj通过原始图中的边 e m e_m em连接,我们将 W i ′ j W'_ij Wij设置为 w m w_m wm,否则 W i ′ j W'_ij Wij设置为零值。增广相邻矩阵 A ~ \tilde A A~的构造公式如下:
在这里插入图片描述
其中⊙是阿达玛乘积(点乘),即 A ~ i j = W i j ′ × A ˉ i j \tilde A_{ij}= W'_{ij} × \bar A_{ij} A~ij=Wij×Aˉij

因此,最终的增广图 G ′ G' G由增广相邻矩阵 A ~ i j \tilde A_{ij} A~ij和节点属性矩阵 X X X组成。

通过最小化公式(7),使结构增广子网能够减少输入空间中的冗余信息,以确保所比较的样本对的多样性。这样,将图结构和聚类的学习过程统一成一个共同的对抗性优化框架,使两个子网络相互受益,减轻信息冗余的风险,从而实现更好的聚类。

4.4.2 正则化项

为了尽可能多地转换冗余信息,我们在等式中引入了一个正则化项 1 M ∑ i = 1 M w i \frac{1}{M} \sum_{i=1}^{M} wi M1i=1Mwi在公式(7)中,去控制结构信息保存和减少的比例,其中 w i w_i wi表示第 i i i 条边被保留的概率。

综上所述, N 1 \mathcal{N}_1 N1 N 2 \mathcal{N}_2 N2的目标函数可以分别表示为等式(11)和等式(12):
在这里插入图片描述
在这里插入图片描述
其中,λ是一个预先防御的超参数。

4.5 整体、算法流程

在如下算法中给出了AGC-DRR的训练过程。
在这里插入图片描述

5. 实验

5.1 数据集

在这里插入图片描述

5.2 实验设置

在这里插入图片描述

5.3 实验结果

在这里插入图片描述

6. 总结

论文设计了一种新的具有双冗余减少的属性图聚类(AGC-DRR),它可以减少输入特征空间和潜在特征空间中的冗余信息。

  • 模型将结构增广图和聚类的学习过程结合成一个共同的最小-最大优化框架。
  • 通过这种方式,学习网络对扰动具有鲁棒性,同时对类间样本具有一定的区别性。
  • 所提出的AGC-DRR已经在四个基准数据集上进行了评估。
  • 大量的实验结果证明了我们提出的方法优于最先进的同类方法。

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

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

相关文章

Linux端口开通

Linux端口开开启有两种方式 firewall方式(centos7.*)修改iptables(centos6.*) 一、firewall方式 查看防火墙状态firewall-cmd --state如果返回的是 “not running”,那么需要先开启防火墙; 开启防火墙sy…

Java02 变量和运算符

Java02 变量和运算符 2.1 Java代码的基本格式 //类的定义 修饰符 class 类名{public static void main(String[] args){// 代码System.out.println("Hello World!");} }现阶段,可以将一个类理解成Java程序(.java文件)…

html部分codewhy网课学习笔记

day1 网页显示的过程和服务器 浏览器内核,也称为渲染引擎 head标签描述网页的原数据&#xff0c;如title shifttab是向前缩进 div>ul>li可以快速生成 <div> <ul> <li></li> </ul> </div> 在早期,单标签如<input>也可写为&l…

字节前端架构组工程化代码片段

如何使用交互式的命令行工具下载项目模板 这部分代码实现了一个用户交互的 GitHub 模板下载工具。首先你需要在github上创建一个项目&#xff0c;然后使用下面介绍的代码就可以用命令行拉取到本地&#xff0c;并解压了。 它使用 enquirer 库提示用户输入仓库的创建者、名称、…

npm版本过低造成的各种问题汇总及升级方法

npm does not support Node.js 这个是因为npm和Node.js的版本不合适&#xff0c;版本对照表在这里&#xff1a;https://nodejs.org/zh-cn/download/releases/ 查看node和npm的版本&#xff1a; node -v npm -v试图装一个npm&#xff0c;结果报错&#xff1a;TypeError: Canno…

C++面向对象之多态性

文章目录C面向对象之多态性1.静态多态2.动态多态3.多态的好处3.1使用方法4.纯虚函数5.虚析构与纯虚析构5.1问题5.2解决6.其他知识点7.代码8.测试结果8.1父类中无虚函数&#xff0c;父类的指针指向子类对象&#xff0c;将调用父类中的函数&#xff0c;无法调用子类中的重写函数&…

Qt入门基础

目录 一 学习Qt的动机 二 创建第一个Qt程序 关于main.cpp QApplication Widget 关于对象树 关于Widget常用的API return a.exec() 一 学习Qt的动机 我在学习了C之后&#xff0c;想做图形化界面。实现前后端的交互。这时候就可以利用Qt进行编程。 二 创建第一个Qt程序 Qt…

【RocketMQ】消息的存储

Broker对消息的处理 BrokerController初始化的过程中&#xff0c;调用registerProcessor方法注册了处理器&#xff0c;在注册处理器的代码中可以看到创建了处理消息发送的处理器对象SendMessageProcessor&#xff0c;然后将其注册到远程服务中&#xff1a; public class Brok…

哨声吹响,与世界杯相关的欺诈也在激增

2022 年世界杯已经开始&#xff0c;通过虚假流媒体网站与彩票针对足球迷的诈骗激增。近日&#xff0c;Zscaler 发现与世界杯相关的新注册域名有所增加&#xff0c;尽管并非都是恶意的&#xff0c;也是值得警惕的。 流量趋势 随着世界杯的开赛&#xff0c;从 11 月 21 日流媒体…

Python set集合全部操作方法

文章目录一. 介绍1. 创建set集合2. 判断元素是否在集合内3. 集合推导式(Set comprehension)二. 集合基本操作1. add&#xff08;&#xff09;添加单个元素2. update&#xff08;&#xff09;添加列表&#xff0c;元组&#xff0c;字典等整体数据3. remove ( ) 移除元素&#xf…

PACS三维影像后处理系统源码 PACS源码

PACS源码 PACS3D影像后处理系统源码 一、系统概述&#xff1a; ​基于VC MSSQL开发的一套三甲医院医学影像PACS系统源码&#xff0c;集成3D影像后处理功能&#xff0c;包括三维多平面重建、三维容积重建、三维表面重建、三维虚拟内窥镜、最大/小密度投影、心脏动脉钙化分析等…

mysql数据库之视图

视图&#xff08;view&#xff09;是一种虚拟的存在&#xff0c;视图中的数据并不在数据库中实际存在&#xff0c;行和列数据来自定义视图的查询中使用的表&#xff0c;并且是在使用视图时动态生成的。 通俗的讲&#xff0c;视图之保存了查询的sql逻辑&#xff0c;不保存查询结…

【C语言】函数指针和指针函数

文章目录[TOC](文章目录)前言概述函数指针定义&#xff1a;使用&#xff1a;回调函数指针函数前言 今天学一下函数指针 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 概述 函数指针&#xff1a;是一个指向函数的指针&#xff0c;在内存空间中存放的…

关于小程序内存在违规内容的处理警告

遇到了问题&#xff0c;就记录一下解决过程吧 小程序涉及提供在线观看视频服务&#xff0c;请补充文娱-视频广场类目&#xff1b; 我们的小程序做了一个类似抖音上下滑动观看视频的页面&#xff0c;被警告了&#xff0c;查看了文档&#xff0c; https://developers.weixin.qq.…

C语言程序-计算闰年平年

#include <stdio.h> int main() { int year ,month,day,i1; printf("欢迎使用本程序&#xff0c;使用愉快\n") ; while(i<10){ printf("请输入您需要计算的年\n"); scanf("%d",&year); printf("…

安全高效 | AIRIOT智慧工地管理解决方案

建筑工地施工材料、机械设备、工程车、人员各个环节管理相对复杂、建筑业也是安全事故频发的高危行业&#xff0c;安全管控尤为重要。建筑施工单位想要保障安全生产&#xff0c;做好能源消耗管控降低生产成本&#xff0c;需要解决掉很多现状问题&#xff1a;1、工地施工作业人员…

【Leetcode 剑指Offer】第 11 天 双指针(简单)

双指针剑指 Offer 18. 删除链表的节点剑指 Offer 18. 删除链表的节点 给定单向链表的头指针和一个要删除的节点的值&#xff0c;定义一个函数删除该节点。 返回删除后的链表的头节点。 示例 1: 输入: head [4,5,1,9], val 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二…

服务器(centos7.6)已经安装了宝塔面板,想在里面安装一个SVN工具(subversion),应该如何操作呢?

首先&#xff0c;在登录进入宝塔面板&#xff0c;然后点击左侧终端&#xff0c;进入终端界面&#xff0c;如下图&#xff1a;------------------------------------------如果是第一次使用会弹出输入服务器用户名和密码&#xff0c;此时输入root账号和密码&#xff0c;即可进入…

2.基于Label studio的训练数据标注指南:(智能文档)文档抽取任务、PDF、表格、图片抽取标注等

文档抽取任务Label Studio使用指南 1.基于Label studio的训练数据标注指南&#xff1a;信息抽取&#xff08;实体关系抽取&#xff09;、文本分类等 2.基于Label studio的训练数据标注指南&#xff1a;&#xff08;智能文档&#xff09;文档抽取任务、PDF、表格、图片抽取标注等…

Python3-集合

Python3 集合 集合&#xff08;set&#xff09;是一个无序的不重复元素序列。 可以使用大括号 { } 或者 set() 函数创建集合&#xff0c;注意&#xff1a;创建一个空集合必须用 set() 而不是 { }&#xff0c;因为 { } 是用来创建一个空字典。 创建格式&#xff1a; parame …