1
$\begingroup$

I was reading about collaborative filtering where we need to pass (user, item and rating) in case of matrix factorisation (SVD). Now, my question is given data of following form

User | Item | Rating A | X1 | 1 A | X2 | 3 B | X2 | 4 C | X1 | 3 C | X3 | 2 we need to convert the it into

U/I | X1 | X2 | X3 A | 1 | 3 | - B | - | 4 | - C | 3 | - | 3

So, we need to replace all the - with the predicted value prior to applying svd on it. Now I would like to understand what are most practical or mostly adopted way to predict such missing rating: I am aware about following crude ways, but they are not prediction of value but they are mere replacement of missing value

  1. Replace all missing values by neutral rating . (Say either 2 or 3 if rating are from 1-5).
  2. Replace with mean rating of the movie.
  3. Replace with average rating of that user. etc...
$\endgroup$
1
$\begingroup$

For the Collaborative Filtering while using Matrix Factorization you don't necessary use a vanilla SVD over a dense matrix. As for the most cases the input dataset of ratings is vary sparse and your U/I rating matrix will have most of values set to 0.0. So, when SVD is done for input date the final recommendation will suffer of that.

And this was the main breakthrough in the publication of using SGD for MF in Netflix Prize contest in 2006. All is described by the author here. In short - you calculate your lost function only over the seen ratings set, not over the all matrix (as all the zeros or other value actually represent unknown/unobserved cases). Thus, the natural choice is to use sparse matrix for your input data.

$\endgroup$
  • $\begingroup$ As you said, we run SGD over known ratings to figure out a model that fits well, and we will use this model to predict ratings of missing ones. Now, just to confirm, in order to get SGD, we need to have a hypothesis ( e.g D.V is linear combination of IV [independent variable]). Right ? Or i am missing something. $\endgroup$ – Gaurav Gupta Jul 2 '18 at 16:27
  • $\begingroup$ > "in order to get SGD, we need to have a hypothesis" Don't know exactly what you mean here. Can you elaborate more? $\endgroup$ – Bartłomiej Twardowski Jul 4 '18 at 13:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.