A Practical Guide to Building Recommender Systems

Overview of Recommender Algorithms – Part 5

This is the final part in a five part series on overviewing recommender algorithms. In the first post, we introduced the main types of recommender algorithms by providing a cheatsheet for them. In the second, we covered the different types of collaborative filtering algorithms highlighting some of their nuances and how they differ from one another. In the third, we described content-based filtering in more detail. In the fourth, we presented hybrid recommenders and popularity-based approaches.  In this post we’ll conclude the series by adding some words about a selection of advanced recommender algorithms before looking back at how different the output of the basic recommender algorithms can be.

In addition to the more traditional recommender systems approaches we’ve covered so far (e.g. popularity, collaborative filtering, content-based filtering, hybrid approaches), there are a number of other methods that can also be used to power recommender systems including:

These more advanced and non-traditional methods are good for taking the quality of your recommenders to the next level, but are also less understood and not as well supported in recommendation toolkits.  In practice you always need to decide whether the cost of implementing advanced methods is worth the added value that it will bring compared to some more basic approaches.  In our experience, the basic algorithms can take you a long way and be used to power some great products.

In this series, we wanted to introduce you to a number of common recommender module algorithms including user-based collaborative filtering, item-based collaborative filtering, content-based filtering and hybrid methods.   Here, we provided a single illustration that shows how these four different algorithms, when applied to the same toy example of input data, will generate different recommendations for the same user (Figure 1).  This effect also holds when applied to large, real-world data, so deciding which algorithm to use will be a matter of considering their relative pros and cons and how well they perform when you evaluate them.

Figure 1: Overview of four recommender system algorithms all being applied to the same set of data and giving different results. One the left, we have the user preferences for a number of items in a matrix and the list of titles of the items that can be recommended. In the middle we show how four different algorithms generate recommendations for the first user (i.e. row 1 in the user preferences matrix). They have different definitions of similarity, as shown by the similarity matrices. On the right, we see the items generated by each recommender algorithm, maintaining order from top to bottom, consistent with the algorithm ordering.

In practice, you generally won’t go far wrong if you can use collaborative filtering as the algorithm in your recommender model.  Collaborative filtering tends to outperform the alternatives but, given its trouble dealing with cold start users and items, it’s common to rely on a content-based algorithm as a fallback.  If you have the time then it’s great to put together a hybrid so that you can get the best of both collaborative filtering and content-based filtering.  It’s certainly a good idea to put these basic algorithms in place before even thinking about looking at the advanced ones.

Finally, it’s worth keeping in mind that the recommender model is just one of five recommender systems components.  Like all components, it is important to set it up correctly and to put effort into it but the choices that you make about your data collection and processing, post-processing, online modules and user interface are just as important.  As we’ll emphasise over and over again, the algorithm is just one part of the recommender and your decisions need to be taken thinking about the entire product.