ADGC is a collection of state-of-the-art (SOTA), novel deep graph clustering methods (papers, codes and datasets). Any other interesting papers and codes are welcome. Any problems, please contact [email protected]. If you find this repository useful to your research or work, it is really appreciated to star this repository. ❤️
Deep graph clustering, which aims to reveal the underlying graph structure and divide the nodes into different groups, has attracted intensive attention in recent years.
- "A survey of clustering with deep learning: From the perspective of network architecture" [paper]
- DEC (ICML 16): "Unsupervised Deep Embedding for Clustering Analysis" [paper|code]
- IDEC (IJCAI 17): "Improved Deep Embedded Clustering with Local Structure Preservation" [paper|code]
- DCN (ICML 17): "Towards k-means-friendly spaces: Simultaneous deep learning and clustering" [paper|code]
- CC (AAAI 21): "Contrastive Clustering" [paper|code]
- Ada-Net (ICLR 22): "Ada-nets: Face clustering via adaptive neighbour discovery in the structure space" [paper|code]
- SAIL(AAAI 22): "SAIL: Self-Augmented Graph Contrastive Learning" [paper]
- SAE (AAAI 14): "Learning Deep Representations for Graph Clustering" [paper|code]
- GAE/VGAE (NeurIPS 16): "Variational Graph Auto-Encoders" [paper|code]
- MGAE (CIKM 17): "MGAE: Marginalized Graph Autoencoder for Graph Clustering" [paper|code]
- NetVAE (IJCAI 19): "Network-Specific Variational Auto-Encoder for Embedding in Attribute Networks" [paper]
- DAEGC (IJCAI 19): "Attributed Graph Clustering: A Deep Attentional Embedding Approach" [paper|code]
- GALA (ICCV 19): "Symmetric Graph Convolutional Autoencoder for Unsupervised Graph Representation Learning" [paper|code]
- RWR-GAE (arXiv 19): "RWR-GAE: Random Walk Regularization for Graph Auto Encoders" [paper|code]
- DGVAE (NeurIPS 20): "Dirichlet Graph Variational Autoencoder" [paper|code]
- SDCN/SDCN_Q (WWW 20): "Structural Deep Clustering Network" [paper|code]
- O2MAC (WWW 20): "One2Multi Graph Autoencoder for Multi-view Graph Clustering" [paper|code]
- CGCN/GMM-VGAE (AAAI 20): "Collaborative Graph Convolutional Networks: Unsupervised Learning Meets Semi-Supervised Learning" [paper|code]
- DFCN (AAAI 21): "Deep Fusion Clustering Network" [paper|code]
- R-GAE (arXiv 21): "Rethinking Graph Auto-Encoder Models for Attributed Graph Clustering" [paper|code]
- AGCN (MM 21): "Attention-driven Graph Clustering Network" [paper|code]
- DAGC (arXiv 21, extension of AGCN): ”Deep Attention-guided Graph Clustering with Dual Self-supervision“ [paper|code]
- AdaGAE (TPAMI 21): "Adaptive Graph Auto-Encoder for General Data Clustering" [paper|code]
- AHGAE (TKDE 21): "Adaptive Hypergraph Auto-Encoder for Relational Data Clustering" [paper]
- EGAE (TNNLS 22): "Embedding Graph Auto-Encoder for Graph Clustering"[paper|code]
- GC-VGE (PR 22): "Graph Clustering via Variational Graph Embedding" [paper]
- GCC (WSDM 22): "Efficient Graph Convolution for Joint Node Representation Learning and Clustering" [paper|code]
- scTAG (AAAI 22): "ZINB-based Graph Embedding Autoencoder for Single-cell RNA-seq Interpretations" [paper|code]
- AGAE (IJCAI 19): "Adversarial Graph Embedding for Ensemble Clustering" [paper]
- ARGA/ARVGA (TCYB 19): "Learning Graph Embedding with Adversarial Training Methods" [paper|code]
- WARGA (arXiv 21): "Wasserstein Adversarially Regularized Graph Autoencoder" [paper|code]
- AGC-DRR (IJCAI 22): "Attributed Graph Clustering with Dual Redundancy Reduction" [code]
- MVGRL (ICML 20): "Contrastive Multi-View Representation Learning on Graphs" [paper|code]
- AGE (SIGKDD 20): "Adaptive Graph Encoder for Attributed Graph Embedding" [paper|code]
- MCGC (NeurIPS 21): "Multi-view Contrastive Graph Clustering" [paper|code]
- SCAGC (arXiv 21): "Self-supervised Contrastive Attributed Graph Clustering" [paper]
- MGCCN (arXiv 21): "Multilayer Graph Contrastive Clustering Network" [paper]
- GDCL (IJCAI 21): "Graph Debiased Contrastive Learning with Joint Representation Clustering" [paper|code]
- GCC (ICCV 21): "Graph Contrastive Clustering" [paper|code]
- DCRN (AAAI 22): "Deep Graph Clustering via Dual Correlation Reduction" [paper|code]
- AFGRL (AAAI 22): "Augmentation-Free Self-Supervised Learning on Graphs" [paper|code]
- IDCRN (arXiv 22, extension of DCRN): "Improved Dual Correlation Reduction Network" [paper]
- SUBLIME (WWW 22): "Towards Unsupervised Deep Graph Structure Learning" [paper|code]
- AGC (IJCAI 19): "Attributed Graph Clustering via Adaptive Graph Convolution" [paper|code]
- MCGC (TIP 19): "Multiview Consensus Graph Clustering" [paper|code]
- HAN (WWW 19): "Heterogeneous Graph Attention Network" [paper|code]
- DAG (ICCKE 20): "Attributed Graph Clustering via Deep Adaptive Graph Maximization" [paper]
- MAGCN (IJCAI 20): "Multi-View Attribute Graph Convolution Networks for Clustering" [paper|code]
- Cross-Graph (ICDM 20): "Cross-Graph: Robust and Unsupervised Embedding for Attributed Graphs with Corrupted Structure" [paper|code]
- DMGI (AAAI 20): "Unsupervised Attributed Multiplex Network Embedding" [paper|code]
- MAGNN (WWW 20): "MAGNN: Metapath Aggregated Graph Neural Network for Heterogeneous Graph Embedding" [paper|code]
- MinCutPool (ICML 20): "Spectral Clustering with Graph Neural Networks for Graph Pooling" [paper|code]
- GCAGC (CVPR 20): "Adaptive Graph Convolutional Network with Attention Graph Clustering for Co saliency Detection" [paper|code]
- DBGAN (CVPR 20): "Distribution-induced Bidirectional GAN for Graph Representation Learning" [paper|code]
- CAGNN (arXiv 20): "Cluster-Aware Graph Neural Networks for Unsupervised Graph Representation Learning" [paper]
- COLES (NeurIPS 21): "Contrastive Laplacian Eigenmaps" [paper|code]
- Graph-MVP (arXiv 21): "Graph-MVP: Multi-View Prototypical Contrastive Learning for Multiplex Graphs" [paper|code]
- MvAGC (IJCAI 21): "Graph Filter-based Multi-view Attributed Graph Clustering" [paper|code]
- GIC (PAKDD 21): "Graph InfoClust: Maximizing Coarse-Grain Mutual Information in Graphs" [paper|code]
- HDMI (WWW 21): "High-order Deep Multiplex Infomax" [paper|code]
- MAGC (TKDE 21): "Multi-view Attributed Graph Clustering" [paper|code]
- NAS-GC (TCYB 21): "Smoothness Sensor: Adaptive Smoothness Transition Graph Convolutions for Attributed Graph Clustering" [paper|code]
- SENet (NN 21): "Spectral embedding network for attributed graph clustering" [paper]
- DNENC (PR 22): "Deep neighbor-aware embedding for node clustering in attributed graphs" [paper]
- SDSNE(AAAI 22): "Stationary diffusion state neural estimation for multiview clustering" [paper|code]
- AUTOSSL (ICLR 22): "Automated Self-Supervised Learning For Graphs" [paper|code]
- SAGES (TKDE 22): "SAGES: Scalable Attributed Graph Embedding with Sampling for Unsupervised Learning" [paper]
- MVGC (NN 22): "Multi-view graph embedding clustering network: Joint self-supervision and block diagonal representation" [paper|code]
- FGC (SDM22): "Fine-grained Attributed Graph Clustering" [paper|code]
We divide the datasets into two categories, i.e. graph datasets and non-graph datasets. Graph datasets are some graphs in real-world, such as citation networks, social networks and so on. Non-graph datasets are NOT graph type. However, if necessary, we could construct "adjacency matrices" by K-Nearest Neighbors (KNN) algorithm.
- Step1: Download all datasets from [Google Drive | Nutstore]. Optionally, download some of them from URLs in the tables (Google Drive)
- Step2: Unzip them to ./dataset/
- Step3: Change the type and the name of the dataset in main.py
- Step4: Run the main.py
- utils.py
- load_graph_data: load graph datasets
- load_data: load non-graph datasets
- normalize_adj: normalize the adjacency matrix
- diffusion_adj: calculate the graph diffusion
- construct_graph: construct the knn graph for non-graph datasets
- numpy_to_torch: convert numpy to torch
- torch_to_numpy: convert torch to numpy
- clustering.py
- setup_seed: fix the random seed
- evaluation: evaluate the performance of clustering
- k_means: K-means algorithm
- visualization.py
- t_sne: t-SNE algorithm
- similarity_plot: visualize cosine similarity matrix of the embedding or feature
About the introduction of each dataset, please check here
-
Graph Datasets
Dataset Samples Dimension Edges Classes URL CORA 2708 1433 5278 7 cora.zip CITESEER 3327 3703 4552 6 citeseer.zip PUBMED 19717 500 44324 3 pubmed.zip DBLP 4057 334 3528 4 dblp.zip ACM 3025 1870 13128 3 acm.zip AMAP 7650 745 119081 8 amap.zip AMAC 13752 767 245861 10 amac.zip CORAFULL 19793 8710 63421 70 corafull.zip WIKI 2405 4973 8261 19 wiki.zip COCS 18333 6805 81894 15 cocs.zip BAT 131 81 1038 4 bat.zip EAT 399 203 5994 4 eat.zip UAT 1190 239 13599 4 uat.zip
Edges: Here, we just count the number of undirected edges.
-
Non-graph Datasets
Dataset Samples Dimension Type Classes URL USPS 9298 256 Image 10 usps.zip HHAR 10299 561 Record 6 hhar.zip REUT 10000 2000 Text 4 reut.zip
If you use our code or the processed datasets in this repository for your research, please cite our paper.
@inproceedings{DCRN,
title={Deep Graph Clustering via Dual Correlation Reduction},
author={Liu, Yue and Tu, Wenxuan and Zhou, Sihang and Liu, Xinwang and Song, Linxuan and Yang, Xihong and Zhu, En},
booktitle={AAAI Conference on Artificial Intelligence},
year={2022}
}
@article{mrabah2021rethinking,
title={Rethinking Graph Auto-Encoder Models for Attributed Graph Clustering},
author={Mrabah, Nairouz and Bouguessa, Mohamed and Touati, Mohamed Fawzi and Ksantini, Riadh},
journal={arXiv preprint arXiv:2107.08562},
year={2021}
}
awesome-awesome-machine-learning