Solved – SVD in movie recommendation

recommender-systemsvd

Assume that there is a 5 $\times$ 6 matrix that records the ratings of six users on five movies.

I have computed the singular value decomposition (SVD) for such a matrix.

Suppose I add another movie so now it becomes 6 $\times$ 6 matrix.

However, I only have a rating of that movie for two people.

How can I estimate the ratings the other users would give to this new movie?

Best Answer

This is a very well-studied problem known as matrix factorization or matrix completion, in which you have some observations of a matrix which is assumed to be low-rank and wish to fill in the remainder.

Two of the standard models are:

There are a lot of extensions to these models to make them more effective in various applications. They're described by any of many introductions to matrix factorization for collaborative filtering. You could try, for example, this introduction [though note that their python implementation is pretty bad], or if you like real books the Recommender Systems Handbook is probably pretty good (though expensive).

If you want to take into account the SVD that you apparently have of your complete 6 x 5 submatrix, you could initialize the optimization process for either of the above at that solution. In practice, of course, that situation is pretty rare.

Related Question