SlideShare a Scribd company logo
1 of 51
Download to read offline
Рекомендательные 
системы 
Лекция №1: введение 
Андрей Данильченко 
18 октября 2014
Структура 
• Introduction 
• Collaborative filtering 
• Content-based & hybrid methods 
• Evaluation
“Recommender Systems (RSs) are 
software tools and techniques 
providing suggestions for items to 
be of use to a user” 
F. Ricci 
Introduction
Количество статей в области RS 
по данным google scholar (от 2014-10-17)
Мы живем в эпоху 
рекомендательных систем!
Классификация RS 
Available data 
Tags 
& 
Metadata 
User history Content 
Collaborative Content-based 
Hybrid
Данные 
• Рейтинги (explicit feedback) 
• Унарные (like) 
• Бинарные (like/dislike) 
• Числовые (stars) 
• История действий (implicit feedback) 
• Теги, метаданные 
~ 
• Отзывы 
• Друзья (community-based RS)
Постановка задач RS 
• Predict 
• Recommend 
• Similar
Collaborative filtering 
• Neighborhood methods 
• Matrix factorization methods
Collaborative filtering 
Neighborhood methods
Идея метода (user-based) 
Как продукт оценили похожие пользователи? 
ˆ 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 
rui 
vj 
i∈Iu 
2 
Σ 
j∈Iv 
• Корреляция Пирсона 
PC(u, v) = 
(rui − ru )(rvi − rv ) 
Σ 
i∈Iuv 
Σ (r− r)2 
(r− r)2 
ui u vi v i∈Iu 
Σ 
j∈Iv
Как нормализовать рейтинги? 
• Mean centering 
h rui ( ) = rui − ru 
• Z-score 
h rui ( ) = 
rui − ru 
σ u 
• Percentile 
h rui ( ) = 
j ∈ Iu : ruj ≤ rui { } 
Iu
Collaborative filtering 
Matrix factorization methods
Наилучшее приближение ранга k 
Теорема: 
Если в матрице λ оставить k наибольших сингулярных векторов, 
то получим наилучшее приближение матрицы A ранга k
Baseline predictors 
Модель: 
rˆuui =μ + bu + bi 
argmin 
b* 
Σ ( 2 
r−μ − b− b) 
uui u i (u,i )∈R 
Σ 2 + 
Σ 
bi 
+λ bu 
u∈U 
2 
i∈I 
$ 
% & 
' 
( ) 
Функция ошибки:
SVD 
Модель: 
Tqi 
rˆuui =μ + bu + bi + pu 
argmin 
p*q*b* 
Σ 2 
( r−μ − b− b− pTq) 
uui u i u 
i (u,i )∈R 
2 ( ) 
+λ pu 
2 
+ qi 
2 
+ bu 
2 + bi 
Функция ошибки:
Neighborhood (item-based) 
Модель: 
rˆuui = bui + 
sij ruj − buj ( ) j∈Sk (u,i ) Σ 
sj∈S ij k (u,i ) Σ 
u ruj − buj ( ) j∈Sk (u,i ) Σ 
= bui + θij
Neighborhood (optimization) 
Σ 
u ruj − buj ( ) j∈Sk (u,i ) Σ 
rˆuui = bui + ωij ruj − buj ( ) 
j∈R(u) 
ˆ ruui = bui + 
sij ruj − buj ( ) j∈Sk (u,i ) Σ 
sj∈S ij k (u,i ) Σ 
= bui + θij
Neighborhood (optimization + implicit) 
u ruj − buj ( ) j∈Sk (u,i ) Σ 
Σ + cij 
rˆuui = bui + ωij ruj − buj ( ) 
j∈R(u) 
Σ 
j∈N(u) 
ˆ ruui = bui + 
sij ruj − buj ( ) j∈Sk (u,i ) Σ 
sj∈S ij k (u,i ) Σ 
= bui + θij
Neighborhood (normalization) 
rˆuui = bui + R(u) 
− 
Σ + cij 
1 
2 ωij ruj − buj ( ) 
j∈R(u) 
Σ 
Σ + N(u) 
− 
1 
2 Σ 
cij 
j∈N(u) 
ˆ ruui = bui + ωij ruj − buj ( ) 
j∈R(u) 
j∈N(u) 
ˆ ruui = bui + Rk (i,u) 
− 
1 
2 ωij ruj − buj ( ) 
j∈Rk (u) 
Σ + Nk (i,u) 
− 
1 
2 Σ 
cij 
j∈Nk (u)
Снова SVD 
Модель: 
Tqi 
rˆuui =μ + bu + bi + pu 
argmin 
p*q*b* 
Σ 2 
( r−μ − b− b− pTq) 
uui u i u 
i (u,i )∈R 
2 ( ) 
+λ pu 
2 
+ qi 
2 
+ bu 
2 + bi 
Функция ошибки:
Asymmetric-SVD 
Модель: 
T R(u) 
rˆuui =μ + bu + bi + qi 
− 
1 
2 ruj − buj ( ) xj 
j∈R(u) 
Σ + N(u) 
− 
1 
2 Σ 
yj 
j∈N(u) 
$ 
% && 
' 
( )) 
argmin 
p*q*b* 
Σ ( r− rˆ )2 + 
λ quui uui i 
(u,i )∈R 
2 
+ bu 
2 + bi 
Σ 
2 + xj 
2 
+ yj 
2 
Σ 
j∈N(u) 
j∈R(u) 
$ 
% && 
' 
( )) 
Функция ошибки:
SVD++ 
Модель: 
T pu + N(u) 
rˆuui =μ + bu + bi + qi 
− 
1 
2 Σ 
yj 
j∈N(u) 
$ 
% && 
' 
( )) 
argmin 
p*q*b* 
Σ ( r− rˆ )2 + 
λ puui uui u 
(u,i )∈R 
2 
+ qi 
2 
+ bu 
2 + bi 
Σ 
2 + yj 
2 
j∈N(u) 
$ 
% && 
' 
( )) 
Функция ошибки:
Integrated model 
Модель: 
T pu + N(u) 
rˆuui =μ + bu + bi + qi 
− 
1 
2 Σ 
yj 
j∈N(u) 
$ 
% && 
' 
( )) 
+ 
+ Rk (i,u) 
− 
1 
2 ωij ruj − buj ( ) 
j∈Rk (u) 
Σ + Nk (i,u) 
− 
1 
2 Σ 
cij 
j∈Nk (u)
А как все это 
оптимизировать?
SGD-оптимизация модели SVD 
Модель: 
Tqi 
rˆuui =μ + bu + bi + pu 
argmin 
p*q*b* 
Σ 2 
( r−μ − b− b− pTq) 
uui u i u 
i (u,i )∈R 
2 ( ) 
+λ pu 
2 
+ qi 
2 
+ bu 
2 + bi 
Функция ошибки: 
Правила для градиентного спуска: 
bu ←bu +γ1 eui −λ1bu ( ) 
bi ←bi +γ1 eui −λ1bi ( ) 
pu ← pu +γ 2 euiqi −λ2 pu ( ) 
qu ←qi +γ 2 eui pu −λ2qi ( )
Ridge regression 
Модель: 
yi ←wT xi 
wTw→0 
argmin 
w 
nΣ 
λwTw+ wT xi − yi ( )2 
i=1 
# 
$ % 
& 
' ( 
Функция ошибки: 
Точное решение: 
w = (λ I + XTX)−1 
XT y = (λ I + A)−1 d 
A = XTX 
d = XT y
ALS-оптимизация модели SVD 
Модель: 
Tqi 
rˆuui =μ + bu + bi + pu 
argmin 
p*q*b* 
Σ 2 
( r−μ − b− b− pTq) 
uui u i u 
i (u,i )∈R 
2 ( ) 
+λ pu 
2 
+ qi 
2 
+ bu 
2 + bi 
Функция ошибки: 
P-step: 
pu = λnuI + Au ( )−1 du 
Au =Q[u]TQ[u] = qiqi 
T 
Σ 
i:(u,i)∈R 
Σ 
d =Q[u]T ru = ruiqi 
i:(u,i)∈R 
Q-step: 
qi = λniI + Ai ( )−1 di 
Ai = P[i]T P[i] = pupu 
T 
Σ 
u:(u,i)∈R 
Σ 
di = P[i]T ri = rui pu 
u:(u,i)∈R
Сравнение моделей по RMSE 
Модель 50 факторов 100 факторов 200 факторов Лучшее 
Item-based 
— — 
— 
0.9406 
kNN 
Neighborhood — — — 0.9002 
SVD 0.9046 0.9025 0.9009 0.9009 
Asymmetric 
0.9037 0.9013 0.9000 0.9000 
SVD 
SVD++ 0.8952 0.8924 0.8911 0.8911 
Integrated 
model 
0.8877 0.8870 0.8868 0.8868 
на данных Netflix Prize
Модель 50 факторов 100 факторов 200 факторов Лучшее 
Item-based 
— — 
— 
0.9406 
kNN 
Neighborhood — — — 0.9002 
SVD 0.9046 0.9025 0.9009 0.9009 
Asymmetric 
0.9037 0.9013 0.9000 0.9000 
SVD 
SVD++ 0.8952 0.8924 0.8911 0.8911 
Integrated 
model 
0.8877 0.8870 0.8868 0.8868 
на данных Netflix Prize 
BULLSHIT!
Сontent-based methods 
Tag-based methods 
True content-based methods
Сontent-based methods 
Tag-based methods
Давайте использовать тэги!
Способы генерации тэгов 
• User-generated 
• Web-mining 
• Expert-generated 
• Metadata
Similarity by tags (co-occurrence) 
Данные: 
облака тэгов и 
Меры сходства: 
• Жаккарда 
• Дайса 
• Охаи 
Ti Tj 
Ti Tj 
Ti Tj 
2 ⋅ Ti Tj 
Ti + Tj 
Ti Tj 
Ti Tj
Similarity by tags (LSA) 
• Разложим матрицу Items x Tags по SVD 
• Меры сходства: косинусное расстояние и 
др. 
Item 
features 
≈ x x 
Tags 
Tag 
features 
Items 
λ
Тэговый вандализм 
Тэги Paris Hillton 
Last.fm, май 2013
Тэговый вандализм — как бороться? 
Исправленные тэги Paris Hillton 
• User listening habbits 
• Filter tags by 
similarity
Сontent-based methods 
True content-based methods
Пример — музыка 
• Spectral centroid 
• Spectral flatness 
• Spectral skewness 
• Spectral kurtosis 
• Zero-Crossing Rate (ZCR) 
• Mel Frequency Cepstrum Coefficients (MFCCs) 
• Instrumentation 
• Rhythm 
• Harmony 
• Structure 
• Intensity 
• Genre 
• Mood 
low-level 
high-level
Hybrid methods
Классификация методов 
• Weighted 
• Switching 
• Mixed 
• Cascade
Evaluation
Как можно измерить качество RS? 
• Offline test 
• User study 
• Online experiment
Offline evaluation 
• Prediction accuracy 
– RMSE 
– MAE 
• Usage prediction accuracy 
– Precision/recall @N 
– F1 
– AUC 
• Ranking accuracy 
– DPM 
– DGC 
– Average Reciprocal Hit Rank (ARHR) 
• Coverage 
– Catalog coverage 
– Sales diversity 
– Gini index 
– Shannon entropy
User study 
• Confidence 
• Trust 
• Novelty 
• Diversity 
• Serendipity 
• Robustness 
• Adaptivity 
• Scalability
Сравнивать легче!
Online study methods 
• A-B testing 
• Team-Driven Interleaving (TDI)
Андрей Данильченко 
разработчик 
Удачи!

