AI Compare
​
​
ToolsArticlesServices
Best for
    All tools

    Sales

    AI tools for finding leads, qualifying them, preparing quotes, following up and keeping the CRM up to date.

    Marketing

    AI tools for content, social media, images, video, SEO and campaigns.

    Customer service

    AI tools for answering customer emails, chats and calls, handling requests and escalating the hard cases.

    Operations

    AI tools for running the daily work: workflows, scheduling, projects, purchasing and delivery.

    Finance

    AI tools for invoices, bookkeeping, reconciliation, spreadsheets and financial reporting.

    Management & Admin

    AI tools for owners, managers and office staff: planning, reports, documents, meetings, scheduling and everyday admin.

    HR

    AI tools for hiring, screening candidates, onboarding, training and answering employee questions.

    Legal & Compliance

    AI tools for reviewing contracts, tracking deadlines and preparing compliance work for a qualified person to check.

    IT & Development

    AI tools for developers and IT teams: coding, AI models, agents, infrastructure and integrations.

Find AI tools for your team
AllAssistantsWriting & DocsImagesVideoAudioAI AgentsAutomationCode
← Back to tools

•

2018-09-19

recommenders logo

recommenders

Not rated yet

21.8K GitHub stars

Type:

Tool

Platforms:

Github

Task:

Study and learnCreate knowledge graphsRun distributed computingTest websitesManage AI models

Best for:

IT & Development
Visit websiteView on GitHub

Pricing


Pricing information has not been added yet.

Overview

Microsoft Recommenders is an open-source collection of best practices, examples, and utilities for building recommendation systems. It covers the full recommendation workflow, from data preparation and baseline methods to modern machine-learning algorithms, evaluation, tuning, and deployment-oriented experimentation.

The repository includes notebooks and reference implementations for collaborative filtering, content-based approaches, deep learning, sequential recommendation, and other techniques, together with common datasets and evaluation metrics. It is designed as a practical resource for comparing methods under consistent workflows rather than as one monolithic recommender product.

Recommenders is useful for data scientists and engineers developing personalization, ranking, and recommendation features. The examples can serve as educational material, experiment baselines, or starting points for production systems where teams need to choose an algorithm based on their data and business constraints.

README

Documentation status License Black PyPI Version Python Versions


What's New (April, 2025)

We reached 20,000 stars!!

We are happy to announce that we have reached 20,000 stars on GitHub! Thank you for your support and contributions to the Recommenders project. We are excited to continue building and improving this project with your help.

Check out the release Recommenders 1.2.1!

We fixed a lot of bugs due to dependencies, improved security, reviewed the notebooks and the libraries.

Introduction

Recommenders objective is to assist researchers, developers and enthusiasts in prototyping, experimenting with and bringing to production a range of classic and state-of-the-art recommendation systems.

Recommenders is a project under the Linux Foundation of AI and Data.

This repository contains examples and best practices for building recommendation systems, provided as Jupyter notebooks. The examples detail our learnings on five key tasks:

  • Prepare Data: Preparing and loading data for each recommendation algorithm.
  • Model: Building models using various classical and deep learning recommendation algorithms such as Alternating Least Squares (ALS) or eXtreme Deep Factorization Machines (xDeepFM).
  • Evaluate: Evaluating algorithms with offline metrics.
  • Model Select and Optimize: Tuning and optimizing hyperparameters for recommendation models.
  • Operationalize: Operationalizing models in a production environment on Azure.

Several utilities are provided in recommenders to support common tasks such as loading datasets in the format expected by different algorithms, evaluating model outputs, and splitting training/test data. Implementations of several state-of-the-art algorithms are included for self-study and customization in your own applications. See the Recommenders documentation.

For a more detailed overview of the repository, please see the documents on the wiki page.

For some of the practical scenarios where recommendation systems have been applied, see scenarios.

Getting Started

We recommend uv for environment management (10-100x faster than conda/pip), and VS Code for development. To install the recommenders package and run an example notebook on Linux/WSL:

