This repository hosts the code for the paper Fine-grained Attention in Hierarchical Transformers for Tabular Time-series by R. Azorin, Z. Ben Houidi, M. Gallo, A. Finamore, and P. Michiardi, accepted at KDD'24 10th MiLeTS Workshop.
Fieldy is a fine-grained hierarchical Transformer that contextualizes fields at both the row and column levels. We compare our proposal against state of the art models on regression and classification tasks using public tabular time-series datasets. Our results show that combining row-wise and column-wise attention improves performance without increasing model size.
- Create an environment with
conda create --name fieldy python==3.8.16
- Activate it with
conda activate fieldy
- Install the requirements with
pip install -r requirements.txt
Note: you need a CUDA device with at least 16 GB of VRAM to train all the models. If you want to use CPU or multi-GPU training, you may consider integrating HuggingFace Accelerate into the existing code.
Choose an option below to load the preprocessed datasets:
- With DropBox:
- Use this download link
- Move the downloaded files to:
./data/kdd/KDDDataset_pt.pkl
./data/kdd/KDDDataset_ft.pkl
./data/prsa/PRSADataset_labeled.pkl
- With the raw CSVs:
- To preprocess the KDD dataset, use
./dataset/kdd.ipynb
. - To preprocess the PRSA dataset, you have nothing else to do, it will be automatically triggered.
- To train and evaluate models on the KDD Loan default prediction dataset:
- Run
chmod +x kdd.sh
- Run
./kdd.sh
- To train and evaluate models on the PRSA Beijing pollution dataset:
- Run
chmod +x prsa.sh
- Run
./prsa.sh
Results will be saved under ./results
.
Use ./plots/results2latex.ipynb
.
Use ./plots/field_wise_attention.ipynb
.
If you use this paper or code as a reference, please cite it with:
@misc{azorin2024finegrained,
title={Fine-grained Attention in Hierarchical Transformers for Tabular Time-series},
author={Raphael Azorin and Zied Ben Houidi and Massimo Gallo and Alessandro Finamore and Pietro Michiardi},
year={2024},
eprint={2406.15327},
archivePrefix={arXiv},
}
This repository is built on top of TabBERT. We would also like to thanks the authors of UniTTab, for discussions on metrics and pre-processing.