Algorithm Overview
The framework integrates algorithms from multiple recommendation system libraries through unified runner interfaces. Use the algorithm identifiers with the ExperimentPlan to configure experiments. Here is the comprehensive list of all available algorithms:
LensKit Algorithms
LensKit provides traditional collaborative filtering algorithms optimized for research reproducibility.
| Algorithm Name |
Type |
Feedback |
Description |
| LensKit.PopScorer |
Baseline |
Both |
Popularity-based scorer |
| LensKit.ItemKNNScorer |
Neighborhood |
Both |
Item-based k-nearest neighbors |
| LensKit.UserKNNScorer |
Neighborhood |
Both |
User-based k-nearest neighbors |
| LensKit.ImplicitMFScorer |
Matrix Factorization |
Implicit |
Implicit feedback matrix factorization (ALS) |
| LensKit.BiasedMFScorer |
Matrix Factorization |
Explicit |
Biased matrix factorization |
| LensKit.FunkSVDScorer |
Matrix Factorization |
Explicit |
FunkSVD matrix factorization |
RecPack Algorithms
RecPack provides efficient implementations of collaborative filtering algorithms with a focus on scalability and performance.
| Algorithm Name |
Type |
Feedback |
Description |
| RecPack.SVD |
Matrix Factorization |
Explicit |
Singular Value Decomposition |
| RecPack.NMF |
Matrix Factorization |
Explicit |
Non-negative Matrix Factorization |
| RecPack.ItemKNN |
Neighborhood |
Both |
Item-based k-nearest neighbors |
Elliot Algorithms
Elliot provides a comprehensive framework for reproducible recommender systems evaluation with implementations of state-of-the-art algorithms.
Baseline and Neighborhood Methods
| Algorithm Name |
Type |
Feedback |
Description |
| Elliot.MostPop |
Baseline |
Both |
Most popular items baseline |
| Elliot.ItemKNN |
Neighborhood |
Both |
Item-based k-nearest neighbors |
| Elliot.UserKNN |
Neighborhood |
Both |
User-based k-nearest neighbors |
| Elliot.SlopeOne |
Slope One |
Explicit |
Slope One collaborative filtering |
Matrix Factorization
| Algorithm Name |
Type |
Feedback |
Description |
| Elliot.AMF |
Matrix Factorization |
Explicit |
Alternating Matrix Factorization |
| Elliot.BPRMF |
Matrix Factorization |
Implicit |
Bayesian Personalized Ranking Matrix Factorization |
| Elliot.BPRMF_batch |
Matrix Factorization |
Implicit |
BPRMF with batch processing |
| Elliot.FM |
Factorization Machine |
Explicit |
Factorization Machine |
| Elliot.FunkSVD |
Matrix Factorization |
Explicit |
FunkSVD matrix factorization |
| Elliot.NonNegMF |
Matrix Factorization |
Explicit |
Non-negative Matrix Factorization |
| Elliot.PureSVD |
Matrix Factorization |
Explicit |
Pure SVD |
| Elliot.SVDpp |
Matrix Factorization |
Explicit |
SVD++ |
| Elliot.WRMF |
Matrix Factorization |
Implicit |
Weighted Regularized Matrix Factorization |
| Elliot.ConvMF |
Matrix Factorization |
Explicit |
Convolutional Matrix Factorization |
| Elliot.DeepFM |
Deep Learning |
Explicit |
Deep Factorization Machine |
| Elliot.DMF |
Matrix Factorization |
Explicit |
Deep Matrix Factorization |
| Elliot.GMF |
Matrix Factorization |
Explicit |
Generalized Matrix Factorization |
| Elliot.NeuMF |
Deep Learning |
Implicit |
Neural Matrix Factorization |
Autoencoder-Based Methods
| Algorithm Name |
Type |
Feedback |
Description |
| Elliot.MultiDAE |
Deep Learning |
Implicit |
Multi-layer Denoising Autoencoder |
| Elliot.MultiVAE |
Deep Learning |
Implicit |
Multi-layer Variational Autoencoder |
| Elliot.ItemAutoRec |
Deep Learning |
Explicit |
Item-based Autoencoder |
| Elliot.UserAutoRec |
Deep Learning |
Explicit |
User-based Autoencoder |
Graph-Based Methods
| Algorithm Name |
Type |
Feedback |
Description |
| Elliot.LightGCN |
Graph Neural Network |
Implicit |
Light Graph Convolutional Network |
| Elliot.NGCF |
Graph Neural Network |
Implicit |
Neural Graph Collaborative Filtering |
RecBole Algorithms
RecBole provides a comprehensive collection of modern recommendation algorithms including deep learning and graph-based methods.
Baseline and Neighborhood Methods
| Algorithm Name |
Type |
Feedback |
Description |
| RecBole.Pop |
Baseline |
Both |
Popularity-based recommender |
| RecBole.ItemKNN |
Neighborhood |
Both |
Item-based k-nearest neighbors |
| RecBole.Random |
Baseline |
Both |
Random recommendation baseline |
Matrix Factorization
| Algorithm Name |
Type |
Feedback |
Description |
| RecBole.BPR |
Matrix Factorization |
Implicit |
Bayesian Personalized Ranking |
| RecBole.FISM |
Matrix Factorization |
Implicit |
Factored Item Similarity Models |
| RecBole.NAIS |
Matrix Factorization |
Implicit |
Neural Attentive Item Similarity |
| RecBole.DMF |
Matrix Factorization |
Explicit |
Deep Matrix Factorization |
| RecBole.ENMF |
Matrix Factorization |
Implicit |
Efficient Neural Matrix Factorization |
| RecBole.NNCF |
Matrix Factorization |
Implicit |
Neural Network Collaborative Filtering |
Deep Learning Methods
| Algorithm Name |
Type |
Feedback |
Description |
| RecBole.NeuMF |
Deep Learning |
Implicit |
Neural Matrix Factorization |
| RecBole.ConvNCF |
Deep Learning |
Implicit |
Convolutional Neural Collaborative Filtering |
| RecBole.CDAE |
Deep Learning |
Implicit |
Collaborative Denoising Auto-Encoder |
| RecBole.MultiVAE |
Deep Learning |
Implicit |
Variational Autoencoders for Collaborative Filtering |
| RecBole.MultiDAE |
Deep Learning |
Implicit |
Denoising Autoencoders for Collaborative Filtering |
| RecBole.MacridVAE |
Deep Learning |
Implicit |
Macroscopic and Microscopic Variational Autoencoder |
| RecBole.RecVAE |
Deep Learning |
Implicit |
Variational Autoencoders for Recommendations |
| RecBole.DiffRec |
Deep Learning |
Implicit |
Diffusion Recommender Model |
| RecBole.LDiffRec |
Deep Learning |
Implicit |
Latent Diffusion Recommender Model |
Graph-Based Methods
| Algorithm Name |
Type |
Feedback |
Description |
| RecBole.SpectralCF |
Graph Neural Network |
Implicit |
Spectral Collaborative Filtering |
| RecBole.GCMC |
Graph Neural Network |
Explicit |
Graph Convolutional Matrix Completion |
| RecBole.NGCF |
Graph Neural Network |
Implicit |
Neural Graph Collaborative Filtering |
| RecBole.LightGCN |
Graph Neural Network |
Implicit |
Light Graph Convolutional Network |
| RecBole.DGCF |
Graph Neural Network |
Implicit |
Disentangled Graph Collaborative Filtering |
| RecBole.SGL |
Graph Neural Network |
Implicit |
Self-supervised Graph Learning |
| RecBole.NCL |
Graph Neural Network |
Implicit |
Neighborhood-enriched Contrastive Learning |
| RecBole.LINE |
Graph Embedding |
Implicit |
Large-scale Information Network Embedding |
Linear and Optimization-Based Methods
| Algorithm Name |
Type |
Feedback |
Description |
| RecBole.EASE |
Linear |
Implicit |
Embarrassingly Shallow Autoencoders |
| RecBole.SLIMElastic |
Linear |
Implicit |
Sparse Linear Method with ElasticNet |
| RecBole.ADMMSLIM |
Linear |
Implicit |
ADMM SLIM for Top-N Recommendation |
| RecBole.NCEPLRec |
Linear |
Implicit |
Neighborhood-based Collaborative Filtering with Pairwise Learning |
| RecBole.SimpleX |
Linear |
Implicit |
Simple and Effective Collaborative Filtering |
Using Algorithms in Experiments
Reference algorithms using the format <Runner>.<Algorithm> in your experiment plan:
from omnirec.runner.plan import ExperimentPlan
from omnirec.runner.algos import LensKit, RecBole
# Create experiment plan
plan = ExperimentPlan("Algorithm-Comparison")
# Add LensKit algorithm
plan.add_algorithm(
LensKit.ItemKNNScorer,
{"max_nbrs": 20, "min_nbrs": 5}
)
# Add RecBole algorithm
plan.add_algorithm(
RecBole.LightGCN,
{"embedding_size": 64, "n_layers": 3}
)
See the Algorithm Configuration guide for detailed information on configuring algorithms and hyperparameters.