1. Introducing Recommendation engine
Everyday we form opinions about things we like, don’t like and even don’t care about. For example, when you watch a television show, you either notice it because it’s a funny show, or because it is boring or maybe don’t notice it at all. It happens without we noticing and with food, movies, songs, hairstyles, ski resorts and so on.
Our tastes vary, but we generally follow patterns. People tend to like things that are similar to other things they like. Because I love the Matrix film, you can guess I would like to watch Minority Report, which is mostly the same genre, action and sci-fi. Likewise, people also tend to like things that similar people like. Just consider a design student that entered the design school, when he sees just every other design student using a Macintosh computer, he isn’t surprised, since he was already a lifetime Mac user. Recommendation is all about predicting these likes and dislikes, and using them to discover new and desirable things you didn’t already know about.
1.1 What is recommendation ?
In this tutorial, we will explore some of the ways people make recommendations and discover new things – and of course learn how those systems work in software with Crab. There are several strategies for creating recommendations: One could look to what people with similar tastes seem to like. Another approach would figure out what items are like the ones we already like. Those strategies describe the two most well-known categories of recommender techniques: user-based anditem-based recommenders and they are included in a major category called Collaborative Filtering. Before exploring them, let’s explain the differences between this type of filtering and the Content-Based Filtering, another popular large recommendation category.
1.2. Collaborative Filtering and Content-Based Filtering
The scenarios above presented are examples of Collaborative Filtering, which produces recommendations based on the knowledge of users’ relationships to items. In this category there is no requirement for knowledge of the properties or attributes of the items themselves. This recommender framework does not care whether the items are books, movies, flowers, or even people, since nothing about their attributes enters into any of the input.
Approaches focusing on the attributes of items are usually referred to as content-based filtering recommendation techniques. For instance, consider a book recommender system, which recommends you Programming the Collective Intelligence because you love Artificial Intelligence books (you already read several books about A.I. and the system knows your historical records). It is clear that the recommendation is based on an attribute of the books: the main category. This is something more like content-based recommendation.