Skip to content

tsinghua-fib-lab/FedSkeleton

Repository files navigation

FedSkeleton

Official Implementation of "FedSkeleton: Secure Multi-Party Graph Skeleton Construction for Privacy-Preserving Federated Time-Series Forecasting" (AAAI 2026 Submission).

FedSkeleton is a privacy-preserving Federated Graph Learning (FGL) framework designed to tackle the challenge of data silos in time-series forecasting. It explicitly addresses the dilemma between capturing cross-party global dependencies and protecting sensitive graph topology.

The framework consists of two key components:

  1. Skeleton Construction Module: Securely constructs a global graph skeleton to capture intrinsic topological dependencies without revealing local sub-graph structures.
  2. Dual-stream Forecasting Module: Integrates local private dynamics with global skeleton-based information to achieve accurate time-series prediction.

👥 Authors

Henggang Deng¹, Yuchao Tang¹, Wenjie Fu², Huandong Wang¹†, Kun Chen³†, Tao Jiang² ¹Tsinghua University, ²Huazhong University of Science and Technology, ³Ant Group

📦 1. Installation

This project uses Conda for environment management.

# 1. Create the environment
conda env create -f environment.yml

# 2. Activate the environment
conda activate FedBone

# 3. (Optional) Install plotting dependencies if necessary
pip install SciencePlots

Note: The internal codename for this project is FedBone. You may see this name in some script files (e.g., training_mode: FedBone), which corresponds to the FedSkeleton method described in the paper.

🚀 2. Quick Start

Data Preparation

The system will automatically check the data/ directory. If datasets (e.g., PowerGrid, Social) are missing, simulator.py will attempt to generate or download the necessary sub-graph data.

Run Training

To reproduce the main results of FedSkeleton:

python main_train.py

Command Line Arguments

You can override configuration parameters (defined in config.yaml) via the command line:

# Example: Run on GPU 0 with specific dynamics
python main_train.py --device cuda:0 --dynamics PowerGrid

⚙️ 3. Configuration

Key hyperparameters in config.yaml:

Section Parameter Description
Method training_mode Set to FedBone to enable the FedSkeleton framework.
Model FedSke.n_dim Dimension for the Hyperbolic Skeleton embedding.
FedSke.ratio Skeleton extraction ratio (compression rate).
Data dynamics Dataset: Net (Synthetic), PowerGrid, Social, Airport.
Privacy Attack Set to True to simulate reconstruction attacks for privacy evaluation.
FL num_clients Number of parties (clients) in the federated setting.

📂 4. Project Structure

FedSkeleton/
├── config.yaml          # Hyperparameters (Skeleton ratio, embedding dim, etc.)
├── main_train.py        # Main entry point for Dual-stream Forecasting training
├── FLClient.py          # Base Federated Client
├── client.py            # FedSkeleton Client (Local Stream + Skeleton Construction)
├── server.py            # Server (Global Skeleton Aggregation)
├── model.py             # BackboneODE & Hyperbolic Embedding Modules
├── dynamics.py          # Differential Equation Models
├── simulator.py         # Graph Topology & Time-series Generator
└── utils.py             # Visualization & Metrics

📜 5. Citation

If you find this code useful for your research, please cite our paper:

@inproceedings{Deng2025FedSkeleton,
  title={FedSkeleton: Secure Multi-Party Graph Skeleton Construction for Privacy-Preserving Federated Time-Series Forecasting},
  author={Henggang Deng, Yuchao Tang, Wenjie Fu, Huandong Wang, Kun Chen, Tao Jiang},
  booktitle={AAAI Conference on Artificial Intelligence},
  year={2025}
}

📧 Contact

For any questions, please contact:

  • Henggang Deng: denghenggang2003@163.com
  • Huandong Wang: wanghuandong@tsinghua.edu.cn

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages