Collaborative Filtering
Last updated
Last updated
Consider a list of movies as "items". Each movie has an associated rating which we will call "score". With this, we write the following denotion:
​Basic algorithm is to make average rating for item ​:
Score can depend on both user ​ and item (e.g. movie) .
The above equation does not change anything from the equation to calculate the average rating as the score still does not depend on user ​. So, every user still sees the same score for each item.
The above equation is actually meant to introduce a new convention and symbols which we would modify later on to introduce personalisation. We would observe this in an upcoming blog article.
The central object for any recommender systems is the ratings matrix. It is defined as follows:
User-item ratings matrix is sparse because most entries are generally empty. Below is an example of a dummy ratings matrix. Each row represents a user and each column represents an item (e.g. movie).
We want to make recommendations. Thus, its a good thing that the ratings matrix generally is sparse, in order to actually have items to recommend.
We want to guess what a user might rate a movie, the user has not seen yet. Thus,
​We want to predict a real number, so objective of this task would be "mean squared error" (MSE).
There are 2 different ways to apply collaborative filtering for making recommendations:
User-User Collaborative Filtering
Item-Item Collaborative Filtering
marked entries in the above matrix mean, there are no ratings (score) for the specific user-item pair.