Home

Awesome

Graph Convolutional Clustering

This repository provides Python (Tensorflow) code to reproduce experiments from the WSDM '22 paper Efficient Graph Convolution for Joint Node Representation Learning and Clustering.

<img src="./schematic.png">

Installation

python setup.py install

Run Experiments

Parameter list

For run.py

ParameterTypeDefaultDescription
datasetstringcoraName of the graph dataset (cora, citeseer, pubmed or wiki).
powerinteger5First power to test.
runsinteger20Number of runs per power.
n_clustersinteger0Number of clusters (0 for ground truth).
max_iterinteger30Number of iterations of the algorithm.
tolfloat10e-7Tolerance threshold of convergence.

For tune_power.py parameters are the same except for power which is replaced by

ParameterTypeDefaultDescription
min_powerinteger1Smallest propagation order to test.
max_powerinteger150Largest propagation order to test.

Best Propagation Orders

DatasetPropagation order
citeseer5
cora12
pubmed150
wiki4

Example

To adaptively tune the power on Cora use

python gcc/tune_power.py --dataset=cora

To run the model on Cora for power p=12 and have the average execution time

python gcc/run.py --dataset=cora --power 12

Citation

Please cite the following paper if you used GCC in your research

@inproceedings{fettal2022efficient,
  author = {Fettal, Chakib and Labiod, Lazhar and Nadif, Mohamed},
  title = {Efficient Graph Convolution for Joint Node Representation Learning and Clustering},
  year = {2022},
  publisher = {Association for Computing Machinery},
  doi = {10.1145/3488560.3498533},
  booktitle = {Proceedings of the Fifteenth ACM International Conference on Web Search and Data Mining},
  pages = {289–297},
}