Skip to content

Awesome Deep Graph Clustering is a collection of SOTA, novel deep graph clustering methods (papers, codes, and datasets).

License

Notifications You must be signed in to change notification settings

S8XY/Awesome-Deep-Graph-Clustering

 
 

Repository files navigation

ADGC: Awesome Deep Graph Clustering

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 yueliu19990731@163.com. If you find this repository useful to your research or work, it is really appreciated to star this repository. ✨ If you use our code or the processed datasets in this repository for your research, please cite 1-2 papers in the citation part. ❤️

Made with Python GitHub stars GitHub forks visitors


What's Deep Graph Clustering?

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.

Important Survey Papers

  1. "A survey of clustering with deep learning: From the perspective of network architecture" [paper]
  2. "A Comprehensive Survey on Community Detectionwith Deep Learning" [paper]
  3. "A Comprehensive Survey on Graph Neural Networks" [paper]
  4. "A Survey on Graph Structure Learning: Progress and Opportunities" [paper]

Papers

Traditional Clustering

  1. K-Means: "Algorithm AS 136: A k-means clustering algorithm" [paper|code]

Deep Clustering

  1. DEC (ICML 16): "Unsupervised Deep Embedding for Clustering Analysis" [paper|code]
  2. IDEC (IJCAI 17): "Improved Deep Embedded Clustering with Local Structure Preservation" [paper|code]
  3. DCN (ICML 17): "Towards k-means-friendly spaces: Simultaneous deep learning and clustering" [paper|code]
  4. CC (AAAI 21): "Contrastive Clustering" [paper|code]
  5. Ada-Net (ICLR 22): "Ada-nets: Face clustering via adaptive neighbour discovery in the structure space" [paper|code]
  6. AdaGAE (TPAMI 21): "Adaptive Graph Auto-Encoder for General Data Clustering" [paper|code]
  7. TCL (IJCV 22): "Twin Contrastive Learning for Online Clustering" [paper|code]

Generative Deep Graph Clustering

  1. SAE (AAAI 14): "Learning Deep Representations for Graph Clustering" [paper|code]
  2. GAE/VGAE (NeurIPS 16): "Variational Graph Auto-Encoders" [paper|code]
  3. MGAE (CIKM 17): "MGAE: Marginalized Graph Autoencoder for Graph Clustering" [paper|code]
  4. NetVAE (IJCAI 19): "Network-Specific Variational Auto-Encoder for Embedding in Attribute Networks" [paper]
  5. DAEGC (IJCAI 19): "Attributed Graph Clustering: A Deep Attentional Embedding Approach" [paper|code]
  6. GALA (ICCV 19): "Symmetric Graph Convolutional Autoencoder for Unsupervised Graph Representation Learning" [paper|code]
  7. RWR-GAE (arXiv 19): "RWR-GAE: Random Walk Regularization for Graph Auto Encoders" [paper|code]
  8. DGVAE (NeurIPS 20): "Dirichlet Graph Variational Autoencoder" [paper|code]
  9. SDCN/SDCN_Q (WWW 20): "Structural Deep Clustering Network" [paper|code]
  10. O2MAC (WWW 20): "One2Multi Graph Autoencoder for Multi-view Graph Clustering" [paper|code]
  11. CGCN/GMM-VGAE (AAAI 20): "Collaborative Graph Convolutional Networks: Unsupervised Learning Meets Semi-Supervised Learning" [paper|code]
  12. DFCN (AAAI 21): "Deep Fusion Clustering Network" [paper|code]
  13. R-GAE (arXiv 21): "Rethinking Graph Auto-Encoder Models for Attributed Graph Clustering" [paper|code]
  14. AGCN (MM 21): "Attention-driven Graph Clustering Network" [paper|code]
  15. DAGC (arXiv 21, extension of AGCN): ”Deep Attention-guided Graph Clustering with Dual Self-supervision“ [paper|code]
  16. AHGAE (TKDE 21): "Adaptive Hypergraph Auto-Encoder for Relational Data Clustering" [paper]
  17. EGAE (TNNLS 22): "Embedding Graph Auto-Encoder for Graph Clustering"[paper|code]
  18. GC-VGE (PR 22): "Graph Clustering via Variational Graph Embedding" [paper]
  19. GCC (WSDM 22): "Efficient Graph Convolution for Joint Node Representation Learning and Clustering" [paper|code]
  20. scTAG (AAAI 22): "ZINB-based Graph Embedding Autoencoder for Single-cell RNA-seq Interpretations" [paper|code]
  21. CDRS (TNNLS 22): "Collaborative Decision-Reinforced Self-Supervision for Attributed Graph Clustering" [paper|code]
  22. DNENC (PR 22): "Deep neighbor-aware embedding for node clustering in attributed graphs" [paper]

