I think many people here lack the simplicity of the question. He did not say anything about creating a rating prediction system. He just wants to calculate the similarity between the behavior of each user song rating and other characteristics of the user's song behavior. Pearson's correlation coefficient does just that. Yes, you have to iterate over all user / user pairs.
EDIT:
Thinking about it a little more:
Pearson is great if you want a similarity between the tastes of two users, but not their level of "stubbornness" ... one user who rates the series of songs 4, 5 and 6, perfectly correlates with another user who rates the same songs 3, 6 and 9. In other words, they have the same “taste” (they will rate the songs in the same order), but the second user is much more self-confident. In other words, the correlation coefficient considers any two rating vectors with a linear relationship as equal.
However, if you need a similarity between the actual ratings that users gave each song, you should use the standard error between the two rating vectors. This is a purely distance metric (linear relationships are not taken into account in similarity points), so users 4,5,6 and 3,6,9 do not have an ideal assessment of similarity.
The solution comes down to what you mean by "similar" ...
That's all.
Donnie deboer
source share