2
$\begingroup$

Consider I have a set of movies and a set of users ($A$,$B$,$C$,$D$) and a matrix with related scores (I can have gaps in this matrix).

Consider a linear regression model where a specific user A's rating is meant to be a weighted average of other users ratings:

$$R_A = a + w_B R_B + w_C R_C+ w_D R_D$$

where $R_A$ is a rating of user A and so on, $w_B$ is the weight parameter for rating $R_B$ and $a$ is a normalization factor.

The following is the table I have got:

Usersm1m2m3m4m5m6m7m8
A 3 4 5 1
B 5 5 5 1
C 2 5 5 3 4
D 4 5 4 4 2

Question: How can I derive a parameter estimation method and use it to obtain the four weights $w_B$, $w_C$, $w_D$?

$\endgroup$
2
  • $\begingroup$ Cross-posted on CS.SE: cs.stackexchange.com/q/41591/755 See that question for my comments and suggestions on how to improve the question. $\endgroup$
    – D.W.
    Apr 21 '15 at 23:19
  • $\begingroup$ is R_A scalar or a vector corresponding to each movie ? $\endgroup$
    – Areza
    Apr 18 '18 at 10:56
4
+50
$\begingroup$

I think this is not getting answers because it looks like you're trying to address a well-known problem using an approach that doesn't seem very appropriate. I see the "self-study" tag so it may be that you're just learning about the techniques... so that's the angle I'm taking when answering.

It looks like you're ignoring the fact that this is a recommender system, and just addressing the problem under the hypothesis: A's ratings can be predicted by a linear combination of the ratings by users B,C, and D.

In this case you just have a standard linear regression problem with 4 datapoints (A's existing ratings). Now I have a feeling that a regression of 4 parameters from 4 datapoints will not give you very good results... just not enough data.... and what you'll get as a result will not be useful to predict the rest of the ratings.

In a recommender system where ratings by one user are predicted from ratings by other users on the same item (movie, etc.), you're doing (a basic form of) user-user collaborative filtering, and the standard approach is that you predict user A's ratings from the top-k most similar other users. Therefore, your weights are either uniform (1/k) (you take the mean of those ratings) (or 0 if the user is not among the top-k most similar), or dependent on the similarity (ratings from user Z are weighted according to the similarity between A and Z, calculated from other movies they've both rated).

You can take a look at this paper on collaborative filtering, it may help.

$\endgroup$
1
  • $\begingroup$ (+1) I had planned to write a similar answer. Using linear regression in such a way leads to one model per user-item-rating to predict, clearly the wrong approach. $\endgroup$
    – mlwida
    Apr 30 '15 at 8:28

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.