Skip to content
/ genrec Public

GenRec is an open-source project dedicated to the reproducibility of cutting-edge research on generative models for recommendation systems. This repository aims to implement, benchmark, and provide insights into recent advances in generative recommenders, covering both foundational models and state-of-the-art innovations.

License

Notifications You must be signed in to change notification settings

phonism/genrec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GenRec

A Model Zoo for Generative Recommendation.

Benchmark Results

Validation Set Metrics

Methods R@5 R@10 N@5 N@10
TIGER (Paper) 0.0454 0.0648 0.0321 0.0384
TIGER (Ours) 0.0465 0.0721 0.0297 0.0378
Methods R@5 R@10 N@5 N@10
TIGER (Paper) 0.0264 0.0400 0.0181 0.0225
TIGER (Ours) 0.0266 0.0414 0.0176 0.0224
Methods R@5 R@10 N@5 N@10
TIGER (Paper) 0.0521 0.0712 0.0371 0.0432
TIGER (Ours) 0.0420 0.0647 0.0280 0.0350

Installation

pip install -r requirements.txt

Supported Datasets

  • Amazon Beauty
  • Amazon Sports
  • Amazon Toys

Data will be automatically downloaded on first run.

RQVAE Training

RQVAE generates semantic IDs for items using residual quantization.

# Train on Beauty (default)
python genrec/trainers/rqvae_trainer.py config/rqvae/amazon.gin

# Train on other datasets
python genrec/trainers/rqvae_trainer.py config/rqvae/amazon.gin --split sports
python genrec/trainers/rqvae_trainer.py config/rqvae/amazon.gin --split toys

TIGER Training

TIGER is a generative retrieval model for sequential recommendation.

# Train on Beauty (default)
python genrec/trainers/tiger_trainer.py config/tiger/amazon.gin

# Train on other datasets
python genrec/trainers/tiger_trainer.py config/tiger/amazon.gin --split sports
python genrec/trainers/tiger_trainer.py config/tiger/amazon.gin --split toys

Note: TIGER requires a pretrained RQVAE checkpoint. Train RQVAE first.

Command Line Options

Dataset Selection

--split <dataset>  # beauty, sports, toys

Gin Parameter Override

--gin "param=value"  # Override any config parameter

Examples

# Change epochs and batch size
python trainer.py config.gin --gin "train.epochs=200" --gin "train.batch_size=128"

# Set wandb run name
python trainer.py config.gin --gin 'train.wandb_run_name="my_experiment"'

Citation

If you find this project useful, please cite:

@software{genrec2025,
  title = {GenRec: A Model Zoo for Generative Recommendation},
  author = {Qi Lu},
  year = {2025},
  url = {https://github.com/phonism/genrec}
}

References

About

GenRec is an open-source project dedicated to the reproducibility of cutting-edge research on generative models for recommendation systems. This repository aims to implement, benchmark, and provide insights into recent advances in generative recommenders, covering both foundational models and state-of-the-art innovations.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages