A recommender system, or a recommendation system, is a subclass of information filtering system that seeks to predict the “rating” or “preference” a user would give to an item. In fact, they are among the most powerful machine learning systems that online retailers implement in order to drive sales. Few of the most common examples of recommender systems are product recommendations on Amazon, Netflix suggestions for movies as well as recommended videos on YouTube to name a few.
All recommender system must decide whether or not it will attempt to see patterns between USERS or between ITEMS
We will now look at some of the most commonly used Recommendation based algorithms:
Popularity Based recommendation systems
Popularity-based recommenders offer a very primitive form of collaborative filtering, where items are recommended to users based on how popular those items are among other users based on rating given.
Content-based recommendation systems
These type of recommenders are not collaborative filtering systems because user preferences and attitudes do not weigh into the evaluation. Instead, content-based recommenders recommend an item based on its features and how similar those are to features of other items in a dataset. In the demo, we’re going to use the nearest neighbour algorithm to build a content-based recommender. The nearest neighbour algorithm is an unsupervised classifier.
- Uses attributes of items or user
- Recommend items similar to those liked by the user in the past
Collaborative or Correlation based recommendation systems
Two types of approaches, methods or algorithms are used as mentioned below –
Memory based Collaborative Filters: It memorises instances and then recommends an item, or a single instance, based on how quantitatively similar it is to a new incoming instance. Uses Similarity Metrics like,
- Cosine Similarity
- Peason Correlation
- KNN
- Eculidian Distance
Model Based approach or Matrix Factorisation based algorithm: -Attribute or performance of a user or image can be determined by a small number of hidden factors or variance
- SVD (singular value decomposition) or orthogonal factorisation is a linear algebra method that you can use to decompose a utility matrix into three compressed matrices.
- Probabilistic Matrix Factorisation (PMF)
- Non-Negative Matrix Factorisation (NMF)
Evaluation of above algorithms SVD or PMF or NMF is done using RMSE, MSE and MAE
- Neural Nets or Deep Learning using Fast.ai library