More Related Content

What's hot

Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"Technosphere1
 
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Nikolay Grebenshikov
 
Лекция 9. Поиск кратчайшего пути в графе
Лекция 9. Поиск кратчайшего пути в графеЛекция 9. Поиск кратчайшего пути в графе
Лекция 9. Поиск кратчайшего пути в графеMikhail Kurnosov
 
Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовTheoretical mechanics department
 
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)Alexey Paznikov
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахromovpa
 
Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии" Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии" Technosphere1
 
Data Mining - lecture 4 - 2014
Data Mining - lecture 4 - 2014Data Mining - lecture 4 - 2014
Data Mining - lecture 4 - 2014Andrii Gakhov
 
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Technosphere1
 
Лекция 9: Графы. Кратчайшие пути в графах
Лекция 9: Графы. Кратчайшие пути в графахЛекция 9: Графы. Кратчайшие пути в графах
Лекция 9: Графы. Кратчайшие пути в графахMikhail Kurnosov
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиMikhail Kurnosov
 
Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Technosphere1
 
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Technosphere1
 
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...Nikolay Grebenshikov
 
Векторизация кода (семинар 3)
Векторизация кода (семинар 3)Векторизация кода (семинар 3)
Векторизация кода (семинар 3)Mikhail Kurnosov
 
