Skip to content

Recommendation Algorithm Tutorials

The purpose of these tutorials is to familiarise you with different recommendation algorithms and to take you through the necessary steps to get each one working on an example dataset (MovieLens movie ratings), before you adapt the algorithms for your purposes.

1. Generic Content-Based Filtering

This algorithm uses content metadata to establish similarities between content items and to learn a user's taste based on the metadata characteristics in their consumption history. It is generic and thus customizable to any existing metadata source. It is most effective with good metadata quality and can immediately recommend new items.

Try content-based filtering in the tutorial

2. Collaborative Filtering

This algorithm operates without any information about content items whatsoever - it uses only user consumption behaviour (which items are watched by which users) to establish item and user similarity and to predict a user's taste based on similar other users. It is the easiest to start using and can offer good user understanding that goes beyond obvious content characteristics, but requires a certain interaction volume before a content item or user is well understood.

Try collaborative filtering in the tutorial

3. Diversified Algorithm

This is a variant of collaborative filtering that offers more diverse recommended items in each set. It uses the same model learning process and can thus reuse model storage and computation effort, if collaborative filtering is already employed. It trades off item suitability and item diversity for each user, by choosing the most differing items out of a large set of suitable items.

Try the diversified algorithm in the tutorial

This algorithm displays content that is popular among all users and can be used, for example, if there is no information about the user at all. It takes into account relative item popularity within several publication time scales, thus featuring both recent and older popular content.

Try the trending algorithm in the tutorial