MTSWebServices/RecTools
RecTools - library to build Recommendation Systems easier and faster than ever before
What it solves
RecTools simplifies the complex process of building, training, and evaluating recommender systems. It removes the need for manual data preparation (like creating sparse matrices or torch dataloaders) and provides a unified interface for a wide variety of recommendation algorithms, from simple heuristics to state-of-the-art neural networks.
How it works
The library uses a consistent fit and recommend paradigm across all its models. Users provide data via a Dataset object, which handles the mapping of IDs and feature integration. It supports multiple model architectures, including:
- Neural Networks: Transformer-based sequential models like HSTU, SASRec, and BERT4Rec, as well as two-tower models like DSSM.
- Matrix Factorization: Wrappers for Implicit ALS, BPR-MF, and LightFM.
- Nearest Neighbors: Item-item similarity via ItemKNN.
- Heuristics: Popularity-based and random baselines.
It also includes a comprehensive suite of validation tools for calculating ranking metrics, debiasing results, and performing cross-validation.
Who it’s for
It is designed for developers and data scientists who need to implement recommendation engines quickly, benchmark different algorithms against each other, or deploy production-ready recommenders with support for both warm and cold-start inference.
Highlights
- Unified Interface: All models follow the same API, making it easy to swap algorithms without changing the codebase.
- Advanced Transformer Models: Includes the HSTU architecture and eSASRec, with benchmarks showing high performance on public datasets.
- Feature Support: Built-in handling for user and item features to improve recommendation quality.
- Cold-Start Ready: Supports cold inference for users and items out of the box.
- Evaluation Suite: Provides tools for classification, ranking, and "beyond-accuracy" metrics, including visual apps for comparing recommendations.
Related
- Project
- Project
- Project
- Project
- Project