T1: One-to-One Channel-Head Binding for Multivariate Time-Series Imputation

March 2, 2026 · View on GitHub

This is the official implementation of T1, accepted at ICLR 2026.

Dongik Park, Hyunwoo Ryu, Suahn Bae, Keondo Park, and Hyung-Sin Kim Graduate School of Data Science, Seoul National University

T1 introduces Channel-Head Binding — a mechanism creating one-to-one correspondence between CNN channels and attention heads — enabling selective information transfer that adapts based on observable patterns, down-weighting corrupted channels while maintaining reliable cross-variable connections.

Key Features

  • Channel-Head Binding (CHead Attention): One-to-one correspondence between CNN channels and attention heads, enabling feature-specific cross-variable information transfer
  • Temporal Convolutional Q, K, V Projection: Shared depthwise convolutions with multi-scale large kernels for robust temporal feature extraction
  • Mask-Aware Embedding: Explicitly encodes missing value locations for imputation-aware representation
  • 46% average MSE reduction over the second-best baseline across 11 benchmarks

Getting Started

Installation

pip install -r requirements.txt

For extended datasets (PhysioNet2012, PEMS03, PM25):

pip install pypots benchpots pygrinder tsdb

Dataset Preparation

Download datasets and place them under ./dataset/:

dataset/
├── ETT-small/       # ETTh1.csv, ETTh2.csv, ETTm1.csv, ETTm2.csv
├── weather/         # weather.csv
├── electricity/     # electricity.csv
├── exchange_rate/   # exchange_rate.csv
└── illness/         # national_illness.csv

Standard datasets can be obtained from Time-Series-Library. Extended datasets (PhysioNet2012, PEMS03) are automatically downloaded via BenchPOTS.

Quick Start

# Train T1 on ETTh1 with 25% mask rate
bash scripts/imputation/T1_ETTh1.sh

# Train on all mask rates (12.5%, 25%, 37.5%, 50%)
# Each script loops over 4 mask rates automatically

Custom Training

python run.py \
  --model T1 \
  --data ETTh1 \
  --root_path ./dataset/ETT-small/ \
  --data_path ETTh1.csv \
  --seq_len 96 \
  --mask_rate 0.25 \
  --enc_in 7 \
  --n_heads 128 \
  --batch_size 16 \
  --learning_rate 0.001

Supported Datasets

DatasetVariatesSeq LenSourceScript
ETTh1796tslibT1_ETTh1.sh
ETTh2796tslibT1_ETTh2.sh
ETTm1796tslibT1_ETTm1.sh
ETTm2796tslibT1_ETTm2.sh
Weather2196tslibT1_Weather.sh
Electricity32196tslibT1_ECL.sh
Exchange896tslibT1_Exchange.sh
ILI796tslibT1_ILI.sh
PhysioNet20123748benchpotsT1_PhysioNet2012.sh
PEMS0335896benchpotsT1_PEMS03.sh
PM253636csdiT1_PM25.sh

Project Structure

T1/
├── run.py                     # Entry point (argparse)
├── models/T1.py               # T1 model
├── exp/
│   ├── exp_basic.py           # Base experiment class
│   └── exp_imputation.py      # Imputation experiment
├── data_provider/
│   ├── data_factory.py        # Unified data routing
│   ├── data_loader.py         # Standard CSV datasets
│   └── data_loader_pypots.py  # Extended datasets (optional)
├── utils/
│   ├── tools.py               # EarlyStopping, LR scheduler, visualization
│   ├── metrics.py             # MAE, MSE, RMSE, MAPE, MSPE
│   └── timefeatures.py        # Time feature encoding
└── scripts/imputation/        # Training scripts for all datasets

Citation

If you find this work useful, please cite:

Paper: arXiv | OpenReview

@inproceedings{
  park2026t1,
  title={T1: One-to-One Channel-Head Binding for Multivariate Time-Series Imputation},
  author={Dongik Park and Hyunwoo Ryu and Suahn Bae and Keondo Park and Hyung-Sin Kim},
  booktitle={International Conference on Learning Representations (ICLR)},
  year={2026},
  url={https://openreview.net/forum?id=IAnIlFsPEW}
}

Acknowledgements

This codebase follows the Time-Series-Library (TSLib) framework. Extended dataset support is powered by PyPOTS and BenchPOTS.