- Category
- AI Tools
- Rank
- No. 1145Tools index
Previous survey · No. 1150 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- hkuds
- GitHub
- 565 stars
- Date
About
Self-supervised learning framework for recommender systems. Covers contrastive, generative, and graph SSL methods in one toolkit.
What it does
SSLRec runs recommendation experiments from configuration: it loads prepared interaction data, constructs a selected PyTorch model, trains it, evaluates ranked predictions, logs results, and optionally searches hyperparameter combinations. Shared data and trainer layers let different recommendation approaches follow the same experimental process.
Why it's ranked here
The main appeal is breadth with a common experimental harness. The documented implementations span five recommendation scenarios, while shared preprocessing, training, evaluation, checkpointing, early stopping, and tuning reduce comparison work. That value is tempered by narrow dependency pins, visible CUDA assumptions, and documentation inconsistencies around supported data handlers.
What's good
The extension points are concrete. A custom model follows a small prediction-and-loss contract, while specialized training behavior can override the epoch process. Evaluation includes recall, precision, mean reciprocal rank, and normalized discounted cumulative gain at configurable cutoffs. The toolkit also supplies negative sampling, history masking, checkpoint storage, TensorBoard support, and several graph augmentation utilities.
Tradeoffs
Portability needs scrutiny. The documented environment pins Python, PyTorch, NumPy, SciPy, and DGL to specific versions, while tuning and several augmentation utilities send tensors directly to CUDA. The documentation describes five scenarios but later lists data handlers for only four. General collaborative filtering documentation also disagrees on validation naming and whether stored interaction values are binary or greater than one.
How to use it well
Use SSLRec for research workflows that reproduce baselines, compare recommendation methods under shared evaluation, or prototype a new model inside an existing training harness. Begin with a documented baseline, validate the dataset contract carefully, then customize configuration, model logic, or the trainer only as needed. It does not document an online recommendation service or deployment API.
Technical notes+
main.py orchestrates seed initialization, data loading, model construction, logging, training, testing, and configuration-driven tuning. trainer/trainer.py implements Adam training, periodic evaluation, optional early stopping, checkpoint persistence, and specialized trainer subclasses. trainer/metrics.py performs top-k ranking, masks historical positives, and computes recall, precision, MRR, and NDCG. trainer/tuner.py enumerates Cartesian hyperparameter combinations but constructs each model with .cuda(), bypassing the configured device. models/aug_utils.py contains edge dropping, node dropping, adaptive masking, sparse SVD, embedding perturbation, and K-means utilities, with several direct CUDA allocations. models/base_model.py defines the expected model contract. docs/Datasets.md and docs/GuideDataCF.md conflict on validation filenames and interaction-value semantics.
Observed
- Primary language
- Python
- Framework
- PyTorch-based deep learning framework
- Interface
- Command-line experiment runner driven by model selection and YAML configuration
- Dependency surface
- Documented environment pins Python 3.10.4, NumPy 1.22.3, PyTorch 1.11.0, SciPy 1.7.3, and DGL 1.1.1
- Model scope
- Implementations cover collaborative filtering, sequential, social, knowledge graph-enhanced, and multi-behavior recommendation
- Evaluation metrics
- Configurable recall, precision, mean reciprocal rank, and normalized discounted cumulative gain
- Training facilities
- Includes checkpointing, early stopping, logging, TensorBoard support, and grid search
- Device behavior
- Core configuration supports a selected device, but tuning and several augmentation utilities allocate directly on CUDA
Read from README.md, main.py, docs/Models.md, docs/Datasets.md, docs/User Guide.md, docs/GuideDataCF.md, trainer/tuner.py, trainer/utils.py, trainer/logger.py, models/__init__.py, trainer/metrics.py, trainer/trainer.py, trainer/__init__.py, models/aug_utils.py, models/base_model.py.
What it can do
Train contrastive learning models for recommendations
User-item interaction data → Trained contrastive recommendation model
Train generative models for recommendation systems
Historical user behavior data → Trained generative recommendation model
Train graph-based self-supervised learning models
Graph-structured interaction data → Trained graph SSL recommendation model
Generate item recommendations using trained models
User profile and trained SSL model → Ranked list of recommended items
Evaluate recommendation model performance
Trained model and test dataset → Performance metrics and evaluation results
Compare different SSL recommendation methods
Multiple trained SSL models and evaluation data → Comparative analysis and performance benchmarks
Tags
Tech Stack
Media

Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
