55

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

Embed Size (px)

Citation preview

Page 1: ИТМО Machine Learning 2016. Рекомендательные системы
Page 2: ИТМО Machine Learning 2016. Рекомендательные системы

Рекомендательные системы

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

+Я.Сервис Логотип партнера

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

Что такое рекомендательные системы?

Page 4: ИТМО Machine Learning 2016. Рекомендательные системы
Page 5: ИТМО Machine Learning 2016. Рекомендательные системы

5

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

6

Page 7: ИТМО Machine Learning 2016. Рекомендательные системы
Page 8: ИТМО Machine Learning 2016. Рекомендательные системы

F. Ricci “Recommender Systems Handbook”

│Recommender Systems are software tools and techniques providing suggestions for items to be of use to a user

8

Page 9: ИТМО Machine Learning 2016. Рекомендательные системы
Page 10: ИТМО Machine Learning 2016. Рекомендательные системы

Какие бывают рекомендательные системы?

10

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

Классификация RS

Available data

User history Content

Collaborative Content-based

Hybrid

Tags &

Metadata

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

12

Данные• Рейтинги (explicit feedback)• унарные (like)• бинарные (like/dislike)• числовые (stars)• История действий пользователя (implicit feedback)

• Тэги, метаданные

• Комментарии, отзывы

• Друзья

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

13

Рекомендательные задачи

1. Predict

2. Recommend

3. Similar

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

Как построить простую рекомендательную систему?

14

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

User-based kNNКак продукт оценили похожие пользователи?

Взвесим вклад каждого

И нормализуем рейтинги

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

Как посчитать расстояние?Косинусное расстояние

Корреляция Пирсона

Поправленное косинусноерасстояние(adjusted cosine)

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

17

Как нормализовать рейтинги?Mean centering

Z-score

Percentile score

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

Как выиграть Netflix Prize?

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

Singular Value Decomposition

Теорема:если в матрице λ оставить k наибольших элементов, то полученное произведение A’ будет наилучшим среди всех матриц ранга k приближением матрицы A.

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

Baseline predictorsМодель:

Функция ошибки:

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

SVDМодель:

Функция ошибки:

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

Optimization by SGDМодель:

Функция ошибки:

Шаг стохастического градиентного спуска:

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

Alternating Least SquaresP-step: обновление при фиксированных векторах item-ов

Q-step: обновление при фиксированных векторах пользователей

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

Что делать с implicit feedback?

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

Как использовать implicit feedback?Идея: rating => (preference, confidence)

иначе

или

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

Обучение моделиФункция ошибки:

Это сводится к уравнениям для ALS:

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

Обучение моделиФункция ошибки:

Это сводится к уравнениям для ALS:

Но есть проблема!

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

в матрице всего ненулевых элементов,

В матрице всего ненулевых элементов,

Ускорение iALSИдея:

а не зависит от пользователя!

Итого: обновляем вектора пользователей за

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

Интуиция iALS

Введем «нулевого» пользователя без фидбека:

Тогда для остальных пользователей выводим:

Выпишем ALS-шаг в упрощенной форме:

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

Как выбирать c0 и p0?

иначе

Как и раньше:

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

Как выбирать c0 и p0?

иначе

Как и раньше:

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

Как объяснять рекомендации?

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

Если вам нравится X, то попробуйте Y…

Вам понравится Y!

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

Item-based model explanationМодель:

Вклад в рейтинг:

Выберем j с максимальными вкладами —

это и есть объяснение!

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

ALS explanationМодель:

Выберем j с максимальными вкладами —

это и есть объяснение!

Тогда перепишем модель как

Вклад в рейтинг:

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

iALS explanationМодель:

Выберем j с максимальными вкладами —

это и есть объяснение!

Тогда перепишем модель как

Вклад в рейтинг:

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

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

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

Prediction quality

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

Classification qualityИстинный ответ 0

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

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

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

Confusion matrix:

Precision:

Recall:

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

More on classification qualityAverage precision:

Mean average precision:

MAP — средняя точность на позициях, где есть попадания в top k.

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

Ranking quality (NDPM)

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

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

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

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

44

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

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

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

BPR: problem settingДля пользователей u из U и фильмов i из I составим обучающее множествокак тройки:

где— фильмы с implicit feedback для данного пользователя

— полный порядок на фильмах, причем выполняются свойства:полнота

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

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

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

Тогда для всех пользователей запишем:

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

∏𝑢∈𝑈

𝑝 (¿𝑢|Θ )= ∏𝑢 , 𝑖 , 𝑗∈𝐷 𝑠

¿¿

∏𝑢∈𝑈

𝑝 (¿𝑢|Θ )= ∏𝑢 , 𝑖 , 𝑗∈𝑈 × 𝐼× 𝐼

¿¿¿

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

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

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

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

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

- модель kNN

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

BPR-OptПредположим, наконец, априорное распределение параметров:

Тогда весь алгоритм:

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

LearnBPR

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

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

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

2.

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

Еще раз о модели рейтингаРаспишем

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

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

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

А разве что-то еще осталось?

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

If you like this lecture you will like these books

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

54

We are hiring!

https://yandex.ru/jobs/vacancies/dev/dev_zen/

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

Контакты

[email protected]

Удачи!Андрей ДанильченкоГруппа технологий рекомендаций, Яндекс

mir_nomer_nol