Векторизация кода (семинар 2)
Векторизация кода (семинар 2)Векторизация кода (семинар 2)
Векторизация кода (семинар 2)Mikhail Kurnosov
 
L6: Метод опорных векторов
L6: Метод опорных векторовL6: Метод опорных векторов
L6: Метод опорных векторовTechnosphere1
 
Big Data - первые шаги
Big Data - первые шагиBig Data - первые шаги
Big Data - первые шагиAnton Gorokhov
 

What's hot (20)

Метод конечных разностей
Метод конечных разностейМетод конечных разностей
Метод конечных разностей
 
Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"Лекция №9 "Алгоритмические композиции. Начало"
Лекция №9 "Алгоритмические композиции. Начало"
 
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
 
Лекция 9. Поиск кратчайшего пути в графе
Лекция 9. Поиск кратчайшего пути в графеЛекция 9. Поиск кратчайшего пути в графе
Лекция 9. Поиск кратчайшего пути в графе
 
Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементов
 
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системах
 
Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии" Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии"
 
Data Mining - lecture 4 - 2014
Data Mining - lecture 4 - 2014Data Mining - lecture 4 - 2014
Data Mining - lecture 4 - 2014
 
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение"
 
Лекция 9: Графы. Кратчайшие пути в графах
Лекция 9: Графы. Кратчайшие пути в графахЛекция 9: Графы. Кратчайшие пути в графах
Лекция 9: Графы. Кратчайшие пути в графах
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
 
Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов"
 
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes"
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
 
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры ...
 
