ITMO RecSys course. Autumn 2014. Lecture 4

31
Рекомендательные системы Лекция 4: Advanced models Андрей Данильченко НИУ ИТМО, 6 декабря 2014

Transcript of ITMO RecSys course. Autumn 2014. Lecture 4

Page 1: ITMO RecSys course. Autumn 2014. Lecture 4

Рекомендательные системы Лекция №4: Advanced models

Андрей Данильченко

НИУ ИТМО, 6 декабря 2014

Page 2: ITMO RecSys course. Autumn 2014. Lecture 4

Как еще можно выиграть Netflix Prize?

Page 3: ITMO RecSys course. Autumn 2014. Lecture 4

Restricted Boltzmann Machine (for user)

Miss

ing

Miss

ing

Miss

ing

Miss

ing

… …

h

W

V

Binary hidden units

Visible movie ratings

# of movies

F — # of features

Weights (shared between all users)

Page 4: ITMO RecSys course. Autumn 2014. Lecture 4

Model distributions

p vik =1|

!h( ) =

exp bik + hjWij

k

j=1

F

∑"

#$$

%

&''

exp bil + hjWij

l

j=1

F

∑"

#$$

%

&''

l=1

K

For n users, m movies, ratings from 1 to K, binary features from 1 to F:

p hj =1|!V( ) =σ bj + vi

kWijk

k=1

K

∑i=1

m

∑"

#$

%

&' σ (x) = 1

1+ e−x, где

p!V( ) =

exp −E!V,!h( )( )

exp −E!V ',!h '( )( )!

V ',!h '∑!h

E!V,!h( ) = − Wij

khjvik

k=1

K

∑j=1

F

∑i=1

m

∑ − vikbi

k

k=1

K

∑i=1

m

∑ − hjbjj=1

F

, где энергия задается как

Page 5: ITMO RecSys course. Autumn 2014. Lecture 4

Обучение — data part

ΔWijk = ε

∂ log p(!V )( )

∂Wijk

#

$

%%

&

'

