1. Some materials are taken from machine learning course of Victor Kitov
Everyday people have to make decisions:
Multitude of choices
To filter out the seach people can rely on recommendations
These recommendations are too narrow and standard
Need automatic recommendation system!
A method of making automatic predictions about the interests of a user by collecting prefences or taste information from similar users
Intuition
Define similarity function on users: s∈RU×U
Algorithm with level normalization:
ˉRu - adjustment to compensate average rating behaviour of u
Algorithm with level and scale normalization:
where σu is standard deviation of user u ratings
For each pair (u,v) the intersection of rated items should be considered!
Pearson correlation suv=∑i∈Iu∩Iv(Rui−ˉRu)(Rvi−ˉRv)√∑i∈Iu∩Iv(Rui−ˉRu)2√∑i∈Iu∩Iv(Rvi−ˉRv)2
tends to give high similarity for users with few ratings
For item i find a set of items similar to it and rated by user u: N(i)
Predict Rui by averaging over N(i) ˆRui=∑j∈N(i)sijRuj∑j∈N(i)|sij|(1)
When user is active - his ratings change
Due to possible precomputations, item-item becomes more efficient
For each user u build a vector pu∈Rk and for each item i - a vector qi∈Rk s.t.: Rui≈p⊤uqi
Each matrix X∈Rn×d with rank r can be decomposed as X=UΣV⊤, where
Truncated SVD with rank K X≈ˆX=UkΣkV⊤k, where
It turns out that ˆX=argminA∈Rn×d,rank(A)≤k‖X−A‖Frobenius
pu=argminp‖ru−Vp‖2={OLS solution}=(V⊤V)−1V⊤ru=V⊤ru