Векторизация кода (семинар 3)
Векторизация кода (семинар 3)Векторизация кода (семинар 3)
Векторизация кода (семинар 3)
 
Векторизация кода (семинар 2)
Векторизация кода (семинар 2)Векторизация кода (семинар 2)
Векторизация кода (семинар 2)
 
L6: Метод опорных векторов
L6: Метод опорных векторовL6: Метод опорных векторов
L6: Метод опорных векторов
 
Big Data - первые шаги
Big Data - первые шагиBig Data - первые шаги
Big Data - первые шаги
 

Viewers also liked

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
 
ITMO RecSys course. Autumn 2014. Lecture 4
ITMO RecSys course. Autumn 2014. Lecture 4ITMO RecSys course. Autumn 2014. Lecture 4
ITMO RecSys course. Autumn 2014. Lecture 4Andrey Danilchenko
 
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
 
ITMO RecSys course. Autumn 2014. Lecture 2
ITMO RecSys course. Autumn 2014. Lecture 2ITMO RecSys course. Autumn 2014. Lecture 2
ITMO RecSys course. Autumn 2014. Lecture 2Andrey Danilchenko
 
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
 

Viewers also liked (7)

KL10TCH.School : Введение в Linked Data и Semantic Web
KL10TCH.School : Введение в Linked Data и Semantic WebKL10TCH.School : Введение в Linked Data и Semantic Web
KL10TCH.School : Введение в Linked Data и Semantic Web
 
Linked Data and Semantic Web Application Development by Peter Haase
Linked Data and Semantic Web Application Development by Peter HaaseLinked Data and Semantic Web Application Development by Peter Haase
Linked Data and Semantic Web Application Development by Peter Haase
 
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
 
ITMO RecSys course. Autumn 2014. Lecture 4
ITMO RecSys course. Autumn 2014. Lecture 4ITMO RecSys course. Autumn 2014. Lecture 4
ITMO RecSys course. Autumn 2014. Lecture 4
 
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
 
ITMO RecSys course. Autumn 2014. Lecture 2
ITMO RecSys course. Autumn 2014. Lecture 2ITMO RecSys course. Autumn 2014. Lecture 2
ITMO RecSys course. Autumn 2014. Lecture 2
 
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
 

Similar to ITMO RecSys course. Autumn2014. Lecture1

аппроксимация функции нескольких переменных
аппроксимация функции нескольких переменныхаппроксимация функции нескольких переменных
аппроксимация функции нескольких переменныхDmitry Protopopov
 
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
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Mikhail Kurnosov
 
Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование Theoretical mechanics department
 
