13. Идея метода (user-based)
Как продукт оценили похожие пользователи?
ˆ
rui =
1
∑
N ( u)
i
rvi
v∈N i (u)
Взвесим вклад каждого
∑
wuv rvi
ˆui = v∈Ni (u)
r
∑
wuv
v∈N i (u)
И нормализуем рейтинги
$ ∑ w h (r ) '
& v∈N (u) uv vi )
ˆ
rui = h −1 & i
)
∑ wuv )
&
% v∈Ni (u)
(
14. Какое расстояние использовать?
• Косинусное расстояние
∑r r
ui vi
cos(u, v) =
i∈I uv
∑r ∑ r
2
ui
i∈I u
2
vj
j∈I v
• Корреляция Пирсона
∑ (r
ui
PC(u, v) =
− ru )(rvi − rv )
i∈I uv
(rui − ru )2 ∑ (rvi − rv )2
∑
i∈I u
j∈I v
15. Как нормализовать рейтинги?
• Mean centering
h ( rui ) = rui − ru
• Z-score
rui − ru
h ( rui ) =
σu
• Percentile
h ( rui ) =
{ j ∈ Iu : ruj ≤ rui }
Iu
17. Наилучшее приближение ранга k
Теорема:
Если в матрице λ оставить k наибольших сингулярных векторов,
то получим наилучшее приближение матрицы A ранга k
18. Baseline predictors
Модель:
ˆu
rui = µ + bu + bi
Функция ошибки:
argmin
b*
∑ (r
ui
u
(u,i)∈R
− µ − bu − bi )
2
$
'
2
2
+ λ & ∑ bu +∑ bi )
% u∈U
(
i∈I
19. SVD
Модель:
T
ˆu
rui = µ + bu + bi + pu qi
Функция ошибки:
argmin
p*q*b*
∑ (r
ui
u
(u,i)∈R
2
(
2
− µ − bu − bi − p qi ) + λ pu + qi
T
u
2
2
u
2
i
+b +b
)
24. Снова SVD
Модель:
T
ˆu
rui = µ + bu + bi + pu qi
Функция ошибки:
argmin
p*q*b*
∑ (r
ui
u
(u,i)∈R
2
(
2
− µ − bu − bi − p qi ) + λ pu + qi
T
u
2
2
u
2
i
+b +b
)
30. SGD-оптимизация модели SVD
Модель:
T
ˆu
rui = µ + bu + bi + pu qi
Функция ошибки:
argmin
p*q*b*
∑ (r
ui
u
(u,i)∈R
2
(
2
− µ − bu − bi − p qi ) + λ pu + qi
T
u
Правила для градиентного спуска:
bu ← bu + γ1 ( eui − λ1bu )
bi ← bi + γ1 ( eui − λ1bi )
pu ← pu + γ 2 ( eui qi − λ2 pu )
qu ← qi + γ 2 ( eui pu − λ2 qi )
2
2
u
2
i
+b +b
)
31. Ridge regression
Модель:
T
yi ← w xi
T
w w→0
Функция ошибки:
n
# T
2&
T
argmin % λ w w + ∑ ( w xi − yi ) (
w
$
'
i=1
Точное решение:
−1
−1
w = ( λ I + X X ) X y = ( λ I + A) d
T
T
A=X X
T
d=X y
T
32. ALS-оптимизация модели SVD
Модель:
T
ˆu
rui = µ + bu + bi + pu qi
Функция ошибки:
argmin
p*q*b*
∑ (r
2
(
2
− µ − bu − bi − p qi ) + λ pu + qi
T
u
ui
u
(u,i)∈R
P-step:
−1
pu = ( λ nu I + Au ) du
Au = Q[u]T Q[u] =
∑
d = Q[u] ru =
∑
i:(u,i)∈R
rui qi
2
u
2
i
+b +b
)
Q-step:
−1
qi = ( λ ni I + Ai ) di
qi qiT
Ai = P[i]T P[i] =
∑
T
pu pu
u:(u,i)∈R
i:(u,i)∈R
T
2
T
di = P[i] ri =
∑
u:(u,i)∈R
rui pu
33. Ridge regression (RR1 optimization)
Модель:
T
yi ← w xi
T
w w→0
Функция ошибки:
n
# T
2&
T
argmin % λ w w + ∑ ( w xi − yi ) (
w
$
'
i=1
Покоординатный спуск (по всем k):
∀ wk xik ≈ yi − ∑ wl xil
n
i=1
l≠k
n
wk
∑ xe
←
(λ + ∑ x x
i=1 ik i
n
i=1 ik ik
)
34. ALS1-оптимизация модели SVD
Модель:
T
ˆu
rui = µ + bu + bi + pu qi
Функция ошибки:
argmin
p*q*b*
∑ (r
ui
u
(u,i)∈R
2
(
2
− µ − bu − bi − p qi ) + λ pu + qi
P-step: RR1 для
T
u
pu
Q-step: RR1 для
qi
2
2
u
2
i
+b +b
)
35. Литература
• Adomavicius G., Tuzhilin A., “Toward the next generation of
recommender systems: A survey of the state-of-the-art and possible
extensions”, 2005.
• Sarwar B., Karypis G., Konstan J., Reidl J., “Item-based collaborative
filtering recommendation algorithms”, 2001.
•
•
•
Koren Y., “Factorization Meets the Neighborhood: a Multifaceted
Collaborative Filtering Model”, 2008.
Bell R., and Koren Y., “Scalable Collaborative Filtering with Jointly
Derived Neighborhood Interpolation Weights”, 2007.
I. Pila ́szy, D. Zibriczky, and D. Tikk, “Fast ALS-based matrix
factorization for explicit and implicit feedback datasets”, 2010.
40. Similarity by tags (co-occurrence)
Данные:
облака тэгов
Ti
и
Tj
Меры сходства:
• Жаккарда Ti Tj
Ti Tj
• Дайса
2 ⋅ Ti Tj
Ti + Tj
• Охаи
Ti Tj
Ti Tj
41. Similarity by tags (LSA)
• Разложим матрицу Items x Tags по SVD
• Меры сходства: косинусное расстояние и др.
x
λ
x
Tag
features
≈
Item
features
Tags
Items
55. Куда копать дальше?
• F. Ricci et al. “Recommender Systems
Handbook”, 2011
• O. Celma “Music Recommendation and
Discovery”, 2010
• D. Jannach et al. “Recommender Systems: An
Introduction”, 2011