((= ε vi

khj data− vi

khj predicted( )

Получаем из данных:

1. для каждого обучающего примера v, выведем h

2. посчитаем частоту, с которой фильм i получил рейтинг k при соответствующем h

Page 6: ITMO RecSys course. Autumn 2014. Lecture 4

Обучение — model part

ΔWijk = ε

∂ log p(!V )( )

∂Wijk

#

$

%%

&

'

((= ε vi

khj data− vi

khj predicted( )

Трудно получать аналитически, работает экспоненциальное время

Page 7: ITMO RecSys course. Autumn 2014. Lecture 4

Contrastive divergence ΔWij

k = ε∂ log p(

!V )( )

∂Wijk

#

$

%%

&

'

((= ε vi

khj data− vi

khj predicted( ) ≈

≈ ε vikhj data

− vikhj recon( )

Восстановим из данных:

1. для каждого обучающего примера v, выведем h

2. восстановим v’ из h

3. посчитаем “reconstruct”-часть

Page 8: ITMO RecSys course. Autumn 2014. Lecture 4

Sampling reconstruction part in CD

ΔWijk = ε vi

khj data− vi

khj recon( ) = ε vikhj data

− vikhj T( )

Будем сэмплировать по Гиббсу из распределений, делая T шагов.

p vik =1|

!h( )

p hj =1|!V( )

Начальная точка сэмплирования — наблюдаемые данные

Количество шагов T будем увеличивать в процессе обучения. Таким образом мы будем получать все более «точные» приближения.

Page 9: ITMO RecSys course. Autumn 2014. Lecture 4

Gibbs sampling

Пускай есть d случайных величин и дано их совместное распределение

p x1, x2…xd( )

Пусть на шаге t уже выбрано приближение Xt = xit{ }i=1

d

Тогда на t+1 шаге:

1. выберем индекс i

2. выберем по распределению xit+1 p xi | x1

t…xi−1t , xi+1

t …xdt( )

Обычно индекс выбирается как i = t +1( )%d

Page 10: ITMO RecSys course. Autumn 2014. Lecture 4

Общая схема обучения

1.  посчитаем data-part (для каждого пользователя и его рейтинга)

2.  выведем reconstruction-part для данного рейтинга

3.  усредним градиенты по всем пользователям

4.  запустим log-likelihood gradient ascend

Page 11: ITMO RecSys course. Autumn 2014. Lecture 4

Как предсказывать рейтинги?

Page 12: ITMO RecSys course. Autumn 2014. Lecture 4

Предсказание рейтингов

p vik =1|

!V( )∝ exp −E vq

k,!V,!h( )( )

h1…hp

∑ ∝

∝Γqk exp vi

lhjWijl

il∑ + vi

khjWijk + hjbj

%

&'

(

)*

hj∈{0,1}∑

j=1

F

∏ =

= Γqk 1+ exp vi

lWijl

il∑ + vi

kWijk + bj

%

&'

(

)*

%

&''

(

)**

j=1

F

где Γqk = exp vq

kbqk( )

Получили вероятность, что пользователь поставит фильму i оценку k

Page 13: ITMO RecSys course. Autumn 2014. Lecture 4

Что делать с вероятностями?

Два варианта:

1. просто взять оценку, у которой вероятность максимальна

2. нормализовать вероятности так, чтобы

p vi = k( )k=1

K

∑ =1

и посчитать предсказание как E vi[ ]

Page 14: ITMO RecSys course. Autumn 2014. Lecture 4

Предсказание множества рейтингов

14

Если требуется предсказать рейтинги для n фильмов, то можно посчитать вероятность:

p vq1k1 =1,vq2

k2 =1,…,vqnkn =1|

!V( )

Но это требует O(Kn) времени!

Page 15: ITMO RecSys course. Autumn 2014. Lecture 4

Multi-predict trick

15

Давайте сделаем один update-шаг:

p̂ j = p hj =1|!V( ) =σ bj + vi

kWijk

k=1

K

∑i=1

m

∑"

#$

%

&'

p vqk =1| p̂( ) =

exp bqk + p̂ jWqj

k

j=1

F

∑"

#$$

%

&''

exp bqk + p̂ jWqj

l

j=1

F

∑"

#$$

%

&''

l=1

K

И снова вычислим предсказания как матожидание. Это немного хуже по качеству, но намного быстрее!

Page 16: ITMO RecSys course. Autumn 2014. Lecture 4

Gaussian hidden units

16

Можно ввести расширение модели, считая скрытые переменные гауссовскими. Тогда вероятности в модели примут вид:

p vik =1|

!h( ) =

exp bik + hjWij

k

j=1

F

∑"

#$$

%

&''

exp bil + hjWij

l

j=1

F

∑"

#$$

%

&''

l=1

K

p hj = h |!V( ) = 1

2Πσ i

exp −

h− bj −σ j vikWij

k

k=1

K

∑i=1

m

∑$

%&

'

()

2

2σ i2

$

%

&&&&&

'

(

)))))

N.B. для единичной дисперсии формулы обновления те же!

Page 17: ITMO RecSys course. Autumn 2014. Lecture 4

Как измерить качество? или еще раз о метриках

Page 18: ITMO RecSys course. Autumn 2014. Lecture 4

Prediction quality

RMSE = 1| R |

rui − r̂ui( )u,i∈R∑

2

MAE = 1R

rui − r̂uiu,i∈R∑

Page 19: ITMO RecSys course. Autumn 2014. Lecture 4

Classification quality

Истинный ответ 0 Истинный ответ 1

Предсказали 0 TN FN

Предсказали 1 FP TP

Confusion matrix:

P = TPTP +FP

R = TPTP +FN

F1 =2

1P+1R

Precision:

Recall:

Page 20: ITMO RecSys course. Autumn 2014. Lecture 4

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.

Page 21: ITMO RecSys course. Autumn 2014. Lecture 4

Ranking quality (NDPM)

C+ = sgn rui − ruj( )sgn r̂ui − r̂uj( )ij∑

C− = sgn rui − ruj( )sgn r̂uj − r̂ui( )ij∑

Cu = sgn2 rui − ruj( )ij∑

Cs = sgn2 r̂ui − r̂uj( )ij∑

Cu0 =Cu − C+ +C−( )

NDPM =C− + 1

2Cu0

Cu

Page 22: ITMO RecSys course. Autumn 2014. Lecture 4

Ranking quality (NDCG)

DCGu = r1 +ri

log2 ii=2

n

NDCGu =DCGu

IDCGu

NDCG =NDCGu

U

Пусть для каждого пользователя и item-а задана «релевантность» r

Page 23: ITMO RecSys course. Autumn 2014. Lecture 4

Как оптимизировать ранжирование?

23

Page 24: ITMO RecSys course. Autumn 2014. Lecture 4

│ Давайте смотреть на порядок пар!

Page 25: ITMO RecSys course. Autumn 2014. Lecture 4

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

полнота

антисимметричность

транзитивность

Page 26: ITMO RecSys course. Autumn 2014. Lecture 4

Байесовская формулировка

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∏

Тогда по свойствам порядка это можно упростить:

Page 27: ITMO RecSys course. Autumn 2014. Lecture 4

Preference model

p i >u j |Θ( ) =σ (x̂uij (Θ))

Окончательно определим модель как:

Здесь x̂uij — «встроенная» модель, которая отслеживает

связь между u, i и j. Например,

-  матричное разложение

-  модель kNN

Page 28: ITMO RecSys course. Autumn 2014. Lecture 4

BPR-Opt

p Θ( ) = N(0,ΣΘ )Предположим, наконец, априорное распределение параметров:

Тогда весь алгоритм: BPR−Opt := ln p Θ |>u( )= ln p >u |Θ( ) p(Θ)= ln σ x̂uij Θ( )( ) p Θ( )

(u,i, j )∈Ds∏

= ln(u,i, j )∈Ds∑ σ x̂uij Θ( )( )+ ln p Θ( )

= ln(u,i, j )∈Ds∑ σ x̂uij Θ( )( )−λΘ Θ

2

Page 29: ITMO RecSys course. Autumn 2014. Lecture 4

LearnBPR

1.  Инициализируем параметры Θ 2.  Пока не достигнута сходимость:

1.  Выберем пример из Ds

3. Вернем финальные параметры

Θ←Θ+αexp(−x̂uij )1+ exp(−x̂uij )

⋅∂∂Θ

x̂uij +λΘΘ&

'((

)

*++2.

Page 30: ITMO RecSys course. Autumn 2014. Lecture 4

Еще раз о модели рейтинга

Распишем x̂uij = x̂ui − x̂uj

В случае разложения матриц

x̂ui = wu,hi = wuf hiff =1

k

Тогда производные распишутся как

∂x̂uij∂θ

=

(hif − hjf )

wuf

−wuf

0

если θ = wuf

если θ = hifесли θ = hjfиначе

Page 31: ITMO RecSys course. Autumn 2014. Lecture 4

Удачи! Андрей Данильченко группа разработки рекомендательных систем, Яндекс [email protected]

http://www.4ducks.ru/itmo-rs-2014-lecture-4.html