Giter VIP home page Giter VIP logo

awesome-deep-graph-clustering's Introduction

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 [email protected]. If you find this repository useful to your research or work, it is really appreciated to star this repository. ❤️

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]

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. SAIL(AAAI 22): "SAIL: Self-Augmented Graph Contrastive Learning" [paper]

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. AdaGAE (TPAMI 21): "Adaptive Graph Auto-Encoder for General Data Clustering" [paper|code]
  17. AHGAE (TKDE 21): "Adaptive Hypergraph Auto-Encoder for Relational Data Clustering" [paper]
  18. EGAE (TNNLS 22): "Embedding Graph Auto-Encoder for Graph Clustering"[paper|code]
  19. GC-VGE (PR 22): "Graph Clustering via Variational Graph Embedding" [paper]
  20. GCC (WSDM 22): "Efficient Graph Convolution for Joint Node Representation Learning and Clustering" [paper|code]
  21. scTAG (AAAI 22): "ZINB-based Graph Embedding Autoencoder for Single-cell RNA-seq Interpretations" [paper|code]
  22. CDRS (TNNLS 22): "Collaborative Decision-Reinforced Self-Supervision for Attributed Graph Clustering" [paper|code]
  23. DNENC (PR 22): "Deep neighbor-aware embedding for node clustering in attributed graphs" [paper]

Adversarial Deep Graph Clustering

  1. AGAE (IJCAI 19): "Adversarial Graph Embedding for Ensemble Clustering" [paper]
  2. ARGA/ARVGA (TCYB 19): "Learning Graph Embedding with Adversarial Training Methods" [paper|code]
  3. 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. IDCRN (arXiv 22, extension of DCRN): "Improved Dual Correlation Reduction Network" [paper]
  10. AGC-DRR (IJCAI 22): "Attributed Graph Clustering with Dual Redundancy Reduction" [code]
  11. SUBLIME (WWW 22): "Towards Unsupervised Deep Graph Structure Learning" [paper|code]
  12. CGC (WWW 22): "CGC: Contrastive Graph Clustering for Community Detection and Tracking" [paper]
  13. DCAGC (arXiv 22): "Dual Contrastive Attributed Graph Clustering Network" [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]

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

  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

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}
}

Other Related Awesome Repository

awesome-awesome-machine-learning

Awesome Incomplete Graph Representation Learning

awesome-self-supervised-gnn

awesome-deep-graph-clustering's People

Contributors

yueliu1999 avatar nairouz avatar xihongyang1999 avatar zbw0329 avatar gocoding11 avatar jinjiaqi1998 avatar wxtu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.