probabilistic Matrix Factorization: Difference between revisions

From statwiki
Jump to navigation Jump to search
No edit summary
Line 7: Line 7:
This dataset is <math>N \times M</math> matrix where each row corresponds to a user, each column to a movie and the entries to a rating. Ratings take on values <math>1,...,K</math>. The difficulty in this problem arises from the fact that each user has only rated a subset of movies. If there is some latent rank-<math>D</math> structure to these ratings (that is, underlying variables that determine how much a user enjoys a movie) then it would beneficial to factor the matrix.  
This dataset is <math>N \times M</math> matrix where each row corresponds to a user, each column to a movie and the entries to a rating. Ratings take on values <math>1,...,K</math>. The difficulty in this problem arises from the fact that each user has only rated a subset of movies. If there is some latent rank-<math>D</math> structure to these ratings (that is, underlying variables that determine how much a user enjoys a movie) then it would beneficial to factor the matrix.  


Formally, given a preference matrix <math>R</math> which is <math>N \times M</math>, we wish to find an <math>N \times D</math> matrix <math>U^T</math> and an <math>D \times M</math> matrix <math>V</math>. <math>V</math> is a factor matrix (i.e. for the <math>D</math> latent variables, it gives the value for each movie) and <math>U^T</math> gives coefficients of these factors for each user. The actual "Prize" dataset has <math>N=480,189, M - 17,770</math> with over 100 million of these entries having values.
Formally, given a preference matrix <math>R</math> which is <math>N \times M</math>, we wish to find an <math>N \times D</math> matrix <math>U^T</math> and an <math>D \times M</math> matrix <math>V</math>. <math>V</math> is a factor matrix (i.e. for the <math>D</math> latent variables, it gives the value for each movie) and <math>U^T</math> gives coefficients of these factors for each user. The actual "Prize" dataset has <math>N=480,189, M = 17,770</math> with over 100 million of these entries having values.


There are several existing ways to solve this problem but they often require approximations that are slow and, at times, inaccurate. Another instinctive approach might be to use SVD. However, since there is a lot of missing data in this case, the optimization problem that needs to be solved is not convex. Thus, existing methods do not scale well and often have lower accuracy in cases where a row is sparse.
There are several existing ways to solve this problem but they often require approximations that are slow and, at times, inaccurate. Another instinctive approach might be to use SVD. However, since there is a lot of missing data in this case, the optimization problem that needs to be solved is not convex. Thus, existing methods do not scale well and often have lower accuracy in cases where a row is sparse.


The proposed solution is to use a probabilistic model.
The proposed solution is to use a probabilistic model.

Revision as of 13:26, 22 November 2010

UNDER CONSTRUCTION

Introduction and Motivation (Netflix Dataset)

The problem provides an approach to collaborative filtering that can scale linearly and, thus, handle large datasets. The methods are discussed in the context of the Netflix dataet.

This dataset is [math]\displaystyle{ N \times M }[/math] matrix where each row corresponds to a user, each column to a movie and the entries to a rating. Ratings take on values [math]\displaystyle{ 1,...,K }[/math]. The difficulty in this problem arises from the fact that each user has only rated a subset of movies. If there is some latent rank-[math]\displaystyle{ D }[/math] structure to these ratings (that is, underlying variables that determine how much a user enjoys a movie) then it would beneficial to factor the matrix.

Formally, given a preference matrix [math]\displaystyle{ R }[/math] which is [math]\displaystyle{ N \times M }[/math], we wish to find an [math]\displaystyle{ N \times D }[/math] matrix [math]\displaystyle{ U^T }[/math] and an [math]\displaystyle{ D \times M }[/math] matrix [math]\displaystyle{ V }[/math]. [math]\displaystyle{ V }[/math] is a factor matrix (i.e. for the [math]\displaystyle{ D }[/math] latent variables, it gives the value for each movie) and [math]\displaystyle{ U^T }[/math] gives coefficients of these factors for each user. The actual "Prize" dataset has [math]\displaystyle{ N=480,189, M = 17,770 }[/math] with over 100 million of these entries having values.

There are several existing ways to solve this problem but they often require approximations that are slow and, at times, inaccurate. Another instinctive approach might be to use SVD. However, since there is a lot of missing data in this case, the optimization problem that needs to be solved is not convex. Thus, existing methods do not scale well and often have lower accuracy in cases where a row is sparse.

The proposed solution is to use a probabilistic model.