The Main Types of Recommender Systems
Content-Based Recommender Systems
Content-based filtering is the simplest recommendation technique. It’s so simple that pretty much anyone could implement it with a few lines of Python code.
Content-based recommender systems analyse user preferences to match them with item data. For example, an e-commerce store recommender system that is content based would look at a user’s search history, items they have bought, and items they have rated. It will then match these preferences to items in its inventory.
The way this happens is by encoding the features of each item as a vector, and then using simple similarity measures such as cosine similarity or the Euclidean distance, to measure how aligned two vectors are with each other.
The main benefit of those systems is that they allow the explicit modelling of domain knowledge. The system designer can use knowledge about product categories, user preferences, etc. Also, this type of recommender system can beat the cold start problem since it can work even at the absence of data. Other types of recommender systems are data-hungry, and a decent user base before they can make good recommendations.
There are limitations with this type of recommender system however, as it is only good at making recommendations based on one type of content. So, in the example above, a content-based recommender system used in an e-commerce store would be limited in its ability to make recommendations on anything other than the products in its dataset.
Collaborative Filtering Recommender Systems
Unlike content-based recommender systems, collaborative filtering recommender systems don’t need to know anything about the items they are recommending. Instead, they make recommendations based on the similarity between users or items.
So, for example, if a collaborative filtering recommender system knows that user A and user B like similar movies based on historical information, it will assume they will also like similar movies in the future. As a result, if user A watches and likes a movie, the system will recommend it to user B.
That is a very basic example, but it demonstrates the fact that the system didn’t need to know anything about the movie that user A watched to make the recommendation. Instead, it works by making connections between different users (or items). This means content filtering recommender systems are effective across different item types, as well as being capable of making recommendations on complex items.
The major disadvantage is that it needs data upfront to be able to make recommendations. Hence, the cold start problem is a clear challenge for those systems. So, in the example above, if a new user joins the platform, a content filtering recommender system would not initially know if they like or dislike the same movies as users A and B.
Collaborative filtering is based on simple principles, but it is very adaptable, and it has been one of the techniques that has revolutionised the field of recommendation. Even more advanced methods like deep learning recommender systems still apply some form of collaborative filtering at some point within the network.