I have just read Collaborative Filtering Recommender System from The Adaptive Web. It is a great reading for those who want a broad notion of the Collaborative Filtering (CF) technique in recommendation systems. In the introduction they’ll guide you through the history of CF and then tell you the importance of CF: Humans have limited attention there’s a limited screen space. And you have to deal with it.
Collaborative Filtering use human judgement as an alternative to robust technologies and are specially useful for subjective criteria. You must also know that this is a big difference with Content-based recommendation systems, which are better for cold-start recommendation but are more prone to over-specialization and generally use a more objective criteria.
Just after the introduction they’ll show you the index of topics, so you can jump right to the sections you’re interested in, right to the practical. But I recommend reading the whole thing, there’s a lot of details and it is very straightforward to read. If you want to implement a CF-based recommendation system, after reading this chapter you should know if the system could be easily applied to your application (without extra research). You’ll learn multiple use cases, functionalities, domain suitability, algorithms, ways of evaluation and even interface designing.
What did I learn?
A topic that I found interesting was about the difficulties of implementing CF systems. Here’s a few I found relevant:
- A perfect system would need a lot of memory and computation, so generally you’ll need to filter a set of items using another information.
- The system needs many items and ratings. That’s what makes it useless for cold-start recommendations.
- It needs that the utility of items is persistent over time. As it needs many items it doesn’t help if you need new items all the time.
- In terms of evaluation it is important to consider weighted errors based on which items are perceived more by the users, like those that are in the top of their recommendations list. It is also good to know that the accuracy is not the only metric to look at, there’s other like novelty and learning rate that should be considered.
I also liked the emphasis in the practical. It covered a lot of concepts that helped me to understand how could I make a recommender system fit my needs, like when to use explicit or implicit ratings and how to mix them for a better result.
In conclusion, a straightforward text that is in the right point, showing the basics and including some deeper concepts of Collaborative Filtering recommender systems.