Too few choices are bad but too many choices leads to paralysis
What is it?
Recommender systems are so commonplace now that many of us use them without even knowing it. Because we can’t possibly look through all the products or content on a platform, a recommendation system plays an important role in helping us have a better user experience, while also exposing us to more inventory we might not discover otherwise. Relationships provide recommender systems with tremendous insight, as well as an understanding of customers.
Some examples of recommender systems in action include product recommendations on Amazon, Netflix suggestions for movies and TV shows in your feed, recommended videos on YouTube, music on Spotify, the Facebook newsfeed, and apps on Indus App Bazaar.
An important component of any of these systems is the recommender function, which takes information about the user and predicts the rating that the user might assign to a product, for example. Predicting user ratings, even before the user has actually provided one, makes recommender systems a powerful tool.
What are the types?
Recommendation system can be categorized into:
Popularity based filtering
- Simplest of all models, the recommendations are based on the number of views, likes, ratings, or purchases. This can be implemented when we don’t have any information about the new user i.e. cold start.
- Categorize the users based on user attributes like device type, location, OS type, etc. and then recommendations are based on the popularity.
- The machine learning model uses features of both products as well as users to predict the chances of whether a user will like a product or not. If the items are many then also it can be difficult to classify and achieve accuracy.
- The most probable sub-category can be classified and then within that popularity or demographic-based filtering can be used.
- It recommends users similar items that the user has liked in the past or is examining currently.
- Item information can be collected using description, title, category, etc., or based on how users have rated the item similarly.
- Works well even when the item has no user interaction.
It aggregates ratings or recommendations of items, recognizes commonalities between the users on the basis of their ratings, and generates new recommendations based on what similar users had liked.
- The limitation of this model is that the performance of the system slows down as the user base grows.
- Algorithms: SVD, ALS, SGD, etc.
- It combines two or more filtering techniques to achieve better performance. Usually, collaborative filtering methods are combined with content filtering methods in layered, weighted, switched, mixed and cascaded approaches to achieve desired results.
- The advantage of this model is that it is more powerful, more stable, and more relevant compared to the other models. The cold start problem can be taken care of here.
Association rule mining
- The items that appear together in the same session are recommended to other users across the platform.
- The concept is based on association rules here, and the correlation is formed based on the ‘appearance’ in the same session. The limitation of this model is that it is less personalized compared to collaborative or even content filtering models.
- Algorithms: Apriori, FP-growth.
- It takes into account the last N sequence of item interactions along with user and item metadata and predicts the next most probable items users might be interested in.
- For scalability, the recommendation engine can be divided into two parts:
- Candidate generator: Filter relevant items to a user.
- Ranker: Order the filtered items.
- Can be used in session-based recommendations along with any of the above batch-based (pre-computed) recommendation.
- There are graph-based recommendations systems also, that use user-item interaction as graphs to train the model.
- It is most personalized and also helps in cold start problems but is most difficult to implement.
- Algorithms: Feedforward nets, RNN/ LSTM, Repinforment learning, autoencoders.
In the next blog, we will discuss how we can design the recommendation engine, evaluation criteria, feedback data, and some insights from the app store.