Graph Convolutional Clustering

December 8, 2022 ยท View on GitHub

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

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