Authors : Arthur Herbout, Redouane Dziri
Please look at the requirements file to learn about dependencies and useful packages to reproduce our results.
Directory Part I contains the brute force baseline algorithms we developed as well as preliminary results.
Directory Part II contains the more sophisticated recommender system we developed with our final results.
Both directories are independent and the code can be run independently from one or the other. Results and insights from Part I are summed up in Part II so that one can immediately look at the latter to understand our motivations, choices and results.
We are placing ourselves in the position of the owners of a movie streaming platform, akin to Netflix, Hulu, Showtime and the like.
We are going to recommend movies to users this streaming platform that have already rated at least one movie.
We wish to focus on a particular business objective : recommend movies to users that are already watching at least a few movies on the platform. Those users can be seen as valuable customers that are more likely to keep watching movies, especially if recommendations are relevant and, more importantly, are perceived as relevant by the user. Therefore we feel it is important to keep those users' business and enhance their experience with great recommendation to keep their interest up.
Our full dataset can be found here: Full Movielens Dataset
See Notebooks in Part I and Part II folders. The Part-I
and Part-II
notebooks unravel our workflow, from problem definition to our results, limitations and future works.
surprise documentation: Useful to get insights into the different baselines algorithms https://surprise.readthedocs.io/en/stable/
scikit-learn documentation: Useful to know how to create class that can fit in the scikit-learn pipeline. For example, it enabled us to create our class that was able to use SearchGridCV from scikit https://scikit-learn.org/stable/documentation.html
Overview of Recommender Algorithms: Useful to get yet another vision of recommender systems https://buildingrecommenders.wordpress.com/2015/11/18/overview-of-recommender-algorithms-part-2/
"The Why and How of Nonnegative Matrix Factorization": useful for future implementations of Matrix factorization https://arxiv.org/pdf/1401.5226.pdf