[AAAI 2026] TSGDiff: Rethinking Synthetic Time Series Generation from a Pure Graph Perspective

February 3, 2026 ยท View on GitHub

๐Ÿ“‹ Table of Contents

๐Ÿ”ง Installation

See requirements.txt for details.

๐Ÿ“Š Dataset

The model is designed for time series generation, and the data set used is shown in the datasets directory.

โš™๏ธ Configuration

Parameter configuration

ArgumentTypeDefaultDescription
--data_filestrdatasets/{filename}.csvPath to input data file (ETTh.csv)
--output_dirstroutputDirectory to save output results (including visualizations and metrics)
--slide_winint48Sliding window size for time series slicing
--slide_strideint1Sliding stride for time series slicing
--hidden_dimint1600Graph encoder hidden layer dimension
--embed_dimint1600Graph encoder embedding dimension
--use_period_indexint2Index of period used for graph edge generation
--batch_sizeint128Batch size for training
--epochsint500Number of training epochs
--learning_ratefloat0.01Learning rate for optimizer
--normalize_databoolTrueWhether to normalize input data
--feature_rangetuple(-1, 1)Feature range for Min-Max normalization
--kl_weightfloat0.2Weight for KL divergence loss in total loss calculation
--diffusion_weightfloat1.0Weight for Diffusion model loss in total loss calculation
--num_timestepsint1000Number of timesteps for Diffusion model
--beta_startfloat0.0001Starting value of beta for Diffusion model noise schedule
--beta_endfloat0.02Ending value of beta for Diffusion model noise schedule
--nblocksint3Number of intermediate blocks in Diffusion Block
--nunitsint64Number of units per Diffusion Block
--kint2Multiplier for extending edges with remaining periods (graph construction)
--ff_weightfloatsqrt(slide_win)/5Weight for Fourier loss (scaled by sliding window size)

๐Ÿ“Š Results

Results are automatically saved to:

  • Original data: output/original_data.npy
  • Generated data: output/generated_data.npy
  • Visualizations: output/visualizations/
  • Evaluation metrics: output/metrics.txt

๐Ÿ“ Project Structure

TSGDiff/
โ”œโ”€โ”€ main.py                          # Main entry point for training/inference/evaluation
โ”œโ”€โ”€ model.py                         # Core implementation of TSGDiff Model
โ”œโ”€โ”€ config.py                        # Global hyperparameter & path configurations
โ”œโ”€โ”€ train_utils.py                   # Training utilities
โ”œโ”€โ”€ data_utils.py                    # Data loading & preprocessing for temporal-spatial graph
โ”œโ”€โ”€ graph_metric.py                  # Topo-FID calculations
โ”œโ”€โ”€ evaluation_utils.py              # Evaluation metrics
โ”œโ”€โ”€ visualization_utils.py           # Visualization tools
โ”œโ”€โ”€ requirements.txt                 # Python dependencies
โ”œโ”€โ”€ config/
โ”‚   โ””โ”€โ”€ *.yaml                       # Scene/dataset-specific configuration files
โ””โ”€โ”€ datasets/
    โ””โ”€โ”€ *.csv                        # Temporal-spatial graph datasets

๐Ÿ“ Citation

If you use this code in your research, please cite:

@inproceedings{TSGDiff,
  title={TSGDiff: Rethinking Synthetic Time Series Generation from a Pure Graph Perspective},
  author={Shen, Lifeng and Li, Xuyang and Long, Lele},
  booktitle={Proceedings of the AAAI Conference on Artificial Intelligence},
  year={2026}
}

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ“ง Contact

For questions or issues, please contact: