Лекция-введение в рекомендательные системы в рамках курса по машинному обучению для студентов четвертого курса на кафедре КТ ИТМО. Часть 2 — explanations, RBM, evaluation metrics, BPR
1 of 40
Downloaded 30 times
More Related Content
ИТМО Machine Learning. Рекомендательные системы — часть 2
5. Item-based model explanation
Модель: ˆ rui = wijrui
Σ
k
j∈Nu
Вклад в рейтинг: wijrui
Выберем j с максимальными вкладами —
это и есть объяснение!
j
6. ALS explanation
Модель: ˆ rui = yi
T (λ I +Y TY )−1
T xu = yi
Y Tr (u)
Σ u
ruj
ˆ rui = sij
(u,i)∈R
1
Wu = ( Y TY +λ I )−su = yTWuyij
i
j
Тогда перепишем модель как
urj uj
Вклад в рейтинг: sij
Выберем j с максимальными вкладами —
это и есть объяснение!
7. ALS explanation
Модель: ˆ rui = yi
T (λ I +Y TY )−1
T xu = yi
Y Tr (u)
Σ
ˆ rui = Vuqi ( )T Vuqj ( )ruj
(u,i)∈R
1
Wu = ( Y TY +λ I )−su = yTWuyij
i
j
Перепишем модель как
Wu =Vu
TVu
Vu Тогда можно рассматривать как шаблон
пользовательского мнения про item-ы
8. iALS explanation
Модель: ˆpui = yi
T (λ I +Y TCuY )−1
T xu = yi
Y TCu p(u)
Σ u
cpuj uj
ˆpui = sij
pui>0
Wu = ( Y TCuY +λ I )−1
su = yTWuyij
i
j
Тогда перепишем модель как
j ucp= sucuj uj ij
uj
Вклад в рейтинг: sij
Выберем j с максимальными вкладами —
это и есть объяснение!
10. Restricted Boltzmann Machine (for user)
F — # of features
Missing
Missing
Missing
Missing
h
W
V
Binary hidden units
Visible movie ratings
… …
# of movies
Weights
(shared between all users)
11. Model distributions
For n users, m movies, ratings from 1 to K, binary features from 1 to F:
k =1|
p vi
!
( h) =
FΣ
k + hjWij
exp bi
k
j=1
"
# $$
%
& ''
FΣ
l + hjWij
exp bi
l
j=1
"
# $$
%
& ''
KΣ
l=1
p hj =1|
!
KΣ
mΣ
( V) =σ bj + vi
kWij
k
k=1
i=1
"
# $
%
& '
, где
1
σ (x) =
1+ e−x p
!
(V) =
exp −E
!
V,
!
( ( h))
!
exp −E
V ',
!
! ( ( h '))
Σ
! Σ
!
V ',
h ' h
E
( !
!
V,
h) = − Wij
khjvi
k
KΣ
k=1
FΣ
j=1
mΣ
i=1
, где энергия задается как
kbi
KΣ
mΣ
− vi
k
k=1
i=1
FΣ
− hjbj
j=1
12. Обучение — data part
%%
k =ε
ΔWij
!
( V))
∂Wij
∂log p(
k
#
$
&
((
'
( khkh)
j data
j predicted =ε vi
− vi
Получаем из данных:
1. для каждого обучающего примера v, выведем h
2. посчитаем частоту, с которой фильм i получил рейтинг k при
соответствующем h
13. Обучение — model part
%%
k =ε
ΔWij
!
( V))
∂Wij
∂log p(
k
#
$
&
((
'
( khkh)
j data
j predicted =ε vi
− vi
Трудно получать аналитически, работает экспоненциальное время
14. Contrastive divergence
%%
k =ε
ΔWij
!
( V))
∂Wij
∂log p(
k
#
$
&
((
'
( khkh) ≈
j data
j predicted =ε vi
− vi
( khkh)
j data
j recon ≈ε vi
− vi
Восстановим из данных:
1. для каждого обучающего примера v, выведем h
2. восстановим v’ из h
3. посчитаем “reconstruct”-часть
15. Sampling reconstruction part in CD
khj recon ( ) =ε vi
k =ε vi
ΔWij
khj data
− vi
( kh− vkh)
j data
i
j T Будем сэмплировать по Гиббсу из распределений,
делая T шагов.
k =1|
p vi
!
( h)
!
p h=1|
j ( V)
Начальная точка сэмплирования — наблюдаемые данные
Количество шагов T будем увеличивать в процессе обучения.
Таким образом мы будем получать все более «точные» приближения.
16. Gibbs sampling
Пускай есть d случайных величин и дано их совместное распределение
p x1, x2…xd ( )
Пусть на шаге t уже выбрано приближение Xt = xi
d
t { }i=1
Тогда на t+1 шаге:
1. выберем индекс i
t ( )
t+1 p xi | x1
2. выберем x по распределению i
t…xi−1
t …xd
t , xi+1
Обычно индекс выбирается как i = (t +1)%d
17. Общая схема обучения
1. посчитаем data-part (для каждого пользователя и его рейтинга)
2. выведем reconstruction-part для данного рейтинга
3. усредним градиенты по всем пользователям
4. запустим log-likelihood gradient ascend
19. Предсказание рейтингов
k =1|
p vi
!
( V)∝ exp −E vq
Σ k,
∝
!
V,
!
( ( h))
h1…hp
Σ + vi
Σ
FΠ
k exp vi
∝Γq
lhjWij
l
il
khjWij
k + hjbj
%
& '
(
) *
hj∈{0,1}
j=1
=
Σ + vi
FΠ где Γq
k 1+ exp vi
= Γq
lWij
l
il
kWij
k + bj
%
& '
(
) *
%
& ''
(
) **
j=1
k ( )
k = exp vq
kbq
Получили вероятность, что пользователь поставит фильму i оценку k
20. Что делать с вероятностями?
Два варианта:
1. просто взять оценку, у которой вероятность максимальна
2. нормализовать вероятности так, чтобы
p(vi = k)
KΣ
k=1
=1
и посчитать предсказание как E vi [ ]
21. Предсказание множества рейтингов
21
Если требуется предсказать рейтинги для n фильмов, то
можно посчитать вероятность:
k1 =1, vq2
p vq1
k2 =1,…, vqn
kn =1|
!
( V)
Но это требует O(Kn) времени!
22. Multi-predict trick
22
Давайте сделаем один update-шаг:
ˆpj = p hj =1|
!
KΣ
mΣ
( V) =σ bj + vi
kWij
k
k=1
i=1
"
# $
%
& '
k ( =1| pˆ) =
p vq
FΣ
k + ˆpjWqj
exp bq
k
j=1
"
%
''
& $$# FΣ
k + ˆpjWqj
exp bq
l
j=1
"
# $$
%
& ''
KΣ
l=1
И снова вычислим предсказания как матожидание.
Это немного хуже по качеству, но намного быстрее!
23. Gaussian hidden units
23
Можно ввести расширение модели, считая скрытые переменные
гауссовскими. Тогда вероятности в модели примут вид:
k =1|
p vi
!
( h) =
FΣ
k + hjWij
exp bi
k
j=1
"
# $$
%
& ''
FΣ"
# $$
l + hjWij
exp bi
l
j=1
%
& ''
KΣ
l=1
p hj = h |
!
( V) =
1
2Πσ i
&&&&&
exp −
kWij
KΣ
mΣ
h − bj −σ j vi
k
k=1
i=1
$
% &
'
( )
2
2
2σ i
$
%
'
)))))
(
N.B. для единичной дисперсии формулы обновления те же!
26. Classification quality
Истинный ответ 0 Истинный ответ 1
Confusion matrix:
Предсказали 0 TN FN
Предсказали 1 FP TP
P =
TP
TP + FP
R =
TP
TP + FN
F1 =
2
1
P
+
1
R
Precision:
Recall:
27. More on classification quality
nΣ
AP = P(k)Δr(k)
k=1
MAP =
AP(q)
Σ
q∈Q
Q
Average precision:
Mean average precision:
MAP — средняя точность на позициях, где есть попадания в top k.
29. Ranking quality (NDCG)
Пусть для каждого пользователя и item-а задана «релевантность» r
DCGu = r1 +
nΣ
ri
log2 i i=2
NDCGu =
DCGu
IDCGu
NDCG =
NDCGu
U
32. BPR: problem setting
Для пользователей u из U и фильмов i из I составим обучающее множество
как тройки:
+ ^ j ∈ I Iu
DS = {(u, i, j) : i ∈ Iu
+}
+ — фильмы с implicit feedback для данного пользователя
где Iu
>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
полнота
антисимметричность
транзитивность
33. Байесовская формулировка
p(Θ|>u )∝ p(>u |Θ) p(Θ)
Тогда для всех пользователей запишем:
Π p ( Θ|>)
= p ( i >δ j |Θ)((u,i, j )∈DS )
u u u∈U
Π ⋅
u,i, j∈U×I×I
⋅ 1− p i >u ( ( j |Θ))δ ((u,i, j )∉DS )
Тогда по свойствам порядка это можно упростить:
Π p ( Θ|>)
= p ( i >j |Θ)
u u u∈U
Π
u,i, j∈Ds
34. Preference model
Окончательно определим модель как:
p(i >u j |Θ) =σ (xˆuij (Θ))
Здесь ˆ xuij — «встроенная» модель, которая отслеживает
связь между u, i и j. Например,
- матричное разложение
- модель kNN
37. Еще раз о модели рейтинга
Распишем ˆ xuij = ˆ xui − ˆ xuj
В случае разложения матриц
kΣ
ˆ xui = wu, hi = wuf hif
f =1
Тогда производные распишутся как
∂ˆ xuij
∂θ
=
(hif − hjf )
wuf
−wuf
0
если θ = wuf
если θ = hif
если θ = hjf
иначе
38. If you like this lecture you will like these books
39. If you like this lecture you will probably like
http://www.4ducks.ru/pages/itmo-rs-2014.html
40. Удачи!
Андрей Данильченко
группа разработки рекомендательных систем, Яндекс
danilchenko@yandex-team.ru
http://www.4ducks.ru/itmo-ml-course-recsys-part-2.html