SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
Рекомендательные 
системы 
Лекция 2 
Андрей Данильченко 
НИУ ИТМО, 17 ноября 2014
Как объяснять 
рекомендации?
Вам понравится Y! 
Если вам нравится X, то 
попробуйте Y…
Item-based model explanation 
Модель: ˆ rui = wijrui 
Σ 
k 
j∈Nu 
Вклад в рейтинг: wijrui 
Выберем j с максимальными вкладами — 
это и есть объяснение! 
j
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 с максимальными вкладами — 
это и есть объяснение!
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-ы
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 с максимальными вкладами — 
это и есть объяснение!
Как еще можно выиграть 
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 [ ]
Предсказание множества рейтингов 
21 
Если требуется предсказать рейтинги для n фильмов, то 
можно посчитать вероятность: 
k1 =1, vq2 
p vq1 
k2 =1,…, vqn 
kn =1| 
! 
( V) 
Но это требует O(Kn) времени!
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 
И снова вычислим предсказания как матожидание. 
Это немного хуже по качеству, но намного быстрее!
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. для единичной дисперсии формулы обновления те же!
Как измерить качество? 
или еще раз о метриках
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
Как оптимизировать 
ранжирование? 
30
│ Давайте смотреть на 
порядок пар!
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 
иначе
If you like this lecture you will like these books
If you like this lecture you will probably like 
http://www.4ducks.ru/pages/itmo-rs-2014.html
Удачи! 
Андрей Данильченко 
группа разработки рекомендательных систем, Яндекс 
danilchenko@yandex-team.ru 
http://www.4ducks.ru/itmo-ml-course-recsys-part-2.html

Más contenido relacionado

La actualidad más candente

ITMO RecSys course. Autumn2014. Lecture1
ITMO RecSys course. Autumn2014. Lecture1ITMO RecSys course. Autumn2014. Lecture1
ITMO RecSys course. Autumn2014. Lecture1
Andrey Danilchenko
 
Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементов
Theoretical mechanics department
 
20111202 machine learning_nikolenko_lecture05
20111202 machine learning_nikolenko_lecture0520111202 machine learning_nikolenko_lecture05
20111202 machine learning_nikolenko_lecture05
Computer Science Club
 

La actualidad más candente (20)

Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов"
 
ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6
 
Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"
 
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение"
 
Структурное обучение и S-SVM
Структурное обучение и S-SVMСтруктурное обучение и S-SVM
Структурное обучение и S-SVM
 
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
 
ITMO RecSys course. Autumn2014. Lecture1
ITMO RecSys course. Autumn2014. Lecture1ITMO RecSys course. Autumn2014. Lecture1
ITMO RecSys course. Autumn2014. Lecture1
 
ITMO RecSys course. Autumn 2014. Lecture1: Introduction. kNN, SVD, evaluation
ITMO RecSys course. Autumn 2014. Lecture1: Introduction. kNN, SVD, evaluationITMO RecSys course. Autumn 2014. Lecture1: Introduction. kNN, SVD, evaluation
ITMO RecSys course. Autumn 2014. Lecture1: Introduction. kNN, SVD, evaluation
 
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes"
 
Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"
 
Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементов
 
L6: Метод опорных векторов
L6: Метод опорных векторовL6: Метод опорных векторов
L6: Метод опорных векторов
 
Метод конечных разностей
Метод конечных разностейМетод конечных разностей
Метод конечных разностей
 
L2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибокL2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибок
 
L11: Метод ансамблей
L11: Метод ансамблейL11: Метод ансамблей
L11: Метод ансамблей
 
Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства"
 
L5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмыL5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмы
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана"
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
 
20111202 machine learning_nikolenko_lecture05
20111202 machine learning_nikolenko_lecture0520111202 machine learning_nikolenko_lecture05
20111202 machine learning_nikolenko_lecture05
 

Destacado

Практическое использование «больших данных» в бизнесе
Практическое использование «больших данных» в бизнесеПрактическое использование «больших данных» в бизнесе
Практическое использование «больших данных» в бизнесе
Anton Vokrug
 
Большие данные в телеком
Большие данные в телекомБольшие данные в телеком
Большие данные в телеком
glebmikh
 

Destacado (20)

Онлайн-революция: от ранних репозиториев – к современным МООС-курсам
Онлайн-революция: от ранних репозиториев – к современным МООС-курсамОнлайн-революция: от ранних репозиториев – к современным МООС-курсам
Онлайн-революция: от ранних репозиториев – к современным МООС-курсам
 
