This repository presents a comprehensive implementation of collaborative filtering recommender systems, from memory-based collaborative filtering to more advanced machine learning algorithms. It starts by implementing basics collaborative filtering algorithms such as user-based collaborative filering also known as user-to-user collaborative filtering and item-based collaborative filtering (item-to-item collaborative filtering). This repository also goes through dimensionality reduction based recommendation system. It presents models such as Singular Value Decomposition (SVD), Matrix Factorization (MF), Non Negative Matrix Factorization (NMF) and Explainable Matrix Factorization (EMF).
- matplotlib==3.2.2
- numpy==1.19.2
- pandas==1.0.5
- python==3.7
- scikit-learn==0.24.1
- scikit-surprise==1.1.1
- scipy==1.6.2
The topics covered in this repository are as follows : We first explore the movielen data
- Data exploration : this notebook explore the movielen lasted small dataset. This dataset is used throughout this repository to build collaborative filtering recommender systems.
Then the model we implemented are the followings
Two main algorithms :
-
User-based (or user to user) Collaborative Filtering : implements user-based collaborative filtering.
-
Item-based (or item to item) Collaborative Filtering : implements item-based collaborative filtering.
Here the explored models are :
-
Singular Value Decomposition (SVD) : implements dimensionality reduction with Singular Value Decomposition for collaborative filtering recommender systems
-
Matrix Factorization : builds and trains a Matrix Factorization based recommender system.
-
Non Negative Matrix Factorization: applying non negativity to the learnt factors of matrix factorization.
-
Explainable Matrix Factorization: add explainability to matrix factorization factors in order to improve recommendation performances.
- Performances comparison: this notebook presents an overall performance comparaison of all the models listed before.
- Daniel Billsus and Michael J. Pazzani (1998). Learning Collaborative Information Filters
- Herlocker et al. (1999) An Algorithmic Framework for Performing Collaborative Filtering
- Daniel D. Lee & H. Sebastian Seung (1999). Learning the parts of objects by non-negative matrix factorization
- Sarwar et al. (2000). Application of Dimensionality Reduction in Recommender System -- A Case Study
- George Karypis (2001)Evaluation of Item-Based Top-N Recommendation Algorithms
- Sarwar et al. (2001) Item-based collaborative filtering recommendation algorithms
- Greg Linden, Brent Smith, and Jeremy York (2003) Amazon.com Recommendations : Item-to-Item Collaborative Filtering
- Deng Cai et al. (2008). Non-negative Matrix Factorization on Manifold
- Yehuda Koren et al. (2009). Matrix Factorization Techniques for Recommender Systems
- Michael D. Ekstrand, et al. (2011). Collaborative Filtering Recommender Systems
- Yu-Xiong Wang and Yu-Jin Zhang (2011). Non-negative Matrix Factorization: a Comprehensive Review
- J. Bobadilla et al. (2013) Recommender systems survey
- Nicolas Gillis (2014). The Why and How of Nonnegative Matrix Factorization
- Dziugaite and Roy (2015), Neural Network Matrix Factorization
- Abdollahi and Nasraoui (2016). Explainable Matrix Factorization for Collaborative Filtering
- Abdollahi and Nasraoui (2017). Using Explainability for Constrained Matrix Factorization
- Xiangnan He et al. (2017), Neural Collaborative Filtering
- Shuo Wang et al, (2018). Explainable Matrix Factorization with Constraints on Neighborhood in the Latent Space
Carmel WENGA,
PhD student at Université de la Polynésie Française,
Applied Machine Learning Research Engineer,
ShoppingList, NzhinuSoft.