# 1. Install gcc if it is not installed already. On Ubuntu, this could done by using the command
# sudo apt install gcc

# 2. Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 3. Create and activate a new virtual environment
uv venv ~/.venvs/recommenders --python 3.11
source ~/.venvs/recommenders/bin/activate

# 4. Install the core recommenders package. It can run all the CPU notebooks.
uv pip install recommenders

# 5. Create a Jupyter kernel
uv pip install ipykernel
python -m ipykernel install --user --name recommenders --display-name "Python (recommenders)"

# 6. Clone this repo within VSCode or using command line:
git clone https://github.com/recommenders-team/recommenders.git

# 7. Within VSCode:
#   a. Open a notebook, e.g., examples/00_quick_start/sar_movielens.ipynb;
#   b. Select Jupyter kernel "Python (recommenders)";
#   c. Run the notebook.

For more information about setup on other platforms (e.g., Windows and macOS) and different configurations (e.g., GPU, Spark and experimental features), see the Setup Guide.

In addition to the core package, several extras are also provided, including:

  • [gpu]: Needed for running GPU models.
  • [spark]: Needed for running Spark models.
  • [dev]: Needed for development for the repo.
  • [all]: [gpu]|[spark]|[dev]
  • [experimental]: Models that are not thoroughly tested and/or may require additional steps in installation.

Algorithms

The table below lists the recommendation algorithms currently available in the repository. Notebooks are linked under the Example column as Quick start, showcasing an easy to run example of the algorithm, or as Deep dive, explaining in detail the math and implementation of the algorithm.

