Do you ever wonder how do Netflix predicts the type of content you want to watch and show's you the content which you like? Or after ordering a mobile phone from Amazon, how do you get recommendations of Mobile cases?
Or if you buy a off - shoulder top from Myntra, why do you get the recommendation of a pair of blue jeans? It's because of the recommender system of their websites.
Now what is the recommender system?
A recommender system, or arecommendation system(sometimes replacing 'system' with a synonym such as platform or engine), is a subclass ofinformation filtering systemthat seeks to predict the "rating" or "preference" a user would give to an item. They are primarily used in commercial applications. - https://en.wikipedia.org/wiki/Recommender_system
In layman terms, it's the ability of the machine to predict the preferences of the customers and recommend stuff according to the preferences. Earlier people had to choose on their own what to see or buy and it was possible because they had a quantity contraint. But now, we have too many options and it's quite hectic to choose the stuff manually, keeping in mind the time constraint. That's where the recommender system comes into play!
There are three methods of making a recommender system:
Ref: https://humboldt-wi.github.io/blog/img/seminar/causal_rec/overview.png
Ref: https://www.kaggle.com/ibtesama/getting-started-with-a-movie-recommendation-system/#The-Age-of-Recommender-Systems
Demographic Filtering- They offer generalized recommendations to every user, based on movie popularity and/or genre. The System recommends the same movies to users with similar demographic features. Since each user is different , this approach is considered to be too simple. The basic idea behind this system is that movies that are more popular and critically acclaimed will have a higher probability of being liked by the average audience.
The ones which are recommended at first in the "Trending" part, are done by demographic filtering. It's the easiest method of movie recommendation.
Content Based Filtering- They suggest similar items based on a particular item. This system uses item metadata, such as genre, director, description, actors, etc. for movies, to make these recommendations. The general idea behind these recommender systems is that if a person liked a particular item, he or she will also like an item that is similar to it.
It tries to find a similarity score among the contents according to the preferences of the user and then makes those recommendations which have the highest similarity score. Cosine similarity, cosine distance and Euclidian distances are used to measure the similarity. It basically quantifies the similarity between the contents first and then makes recommendation. So, for this the meta data is required that is the data which describes the contents. Like for a movie, the meta data is it's title, director name, cast, genre, and so on.
Collaborative Filtering- This system matches persons with similar interests and provides recommendations based on this matching. Collaborative filters do not require item metadata like its content-based counterpart,
Collaborative Filtering or CF method was popularized by Netflix. Suppose two users have same taste and if one of them has watched "The Office" then the other person will also be recommended the same. They're of two types:
1. User to User CF: which find similar users and recommend movies that they like.
2. Item to Item CF: which finds similar movies based on ratings given by other users.
The last type, Hybrid filtering is the mix of Content based and Collaborative filtering which most of the websites uses.