GithubHelp home page GithubHelp logo

doublejone831 / review-on-collaborative-filtering Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nzhinusoftcm/review-on-collaborative-filtering

0.0 0.0 0.0 31.28 MB

This repository presents a comprehensive implementation of collaborative filtering recommender systems.

Python 8.22% Jupyter Notebook 91.78%

review-on-collaborative-filtering's Introduction

Open In Colab

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).

Requirements

  • 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

Content

The topics covered in this repository are as follows : We first explore the movielen data

  1. 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

1. Memory-based Collaborative Filtering

Two main algorithms :

  1. User-based (or user to user) Collaborative Filtering : implements user-based collaborative filtering.

  2. Item-based (or item to item) Collaborative Filtering : implements item-based collaborative filtering.

2. Dimensionality reduction

Here the explored models are :

  1. Singular Value Decomposition (SVD) : implements dimensionality reduction with Singular Value Decomposition for collaborative filtering recommender systems

  2. Matrix Factorization : builds and trains a Matrix Factorization based recommender system.

  3. Non Negative Matrix Factorization: applying non negativity to the learnt factors of matrix factorization.

  4. Explainable Matrix Factorization: add explainability to matrix factorization factors in order to improve recommendation performances.

3. Performances comparison

  1. Performances comparison: this notebook presents an overall performance comparaison of all the models listed before.

References

  1. Daniel Billsus and Michael J. Pazzani (1998). Learning Collaborative Information Filters
  2. Herlocker et al. (1999) An Algorithmic Framework for Performing Collaborative Filtering
  3. Daniel D. Lee & H. Sebastian Seung (1999). Learning the parts of objects by non-negative matrix factorization
  4. Sarwar et al. (2000). Application of Dimensionality Reduction in Recommender System -- A Case Study
  5. George Karypis (2001)Evaluation of Item-Based Top-N Recommendation Algorithms
  6. Sarwar et al. (2001) Item-based collaborative filtering recommendation algorithms
  7. Greg Linden, Brent Smith, and Jeremy York (2003) Amazon.com Recommendations : Item-to-Item Collaborative Filtering
  8. Deng Cai et al. (2008). Non-negative Matrix Factorization on Manifold
  9. Yehuda Koren et al. (2009). Matrix Factorization Techniques for Recommender Systems
  10. Michael D. Ekstrand, et al. (2011). Collaborative Filtering Recommender Systems
  11. Yu-Xiong Wang and Yu-Jin Zhang (2011). Non-negative Matrix Factorization: a Comprehensive Review
  12. J. Bobadilla et al. (2013) Recommender systems survey
  13. Nicolas Gillis (2014). The Why and How of Nonnegative Matrix Factorization
  14. Dziugaite and Roy (2015), Neural Network Matrix Factorization
  15. Abdollahi and Nasraoui (2016). Explainable Matrix Factorization for Collaborative Filtering
  16. Abdollahi and Nasraoui (2017). Using Explainability for Constrained Matrix Factorization
  17. Xiangnan He et al. (2017), Neural Collaborative Filtering
  18. Shuo Wang et al, (2018). Explainable Matrix Factorization with Constraints on Neighborhood in the Latent Space

Author

Carmel WENGA,
PhD student at Université de la Polynésie Française,
Applied Machine Learning Research Engineer,
ShoppingList, NzhinuSoft.

review-on-collaborative-filtering's People

Contributors

carmel-wenga avatar carmel-nzhinusoft avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.