Recommender Systems

Relevant lectures: 3.1T, 3.1F

Recommender systems are a type of information filtering system that attempt to predict user preferences. Concretely, they aim to predict the rating or score some user would give to an item. They use this rating to provide the user with some sort of recommendation.

Typical Tasks of Recommender Systems

The “recommendations” predicted by recommender systems can come in several forms:

Commercially, recommender systems are used in search engines (Google, YouTube), and generally in “you might also like” systems such as suggested follows on Twitter, autoplay on YouTube, similar movies on Netflix, and “frequently bought together” items on Amazon.

To complete these tasks, recommender systems can use the user-item matrix to perform collaborative filtering, or apply techniques such as content-based prediction or dimensionality reductions. The former are covered below, and the latter two are out of scope for TI2716-C.

Road to a Recommender System

The User-Item Matrix

The user-item matrix plays a central role in recommender systems. It contains the set of ratings r_{i,j} that user i (from the set of users U) has assigned to item j (from the set of items I).

A user-item matrix looks like this, where r_{i,j} is some rating, usually in the form of a number:

  Item 1 Item 2 Item n
User 1 r_{1,1} r_{1,2} r_{1,n}
User 2 r_{2,1} r_{2,2} r_{2,n}
User 3 r_{3,1} r_{3,2} r_{3,n}
User m r_{m,1} r_{m,2} r_{m,n}

Challenges

Some of the challenges in creating a recommender system include:

Baseline Predictions

We can use the user-item matrix to make some simple baseline predictions. These can be used to evaluate our recommendation system. The notation b_{u,i} refers to the baseline prediction for user u’s rating for item i.

Collaborative Filtering

Collaborative filtering is a class of methods for making automatic predictions (filtering) about the preferences of a user by collecting preferences from many users (collaborating). It makes the assumption that if user A likes items X and Y, then user B, who also likes item X, will probably also like item Y (Wikipedia).

There are two types of collaborative filtering that can be used to make a recommendation for user u:

User-User Collaborative Filtering

Using user-user (also known as memory-based) collaborative filtering to predict the rating by user u’s for item i consists of two steps:

  1. Finding the neighborhood: Find users that have similar past rating behavior to user u. These users are called neighbors.
  2. Predicting the rating: Use the neighbors’ ratings to predict user u’s rating for item i.
    • This prediction can be made using the user-user collaborative filter formula, which takes an average of all the ratings other uses have made for item i, weighted by their similarity to user u (using Pearson correlation or cosine similarity).

See Wikipedia’s explanation.

Item-Item Collaborative Filtering

Using item-item collaborative filtering to predict the rating by user u of item i consists of two steps:

  1. Finding similar items: Find items that been rated similarly to item i, and select k (often 30) to form a set S.
    • To compute the similariy between items, we only consider the scores assigned by users who rated both items.
    • So: Items were not rated by user u cannot be part of S.
  2. Predicting the rating: Use ratings of S to predict user u’s rating for item i.

Item-item collaborative filtering is especially attractive when there are many more users than items.


[ Home ]