Skip to content

[NeurIPS 2024] Continuous Temporal Domain Generalization

License

Notifications You must be signed in to change notification settings

Zekun-Cai/Koodos

Repository files navigation

[NeurIPS 24] Continuous Temporal Domain Generalization

This repository contains the official code and datasets for the paper, "Continuous Temporal Domain Generalization", accepted by NeurIPS 2024.

TL;DR: The study proposes a method capable of generating applicable neural networks at any given moment, based on observing domain data at random time points within a concept drift environment.

Abstract

Temporal Domain Generalization (TDG) traditionally deals with training models on temporal domains collected at fixed intervals, limiting their ability to handle continuously evolving, irregular temporal domains. This work introduces Continuous Temporal Domain Generalization (CTDG) and presents Koodos, a model designed to address and optimize this challenge.

Koodos comprises three key components: 1) Describing the evolution of model parameters by constructing a dynamical system; 2) Modeling complex nonlinear dynamics by Koopman Theory; and 3) Joint optimization of the model and its dynamics.

Table of Contents

  1. Installation
  2. Quick Demo
  3. Usage
  4. Code Structure
  5. Citation
  6. Further Reading

Installation

To get started, clone the repository and install the required dependencies.

git clone https://github.com/Zekun-Cai/Koodos.git
cd Koodos
pip install -r requirements.txt

Downloading the Dataset

The datasets used in this project can be downloaded from Dataset Download Link. After downloading, please place the files in the data directory.

Quick Demo

Before diving into the source code, we provide a Jupyter Notebook Tutorial_for_Koodos in this repository, which provides a step-by-step guide to the Koodos framework and demonstrates its core functionality on a sample dataset to give you an intuitive understanding of how it works.

Usage

To train and test the model using the Koodos framework, follow this command:

python main.py --dataset <dataset-name> --cuda <GPU-No.>

Available Datasets: Moons; MNIST; Twitter; YearBook; Cyclone; House.

You can modify the hyperparameters by adjusting the param.py config file.

Code Structure

|-- data/                # Directory for dataset files
|-- model/               # Directory for dataset-specific model architectures (e.g., Moons, MNIST)
|-- save/                # Directory for storing model outputs and logs
|-- param.py             # Configuration file for various datasets
|-- util.py              # General utility functions file
|-- koodos.py            # Core implementation of the Koodos framework
|-- main.py              # Main program: handles data loading, training, and testing

Citation

If you find our work useful, please cite the following:

@inproceedings{cai2024continuous,
  title={Continuous Temporal Domain Generalization},
  author={Cai, Zekun and Bai, Guangji and Jiang, Renhe and Song, Xuan and Zhao, Liang},
  booktitle = {Advances in Neural Information Processing Systems},
  year={2024}
}

Related Reading

Temporal Domain Generalization with Drift-Aware Dynamic Neural Networks, in ICLR 2023.
MemDA: Forecasting Urban Time Series with Memory-based Drift Adaptation, in CIKM 2023.

License

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

About

[NeurIPS 2024] Continuous Temporal Domain Generalization

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published