Next: Data Analysis
Up: Methods for Predicting Movie
Previous: Missing Value Prediction Using
SVD is a popular matrix factorization technique which has been used a lot in data mining, especially in dimensionality reduction. Given a
matrix
, SVD decomposes that matrix into:
where U and V are two orthogonal matrices of size
and
respectively, and
is a diagonal matrix of size
. All diagonal entries of
are non-negative and called the singular values of matrix
. The diagonal entries of
are often sorted in a decreasing order. The most important property of SVD is that we can take the first
largest singular values and construct an approximated matrix of rank-
of
as following:
where
,
, and
are reduced matrices of
,
,
respectively. It has been shown that
is the best rank-k approximation of the matrix
in case of squared error loss. In other words,
is the one that minimizes the Frobenius norm
=
. So considering the matrix
as our rating matrix, we can use the values of
to approximate the values of
. The assumption of this approach is that there are latent relationships between users and movies which affect the rating of a user for a given movie. Specifically, we assume there are a set of
factors which decide how a user rates a movie, and these factors can be captured by the rank-
SVD. In [6],[7], the authors has shown that the performance of this approach is comparable to other collaborative filtering methods. However, one problem with this approach is that it is computationally expensive and is not scalable to large dataset. So instead of performing this approach on the original rating matrix, we first run the co-clustering algorithm to partition the original matrix into blocks and apply this approach on each block. Another problem with this approach is that the original rating matrix
has a lot of missing entries which make it difficult to compute the rank-
SVD of
. One way to solve this problem is to fill in those missing values with some reasonable values. In [6],[7], the authors use the average ratings of movies to fill in those missing values. We have tried that approach but the performance is very bad. So we propose to use the predicting values based on co-clustering as the guessing values for those missing values in the original rating matrix
. Then we compute the rank-
approximation
of
based on SVD, and use it for predicting the final values of those missing entries in
. In summary, the following steps are performed on each cocluster of the original rating matrix:
- Get the matrix block matrix
corresponding to the cocluster
- Select a scheme, and fill in the missing values of
based on that scheme
- Compute the rank-
SVD of
to obtain
,
, and
- Compute the matrix
and
- Compute the predicted rating for each entry in the test set by calculating the dot product between the appropriate row of
and column of
Next: Data Analysis
Up: Methods for Predicting Movie
Previous: Missing Value Prediction Using
Tuyen Huynh
2007-05-09