Сергей Горобцов: Идеологии разработки веб интерфейсов, адаптивность, Accessib...
Сергей Горобцов: Идеологии разработки веб интерфейсов, адаптивность, Accessib...Сергей Горобцов: Идеологии разработки веб интерфейсов, адаптивность, Accessib...
Сергей Горобцов: Идеологии разработки веб интерфейсов, адаптивность, Accessib...Yandex
 
Презентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 классПрезентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 класс2berkas
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.sharikdp
 
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Python Meetup
 
Pyton – пробуем функциональный стиль
Pyton – пробуем функциональный стильPyton – пробуем функциональный стиль
Pyton – пробуем функциональный стильPython Meetup
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовMikhail Kurnosov
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовMikhail Kurnosov
 
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Dmitry Kornev
 
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Bitworks Software
 
Разведочный анализ данных: создание графиков в системе R
Разведочный анализ данных: создание графиков в системе RРазведочный анализ данных: создание графиков в системе R
Разведочный анализ данных: создание графиков в системе RSergey Mastitsky
 
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...Alexey Paznikov
 

Similar to ITMO RecSys course. Autumn2014. Lecture1 (20)

Sequence recommenders
Sequence recommendersSequence recommenders
Sequence recommenders
 
аппроксимация функции нескольких переменных
аппроксимация функции нескольких переменныхаппроксимация функции нескольких переменных
аппроксимация функции нескольких переменных
 
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
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.
 
Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование
 
Сергей Горобцов: Идеологии разработки веб интерфейсов, адаптивность, Accessib...
Сергей Горобцов: Идеологии разработки веб интерфейсов, адаптивность, Accessib...Сергей Горобцов: Идеологии разработки веб интерфейсов, адаптивность, Accessib...
Сергей Горобцов: Идеологии разработки веб интерфейсов, адаптивность, Accessib...
 
Использование поисковых машин и ресурсов Интернет для отбора терминов предмет...
Использование поисковых машин и ресурсов Интернет для отбора терминов предмет...Использование поисковых машин и ресурсов Интернет для отбора терминов предмет...
Использование поисковых машин и ресурсов Интернет для отбора терминов предмет...
 
Презентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 классПрезентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 класс
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.
 
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
 
Pyton – пробуем функциональный стиль
Pyton – пробуем функциональный стильPyton – пробуем функциональный стиль
Pyton – пробуем функциональный стиль
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмов
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмов
 
Введение в Learning To Rank
Введение в Learning To RankВведение в Learning To Rank
Введение в Learning To Rank
 
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
 
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
 
urok_10_1
urok_10_1urok_10_1
urok_10_1
 
Java8. Innovations
Java8. InnovationsJava8. Innovations
Java8. Innovations
 
Разведочный анализ данных: создание графиков в системе R
Разведочный анализ данных: создание графиков в системе RРазведочный анализ данных: создание графиков в системе R
Разведочный анализ данных: создание графиков в системе R
 
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
 