Adversarial Deep Graph Clustering

  1. ARGA/ARVGA (IJCAI 18) : "Adversarially Regularized Graph Autoencoder for Graph Embedding" [paper|code]
  2. AGAE (IJCAI 19): "Adversarial Graph Embedding for Ensemble Clustering" [paper]
  3. ARGA/ARVGA (TCYB 19): "Learning Graph Embedding with Adversarial Training Methods" [paper|code]
  4. WARGA (arXiv 21): "Wasserstein Adversarially Regularized Graph Autoencoder" [paper|code]

Contrastive Deep Graph Clustering

  1. MVGRL (ICML 20): "Contrastive Multi-View Representation Learning on Graphs" [paper|code]
  2. AGE (SIGKDD 20): "Adaptive Graph Encoder for Attributed Graph Embedding" [paper|code]
  3. MCGC (NeurIPS 21): "Multi-view Contrastive Graph Clustering" [paper|code]
  4. SCAGC (arXiv 21): "Self-supervised Contrastive Attributed Graph Clustering" [paper]
  5. MGCCN (arXiv 21): "Multilayer Graph Contrastive Clustering Network" [paper]
  6. GDCL (IJCAI 21): "Graph Debiased Contrastive Learning with Joint Representation Clustering" [paper|code]
  7. DCRN (AAAI 22): "Deep Graph Clustering via Dual Correlation Reduction" [paper|code]
  8. AFGRL (AAAI 22): "Augmentation-Free Self-Supervised Learning on Graphs" [paper|code]
  9. SAIL(AAAI 22): "SAIL: Self-Augmented Graph Contrastive Learning" [paper]
  10. IDCRN (arXiv 22, extension of DCRN): "Improved Dual Correlation Reduction Network" [paper]
  11. AGC-DRR (IJCAI 22): "Attributed Graph Clustering with Dual Redundancy Reduction" [paper|code]
  12. SUBLIME (WWW 22): "Towards Unsupervised Deep Graph Structure Learning" [paper|code]
  13. CGC (WWW 22): "CGC: Contrastive Graph Clustering for Community Detection and Tracking" [paper]
  14. SCGC (arXiv 22): "Simple Contrastive Graph Clustering" [paper]
  15. SCGC (arXiv 22): "SCGC : Self-Supervised Contrastive Graph Clustering" [paper|code]
  16. NCAGC (arXiv 22): "NCAGC: A Neighborhood Contrast Framework for Attributed Graph Clustering" [paper|code]

