Vibeleaderboard
Index / tool
Visit arxiv.org
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 dataTrained contrastive recommendation model

  • Train generative models for recommendation systems

    Historical user behavior dataTrained generative recommendation model

  • Train graph-based self-supervised learning models

    Graph-structured interaction dataTrained graph SSL recommendation model

  • Generate item recommendations using trained models

    User profile and trained SSL modelRanked list of recommended items

  • Evaluate recommendation model performance

    Trained model and test datasetPerformance metrics and evaluation results

  • Compare different SSL recommendation methods

    Multiple trained SSL models and evaluation dataComparative analysis and performance benchmarks

Tags

recommender-systemsself-supervisedcontrastivegraph-neural-networksresearch

Tech Stack

Python

Media

SSLRec

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.