Sublinear tolerant property_testing_halfplane
Sublinear tolerant property_testing_halfplaneSublinear tolerant property_testing_halfplane
Sublinear tolerant property_testing_halfplane
 
Xtrem n p1560t
Xtrem n p1560tXtrem n p1560t
Xtrem n p1560t
 
Практическое использование «больших данных» в бизнесе
Практическое использование «больших данных» в бизнесеПрактическое использование «больших данных» в бизнесе
Практическое использование «больших данных» в бизнесе
 
SECON'2014 - Андрей Устюжанин - Маленькие секреты больших данных
SECON'2014 - Андрей Устюжанин - Маленькие секреты больших данныхSECON'2014 - Андрей Устюжанин - Маленькие секреты больших данных
SECON'2014 - Андрей Устюжанин - Маленькие секреты больших данных
 
Юлмарт. История создания, Дмитрий Завалишин (DZ Systems)
Юлмарт. История создания, Дмитрий Завалишин (DZ Systems)Юлмарт. История создания, Дмитрий Завалишин (DZ Systems)
Юлмарт. История создания, Дмитрий Завалишин (DZ Systems)
 
Большие данные для реформы здравоохранения
Большие данные для реформы здравоохранения Большие данные для реформы здравоохранения
Большие данные для реформы здравоохранения
 
51 Use Cases and implications for HPC & Apache Big Data Stack
51 Use Cases and implications for HPC & Apache Big Data Stack51 Use Cases and implications for HPC & Apache Big Data Stack
51 Use Cases and implications for HPC & Apache Big Data Stack
 
שיטות הסתברותיות תרגול 6
שיטות הסתברותיות תרגול 6שיטות הסתברותיות תרגול 6
שיטות הסתברותיות תרגול 6
 
Большие данные в телеком
Большие данные в телекомБольшие данные в телеком
Большие данные в телеком
 
Григорий Бакунов (Яндекс)
Григорий Бакунов (Яндекс)Григорий Бакунов (Яндекс)
Григорий Бакунов (Яндекс)
 
Александр Семенов (НИУ ВШЭ)
Александр Семенов (НИУ ВШЭ)Александр Семенов (НИУ ВШЭ)
Александр Семенов (НИУ ВШЭ)
 
Антон Конушин (НИУ ВШЭ)
Антон Конушин (НИУ ВШЭ)Антон Конушин (НИУ ВШЭ)
Антон Конушин (НИУ ВШЭ)
 
Алексей Натекин (Deloitte)
Алексей Натекин (Deloitte)Алексей Натекин (Deloitte)
Алексей Натекин (Deloitte)
 
Александр Петров (E-contenta)
Александр Петров (E-contenta)Александр Петров (E-contenta)
Александр Петров (E-contenta)
 
NVIDIA Deep Learning.
NVIDIA Deep Learning. NVIDIA Deep Learning.
NVIDIA Deep Learning.
 
Кадомский Сергей - Как продать аналитику бизнесу - Wargaming
Кадомский Сергей - Как продать аналитику бизнесу - WargamingКадомский Сергей - Как продать аналитику бизнесу - Wargaming
Кадомский Сергей - Как продать аналитику бизнесу - Wargaming
 
Александра Кирсанова "Использование Data mining"
Александра Кирсанова "Использование Data mining"Александра Кирсанова "Использование Data mining"
Александра Кирсанова "Использование Data mining"
 
Григорий Сапунов (eclass)
Григорий Сапунов (eclass)Григорий Сапунов (eclass)
Григорий Сапунов (eclass)
 
Thorny Path to the Large Scale Graph Processing, Алексей Зиновьев (Тамтэк)
Thorny Path to the Large Scale Graph Processing, Алексей Зиновьев (Тамтэк)Thorny Path to the Large Scale Graph Processing, Алексей Зиновьев (Тамтэк)
Thorny Path to the Large Scale Graph Processing, Алексей Зиновьев (Тамтэк)
 

Similar a ИТМО Machine Learning. Рекомендательные системы — часть 2

05 динамическое программирование
05 динамическое программирование05 динамическое программирование
05 динамическое программирование
Fedor Tsarev
 
ноид для до
ноид для доноид для до
ноид для до
Suslina
 
20101007 proof complexity_hirsch_lecture04
20101007 proof complexity_hirsch_lecture0420101007 proof complexity_hirsch_lecture04
20101007 proof complexity_hirsch_lecture04
Computer Science Club
 
