Skip to main content

A science toolkit for recommender systems

Project description


Scikit-Recommender is an open source library for researchers of recommender systems.

Highlighted Features

  • Various recommendation models
  • Parse arguments from command line and ini-style files
  • Diverse data preprocessing
  • Fast negative sampling
  • Fast model evaluation
  • Convenient record logging
  • Flexible batch data iterator


You have three ways to use Scikit-Recommender:

  1. Install from PyPI
  2. Install from Source
  3. Run without Installation

Install from PyPI

Binary installers are available at the Python package index and you can install the package from pip.

pip install scikit-recommender

Install from Source

Installing from source requires Cython and the current code works well with the version 0.29.20.

To build scikit-recommender from source you need Cython:

pip install cython==0.29.20

Then, the scikit-recommender can be installed by executing:

git clone
cd scikit-recommender
python install

Run without Installation

Alternatively, You can also run the sources without installation. Please compile the cython codes before running:

git clone
cd scikit-recommender
python build_ext --inplace


After installing or compiling this package, now you can run the


You can also find examples in tutorial.ipynb.


MMRec Implementation Paper   Publication  
MGCN PyTorch Penghang Yu, et al., Multi-View Graph Convolutional Network for Multimedia Recommendation ACM MM 2023
BM3 PyTorch Xin Zhou, et al., Bootstrap Latent Representations for Multi-modal Recommendation WWW 2023
FREEDOM PyTorch Xin Zhou, et al., A Tale of Two Graphs: Freezing and Denoising Graph Structures for Multimodal Recommendation ACM MM 2023
SLMRec PyTorch Zhulin Tao, et al., Self-supervised Learning for Multimedia Recommendation TMM 2022
LATTICE PyTorch Jinghao Zhang, et al., Mining Latent Structures for Multimedia Recommendation ACM MM 2021
Recommender Implementation Paper   Publication  
SelfCF PyTorch Xin Zhou, et al., SelfCF: A Simple Framework for Self-supervised Collaborative Filtering TORS 2023
LayerGCN PyTorch Xin Zhou, et al., Layer-refined Graph Convolutional Networks for Recommendation ICDE 2023
DENS PyTorch Riwei Lai, et al., Disentangled Negative Sampling for Collaborative Filtering WSDM 2023
LightGCL PyTorch Xuheng Cai, et al., LightGCL: Simple Yet Effective Graph Contrastive Learning for Recommendation ICLR 2023
SGAT TensorFlow (1.14) Zhongchuan Sun, et al., Sequential Graph Collaborative Filtering Information Sciences 2022
LightGCN PyTorch Xiangnan He et al., LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation. SIGIR 2020
SRGNN TensorFlow (1.14) Shu Wu et al., Session-Based Recommendation with Graph Neural Networks. AAAI 2019
HGN PyTorch Chen Ma et al., Hierarchical Gating Networks for Sequential Recommendation. KDD 2019
BERT4Rec TensorFlow (1.14) Fei Sun et al., BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer. CIKM 2019
SASRec TensorFlow (1.14) Wangcheng Kang et al., Self-Attentive Sequential Recommendation. ICDM 2018
GRU4RecPlus TensorFlow (1.14) Balázs Hidasi et al., Recurrent Neural Networks with Top-k Gains for Session-based Recommendations. CIKM 2018
Caser PyTorch Jiaxi Tang et al., Personalized Top-N Sequential Recommendation via Convolutional Sequence Embedding. WSDM 2018
MultiVAE PyTorch Dawen Liang, et al., Variational Autoencoders for Collaborative Filtering. WWW 2018
TransRec PyTorch Ruining He et al., Translation-based Recommendation. RecSys 2017
CML TensorFlow (1.14) Cheng-Kang Hsieh et al., Collaborative Metric Learning. WWW 2017
CDAE PyTorch Yao Wu et al., Collaborative Denoising Auto-Encoders for Top-n Recommender Systems. WSDM 2016
GRU4Rec TensorFlow (1.14) Balázs Hidasi et al., Session-based Recommendations with Recurrent Neural Networks. ICLR 2016
AOBPR C/Cython Steffen Rendle et al., Improving Pairwise Learning for Item Recommendation from Implicit Feedback. WSDM 2014
FPMC PyTorch Steffen Rendle et al., Factorizing Personalized Markov Chains for Next-Basket Recommendation. WWW 2010
BPRMF PyTorch Steffen Rendle et al., BPR: Bayesian Personalized Ranking from Implicit Feedback. UAI 2009
Pop Python Make recommendations based on item popularity.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

scikit_recommender-0.1.1-cp311-cp311-win_amd64.whl (360.1 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

scikit_recommender-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

scikit_recommender-0.1.1-cp311-cp311-macosx_10_9_universal2.whl (637.4 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

scikit_recommender-0.1.1-cp310-cp310-win_amd64.whl (359.2 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

scikit_recommender-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

scikit_recommender-0.1.1-cp310-cp310-macosx_11_0_x86_64.whl (395.8 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ x86-64

scikit_recommender-0.1.1-cp39-cp39-win_amd64.whl (391.3 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

scikit_recommender-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

scikit_recommender-0.1.1-cp39-cp39-macosx_11_0_x86_64.whl (395.8 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ x86-64

scikit_recommender-0.1.1-cp38-cp38-win_amd64.whl (392.5 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

scikit_recommender-0.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

scikit_recommender-0.1.1-cp38-cp38-macosx_11_0_x86_64.whl (393.3 kB view hashes)

Uploaded CPython 3.8 macOS 11.0+ x86-64

scikit_recommender-0.1.1-cp37-cp37m-win_amd64.whl (392.4 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

scikit_recommender-0.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

scikit_recommender-0.1.1-cp37-cp37m-macosx_11_0_x86_64.whl (397.8 kB view hashes)

Uploaded CPython 3.7m macOS 11.0+ x86-64

scikit_recommender-0.1.1-cp36-cp36m-win_amd64.whl (378.1 kB view hashes)

Uploaded CPython 3.6m Windows x86-64

scikit_recommender-0.1.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

scikit_recommender-0.1.1-cp36-cp36m-macosx_10_14_x86_64.whl (381.0 kB view hashes)

Uploaded CPython 3.6m macOS 10.14+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page