SlideShare a Scribd company logo
Рекомендательные системы 
Лекция №4: 
Advanced models 
Андрей Данильченко 
НИУ ИТМО, 6 декабря 2014
Как еще можно выиграть 
Netflix Prize?
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)
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
Обучение — data part 
%% 
k =ε 
ΔWij 
! 
( V)) 
∂Wij 
∂log p( 
k 
# 
$ 
& 
(( 
' 
( khkh) 
j data 
j predicted =ε vi 
− vi 
Получаем из данных: 
1. для каждого обучающего примера v, выведем h 
2. посчитаем частоту, с которой фильм i получил рейтинг k при 
соответствующем h
Обучение — model part 
%% 
k =ε 
ΔWij 
! 
( V)) 
∂Wij 
∂log p( 
k 
# 
$ 
& 
(( 
' 
( khkh) 
j data 
j predicted =ε vi 
− vi 
Трудно получать аналитически, работает экспоненциальное время
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”-часть
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 будем увеличивать в процессе обучения. 
Таким образом мы будем получать все более «точные» приближения.
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
Общая схема обучения 
1. посчитаем data-part (для каждого пользователя и его рейтинга) 
2. выведем reconstruction-part для данного рейтинга 
3. усредним градиенты по всем пользователям 
4. запустим log-likelihood gradient ascend
Как предсказывать 
рейтинги?
Предсказание рейтингов 
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
Что делать с вероятностями? 
Два варианта: 
1. просто взять оценку, у которой вероятность максимальна 
2. нормализовать вероятности так, чтобы 
p(vi = k) 
KΣ 
k=1 
=1 
и посчитать предсказание как E vi [ ]
Предсказание множества рейтингов 
14 
Если требуется предсказать рейтинги для n фильмов, то 
можно посчитать вероятность: 
k1 =1, vq2 
p vq1 
k2 =1,…, vqn 
kn =1| 
! 
( V) 
Но это требует O(Kn) времени!
Multi-predict trick 
15 
Давайте сделаем один 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 
И снова вычислим предсказания как матожидание. 
Это немного хуже по качеству, но намного быстрее!
Gaussian hidden units 
16 
Можно ввести расширение модели, считая скрытые переменные 
гауссовскими. Тогда вероятности в модели примут вид: 
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. для единичной дисперсии формулы обновления те же!
Как измерить качество? 
или еще раз о метриках
Prediction quality 
RMSE = 
1 
| R | 
Σ ( 2 
r− rˆ ) 
ui ui u,i∈R 
MAE = 
1 
R 
rui − ˆ rui 
Σ 
u,i∈R
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:
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.
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
Ranking quality (NDCG) 
Пусть для каждого пользователя и item-а задана «релевантность» r 
DCGu = r1 + 
nΣ 
ri 
log2 i i=2 
NDCGu = 
DCGu 
IDCGu 
NDCG = 
NDCGu 
U
Как оптимизировать 
ранжирование? 
23
│ Давайте смотреть на 
порядок пар!
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 
полнота 
антисимметричность 
транзитивность
Байесовская формулировка 
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
Preference model 
Окончательно определим модель как: 
p(i >u j |Θ) =σ (xˆuij (Θ)) 
Здесь ˆ xuij — «встроенная» модель, которая отслеживает 
связь между u, i и j. Например, 
- матричное разложение 
- модель kNN
BPR-Opt 
Предположим, наконец, априорное распределение параметров: 
p(Θ) = N(0,ΣΘ) 
Тогда весь алгоритм: BPR −Opt := ln p Θ|>u ( ) 
= ln p >u ( |Θ) p(Θ) 
= ln σ ˆ xuij ( (Θ)) p(Θ) 
Π 
(u,i, j )∈Ds 
Σ σ ˆ xuij ( (Θ))+ ln p(Θ) 
= ln 
(u,i, j )∈Ds 
Σ σ ˆ xuij ( (Θ))−λΘ Θ 2 
= ln 
(u,i, j )∈Ds
LearnBPR 
1. Инициализируем параметры Θ 
2. Пока не достигнута сходимость: 
1. Выберем пример из Ds 
Θ←Θ+α 
exp(− ˆ xuij ) 
1+ exp(− ˆ xuij ) 
3. Вернем финальные параметры 
⋅ 
∂ 
∂Θ 
ˆ xuij +λΘΘ 
& 
) 
++ 
* ((' 2.
Еще раз о модели рейтинга 
Распишем ˆ xuij = ˆ xui − ˆ xuj 
В случае разложения матриц 
kΣ 
ˆ xui = wu, hi = wuf hif 
f =1 
Тогда производные распишутся как 
∂ˆ xuij 
∂θ 
= 
(hif − hjf ) 
wuf 
−wuf 
0 
если θ = wuf 
если θ = hif 
если θ = hjf 
иначе
Удачи! 
Андрей Данильченко 
группа разработки рекомендательных систем, Яндекс 
danilchenko@yandex-team.ru 
http://www.4ducks.ru/itmo-rs-2014-lecture-4.html

More Related Content

PPT
Разложение на множители
PDF
Векторизация кода (семинар 2)
PDF
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
PDF
Векторизация кода (семинар 3)
PDF
Python + GPGPU
PDF
Лекция 7. Стандарт OpenMP (подолжение)
PDF
Лекция №3 "Различные алгоритмы кластеризации"
PDF
Лекция №6 "Линейные модели для классификации и регрессии"
Разложение на множители
Векторизация кода (семинар 2)
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Векторизация кода (семинар 3)
Python + GPGPU
Лекция 7. Стандарт OpenMP (подолжение)
Лекция №3 "Различные алгоритмы кластеризации"
Лекция №6 "Линейные модели для классификации и регрессии"

What's hot (18)

PPT
Vzaimno obratnye funkcii
PPTX
презентация
PPTX
User Defined Materials in LS-DYNA
PDF
Лекция 12 (часть 2): Языки программирования семейства PGAS: IBM X10
PDF
Лекция №7 "Машина опорных векторов"
PPT
8.b proizvodnye
PPTX
Seminar psu 05.04.2013
PDF
Лекция №4 "Задача классификации"
PDF
Лекция 10. Графы. Остовные деревья минимальной стоимости
PDF
Лекция 9: Графы. Кратчайшие пути в графах
PPTX
аппроксимация функции нескольких переменных
PDF
Лекция 13: Трудноразрешимые задачи. NP-полнота.
PDF
ITMO RecSys course. Autumn 2014. Lecture 6
PDF
Лекция 9. Поиск кратчайшего пути в графе
PDF
Лекция 12: Методы разработки алгоритмов. Динамическое программирование. Жадны...
PPTX
Выявление ошибок и потенциальных уязвимостей в C и C++ коде с помощью анализа...
DOC
все вмс
PDF
Matemat526
Vzaimno obratnye funkcii
презентация
User Defined Materials in LS-DYNA
Лекция 12 (часть 2): Языки программирования семейства PGAS: IBM X10
Лекция №7 "Машина опорных векторов"
8.b proizvodnye
Seminar psu 05.04.2013
Лекция №4 "Задача классификации"
Лекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 9: Графы. Кратчайшие пути в графах
аппроксимация функции нескольких переменных
Лекция 13: Трудноразрешимые задачи. NP-полнота.
ITMO RecSys course. Autumn 2014. Lecture 6
Лекция 9. Поиск кратчайшего пути в графе
Лекция 12: Методы разработки алгоритмов. Динамическое программирование. Жадны...
Выявление ошибок и потенциальных уязвимостей в C и C++ коде с помощью анализа...
все вмс
Matemat526
Ad

Viewers also liked (7)

PDF
Введение в рекомендательные системы. 3 case-study без NetFlix.
PDF
A lattice-based consensus clustering
PDF
ITMO RecSys course. Autumn 2014. Lecture 3
PPTX
ИТМО Machine Learning 2016. Рекомендательные системы
PDF
ИТМО Machine Learning 2015. Рекомендательные системы
PDF
ITMO RecSys course. Autumn 2014. Lecture 5
PDF
Михаил Ройзнер
Введение в рекомендательные системы. 3 case-study без NetFlix.
A lattice-based consensus clustering
ITMO RecSys course. Autumn 2014. Lecture 3
ИТМО Machine Learning 2016. Рекомендательные системы
ИТМО Machine Learning 2015. Рекомендательные системы
ITMO RecSys course. Autumn 2014. Lecture 5
Михаил Ройзнер
Ad

Similar to ITMO RecSys course. Autumn 2014. Lecture 4 (20)

PDF
ИТМО Machine Learning. Рекомендательные системы — часть 2
PDF
PDF
Факторизационные модели в рекомендательных системах
PDF
ИТМО Machine Learning. Рекомендательные системы — часть 1
PDF
Математика в сервисах Яндекса
PDF
Математика в сервисах Яндекса
PDF
2013 03 21_bigdata_seminar_05
PDF
ITMO RecSys course. Autumn 2014. Lecture 2
PDF
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
PDF
Введение в рекомендательные системы
PDF
BigData и Data Science: методы и инструменты
PDF
ройзнер+о+разработке+в+вшэ+V5
PDF
Лекция №9 "Алгоритмические композиции. Начало"
PDF
Введение в машинное обучение
PDF
Изучайте Machine Learning во имя добра или Teach my shiny metal ass
PDF
машинное обучение и анализ данных
PDF
L2: Задача классификации и регрессии. Метрики ошибок
PDF
Введение в машинное обучение
PDF
Лекция №1 "Задачи Data Mining"
ИТМО Machine Learning. Рекомендательные системы — часть 2
Факторизационные модели в рекомендательных системах
ИТМО Machine Learning. Рекомендательные системы — часть 1
Математика в сервисах Яндекса
Математика в сервисах Яндекса
2013 03 21_bigdata_seminar_05
ITMO RecSys course. Autumn 2014. Lecture 2
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
Введение в рекомендательные системы
BigData и Data Science: методы и инструменты
ройзнер+о+разработке+в+вшэ+V5
Лекция №9 "Алгоритмические композиции. Начало"
Введение в машинное обучение
Изучайте Machine Learning во имя добра или Teach my shiny metal ass
машинное обучение и анализ данных
L2: Задача классификации и регрессии. Метрики ошибок
Введение в машинное обучение
Лекция №1 "Задачи Data Mining"

ITMO RecSys course. Autumn 2014. Lecture 4

  • 1. Рекомендательные системы Лекция №4: Advanced models Андрей Данильченко НИУ ИТМО, 6 декабря 2014
  • 2. Как еще можно выиграть Netflix Prize?
  • 3. 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)
  • 4. 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
  • 5. Обучение — data part %% k =ε ΔWij ! ( V)) ∂Wij ∂log p( k # $ & (( ' ( khkh) j data j predicted =ε vi − vi Получаем из данных: 1. для каждого обучающего примера v, выведем h 2. посчитаем частоту, с которой фильм i получил рейтинг k при соответствующем h
  • 6. Обучение — model part %% k =ε ΔWij ! ( V)) ∂Wij ∂log p( k # $ & (( ' ( khkh) j data j predicted =ε vi − vi Трудно получать аналитически, работает экспоненциальное время
  • 7. 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”-часть
  • 8. 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 будем увеличивать в процессе обучения. Таким образом мы будем получать все более «точные» приближения.
  • 9. 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
  • 10. Общая схема обучения 1. посчитаем data-part (для каждого пользователя и его рейтинга) 2. выведем reconstruction-part для данного рейтинга 3. усредним градиенты по всем пользователям 4. запустим log-likelihood gradient ascend
  • 12. Предсказание рейтингов 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
  • 13. Что делать с вероятностями? Два варианта: 1. просто взять оценку, у которой вероятность максимальна 2. нормализовать вероятности так, чтобы p(vi = k) KΣ k=1 =1 и посчитать предсказание как E vi [ ]
  • 14. Предсказание множества рейтингов 14 Если требуется предсказать рейтинги для n фильмов, то можно посчитать вероятность: k1 =1, vq2 p vq1 k2 =1,…, vqn kn =1| ! ( V) Но это требует O(Kn) времени!
  • 15. Multi-predict trick 15 Давайте сделаем один 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 И снова вычислим предсказания как матожидание. Это немного хуже по качеству, но намного быстрее!
  • 16. Gaussian hidden units 16 Можно ввести расширение модели, считая скрытые переменные гауссовскими. Тогда вероятности в модели примут вид: 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. для единичной дисперсии формулы обновления те же!
  • 17. Как измерить качество? или еще раз о метриках
  • 18. Prediction quality RMSE = 1 | R | Σ ( 2 r− rˆ ) ui ui u,i∈R MAE = 1 R rui − ˆ rui Σ u,i∈R
  • 19. 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:
  • 20. 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.
  • 21. 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
  • 22. Ranking quality (NDCG) Пусть для каждого пользователя и item-а задана «релевантность» r DCGu = r1 + nΣ ri log2 i i=2 NDCGu = DCGu IDCGu NDCG = NDCGu U
  • 24. │ Давайте смотреть на порядок пар!
  • 25. 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 полнота антисимметричность транзитивность
  • 26. Байесовская формулировка 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
  • 27. Preference model Окончательно определим модель как: p(i >u j |Θ) =σ (xˆuij (Θ)) Здесь ˆ xuij — «встроенная» модель, которая отслеживает связь между u, i и j. Например, - матричное разложение - модель kNN
  • 28. BPR-Opt Предположим, наконец, априорное распределение параметров: p(Θ) = N(0,ΣΘ) Тогда весь алгоритм: BPR −Opt := ln p Θ|>u ( ) = ln p >u ( |Θ) p(Θ) = ln σ ˆ xuij ( (Θ)) p(Θ) Π (u,i, j )∈Ds Σ σ ˆ xuij ( (Θ))+ ln p(Θ) = ln (u,i, j )∈Ds Σ σ ˆ xuij ( (Θ))−λΘ Θ 2 = ln (u,i, j )∈Ds
  • 29. LearnBPR 1. Инициализируем параметры Θ 2. Пока не достигнута сходимость: 1. Выберем пример из Ds Θ←Θ+α exp(− ˆ xuij ) 1+ exp(− ˆ xuij ) 3. Вернем финальные параметры ⋅ ∂ ∂Θ ˆ xuij +λΘΘ & ) ++ * ((' 2.
  • 30. Еще раз о модели рейтинга Распишем ˆ xuij = ˆ xui − ˆ xuj В случае разложения матриц kΣ ˆ xui = wu, hi = wuf hif f =1 Тогда производные распишутся как ∂ˆ xuij ∂θ = (hif − hjf ) wuf −wuf 0 если θ = wuf если θ = hif если θ = hjf иначе
  • 31. Удачи! Андрей Данильченко группа разработки рекомендательных систем, Яндекс danilchenko@yandex-team.ru http://www.4ducks.ru/itmo-rs-2014-lecture-4.html