Использование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовИспользование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетов
Транслируем.бел
 
Презентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 классПрезентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 класс
2berkas
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Mikhail Kurnosov
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмов
Mikhail Kurnosov
 
экспертные системы
экспертные системыэкспертные системы
экспертные системы
sokol_klinik
 

Similar a ИТМО Machine Learning. Рекомендательные системы — часть 2 (20)

ITMO RecSys course. Autumn 2014. Lecture 5
ITMO RecSys course. Autumn 2014. Lecture 5ITMO RecSys course. Autumn 2014. Lecture 5
ITMO RecSys course. Autumn 2014. Lecture 5
 
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системах
 
05 динамическое программирование
05 динамическое программирование05 динамическое программирование
05 динамическое программирование
 
05 динамическое программирование
05 динамическое программирование05 динамическое программирование
05 динамическое программирование
 
ноид для до
ноид для доноид для до
ноид для до
 
аппроксимация функции нескольких переменных
аппроксимация функции нескольких переменныхаппроксимация функции нескольких переменных
аппроксимация функции нескольких переменных
 
ITMO RecSys course. Autumn 2014. Lecture 3
ITMO RecSys course. Autumn 2014. Lecture 3ITMO RecSys course. Autumn 2014. Lecture 3
ITMO RecSys course. Autumn 2014. Lecture 3
 
20101007 proof complexity_hirsch_lecture04
20101007 proof complexity_hirsch_lecture0420101007 proof complexity_hirsch_lecture04
20101007 proof complexity_hirsch_lecture04
 
Использование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовИспользование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетов
 
Презентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 классПрезентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 класс
 
Uravnenie kasat
Uravnenie kasatUravnenie kasat
Uravnenie kasat
 
proverochnie-raboti-po-algebre
proverochnie-raboti-po-algebreproverochnie-raboti-po-algebre
proverochnie-raboti-po-algebre
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.
 
Границы Плоткина и Элайеса—Бассалыго
Границы Плоткина и Элайеса—БассалыгоГраницы Плоткина и Элайеса—Бассалыго
Границы Плоткина и Элайеса—Бассалыго
 
Preobrazovaniya grafikov funkcij
Preobrazovaniya grafikov funkcijPreobrazovaniya grafikov funkcij
Preobrazovaniya grafikov funkcij
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмов
 
lab1 math computational
lab1 math computationallab1 math computational
lab1 math computational
 
V. G. Labunets, F. S. Myasnikov, E. Ostheimer - Families of Heron Digital Fil...
V. G. Labunets, F. S. Myasnikov, E. Ostheimer - Families of Heron Digital Fil...V. G. Labunets, F. S. Myasnikov, E. Ostheimer - Families of Heron Digital Fil...
V. G. Labunets, F. S. Myasnikov, E. Ostheimer - Families of Heron Digital Fil...
 
экспертные системы
экспертные системыэкспертные системы
экспертные системы
 

ИТМО Machine Learning. Рекомендательные системы — часть 2

  • 1.
  • 2. Рекомендательные системы Лекция 2 Андрей Данильченко НИУ ИТМО, 17 ноября 2014
  • 4. Вам понравится Y! Если вам нравится X, то попробуйте Y…
  • 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 с максимальными вкладами — это и есть объяснение!
  • 9. Как еще можно выиграть Netflix Prize?
  • 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. для единичной дисперсии формулы обновления те же!
  • 24. Как измерить качество? или еще раз о метриках
  • 25. Prediction quality RMSE = 1 | R | Σ ( 2 r− rˆ ) ui ui u,i∈R MAE = 1 R rui − ˆ rui Σ u,i∈R
  • 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.
  • 28. 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
  • 29. Ranking quality (NDCG) Пусть для каждого пользователя и item-а задана «релевантность» r DCGu = r1 + nΣ ri log2 i i=2 NDCGu = DCGu IDCGu NDCG = NDCGu U
  • 31. │ Давайте смотреть на порядок пар!
  • 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
  • 35. 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
  • 36. LearnBPR 1. Инициализируем параметры Θ 2. Пока не достигнута сходимость: 1. Выберем пример из Ds Θ←Θ+α exp(− ˆ xuij ) 1+ exp(− ˆ xuij ) 3. Вернем финальные параметры ⋅ ∂ ∂Θ ˆ xuij +λΘΘ & ) ++ * ((' 2.
  • 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