论文解读(SCGC))《Simple Contrastive Graph Clustering》
论文信息
论文标题:Simple Contrastive Graph Clustering
论文作者:Yue Liu, Xihong Yang, Sihang Zhou, Xinwang Liu
论文来源:2022,arXiv
论文地址:download
论文代码:download
1 Introduction
贡献:
- 提出了一种简单的对比深度图聚类方法,称为 $\text{SCGC}$。$\text{SCGC}$ 不需要预训练,并为网络训练节省时间和空间;
- 提出了一种新的仅在增强的属性空间中进行数据扰动的数据增强方法;
- 设计了一种新的面向邻居的对比损失,以保持跨视图的结构一致性;
2 Method
2.1 Notations and Problem Definition
其中:
- $\widehat{\mathbf{A}}=\mathbf{A}+\mathbf{I}$
- $\mathbf{L}=\mathbf{D}-\mathbf{A}$
- $\widetilde{\mathbf{L}}=\widehat{\mathbf{D}}^{-\frac{1}{2}} \widehat{\mathbf{L}} \widehat{\mathbf{D}}^{-\frac{1}{2}}$
2.2 Overall Framework
整体框架:
组成部分:
- low-pass denoising operation
- Structural Contrastive Module (SCM)
2.3 Low-pass Denoising Operation
[5, 18, 44] 证明了拉普拉斯滤波器可以达到与图卷积运算相同的效果。所以引入一个低通去噪操作,在训练前将邻居信息聚合作为一个独立的预处理。这样,属性中的高频噪声将被有效地过滤掉。
具体地说,采用了一个图的拉普拉斯滤波器作为公式:
$\mathbf{H}=\mathbf{I}-k \tilde{\mathbf{L}} \quad\quad\quad(1)$
$k$ 为实值,对于 $k$ 的选择,在所有实验中遵循 AGE[5] 并设置 $k=2 / 3$。随后,将 $t$ 层图拉普拉斯滤波器堆栈如下:
$\mathbf{X}_{s}=\mathbf{H}^{t} \mathbf{X} \quad\quad\quad(2)$
其中,$\widetilde{\mathbf{L}}$ 为平滑的属性矩阵。通过这种低通去噪操作,过滤掉了属性中的高频噪声,从而提高了聚类性能和训练效率。
2.4 Structural Contrastive Module
结构对比模块(SCM),保持两个不同的视图的结构一致性,从而提高网络的鉴别能力。
具体来说,首先用设计的参数非共享MLP编码器对平滑属性 $\mathbf{X}_{s}$ 进行编码,然后用 $\ell^{2}$-norm 对学习到的节点嵌入进行归一化如下
$\begin{array}{l}\mathbf{Z}^{v_{1}}=\operatorname{MLP}_{1}\left(\mathbf{X}_{s}\right), \mathbf{Z}^{v_{1}}=\frac{\mathbf{Z}^{v_{1}}}{\left\|\mathbf{Z}^{v_{1}}\right\|_{2}} \\\mathbf{Z}^{v_{2}}=\operatorname{MLP}_{2}\left(\mathbf{X}_{s}\right), \mathbf{Z}^{v_{2}}=\frac{\mathbf{Z}^{v_{2}}}{\left\|\mathbf{Z}^{v_{2}}\right\|_{2}}\end{array} \quad\quad\quad(3)$
其中,$\mathbf{Z}^{v_{1}}$ 和 $\mathbf{Z}^{v_{2}}$ 表示学习到的节点嵌入的两个增广视图。值得一提的是,$\mathrm{MLP}_{1}$ 和 $\mathrm{MLP}_{2}$ 具有相同的体系结构,但参数不共享,因此 $\mathbf{Z}^{v_{1}}$ 和 $\mathbf{Z}^{v_{2}}$ 在训练过程中会包含不同的语义信息。
此外,我们通过简单地在 $\mathbf{Z}^{v_{2}}$ 中加入随机高斯噪声,进一步保持了两种视图之间的差异:
$\mathbf{Z}^{v_{2}}=\mathbf{Z}^{v_{2}}+\mathbf{N} \quad\quad\quad(4)$
其中,$\mathbf{N} \in \mathbb{R}^{N \times d}$ 从高斯分布 $\mathcal{N}(0, \sigma)$ 中采样。总之,我们通过设计参数非共享编码器,直接破坏节点嵌入,而不是对图引入复杂的操作,构造了两个增强视图 $\mathbf{Z}^{v_{1}} $ 和 $\mathbf{Z}^{v_{2}} $,从而提高了训练效率。此外,[17,28,32]最近的研究表明,图上的复杂数据扩充,如加边、掉边和图扩散,可能会导致语义漂移。
随后,我们设计了一种新的面向邻居的对比损失来保持横视图结构的一致性。具体地,我们计算 $\mathbf{Z}^{v_{1}}$ 和 $\mathbf{Z}^{v_{2}}$ 之间的交叉视点样本相似矩阵 $\mathbf{S} \in \mathbb{R}^{N \times N} $:
$\mathbf{S}_{i j}=\mathbf{Z}_{i}^{v_{1}} \cdot\left(\mathbf{Z}_{j}^{v_{2}}\right)^{\mathrm{T}}, \forall i, j \in[1, N] \quad\quad\quad(5)$
其中,$\mathbf{S}_{i j}$ 表示第一个视图中第 $i$ 个节点嵌入与第二个视图中第 $j$ 个节点嵌入的余弦相似度。然后,我们强制交叉视图样本相似度矩阵 $\mathbf{S}$ 等于自环邻接矩阵 $\widehat{\mathbf{A}} \in \mathbb{R}^{N \times N}$,公式如下:
$\begin{aligned}\mathcal{L} &=\frac{1}{N^{2}} \sum\limits _{(\mathbf{S}-\widehat{\mathbf{A}})^{2}} \\&=\frac{1}{N^{2}}\left(\sum\limits _{i} \sum\limits _{j} \mathbb{1}_{i j}^{1}\left(\mathbf{S}_{i j}-1\right)^{2}+\sum\limits _{i} \sum\limits _{j} \mathbb{1}_{i j}^{0} \mathbf{S}_{i j}^{2}\right)\end{aligned} \quad\quad\quad(6)$
其中,$\mathbb{1}_{i j}^{1}$ 表示如果 $\widehat{\mathbf{A}}_{i j}=1$,$\mathbb{1}_{i j}^{0}$ 表示如果 $\widehat{\mathbf{A}}_{i j}=0$。在这里,我们将同一节点的交叉视图邻居视为正样本,而将其他非邻居节点视为负样本。然后我们把阳性样本拉在一起,同时推开阴性样本。更准确地说,在 $\text{Eq.6}$ 中,第一项迫使节点即使在两个不同的视图中也与它们的邻居保持一致,而第二项则使节点与其非邻居之间的一致最小化。这种面向邻居的对比目标函数通过保持交叉视图结构的一致性,增强了我们网络的鉴别能力,从而提高了聚类性能。
2.5 Fusion and Clustering
在本节中,我们首先以线性的方式融合节点嵌入的两个增强视图,公式如下:
$\mathbf{Z}=\frac{1}{2}\left(\mathbf{Z}^{v_{1}}+\mathbf{Z}^{v_{2}}\right) \quad\quad\quad(7)$
其中,$\mathbf{Z} \in \mathbb{R}^{N \times d}$ 表示生成的面向聚类的节点嵌入。然后在 $\mathbf{Z}$ 上直接执行K-means算法[10],得到聚类结果。
2.6 Algorithm
3 Experiment
数据集
聚类实验
时间成本和GPU内存成本
消融实验
4 Conclusion
本文提出了一种对比深度图聚类方法,即简单对比图聚类(SCGC),从网络架构、数据增强和目标函数等方面改进了现有的方法。至于架构我们的网络主要包括预处理和网络骨干两个部分。具体地说,一个简单的低通去噪操作将邻居信息聚合作为一个独立的预处理。通过该操作,我们有效地过滤掉了属性中的高频噪声,从而提高了聚类性能。此外,只有两个mlp作为骨干。对于数据增强,我们通过设置参数非共享的编码器和破坏节点嵌入来构造不同的图视图,而不是在图上引入复杂的操作。此外,我们提出了一种新的面向邻居的对比损失来保持横视图结构的一致性,从而提高了网络的鉴别能力。得益于SCGC的简单性,它不需要预训练,并且节省了网络训练的时间和空间。值得注意的是,我们的算法优于最近的对比深度聚类竞争对手,平均加速速度至少为7倍。在7个数据集上的大量实验结果证明了SCGC的有效性和优越性。今后,为大规模图数据设计深度图聚类方法是值得尝试的。
论文解读(SCGC))《Simple Contrastive Graph Clustering》的更多相关文章
- 论文解读《Deep Attention-guided Graph Clustering with Dual Self-supervision》
论文信息 论文标题:Deep Attention-guided Graph Clustering with Dual Self-supervision论文作者:Zhihao Peng, Hui Liu ...
- 论文解读(MCGC)《Multi-view Contrastive Graph Clustering》
论文信息 论文标题:Multi-view Contrastive Graph Clustering论文作者:Erlin Pan.Zhao Kang论文来源:2021, NeurIPS论文地址:down ...
- 论文解读(CGC)《CGC: Contrastive Graph Clustering for Community Detection and Tracking》
论文信息 论文标题:CGC: Contrastive Graph Clustering for Community Detection and Tracking论文作者:Namyong Park, R ...
- 论文解读SDCN《Structural Deep Clustering Network》
前言 主体思想:深度聚类需要考虑数据内在信息以及结构信息. 考虑自身信息采用 基础的 Autoencoder ,考虑结构信息采用 GCN. 1.介绍 在现实中,将结构信息集成到深度聚类中通常需要解决以 ...
- 论文解读GALA《Symmetric Graph Convolutional Autoencoder for Unsupervised Graph Representation Learning》
论文信息 Title:<Symmetric Graph Convolutional Autoencoder for Unsupervised Graph Representation Learn ...
- 论文解读 - Relational Pooling for Graph Representations
1 简介 本文着眼于对Weisfeiler-Lehman算法(WL Test)和WL-GNN模型的分析,针对于WL测试以及WL-GNN所不能解决的环形跳跃连接图(circulant skip link ...
- 论文解读(GCC)《Efficient Graph Convolution for Joint Node RepresentationLearning and Clustering》
论文信息 论文标题:Efficient Graph Convolution for Joint Node RepresentationLearning and Clustering论文作者:Chaki ...
- 论文解读(SUGRL)《Simple Unsupervised Graph Representation Learning》
Paper Information Title:Simple Unsupervised Graph Representation LearningAuthors: Yujie Mo.Liang Pen ...
- 论文解读(AGC)《Attributed Graph Clustering via Adaptive Graph Convolution》
论文信息 论文标题:Attributed Graph Clustering via Adaptive Graph Convolution论文作者:Xiaotong Zhang, Han Liu, Qi ...
随机推荐
- c++中“::”和“:”啥意思
c++中"::"和":"啥意思 (1)"::" 1)类作用域操作符."::"指明了成员函数所属的类.如:M::f(s) ...
- 【前端小技巧】利用border画三角形及梯形
border是围绕元素内容和内边距的一条或多条线,border 属性允许你规定元素边框的样式.宽度和颜色 值: border-width 粗细 none/hidden/solid/dashed/dot ...
- javaweb之连接数据库
最近做完了一个图书系统的增删改查,想着来总结一下这几个月的所学内容. 一.首先你需要在电脑上安装上mysql或者sql server(本文以mysql为例) mysql官网:MySQL :: Begi ...
- java中哪块代码或说什么代码应该放在try块中呢?
我怎么知道哪块代码可能出现问题,从而放在try块儿中呢?马 克-to-win:一个笨办法,开始时,你并不加try,但你发现,运行时,用户赋给除数一个0,所以程序在这崩溃了,于是你就把这块代码加个try ...
- JAVA对XML文件的读写
XML 指可扩展标记语言(EXtensible Markup Language),是独立于软件和硬件的信息传输工具,应用于 web 开发的许多方面,常用于简化数据的存储和共享. xml指令处理指令,简 ...
- response.setHeader("Cache-Control","no-cache");的作用
1. response.setHeader("Cache-Control","no-cache"); This is used to prevent the ...
- 攻防世界——gif
分析 只有黑白两种颜色,大小均一样.考虑代表着二进制. python脚本 ''' 同样颜色的图片的二进制数据都相同 编写思路:取二进制 -> 转ascii码 ''' white = open(r ...
- 第一阶段:Java基础之OOP
OOP:面向对象编程 三大特征: 封装 继承 多态
- java实现二叉树的Node节点定义手撕8种遍历(一遍过)
java实现二叉树的Node节点定义手撕8种遍历(一遍过) 用java的思想和程序从最基本的怎么将一个int型的数组变成Node树状结构说起,再到递归前序遍历,递归中序遍历,递归后序遍历,非递归前序遍 ...
- go interface{}使用
先上代码 func In(haystack []interface{}, needle interface{}) (bool, error) { sVal := reflect.ValueOf(hay ...