The official repository for <Graph Geometry-Preserving Autoencoders> (Lim, Kim, Lee, Jang, and Park, ICML 2024)
Figure 1: (Left) An ideal latent representation, (Middle) distorted representation obtained by AE, and (Right) graph geometry-preserving representation obtained by GGAE.This paper proposes Graph Geometry-Preserving Autoencoder (GGAE), a regularized autoencoder trained by minimizing the reconstruction error + distortion measure of graph geometry. It produces latent representation that preserves shortest-path distances along a graph connecting data points by semantic distances or similarity.
Figure 2: (Left) An ideal latent representation, (Middle) distorted representation obtained by AE, and (Right) graph geometry-preserving representation obtained by GGAE.
Figure 3: (Left) An ideal latent representation, (Middle) distorted representation obtained by AE, and (Right) graph geometry-preserving representation obtained by GGAE.
The project is developed under a standard PyTorch environment.
- python 3.7
- numpy
- matplotlib
- scikit-learn
- tqdm
- argparse
- omegaconf
- tensorboardX
- torch 1.13.1
Run ./notebook/01_RotatingMNIST_dataset_generation.ipynb
.
Run ./notebook/02_dSprites_dataset_generation.ipynb
.
python train.py --config configs/swissroll/swissroll_ae_z2.yml
python train.py --config configs/rotatingmnist/rotatingmnist_ae_z2.yml
python train.py --config configs/dsprites/dsprites_ae_z3.yml
python train.py --config configs/swissroll/swissroll_ggae_z2.yml
python train.py --config configs/rotatingmnist/rotatingmnist_ggae_z2.yml
python train.py --config configs/dsprites/dsprites_ggae_z3.yml
- The results will be saved in './results' directory.
tensorboard --logdir results/
If you found this library useful in your research, please consider citing:
@inproceedings{limgraph,
title={Graph Geometry-Preserving Autoencoders},
author={Lim, Jungbin and Kim, Jihwan and Lee, Yonghyeon and Jang, Cheongjae and Park, Frank C},
booktitle={Forty-first International Conference on Machine Learning}
}