|By Kim Falk
In this article, excerpted from Practical Recommender Systems, I talk about the steps that compose a recommender system.
A recommender system can be many things, and implemented in many ways. In the following, we will take a Netflix recommendation as an example, and use it to describe the way of implementing it, to give an overview of the steps that compose a recommender system.
I am a huge fan of Netflix and I am always using it to stream movies and TV shows. After reading a useful guide on the Coolest Gadgets website I have even purchased a streaming device for an old television in my kitchen so that I can stream all my favorite films while doing the cooking. Technology really is amazing.
Figure 1 shows how Netflix might produce my “Hot Picks” row.
Figure 1: A Recommender System
We will go through the figure step for step:
- A request for “Hot Picks” list is received.
- The server calls the recommendation system, which consists of a pipeline of methods.
- The first step is called retrieve most popular that retrieves the most popular items from the catalogue database (assuming that popularity is also saved in that database).
- The top 5 items (normally it would be top-100 or more) are piped into the next pipeline step, calculate prediction.
- Prediction is calculated using the user taste retrieved from the user database. It is likely that the prediction calculation will remove one or more items from the list, due to their predicted rating being too small, in figure 1 two items are removed.
- The calculate prediction outputs the significant items, now with a prediction added to them. The result is piped into an order by relevance
- The order by relevance will order the items according to the user taste, context and demographics. It might even try to add as much diversity to the result as possible.
- The items are now ordered by relevance. Again one item was removed, because the relevance calculations showed that one of them would be relevant for the end user.
- The pipeline returns the list.
- The server returns the result.
Looking at Figure 1 it becomes clear that there are many aspects that need to be considered when doing recommender systems.
Most recommender systems will try to use the data shown in Figure 2 in some way or another:
Figure 2: Input data for a recommender system
Figure 2 also makes it clear the prediction estimation part is the only part of a recommendation system.
RECOMMENDER SYSTEM NAMING
We are now ready to sum up things and to write some definitions.
Table 1: Some recommender system definitions
|Prediction||Netflix calculates what you would rate an item||A prediction is an estimate of how much the user would rate/like that item.|
|Relevancy||All rows on the Netflix page like “Top Picks”, “Popular on Facebook” are ordered according to relevancy.||An ordering of items according to what is most relevant for the user right now. Relevancy is a function of the context, demographics and rating.|
|Recommendation||Top Picks for Kim||The Top N most relevant items.|
|Personalization||The row headlines in Netflix is an example of personalization||Integrating relevancy into the presentation.|