ITMO RecSys course. Autumn2014. Lecture1

  • 1.
  • 2. Рекомендательные системы Лекция №1: введение Андрей Данильченко 18 октября 2014
  • 3. Структура • Introduction • Collaborative filtering • Content-based & hybrid methods • Evaluation
  • 4. “Recommender Systems (RSs) are software tools and techniques providing suggestions for items to be of use to a user” F. Ricci Introduction
  • 5. Количество статей в области RS по данным google scholar (от 2014-10-17)
  • 6. Мы живем в эпоху рекомендательных систем!
  • 7. Классификация RS Available data Tags & Metadata User history Content Collaborative Content-based Hybrid
  • 8. Данные • Рейтинги (explicit feedback) • Унарные (like) • Бинарные (like/dislike) • Числовые (stars) • История действий (implicit feedback) • Теги, метаданные ~ • Отзывы • Друзья (community-based RS)
  • 9. Постановка задач RS • Predict • Recommend • Similar
  • 10. Collaborative filtering • Neighborhood methods • Matrix factorization methods
  • 12. Идея метода (user-based) Как продукт оценили похожие пользователи? ˆ 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) $ &&& % ' ))) (
  • 13. Какое расстояние использовать? • Косинусное расстояние cos(u, v) = ruirvi Σ i∈Iuv Σ r2 rui vj i∈Iu 2 Σ j∈Iv • Корреляция Пирсона PC(u, v) = (rui − ru )(rvi − rv ) Σ i∈Iuv Σ (r− r)2 (r− r)2 ui u vi v i∈Iu Σ j∈Iv
  • 14. Как нормализовать рейтинги? • Mean centering h rui ( ) = rui − ru • Z-score h rui ( ) = rui − ru σ u • Percentile h rui ( ) = j ∈ Iu : ruj ≤ rui { } Iu
  • 15. Collaborative filtering Matrix factorization methods
  • 16. Наилучшее приближение ранга k Теорема: Если в матрице λ оставить k наибольших сингулярных векторов, то получим наилучшее приближение матрицы A ранга k
  • 17. Baseline predictors Модель: rˆuui =μ + bu + bi argmin b* Σ ( 2 r−μ − b− b) uui u i (u,i )∈R Σ 2 + Σ bi +λ bu u∈U 2 i∈I $ % & ' ( ) Функция ошибки:
  • 18. SVD Модель: Tqi rˆuui =μ + bu + bi + pu argmin p*q*b* Σ 2 ( r−μ − b− b− pTq) uui u i u i (u,i )∈R 2 ( ) +λ pu 2 + qi 2 + bu 2 + bi Функция ошибки:
  • 19. Neighborhood (item-based) Модель: rˆuui = bui + sij ruj − buj ( ) j∈Sk (u,i ) Σ sj∈S ij k (u,i ) Σ u ruj − buj ( ) j∈Sk (u,i ) Σ = bui + θij
  • 20. Neighborhood (optimization) Σ u ruj − buj ( ) j∈Sk (u,i ) Σ rˆuui = bui + ωij ruj − buj ( ) j∈R(u) ˆ ruui = bui + sij ruj − buj ( ) j∈Sk (u,i ) Σ sj∈S ij k (u,i ) Σ = bui + θij
  • 21. Neighborhood (optimization + implicit) u ruj − buj ( ) j∈Sk (u,i ) Σ Σ + cij rˆuui = bui + ωij ruj − buj ( ) j∈R(u) Σ j∈N(u) ˆ ruui = bui + sij ruj − buj ( ) j∈Sk (u,i ) Σ sj∈S ij k (u,i ) Σ = bui + θij
  • 22. Neighborhood (normalization) rˆuui = bui + R(u) − Σ + cij 1 2 ωij ruj − buj ( ) j∈R(u) Σ Σ + N(u) − 1 2 Σ cij j∈N(u) ˆ ruui = bui + ωij ruj − buj ( ) j∈R(u) j∈N(u) ˆ ruui = bui + Rk (i,u) − 1 2 ωij ruj − buj ( ) j∈Rk (u) Σ + Nk (i,u) − 1 2 Σ cij j∈Nk (u)
  • 23. Снова SVD Модель: Tqi rˆuui =μ + bu + bi + pu argmin p*q*b* Σ 2 ( r−μ − b− b− pTq) uui u i u i (u,i )∈R 2 ( ) +λ pu 2 + qi 2 + bu 2 + bi Функция ошибки:
  • 24. Asymmetric-SVD Модель: T R(u) rˆuui =μ + bu + bi + qi − 1 2 ruj − buj ( ) xj j∈R(u) Σ + N(u) − 1 2 Σ yj j∈N(u) $ % && ' ( )) argmin p*q*b* Σ ( r− rˆ )2 + λ quui uui i (u,i )∈R 2 + bu 2 + bi Σ 2 + xj 2 + yj 2 Σ j∈N(u) j∈R(u) $ % && ' ( )) Функция ошибки:
  • 25. SVD++ Модель: T pu + N(u) rˆuui =μ + bu + bi + qi − 1 2 Σ yj j∈N(u) $ % && ' ( )) argmin p*q*b* Σ ( r− rˆ )2 + λ puui uui u (u,i )∈R 2 + qi 2 + bu 2 + bi Σ 2 + yj 2 j∈N(u) $ % && ' ( )) Функция ошибки:
  • 26. Integrated model Модель: T pu + N(u) rˆuui =μ + bu + bi + qi − 1 2 Σ yj j∈N(u) $ % && ' ( )) + + Rk (i,u) − 1 2 ωij ruj − buj ( ) j∈Rk (u) Σ + Nk (i,u) − 1 2 Σ cij j∈Nk (u)
  • 27. А как все это оптимизировать?
  • 28. SGD-оптимизация модели SVD Модель: Tqi rˆuui =μ + bu + bi + pu argmin p*q*b* Σ 2 ( r−μ − b− b− pTq) uui u i u i (u,i )∈R 2 ( ) +λ pu 2 + qi 2 + bu 2 + bi Функция ошибки: Правила для градиентного спуска: bu ←bu +γ1 eui −λ1bu ( ) bi ←bi +γ1 eui −λ1bi ( ) pu ← pu +γ 2 euiqi −λ2 pu ( ) qu ←qi +γ 2 eui pu −λ2qi ( )
  • 29. Ridge regression Модель: yi ←wT xi wTw→0 argmin w nΣ λwTw+ wT xi − yi ( )2 i=1 # $ % & ' ( Функция ошибки: Точное решение: w = (λ I + XTX)−1 XT y = (λ I + A)−1 d A = XTX d = XT y
  • 30. ALS-оптимизация модели SVD Модель: Tqi rˆuui =μ + bu + bi + pu argmin p*q*b* Σ 2 ( r−μ − b− b− pTq) uui u i u i (u,i )∈R 2 ( ) +λ pu 2 + qi 2 + bu 2 + bi Функция ошибки: P-step: pu = λnuI + Au ( )−1 du Au =Q[u]TQ[u] = qiqi T Σ i:(u,i)∈R Σ d =Q[u]T ru = ruiqi i:(u,i)∈R Q-step: qi = λniI + Ai ( )−1 di Ai = P[i]T P[i] = pupu T Σ u:(u,i)∈R Σ di = P[i]T ri = rui pu u:(u,i)∈R
  • 31. Сравнение моделей по RMSE Модель 50 факторов 100 факторов 200 факторов Лучшее Item-based — — — 0.9406 kNN Neighborhood — — — 0.9002 SVD 0.9046 0.9025 0.9009 0.9009 Asymmetric 0.9037 0.9013 0.9000 0.9000 SVD SVD++ 0.8952 0.8924 0.8911 0.8911 Integrated model 0.8877 0.8870 0.8868 0.8868 на данных Netflix Prize
  • 32. Модель 50 факторов 100 факторов 200 факторов Лучшее Item-based — — — 0.9406 kNN Neighborhood — — — 0.9002 SVD 0.9046 0.9025 0.9009 0.9009 Asymmetric 0.9037 0.9013 0.9000 0.9000 SVD SVD++ 0.8952 0.8924 0.8911 0.8911 Integrated model 0.8877 0.8870 0.8868 0.8868 на данных Netflix Prize BULLSHIT!
  • 33. Сontent-based methods Tag-based methods True content-based methods
  • 36. Способы генерации тэгов • User-generated • Web-mining • Expert-generated • Metadata
  • 37. Similarity by tags (co-occurrence) Данные: облака тэгов и Меры сходства: • Жаккарда • Дайса • Охаи Ti Tj Ti Tj Ti Tj 2 ⋅ Ti Tj Ti + Tj Ti Tj Ti Tj
  • 38. Similarity by tags (LSA) • Разложим матрицу Items x Tags по SVD • Меры сходства: косинусное расстояние и др. Item features ≈ x x Tags Tag features Items λ
  • 39. Тэговый вандализм Тэги Paris Hillton Last.fm, май 2013
  • 40. Тэговый вандализм — как бороться? Исправленные тэги Paris Hillton • User listening habbits • Filter tags by similarity
  • 41. Сontent-based methods True content-based methods
  • 42. Пример — музыка • Spectral centroid • Spectral flatness • Spectral skewness • Spectral kurtosis • Zero-Crossing Rate (ZCR) • Mel Frequency Cepstrum Coefficients (MFCCs) • Instrumentation • Rhythm • Harmony • Structure • Intensity • Genre • Mood low-level high-level
  • 44. Классификация методов • Weighted • Switching • Mixed • Cascade
  • 46. Как можно измерить качество RS? • Offline test • User study • Online experiment
  • 47. Offline evaluation • Prediction accuracy – RMSE – MAE • Usage prediction accuracy – Precision/recall @N – F1 – AUC • Ranking accuracy – DPM – DGC – Average Reciprocal Hit Rank (ARHR) • Coverage – Catalog coverage – Sales diversity – Gini index – Shannon entropy
  • 48. User study • Confidence • Trust • Novelty • Diversity • Serendipity • Robustness • Adaptivity • Scalability
  • 50. Online study methods • A-B testing • Team-Driven Interleaving (TDI)