3

I am new to recommender systems and am trying to find similar users of base users for user-based collaborative filtering.

When I calculated the similarity score between two users (based on their ratings with Pearson algorithm [or Resnick's weighted Pearson algorithm]) I get a similarity score from -1 to 1.

Is it a good idea to normalize these values to 0 to 1 (-1 would become 0 and 1 would be 1) to make it comparable to other algorithms?

In fact, I tried to build recommendations with a negative similarity score of a user, the calculated/predicted rating could be negative as well which makes no sense.

Should I normalize/scale "-1 to 1" to "0 to 1" or cut off all users with similarity scores below 0?

(maybe the question also could be: "Which users should be taken as a mentor to recommend new items on a similarity score from -1 to 1? Or should I take the top n users with highest similarity score?")

Ethan
  • 1,633
  • 9
  • 24
  • 39
5im
  • 131
  • 2

1 Answers1

0

One thing you can do is to separate the contributions of:

  • a) who have a positive correlation with you
  • b) who have a negative correlation with you

Then you can:

  1. Predict the rating using only users in a) $\to$ those will have positive correlation, this positive weights. Call this $\hat{r}_a$
  2. Predict the rating using only users in b) $\to$ in this case, consider the weights as positive (even in they are negative correlation). Call this $\hat{r}_b$
  3. The final predicted rating is $\hat{r} = \frac{\hat{r}_a - \hat{r}_b}{2}$