Other Related Methods

  1. AGC (IJCAI 19): "Attributed Graph Clustering via Adaptive Graph Convolution" [paper|code]
  2. MCGC (TIP 19): "Multiview Consensus Graph Clustering" [paper|code]
  3. HAN (WWW 19): "Heterogeneous Graph Attention Network" [paper|code]
  4. DAG (ICCKE 20): "Attributed Graph Clustering via Deep Adaptive Graph Maximization" [paper]
  5. MAGCN (IJCAI 20): "Multi-View Attribute Graph Convolution Networks for Clustering" [paper|code]
  6. Cross-Graph (ICDM 20): "Cross-Graph: Robust and Unsupervised Embedding for Attributed Graphs with Corrupted Structure" [paper|code]
  7. DMGI (AAAI 20): "Unsupervised Attributed Multiplex Network Embedding" [paper|code]
  8. MAGNN (WWW 20): "MAGNN: Metapath Aggregated Graph Neural Network for Heterogeneous Graph Embedding" [paper|code]
  9. MinCutPool (ICML 20): "Spectral Clustering with Graph Neural Networks for Graph Pooling" [paper|code]
  10. GCAGC (CVPR 20): "Adaptive Graph Convolutional Network with Attention Graph Clustering for Co saliency Detection" [paper|code]
  11. DBGAN (CVPR 20): "Distribution-induced Bidirectional GAN for Graph Representation Learning" [paper|code]
  12. CAGNN (arXiv 20): "Cluster-Aware Graph Neural Networks for Unsupervised Graph Representation Learning" [paper]
  13. COLES (NeurIPS 21): "Contrastive Laplacian Eigenmaps" [paper|code]
  14. Graph-MVP (arXiv 21): "Graph-MVP: Multi-View Prototypical Contrastive Learning for Multiplex Graphs" [paper|code]
  15. MvAGC (IJCAI 21): "Graph Filter-based Multi-view Attributed Graph Clustering" [paper|code]
  16. GIC (PAKDD 21): "Graph InfoClust: Maximizing Coarse-Grain Mutual Information in Graphs" [paper|code]
  17. HDMI (WWW 21): "High-order Deep Multiplex Infomax" [paper|code]
  18. MAGC (TKDE 21): "Multi-view Attributed Graph Clustering" [paper|code]
  19. NAS-GC (TCYB 21): "Smoothness Sensor: Adaptive Smoothness Transition Graph Convolutions for Attributed Graph Clustering" [paper|code]
  20. SENet (NN 21): "Spectral embedding network for attributed graph clustering" [paper]
  21. SSGC (ICLR 21): "Simple Spectral Graph Convolution" [paper|code]
  22. SDSNE(AAAI 22): "Stationary diffusion state neural estimation for multiview clustering" [paper|code]
  23. AUTOSSL (ICLR 22): "Automated Self-Supervised Learning For Graphs" [paper|code]
  24. SAGES (TKDE 22): "SAGES: Scalable Attributed Graph Embedding with Sampling for Unsupervised Learning" [paper]
  25. MVGC (NN 22): "Multi-view graph embedding clustering network: Joint self-supervision and block diagonal representation" [paper|code]
  26. FGC (SDM22): "Fine-grained Attributed Graph Clustering" [paper|code]
  27. GRACE (TKDD 22): "GRACE: A General Graph Convolution Framework for Atributed Graph Clustering" [paper]

Benchmark Datasets

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.

Quick Start

  • 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

Code

  • utils.py
    1. load_graph_data: load graph datasets
    2. load_data: load non-graph datasets
    3. normalize_adj: normalize the adjacency matrix
    4. diffusion_adj: calculate the graph diffusion
    5. construct_graph: construct the knn graph for non-graph datasets
    6. numpy_to_torch: convert numpy to torch
    7. torch_to_numpy: convert torch to numpy
  • clustering.py
    1. setup_seed: fix the random seed
    2. evaluation: evaluate the performance of clustering
    3. k_means: K-means algorithm
  • visualization.py
    1. t_sne: t-SNE algorithm
    2. similarity_plot: visualize cosine similarity matrix of the embedding or feature

Datasets Details

About the introduction of each dataset, please check here

  1. Graph Datasets

    Dataset # Samples # Dimension # Edges # Classes URL
    CORA 2708 1433 5278 7 cora.zip
    CITESEER 3327 3703 4552 6 citeseer.zip
    CITE 3327 3703 4552 6 cite.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 17 wiki.zip
    COCS 18333 6805 81894 15 cocs.zip
    CORNELL 183 1703 149 5 cornell.zip
    TEXAS 183 1703 162 5 texas.zip
    WISC 251 1703 257 5 wisc.zip
    FILM 7600 932 15009 5 film.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.

  1. 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

Citation

@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={Proceedings of the AAAI Conference on Artificial Intelligence},
  volume={36},
  number={7},
  pages={7603-7611},
  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}
}

Other Related Awesome Repository

awesome-awesome-machine-learning

Awesome Incomplete Graph Representation Learning

awesome-self-supervised-gnn

About

Awesome Deep Graph Clustering is a collection of SOTA, novel deep graph clustering methods (papers, codes, and datasets).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%