To run ARES you will be asked to install the packages listed in requirements.txt. Python 3.10.12 has been used.
Command for running ARES: python main.py config/configuration.json
In particular, in configuration.json you need to fill the following specifications:
- dataset: "dataset_name"
- dataset_extension: ".csv"
- model_name: "GAE"
- GPU: 0
- seed: 42
- save_files: 0/1 -- 1 for processing a new dataset from data/raw, 0 for loading a processed dataset from data/processed
- perc_train: 0.6 -- percentage of data for training
- perc_val: 0.2 -- percentage of data for validation
- training: 0/1 -- training the GAE
- validation: 0/1 -- running the tuning of the hyper-parameters
- update_hst: 0/1 -- running ARES-Static/ARES-Dynamic
- phi: "mean"/"minus" -- Eq. 1/2
- random_start: 0/1 -- HST initialization from training data: 0 -> last window, 1 -> uniform sampling.
- in_channels: 32
- hidden_channels: 16
- out_channels: 8
- num_layers: 3
- epochs: 10000
- learning_rate: 0.001
- patience: 1000
- plot_title: "plot_loss/plot_loss_GAE_dataset_name"
- model_save_path: "checkpoints/model_GAE_dataset_name"
- n_trees: 8
- height: 6
- window_size: 64
- thresholds: "0.859, 0.739, 0.876, 0.854, 0.840, 0.865, 0.901, 0.855, 0.875",
- weights: "1.0,0.0,0.0" -- w_1, w_2, and w_3 from Eq 4
- window_already_seen: 64 -- Number of steps before resetting the cache memory
- Configuration files for the dataset used are in the "config" folder.
- data/processed/IDS2018 and data/processed/DARPA need to be uncompressed due to the size dimension limit on github.
If you use ARES in your research, please cite our KDD 2026 paper:
@article{mungari2025ares,
title={ARES: Anomaly Recognition Model For Edge Streams},
author={Mungari, Simone and Bifet, Albert and Manco, Giuseppe and Pfahringer, Bernhard},
journal={arXiv preprint arXiv:2511.22078},
year={2025}
}