SlideShare a Scribd company logo
1 of 58
Download to read offline
Рекомендательные
системы
Андрей Данильченко
НИУ ИТМО, 16 ноября 2015
Что такое
рекомендательная
система?
4
5
7
8
9
F. Ricci “Recommender Systems Handbook”
│ Recommender Systems
are software tools and
techniques providing
suggestions for items to
be of use to a user
10
по данным google scholar (от 2015-11-14)
Количество статей в области
12
Какие бывают
рекомендательные
системы?
Классификация RS
Available data
User history Content
Collaborative Content-based
Hybrid
Tags
&
Metadata
Данные
•  Рейтинги (explicit feedback)
•  унарные (like)
•  бинарные (like/dislike)
•  числовые (stars)
•  История действий пользователя (implicit feedback)
•  Тэги, метаданные
•  Комментарии, отзывы
•  Друзья
Рекомендательные задачи
16
•  Predict
•  Recommend
•  Similar
Как построить простую
рекомендательную
систему?
17
User-based kNN
Как продукт оценили похожие пользователи?
ˆrui =
1
Ni u( )
rvi
v∈Ni (u)
∑
Взвесим вклад каждого
ˆrui =
wuvrvi
v∈Ni (u)
∑
wuv
v∈Ni (u)
∑
И нормализуем рейтинги
ˆrui = h−1
wuvh rvi( )
v∈Ni (u)
∑
wuv
v∈Ni (u)
∑
$
%
&
&
&
'
(
)
)
)
Как посчитать расстояние?
Косинусное расстояние
Корреляция Пирсона
cos(u,v) =
ruirvi
i∈Iuv
∑
r2
ui
i∈Iu
∑ rvj
2
j∈Iv
∑
PC(u,v) =
(rui − ru )(rvi − rv )
i∈Iuv
∑
(rui − ru )2
i∈Iu
∑ (rvj − rv )2
j∈Iv
∑
Поправленное косинусное
расстояние
(adjusted cosine)
AC(u,v) =
(rui − ri )(rvi − ri )
i∈Iuv
∑
(rui − ri )2
i∈Iu
∑ (rvj − rj )2
j∈Iv
∑
Как нормализовать рейтинги?
20
h rui( )= rui − ru
h rui( )=
rui − ru
σu
h rui( )=
j ∈ Iu :ruj ≤ rui{ }
Iu
Mean centering
Z-score
Percentile score
Как выиграть Netflix Prize?
http://sifter.org/~simon/journal/20061211.html
Singular Value Decomposition
Теорема:
если в матрице λ оставить k наибольших элементов, то полученное
произведение A’ будет наилучшим среди всех матриц ранга k
приближением матрицы A.
Baseline predictors
Модель:
ˆruiu = µ + bu + bi
argmin
b*
ruiu −µ − bu − bi( )
(u,i)∈R
∑
2
+ λ bu
2
+
u∈U
∑ bi
2
i∈I
∑
$
%
&
'
(
)
Функция ошибки:
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
( )
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( )
Шаг стохастического градиентного спуска:
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
∑
Что делать с implicit
feedback?
Как использовать implicit feedback?
Идея: rating => (preference, confidence)
pui ∈ {0,1}
cui ∈ ℜ+
∀(u,i) ∈ R
cui =1+αrui
pui =1
pui = 0 иначе
или
cui =1+α log 1+rui
β( )
Обучение модели
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:
Обучение модели
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:
Но есть проблема!
в матрице всего ненулевых элементов,
В матрице всего ненулевых элементов,
Ускорение 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
а не зависит от пользователя!
Итого: обновляем вектора пользователей за
Интуиция 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-шаг в упрощенной форме:
Как выбирать c0 и p0?
∀(u,i) ∈ N
cui =1+αrui
pui =1
pui = 0 иначе
Как и раньше:
Как выбирать c0 и p0?
∀(u,i) ∈ N
cui =1+αrui
pui =1
pui = 0 иначе
Как и раньше:
c0 =1
p0 = 0
Как объяснять
рекомендации?
Если вам нравится X, то
попробуйте Y…
Вам понравится Y!
Item-based model explanation
Модель: ˆrui = wijrui
j∈Nu
k
∑
Вклад в рейтинг: wijrui
Выберем j с максимальными вкладами —
это и есть объяснение!
j
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
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-ы
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
Как измерить качество?
Prediction quality
RMSE =
1
| R |
rui − ˆrui( )
u,i∈R
∑
2
MAE =
1
R
rui − ˆrui
u,i∈R
∑
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:
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.
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)
DCGu = r1 +
ri
log2 ii=2
n
∑
NDCGu =
DCGu
IDCGu
NDCG =
NDCGu
U
Пусть для каждого пользователя и item-а задана «релевантность» r
Как оптимизировать
ранжирование?
48
│ Давайте смотреть на
порядок пар!
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
полнота
антисимметричность
транзитивность
Байесовская формулировка
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
∏
Тогда по свойствам порядка это можно упростить:
Preference model
p i >u j |Θ( )=σ ( ˆxuij (Θ))
Окончательно определим модель как:
Здесь ˆ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
∏
= ln
(u,i, j)∈Ds
∑ σ ˆxuij Θ( )( )+ ln p Θ( )
= ln
(u,i, j)∈Ds
∑ σ ˆxuij Θ( )( )− λΘ Θ
2
LearnBPR
1.  Инициализируем параметры Θ
2.  Пока не достигнута сходимость:
1.  Выберем пример из Ds
3. Вернем финальные параметры
Θ ← Θ+α
exp(− ˆxuij )
1+exp(− ˆxuij )
⋅
∂
∂Θ
ˆxuij + λΘΘ
&
'
((
)
*
++2.
Еще раз о модели рейтинга
Распишем ˆxuij = ˆxui − ˆxuj
В случае разложения матриц
ˆxui = wu,hi = wuf hif
f =1
k
∑
Тогда производные распишутся как
∂ˆxuij
∂θ
=
(hif − hjf )
wuf
−wuf
0
если θ = wuf
если θ = hif
если θ = hjf
иначе
А разве что-то еще
осталось?
56
If you like this lecture you will like these
books
Удачи!
Андрей Данильченко
Яндекс discovery products
danilchenko@yandex-team.ru
http://www.4ducks.ru/itmo-ml-course-2015-recsys-lecture.html

More Related Content

What's hot

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 6Andrey Danilchenko
 
Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"Technosphere1
 
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Technosphere1
 
Структурное обучение и S-SVM
Структурное обучение и S-SVMСтруктурное обучение и S-SVM
Структурное обучение и S-SVMromovpa
 
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Technosphere1
 
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Technosphere1
 
Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовTheoretical mechanics department
 
Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"Technosphere1
 
L6: Метод опорных векторов
L6: Метод опорных векторовL6: Метод опорных векторов
L6: Метод опорных векторовTechnosphere1
 
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, evaluationAndrey Danilchenko
 
ITMO RecSys course. Autumn2014. Lecture1
ITMO RecSys course. Autumn2014. Lecture1ITMO RecSys course. Autumn2014. Lecture1
ITMO RecSys course. Autumn2014. Lecture1Andrey Danilchenko
 
L11: Метод ансамблей
L11: Метод ансамблейL11: Метод ансамблей
L11: Метод ансамблейTechnosphere1
 
Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Technosphere1
 
L2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибокL2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибокTechnosphere1
 
L5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмыL5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмыTechnosphere1
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Technosphere1
 
L3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессияL3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессияTechnosphere1
 
Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Technosphere1
 

What's hot (20)

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 "Задача кластеризации и ЕМ-алгоритм"
 
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes"
 
Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементов
 
Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"
 
L6: Метод опорных векторов
L6: Метод опорных векторовL6: Метод опорных векторов
L6: Метод опорных векторов
 
Метод конечных разностей
Метод конечных разностейМетод конечных разностей
Метод конечных разностей
 
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
 
ITMO RecSys course. Autumn2014. Lecture1
ITMO RecSys course. Autumn2014. Lecture1ITMO RecSys course. Autumn2014. Lecture1
ITMO RecSys course. Autumn2014. Lecture1
 
L11: Метод ансамблей
L11: Метод ансамблейL11: Метод ансамблей
L11: Метод ансамблей
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
 
Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства"
 
L2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибокL2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибок
 
L5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмыL5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмы
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана"
 
L3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессияL3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессия
 
Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining"
 

Viewers also liked

ИТМО Machine Learning. Рекомендательные системы — часть 1
ИТМО Machine Learning. Рекомендательные системы — часть 1ИТМО Machine Learning. Рекомендательные системы — часть 1
ИТМО Machine Learning. Рекомендательные системы — часть 1Andrey Danilchenko
 
Большие данные в телеком
Большие данные в телекомБольшие данные в телеком
Большие данные в телекомglebmikh
 
Пери Инновации - Боты машинное обучение и искусственный интеллект
Пери Инновации - Боты машинное обучение и искусственный интеллектПери Инновации - Боты машинное обучение и искусственный интеллект
Пери Инновации - Боты машинное обучение и искусственный интеллектMicrosoft
 
Юлмарт. История создания, Дмитрий Завалишин (DZ Systems)
Юлмарт. История создания, Дмитрий Завалишин (DZ Systems)Юлмарт. История создания, Дмитрий Завалишин (DZ Systems)
Юлмарт. История создания, Дмитрий Завалишин (DZ Systems)Ontico
 
Онлайн-революция: от ранних репозиториев – к современным МООС-курсам
Онлайн-революция: от ранних репозиториев – к современным МООС-курсамОнлайн-революция: от ранних репозиториев – к современным МООС-курсам
Онлайн-революция: от ранних репозиториев – к современным МООС-курсамCEE-SEC(R)
 
Xtrem n p1560t
Xtrem n p1560tXtrem n p1560t
Xtrem n p1560tDevanceiro
 
Большие данные для реформы здравоохранения
Большие данные для реформы здравоохранения Большие данные для реформы здравоохранения
Большие данные для реформы здравоохранения Alexander Chulapov
 
Практическое использование «больших данных» в бизнесе
Практическое использование «больших данных» в бизнесеПрактическое использование «больших данных» в бизнесе
Практическое использование «больших данных» в бизнесеAnton Vokrug
 
Антон Конушин (НИУ ВШЭ)
Антон Конушин (НИУ ВШЭ)Антон Конушин (НИУ ВШЭ)
Антон Конушин (НИУ ВШЭ)Edutainme
 
Григорий Сапунов (eclass)
Григорий Сапунов (eclass)Григорий Сапунов (eclass)
Григорий Сапунов (eclass)Edutainme
 
Александр Семенов (НИУ ВШЭ)
Александр Семенов (НИУ ВШЭ)Александр Семенов (НИУ ВШЭ)
Александр Семенов (НИУ ВШЭ)Edutainme
 
Григорий Бакунов (Яндекс)
Григорий Бакунов (Яндекс)Григорий Бакунов (Яндекс)
Григорий Бакунов (Яндекс)Edutainme
 
Кадомский Сергей - Как продать аналитику бизнесу - Wargaming
Кадомский Сергей - Как продать аналитику бизнесу - WargamingКадомский Сергей - Как продать аналитику бизнесу - Wargaming
Кадомский Сергей - Как продать аналитику бизнесу - WargamingWG_ Events
 
Алексей Натекин (Deloitte)
Алексей Натекин (Deloitte)Алексей Натекин (Deloitte)
Алексей Натекин (Deloitte)Edutainme
 
Александр Петров (E-contenta)
Александр Петров (E-contenta)Александр Петров (E-contenta)
Александр Петров (E-contenta)Edutainme
 
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 StackGeoffrey Fox
 
Александра Кирсанова "Использование Data mining"
Александра Кирсанова "Использование Data mining"Александра Кирсанова "Использование Data mining"
Александра Кирсанова "Использование Data mining"Cossa
 
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 5Andrey Danilchenko
 

Viewers also liked (20)

ИТМО Machine Learning. Рекомендательные системы — часть 1
ИТМО Machine Learning. Рекомендательные системы — часть 1ИТМО Machine Learning. Рекомендательные системы — часть 1
ИТМО Machine Learning. Рекомендательные системы — часть 1
 
Большие данные в телеком
Большие данные в телекомБольшие данные в телеком
Большие данные в телеком
 
SECON'2014 - Андрей Устюжанин - Маленькие секреты больших данных
SECON'2014 - Андрей Устюжанин - Маленькие секреты больших данныхSECON'2014 - Андрей Устюжанин - Маленькие секреты больших данных
SECON'2014 - Андрей Устюжанин - Маленькие секреты больших данных
 
Пери Инновации - Боты машинное обучение и искусственный интеллект
Пери Инновации - Боты машинное обучение и искусственный интеллектПери Инновации - Боты машинное обучение и искусственный интеллект
Пери Инновации - Боты машинное обучение и искусственный интеллект
 
Юлмарт. История создания, Дмитрий Завалишин (DZ Systems)
Юлмарт. История создания, Дмитрий Завалишин (DZ Systems)Юлмарт. История создания, Дмитрий Завалишин (DZ Systems)
Юлмарт. История создания, Дмитрий Завалишин (DZ Systems)
 
Онлайн-революция: от ранних репозиториев – к современным МООС-курсам
Онлайн-революция: от ранних репозиториев – к современным МООС-курсамОнлайн-революция: от ранних репозиториев – к современным МООС-курсам
Онлайн-революция: от ранних репозиториев – к современным МООС-курсам
 
Xtrem n p1560t
Xtrem n p1560tXtrem n p1560t
Xtrem n p1560t
 
Большие данные для реформы здравоохранения
Большие данные для реформы здравоохранения Большие данные для реформы здравоохранения
Большие данные для реформы здравоохранения
 
Практическое использование «больших данных» в бизнесе
Практическое использование «больших данных» в бизнесеПрактическое использование «больших данных» в бизнесе
Практическое использование «больших данных» в бизнесе
 
Антон Конушин (НИУ ВШЭ)
Антон Конушин (НИУ ВШЭ)Антон Конушин (НИУ ВШЭ)
Антон Конушин (НИУ ВШЭ)
 
Григорий Сапунов (eclass)
Григорий Сапунов (eclass)Григорий Сапунов (eclass)
Григорий Сапунов (eclass)
 
NVIDIA Deep Learning.
NVIDIA Deep Learning. NVIDIA Deep Learning.
NVIDIA Deep Learning.
 
Александр Семенов (НИУ ВШЭ)
Александр Семенов (НИУ ВШЭ)Александр Семенов (НИУ ВШЭ)
Александр Семенов (НИУ ВШЭ)
 
Григорий Бакунов (Яндекс)
Григорий Бакунов (Яндекс)Григорий Бакунов (Яндекс)
Григорий Бакунов (Яндекс)
 
Кадомский Сергей - Как продать аналитику бизнесу - Wargaming
Кадомский Сергей - Как продать аналитику бизнесу - WargamingКадомский Сергей - Как продать аналитику бизнесу - Wargaming
Кадомский Сергей - Как продать аналитику бизнесу - Wargaming
 
Алексей Натекин (Deloitte)
Алексей Натекин (Deloitte)Алексей Натекин (Deloitte)
Алексей Натекин (Deloitte)
 
Александр Петров (E-contenta)
Александр Петров (E-contenta)Александр Петров (E-contenta)
Александр Петров (E-contenta)
 
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
 
Александра Кирсанова "Использование Data mining"
Александра Кирсанова "Использование Data mining"Александра Кирсанова "Использование Data mining"
Александра Кирсанова "Использование Data mining"
 
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
 

Similar to ИТМО Machine Learning 2015. Рекомендательные системы

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 3Andrey Danilchenko
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахromovpa
 
Математическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принциповМатематическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принциповetyumentcev
 
2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы
2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы
2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципыHappyDev
 
Математическое обоснование SOLID принципов - Евгений Тюменцев Dev2Dev v2.0 30...
Математическое обоснование SOLID принципов - Евгений Тюменцев Dev2Dev v2.0 30...Математическое обоснование SOLID принципов - Евгений Тюменцев Dev2Dev v2.0 30...
Математическое обоснование SOLID принципов - Евгений Тюменцев Dev2Dev v2.0 30...Dev2Dev
 
07 HappyDev-lite-2015 spring. Евгений Тюменцев. Зачем программисту нужно зна...
07 HappyDev-lite-2015 spring. Евгений Тюменцев. Зачем программисту нужно зна...07 HappyDev-lite-2015 spring. Евгений Тюменцев. Зачем программисту нужно зна...
07 HappyDev-lite-2015 spring. Евгений Тюменцев. Зачем программисту нужно зна...HappyDev-lite
 
2015-04-12 07 Евгений Тюменцев. Зачем программисту нужно знать математику?
2015-04-12 07 Евгений Тюменцев. Зачем программисту нужно знать математику?2015-04-12 07 Евгений Тюменцев. Зачем программисту нужно знать математику?
2015-04-12 07 Евгений Тюменцев. Зачем программисту нужно знать математику?HappyDev
 
20100927 28 reqformalization-kuliamin
20100927 28 reqformalization-kuliamin20100927 28 reqformalization-kuliamin
20100927 28 reqformalization-kuliaminComputer Science Club
 
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...Mail.ru Group
 
05 динамическое программирование
05 динамическое программирование05 динамическое программирование
05 динамическое программированиеFedor Tsarev
 
05 динамическое программирование
05 динамическое программирование05 динамическое программирование
05 динамическое программированиеFedor Tsarev
 
lab1 math computational
lab1 math computationallab1 math computational
lab1 math computationaldinhtruonglam1
 
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.SmartTools
 
экспертные системы
экспертные системыэкспертные системы
экспертные системыsokol_klinik
 
20100425 model based_testing_kuliamin_lectures01-03
20100425 model based_testing_kuliamin_lectures01-0320100425 model based_testing_kuliamin_lectures01-03
20100425 model based_testing_kuliamin_lectures01-03Computer Science Club
 
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Technopark
 
алгоритмизация
алгоритмизацияалгоритмизация
алгоритмизацияisva69
 
Николай Паламарчук "Functional Programming basics for PHP developers"
Николай Паламарчук "Functional Programming basics for PHP developers"Николай Паламарчук "Functional Programming basics for PHP developers"
Николай Паламарчук "Functional Programming basics for PHP developers"Fwdays
 
Morzhin o., november 03, 2011
Morzhin o., november 03, 2011Morzhin o., november 03, 2011
Morzhin o., november 03, 2011oleg_morzhin
 

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

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
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системах
 
Математическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принциповМатематическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принципов
 
2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы
2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы
2014.12.06 04 Евгений Тюменцев — Откуда появились s.o.l.i.d. принципы
 
Математическое обоснование SOLID принципов - Евгений Тюменцев Dev2Dev v2.0 30...
Математическое обоснование SOLID принципов - Евгений Тюменцев Dev2Dev v2.0 30...Математическое обоснование SOLID принципов - Евгений Тюменцев Dev2Dev v2.0 30...
Математическое обоснование SOLID принципов - Евгений Тюменцев Dev2Dev v2.0 30...
 
07 HappyDev-lite-2015 spring. Евгений Тюменцев. Зачем программисту нужно зна...
07 HappyDev-lite-2015 spring. Евгений Тюменцев. Зачем программисту нужно зна...07 HappyDev-lite-2015 spring. Евгений Тюменцев. Зачем программисту нужно зна...
07 HappyDev-lite-2015 spring. Евгений Тюменцев. Зачем программисту нужно зна...
 
2015-04-12 07 Евгений Тюменцев. Зачем программисту нужно знать математику?
2015-04-12 07 Евгений Тюменцев. Зачем программисту нужно знать математику?2015-04-12 07 Евгений Тюменцев. Зачем программисту нужно знать математику?
2015-04-12 07 Евгений Тюменцев. Зачем программисту нужно знать математику?
 
20100927 28 reqformalization-kuliamin
20100927 28 reqformalization-kuliamin20100927 28 reqformalization-kuliamin
20100927 28 reqformalization-kuliamin
 
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...
 
05 динамическое программирование
05 динамическое программирование05 динамическое программирование
05 динамическое программирование
 
05 динамическое программирование
05 динамическое программирование05 динамическое программирование
05 динамическое программирование
 
lab1 math computational
lab1 math computationallab1 math computational
lab1 math computational
 
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.
 
экспертные системы
экспертные системыэкспертные системы
экспертные системы
 
20100425 model based_testing_kuliamin_lectures01-03
20100425 model based_testing_kuliamin_lectures01-0320100425 model based_testing_kuliamin_lectures01-03
20100425 model based_testing_kuliamin_lectures01-03
 
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1
 
Введение в Learning To Rank
Введение в Learning To RankВведение в Learning To Rank
Введение в Learning To Rank
 
алгоритмизация
алгоритмизацияалгоритмизация
алгоритмизация
 
Николай Паламарчук "Functional Programming basics for PHP developers"
Николай Паламарчук "Functional Programming basics for PHP developers"Николай Паламарчук "Functional Programming basics for PHP developers"
Николай Паламарчук "Functional Programming basics for PHP developers"
 
Morzhin o., november 03, 2011
Morzhin o., november 03, 2011Morzhin o., november 03, 2011
Morzhin o., november 03, 2011
 

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

  • 1.
  • 4. 4
  • 5. 5
  • 6.
  • 7. 7
  • 8. 8
  • 9. 9
  • 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) Количество статей в области
  • 12. 12
  • 14. Классификация RS Available data User history Content Collaborative Content-based Hybrid Tags & Metadata
  • 15. Данные •  Рейтинги (explicit feedback) •  унарные (like) •  бинарные (like/dislike) •  числовые (stars) •  История действий пользователя (implicit feedback) •  Тэги, метаданные •  Комментарии, отзывы •  Друзья
  • 18. User-based kNN Как продукт оценили похожие пользователи? ˆrui = 1 Ni u( ) rvi v∈Ni (u) ∑ Взвесим вклад каждого ˆrui = wuvrvi v∈Ni (u) ∑ wuv v∈Ni (u) ∑ И нормализуем рейтинги ˆrui = h−1 wuvh rvi( ) v∈Ni (u) ∑ wuv v∈Ni (u) ∑ $ % & & & ' ( ) ) )
  • 19. Как посчитать расстояние? Косинусное расстояние Корреляция Пирсона cos(u,v) = ruirvi i∈Iuv ∑ r2 ui i∈Iu ∑ rvj 2 j∈Iv ∑ PC(u,v) = (rui − ru )(rvi − rv ) i∈Iuv ∑ (rui − ru )2 i∈Iu ∑ (rvj − rv )2 j∈Iv ∑ Поправленное косинусное расстояние (adjusted cosine) AC(u,v) = (rui − ri )(rvi − ri ) i∈Iuv ∑ (rui − ri )2 i∈Iu ∑ (rvj − rj )2 j∈Iv ∑
  • 20. Как нормализовать рейтинги? 20 h rui( )= rui − ru h rui( )= rui − ru σu h rui( )= j ∈ Iu :ruj ≤ rui{ } Iu Mean centering Z-score Percentile score
  • 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 ∑
  • 28. Что делать с implicit feedback?
  • 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
  • 37. Если вам нравится X, то попробуйте Y… Вам понравится Y!
  • 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
  • 43. Prediction quality RMSE = 1 | R | rui − ˆrui( ) u,i∈R ∑ 2 MAE = 1 R rui − ˆrui u,i∈R ∑
  • 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
  • 54. LearnBPR 1.  Инициализируем параметры Θ 2.  Пока не достигнута сходимость: 1.  Выберем пример из Ds 3. Вернем финальные параметры Θ ← Θ+α exp(− ˆxuij ) 1+exp(− ˆxuij ) ⋅ ∂ ∂Θ ˆxuij + λΘΘ & ' (( ) * ++2.
  • 55. Еще раз о модели рейтинга Распишем ˆxuij = ˆxui − ˆxuj В случае разложения матриц ˆxui = wu,hi = wuf hif f =1 k ∑ Тогда производные распишутся как ∂ˆxuij ∂θ = (hif − hjf ) wuf −wuf 0 если θ = wuf если θ = hif если θ = hjf иначе
  • 56. А разве что-то еще осталось? 56
  • 57. If you like this lecture you will like these books
  • 58. Удачи! Андрей Данильченко Яндекс discovery products danilchenko@yandex-team.ru http://www.4ducks.ru/itmo-ml-course-2015-recsys-lecture.html