Skip to content

Official repository for the paper "Sparse Graph Learning from Spatiotemporal Time Series" (JMLR 2023)

License

Notifications You must be signed in to change notification settings

andreacini/sparse-graph-learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sparse Graph Learning from Spatiotemporal Time Series (JMLR 2023)

JMLR PDF arXiv

This repository contains the code for the reproducibility of the controlled experiments presented in the paper "Sparse Graph Learning from Spatiotemporal Time Series" (JMLR 2023).

Authors: Andrea Cini, Daniele Zambon, Cesare Alippi


In a nutshell

We propose novel, principled - yet practical - probabilistic score-based methods that learn the relational dependencies as distributions over graphs while maximizing end-to-end the performance at task. The proposed graph learning framework is based on consolidated variance reduction techniques for Monte Carlo score-based gradient estimation, is theoretically grounded, and, as we show, effective in practice. In this paper, we focus on the time series forecasting problem and show that, by tailoring the gradient estimators to the graph learning problem, we are able to achieve state-of-the-art performance while controlling the sparsity of the learned graph and the computational scalability.


Directory structure

The directory is structured as follows:

.
├── config/synthetic/
│   └── defaults.yaml
├── lib/
├── conda_env.yaml
├── default_config.yaml
└── experiments/
    └── run_synthetic.py

Configuration files

The config directory stores all the configuration file used to run the experiments.

Requirements

We run all the experiments in python 3.10. To solve all dependencies, we recommend using Anaconda and the provided environment configuration by running the command:

conda env create -f conda_env.yaml
conda activate sgl

Library

The support code, including the models and the datasets readers, are provided within in a python library named lib which heavily relies on tsl.

Experiments

The script used for the experiments is in the experiments folder.

The script run_synthetic.py is used to run experiments on the GPVAR dataset. An example of usage is

CUDA_VISIBLE_DEVICES=0 python -m experiments.run_synthetic config=defaults

which runs the experiment with the default configuration (SNS with variance reduction and dummy nodes), on the GPU with ID 0. To run experiments in different settings, you can edit the configuration file in the config/synthetic folder.

Bibtex reference

If you find this code useful please consider to cite our paper:

@article{cini2023sparse,
  title={Sparse Graph Learning from Spatiotemporal Time Series},
  author={Cini, Andrea and Zambon, Daniele and Alippi, Cesare},
  journal={Journal of Machine Learning Research},
  volume={24},
  number={242},
  pages={1--36},
  year={2023}
}

About

Official repository for the paper "Sparse Graph Learning from Spatiotemporal Time Series" (JMLR 2023)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages