This repository consists of collaborative filtering Recommender systems like Similarity Recommenders, KNN Recommenders, using Apple's Turicreate, A matrix Factorization system from scratch and a Deep Learning Recommender System which learns using embeddings. Besides this Market Basket Analysis using Apriori Algorithm has also been done. Deployment of Embedding Based Recommender Systems have also been done on local host using Streamlit, Fast API and PyWebIO.
- Krish Naik Tutorial For KNN:-(https://github.com/krishnaik06/Recommendation_complete_tutorial/tree/master/KNN%20Movie%20Recommendation)
- Matrix Factorization Recommender System inspired from Netflix Prize:- (https://datajobs.com/data-science-repo/Recommender-Systems-[Netflix].pdf)
- Analytics Vidhya Tutorial For Recommendation Engine:-(https://www.analyticsvidhya.com/blog/2018/06/comprehensive-guide-recommendation-engine-python/)
The dataset is a movies ratings dataset from movielens and five colaborative filtering recommenders have been implemented taking care of time of ratings and its affect on the ratings of the movie i.e-temporal information. Three subdivisions of movie lens dataset have been taken.
1)u.user:- user info user_id,age,sex,occupation,zip_code
2)u.data:- containing user_id,movie_id,rating,unix_timestamp
3)u.item:- movie id,movie title,release date,video release date,IMDb URL and (One hot encoding of Genre categories)
1)Similarity Recommender
2)KNN Recommender
3)Plot based Content Recommender
4)cast_genre_director based Content Recommender
5)Apple's Turicreate Recommender(highly specialised and accurate)
6)A matrix factorization method which has been implemented using Stochastic Gradient Descent, Adam's Optimisation and RMS Prop separately.
7)A Deep Learning Recommender which learns embeddings of users and movies and utilises KNN to predict the movie on the basis of user embeddings
So deployment of Deep Learning Embedding Model has been done using Fast APIs, PyWebIO and StreamLit platforms where an user id has to be entered and his preferences are displayed as predicted by the model.
To look at movies which are frequently highly rated by users is an example of Market Basket Analysis. It has been implemented using Apriori Algorithm in this repository.