AlgorithmTypeDescriptionExample
Alternating Least Squares (ALS)Collaborative FilteringMatrix factorization algorithm for explicit or implicit feedback in large datasets, optimized for scalability and distributed computing capability. It works in the PySpark environment.Quick start / Deep dive
Attentive Asynchronous Singular Value Decomposition (A2SVD)*Collaborative FilteringSequential-based algorithm that aims to capture both long and short-term user preferences using attention mechanism. It works in the CPU/GPU environment.Quick start
Cornac/Bayesian Personalized Ranking (BPR)Collaborative FilteringMatrix factorization algorithm for predicting item ranking with implicit feedback. It works in the CPU environment.Deep dive
Cornac/Bilateral Variational Autoencoder (BiVAE)Collaborative FilteringGenerative model for dyadic data (e.g., user-item interactions). It works in the CPU/GPU environment.Deep dive
Convolutional Sequence Embedding Recommendation (Caser)Collaborative FilteringAlgorithm based on convolutions that aim to capture both user’s general preferences and sequential patterns. It works in the CPU/GPU environment.Quick start
Deep Knowledge-Aware Network (DKN)*Content-Based FilteringDeep learning algorithm incorporating a knowledge graph and article embeddings for providing news or article recommendations. It works in the CPU/GPU environment.Quick start / Deep dive
Extreme Deep Factorization Machine (xDeepFM)*Collaborative FilteringDeep learning based algorithm for implicit and explicit feedback with user/item features. It works in the CPU/GPU environment.Quick start
Embedding Dot BiasCollaborative FilteringGeneral purpose algorithm with embeddings and biases for users and items. It works in the CPU/GPU environment.Quick start
LightFM/Factorization MachineCollaborative FilteringFactorization Machine algorithm for both implicit and explicit feedbacks. It works in the CPU environment.Quick start
LightGBM/Gradient Boosting Tree*Content-Based FilteringGradient Boosting Tree algorithm for fast training and low memory usage in content-based problems. It works in the CPU/GPU/PySpark environments.Quick start in CPU / Deep dive in PySpark
LightGCNCollaborative FilteringDeep learning algorithm which simplifies the design of GCN for predicting implicit feedback. It works in the CPU/GPU environment.Deep dive
GeoIMC*Collaborative FilteringMatrix completion algorithm that takes into account user and item features using Riemannian conjugate gradient optimization and follows a geometric approach. It works in the CPU environment.Quick start
GRUCollaborative FilteringSequential-based algorithm that aims to capture both long and short-term user preferences using recurrent neural networks. It works in the CPU/GPU environment.Quick start
Multinomial VAECollaborative FilteringGenerative model for predicting user/item interactions. It works in the CPU/GPU environment.Deep dive
Neural Recommendation with Long- and Short-term User Representations (LSTUR)*Content-Based FilteringNeural recommendation algorithm for recommending news articles with long- and short-term user interest modeling. It works in the CPU/GPU environment.Quick start
Neural Recommendation with Attentive Multi-View Learning (NAML)*Content-Based FilteringNeural recommendation algorithm for recommending news articles with attentive multi-view learning. It works in the CPU/GPU environment.Quick start
Neural Collaborative Filtering (NCF)Collaborative FilteringDeep learning algorithm with enhanced performance for user/item implicit feedback. It works in the CPU/GPU environment.Quick start / Deep dive
Neural Recommendation with Personalized Attention (NPA)*Content-Based FilteringNeural recommendation algorithm for recommending news articles with personalized attention network. It works in the CPU/GPU environment.Quick start
Neural Recommendation with Multi-Head Self-Attention (NRMS)*Content-Based FilteringNeural recommendation algorithm for recommending news articles with multi-head self-attention. It works in the CPU/GPU environment.Quick start
Next Item Recommendation (NextItNet)Collaborative FilteringAlgorithm based on dilated convolutions and residual network that aims to capture sequential patterns. It considers both user/item interactions and features. It works in the CPU/GPU environment.Quick start
Restricted Boltzmann Machines (RBM)Collaborative FilteringNeural network based algorithm for learning the underlying probability distribution for explicit or implicit user/item feedback. It works in the CPU/GPU environment.Quick start / Deep dive
Riemannian Low-rank Matrix Completion (RLRMC)*Collaborative FilteringMatrix factorization algorithm using Riemannian conjugate gradients optimization with small memory consumption to predict user/item interactions. It works in the CPU environment.Quick start
Simple Algorithm for Recommendation (SAR)*Collaborative FilteringSimilarity-based algorithm for implicit user/item feedback. It works in the CPU environment.Quick start / Deep dive
Self-Attentive Sequential Recommendation (SASRec)Collaborative FilteringTransformer based algorithm for sequential recommendation. It works in the CPU/GPU environment.Quick start
Short-term and Long-term Preference Integrated Recommender (SLi-Rec)*Collaborative FilteringSequential-based algorithm that aims to capture both long and short-term user preferences using attention mechanism, a time-aware controller and a content-aware controller. It works in the CPU/GPU environment.Quick start
Multi-Interest-Aware Sequential User Modeling (SUM)*Collaborative FilteringAn enhanced memory network-based sequential user model which aims to capture users' multiple interests. It works in the CPU/GPU environment.Quick start
Sequential Recommendation Via Personalized Transformer (SSEPT)Collaborative FilteringTransformer based algorithm for sequential recommendation with User embedding. It works in the CPU/GPU environment.Quick start
Standard VAECollaborative FilteringGenerative Model for predicting user/item interactions. It works in the CPU/GPU environment.Deep dive
Surprise/Singular Value Decomposition (SVD)Collaborative FilteringMatrix factorization algorithm for predicting explicit rating feedback in small datasets. It works in the CPU/GPU environment.Deep dive
Term Frequency - Inverse Document Frequency (TF-IDF)Content-Based FilteringSimple similarity-based algorithm for content-based recommendations with text datasets. It works in the CPU environment.Quick start
Vowpal Wabbit (VW)*Content-Based FilteringFast online learning algorithms, great for scenarios where user features / context are constantly changing. It uses the CPU for online learning.Deep dive
Wide and DeepCollaborative FilteringDeep learning algorithm that can memorize feature interactions and generalize user features. It works in the CPU/GPU environment.Quick start
xLearn/Factorization Machine (FM) & Field-Aware FM (FFM)Collaborative FilteringQuick and memory efficient algorithm to predict labels with user/item features. It works in the CPU/GPU environment.Deep dive

NOTE: * indicates algorithms invented/contributed by Microsoft.

Independent or incubating algorithms and utilities are candidates for the contrib folder. This will house contributions which may not easily fit into the core repository or need time to refactor or mature the code and add necessary tests.

AlgorithmTypeDescriptionExample
SARplus *Collaborative FilteringOptimized implementation of SAR for SparkQuick start

Algorithm Comparison

We provide a benchmark notebook to illustrate how different algorithms could be evaluated and compared. In this notebook, the MovieLens dataset is split into training/test sets at a 75/25 ratio using a stratified split. A recommendation model is trained using each of the collaborative filtering algorithms below. We utilize empirical parameter values reported in literature here. For ranking metrics we use k=10 (top 10 recommended items). We run the comparison on a machine with 4 CPUs, 30Gb of RAM, and 1 GPU GeForce GTX 1660 Ti with 6Gb of memory. Spark ALS is run in local standalone mode. In this table we show the results on Movielens 100k, running the algorithms for 15 epochs.

AlgoMAPnDCG@kPrecision@kRecall@kRMSEMAER2Explained Variance
ALS0.0047320.0442390.0484620.0177960.9650380.7530010.2556470.251648
BiVAE0.1461260.4750770.4117710.219145N/AN/AN/AN/A
BPR0.1324780.4419970.3882290.212522N/AN/AN/AN/A
embdotbias0.0189540.1178100.1042420.0424500.9927600.7760400.2233440.223393
LightGCN0.0885260.4198460.3796260.144336N/AN/AN/AN/A
NCF0.1077200.3961180.3472960.180775N/AN/AN/AN/A
SAR0.1105910.3824610.3307530.1763851.2538051.048484-0.5693630.030474
SVD0.0128730.0959300.0911980.0327830.9386810.7426900.2919670.291971

Contributing

This project welcomes contributions and suggestions. Before contributing, please see our contribution guidelines.

This project adheres to this Code of Conduct in order to foster a welcoming and inspiring community for all.

References

  • FREE COURSE: M. González-Fierro, "Recommendation Systems: A Practical Introduction", LinkedIn Learning, 2024. Available on this link.
  • D. Li, J. Lian, L. Zhang, K. Ren, D. Lu, T. Wu, X. Xie, "Recommender Systems: Frontiers and Practices", Springer, Beijing, 2024. Available on this link.
  • A. Argyriou, M. González-Fierro, and L. Zhang, "Microsoft Recommenders: Best Practices for Production-Ready Recommendation Systems", WWW 2020: International World Wide Web Conference Taipei, 2020. Available online: https://dl.acm.org/doi/abs/10.1145/3366424.3382692
  • S. Graham, J.K. Min, T. Wu, "Microsoft recommenders: tools to accelerate developing recommender systems", RecSys '19: Proceedings of the 13th ACM Conference on Recommender Systems, 2019. Available online: https://dl.acm.org/doi/10.1145/3298689.3346967
  • L. Zhang, T. Wu, X. Xie, A. Argyriou, M. González-Fierro and J. Lian, "Building Production-Ready Recommendation System at Scale", ACM SIGKDD Conference on Knowledge Discovery and Data Mining 2019 (KDD 2019), 2019.

Releases

Release information has not been added yet.

Complete your AI stack

Add complementary AI tools for the rest of your workflow.

More recommendations will appear here as matching tools are published.

Best alternatives

Compare similar tools in the same category.

CodeRabbit logo

CodeRabbit

AI-powered code review assistant for pull requests.

OpenClaw logo

OpenClaw

Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

Cursor logo

Cursor

AI coding editor and autonomous software development platform

DeepSeek logo

DeepSeek

AI assistant for reasoning, coding, research, and agent tasks

ECC logo

ECC

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

View all in this category
Help
Pick an answer below
Hi! I can point you to the right tool or guide. What are you looking for?
Browse all articles