10. F. Ricci “Recommender Systems Handbook”
│ Recommender Systems
are software tools and
techniques providing
suggestions for items to
be of use to a user
10
11. по данным google scholar (от 2015-11-14)
Количество статей в области
23. Singular Value Decomposition
Теорема:
если в матрице λ оставить k наибольших элементов, то полученное
произведение A’ будет наилучшим среди всех матриц ранга k
приближением матрицы A.
24. Baseline predictors
Модель:
ˆruiu = µ + bu + bi
argmin
b*
ruiu −µ − bu − bi( )
(u,i)∈R
∑
2
+ λ bu
2
+
u∈U
∑ bi
2
i∈I
∑
$
%
&
'
(
)
Функция ошибки:
25. SVD
Модель:
Функция ошибки:
ˆrui = µ + bu + bi + pu
T
qi
argmin
p*q*b*
rui −µ − bu − bi − pu
T
qi( )
(u,i)∈R
∑
2
+ λ pu
2
+ qi
2
+ bu
2
+ bi
2
( )
26. Optimization by SGD
Модель:
Функция ошибки:
ˆrui = µ + bu + bi + pu
T
qi
argmin
p*q*b*
rui −µ − bu − bi − pu
T
qi( )
(u,i)∈R
∑
2
+ λ pu
2
+ qi
2
+ bu
2
+ bi
2
( )
bu ← bu +γ1 eui − λ1bu( )
bi ← bi +γ1 eui − λ1bi( )
pu ← pu +γ2 euiqi − λ2 pu( )
qu ← qi +γ2 eui pu − λ2qi( )
Шаг стохастического градиентного спуска:
27. Alternating Least Squares
P-step: обновление при фиксированных векторах item-ов
pu = λnuI + Au( )
−1
du
Au = Q[u]T
Q[u]= qiqi
T
i: u,i( )∈R
∑
du = Q[u]T
ru = ruiqi
i: u,i( )∈R
∑
Q-step: обновление при фиксированных векторах пользователей
qi = λniI + Ai( )
−1
di
Ai = P[i]T
P[i]= pu pu
T
u: u,i( )∈R
∑
di = P[i]T
ri = rui pu
u: u,i( )∈R
∑
29. Как использовать implicit feedback?
Идея: rating => (preference, confidence)
pui ∈ {0,1}
cui ∈ ℜ+
∀(u,i) ∈ R
cui =1+αrui
pui =1
pui = 0 иначе
или
cui =1+α log 1+rui
β( )
30. Обучение модели
argmin
x*y*
cui pui − xu
T
yi( )
(u,i)
∑
2
+ λ xu
2
u
∑ + yi
2
i
∑
#
$
%
&
'
(
Функция ошибки:
xu = λI +YT
Cu
Y( )
−1
YT
Cu
p(u)
yi = λI + XT
Ci
X( )
−1
XT
Ci
p(i)
Это сводится к уравнениям для ALS:
31. Обучение модели
argmin
x*y*
cui pui − xu
T
yi( )
(u,i)
∑
2
+ λ xu
2
u
∑ + yi
2
i
∑
#
$
%
&
'
(
Функция ошибки:
xu = λI +YT
Cu
Y( )
−1
YT
Cu
p(u)
yi = λI + XT
Ci
X( )
−1
XT
Ci
p(i)
Это сводится к уравнениям для ALS:
Но есть проблема!
32. в матрице всего ненулевых элементов,
В матрице всего ненулевых элементов,
Ускорение iALS
Идея:
YT
Cu
Y =YT
Y +YT
Cu
− I( )Y
Cu
− I
Cu
p(u)
YT
Y
O f 2
N + f 3
U( )
nu
nu
а не зависит от пользователя!
Итого: обновляем вектора пользователей за
33. Интуиция iALS
xu = λI +YT
Cu
Y( )
−1
YT
Cu
p(u) = λI + Au( )
−1
du
A0 = c0 yi
T
yi
i
∑ d0 = c0 p0 yi
i
∑
Au = A0 + (cui −c0 )yi
T
yi
(u,i)∈N (u)
∑
du = d0 + cui pui −c0 p0( )yi
u,i( )∈N (u)
∑
Введем «нулевого» пользователя без фидбека:
Тогда для остальных пользователей выводим:
Выпишем ALS-шаг в упрощенной форме:
34. Как выбирать c0 и p0?
∀(u,i) ∈ N
cui =1+αrui
pui =1
pui = 0 иначе
Как и раньше:
35. Как выбирать c0 и p0?
∀(u,i) ∈ N
cui =1+αrui
pui =1
pui = 0 иначе
Как и раньше:
c0 =1
p0 = 0
38. Item-based model explanation
Модель: ˆrui = wijrui
j∈Nu
k
∑
Вклад в рейтинг: wijrui
Выберем j с максимальными вкладами —
это и есть объяснение!
j
39. ALS explanation
Модель: ˆrui = yi
T
xu = yi
T
λI +YT
Y( )
−1
YT
r u( )
ˆrui = sij
u
u,i( )∈R
∑ ruj
Wu
= YT
Y + λI( )
−1
sij
u
= yi
T
Wu
yj
Выберем j с максимальными вкладами —
это и есть объяснение!
Тогда перепишем модель как
Вклад в рейтинг: sij
u
rujj
40. ALS explanation
Модель: ˆrui = yi
T
xu = yi
T
λI +YT
Y( )
−1
YT
r u( )
ˆrui = Vuqi( )
T
Vuqj( )ruj
u,i( )∈R
∑
Wu
= YT
Y + λI( )
−1
sij
u
= yi
T
Wu
yj
Перепишем модель как
Wu
=Vu
T
Vu
VuТогда можно рассматривать как шаблон
пользовательского мнения про item-ы
41. iALS explanation
Модель: ˆpui = yi
T
xu = yi
T
λI +YT
Cu
Y( )
−1
YT
Cu
p(u)
ˆpui = sij
u
pui>0
∑ cuj puj
Wu
= YT
Cu
Y + λI( )
−1
sij
u
= yi
T
Wu
yj
Выберем j с максимальными вкладами —
это и есть объяснение!
Тогда перепишем модель как
Вклад в рейтинг: sij
u
cuj puj = sij
u
cujj
44. Classification quality
Истинный ответ 0 Истинный ответ 1
Предсказали 0 TN FN
Предсказали 1 FP TP
Confusion matrix:
P =
TP
TP + FP
R =
TP
TP + FN
F1 =
2
1
P
+
1
R
Precision:
Recall:
45. More on classification quality
AP = P(k)Δr(k)
k=1
n
∑
MAP =
AP(q)
q∈Q
∑
Q
Average precision:
Mean average precision:
MAP — средняя точность на позициях, где есть попадания в top k.
46. Ranking quality (NDPM)
C+
= sgn rui −ruj( )sgn ˆrui − ˆruj( )
ij
∑
C−
= sgn rui −ruj( )sgn ˆruj − ˆrui( )
ij
∑
Cu
= sgn2
rui −ruj( )
ij
∑
Cs
= sgn2
ˆrui − ˆruj( )
ij
∑
Cu0
= Cu
− C+
+C−
( )
NDPM =
C−
+ 1
2 Cu0
Cu
47. Ranking quality (NDCG)
DCGu = r1 +
ri
log2 ii=2
n
∑
NDCGu =
DCGu
IDCGu
NDCG =
NDCGu
U
Пусть для каждого пользователя и item-а задана «релевантность» r
50. BPR: problem setting
Для пользователей u из U и фильмов i из I составим обучающее множество
как тройки:
DS = {(u,i, j):i ∈ Iu
+
^ j ∈ I Iu
+
}
где Iu
+
— фильмы с implicit feedback для данного пользователя
>u — полный порядок на фильмах, причем выполняются свойства:
∀i, j ∈ I :i ≠ j ⇒ i >u j∨ j >u i
∀i, j ∈ I :i >u j ^ j >u i ⇒ i = j
∀i, j,k ∈ I :i >u j ^ j >u k ⇒ i >u k
полнота
антисимметричность
транзитивность
51. Байесовская формулировка
p Θ |>u( )∝ p >u|Θ( )p Θ( )
p Θ |>u( )
u∈U
∏ = p i >u j |Θ( )
δ (u,i, j)∈DS( )
u,i, j∈U×I×I
∏ ⋅
⋅ 1− p i >u j |Θ( )( )
δ (u,i, j)∉DS( )
Тогда для всех пользователей запишем:
p Θ |>u( )
u∈U
∏ = p i >u j |Θ( )
u,i, j∈Ds
∏
Тогда по свойствам порядка это можно упростить:
52. Preference model
p i >u j |Θ( )=σ ( ˆxuij (Θ))
Окончательно определим модель как:
Здесь ˆxuij — «встроенная» модель, которая отслеживает
связь между u, i и j. Например,
- матричное разложение
- модель kNN
53. BPR-Opt
p Θ( )= N(0,ΣΘ )
Предположим, наконец, априорное распределение параметров:
Тогда весь алгоритм: BPR −Opt := ln p Θ |>u( )
= ln p >u|Θ( )p(Θ)
= ln σ ˆxuij Θ( )( )p Θ( )
(u,i, j)∈Ds
∏
= ln
(u,i, j)∈Ds
∑ σ ˆxuij Θ( )( )+ ln p Θ( )
= ln
(u,i, j)∈Ds
∑ σ ˆxuij Θ( )( )− λΘ Θ
2
55. Еще раз о модели рейтинга
Распишем ˆxuij = ˆxui − ˆxuj
В случае разложения матриц
ˆxui = wu,hi = wuf hif
f =1
k
∑
Тогда производные распишутся как
∂ˆxuij
∂θ
=
(hif − hjf )
wuf
−wuf
0
если θ = wuf
если θ = hif
если θ = hjf
иначе