Upload
andrey-danilchenko
View
78
Download
12
Embed Size (px)
Citation preview
Рекомендательные системы
Андрей Данильченко
+Я.Сервис Логотип партнера
Что такое рекомендательные системы?
5
6
F. Ricci “Recommender Systems Handbook”
│Recommender Systems are software tools and techniques providing suggestions for items to be of use to a user
8
Какие бывают рекомендательные системы?
10
Классификация RS
Available data
User history Content
Collaborative Content-based
Hybrid
Tags &
Metadata
12
Данные• Рейтинги (explicit feedback)• унарные (like)• бинарные (like/dislike)• числовые (stars)• История действий пользователя (implicit feedback)
• Тэги, метаданные
• Комментарии, отзывы
• Друзья
13
Рекомендательные задачи
1. Predict
2. Recommend
3. Similar
Как построить простую рекомендательную систему?
14
User-based kNNКак продукт оценили похожие пользователи?
Взвесим вклад каждого
И нормализуем рейтинги
Как посчитать расстояние?Косинусное расстояние
Корреляция Пирсона
Поправленное косинусноерасстояние(adjusted cosine)
17
Как нормализовать рейтинги?Mean centering
Z-score
Percentile score
Как выиграть Netflix Prize?
http://sifter.org/~simon/journal/20061211.html
Singular Value Decomposition
Теорема:если в матрице λ оставить k наибольших элементов, то полученное произведение A’ будет наилучшим среди всех матриц ранга k приближением матрицы A.
Baseline predictorsМодель:
Функция ошибки:
SVDМодель:
Функция ошибки:
Optimization by SGDМодель:
Функция ошибки:
Шаг стохастического градиентного спуска:
Alternating Least SquaresP-step: обновление при фиксированных векторах item-ов
Q-step: обновление при фиксированных векторах пользователей
Что делать с implicit feedback?
Как использовать implicit feedback?Идея: rating => (preference, confidence)
иначе
или
Обучение моделиФункция ошибки:
Это сводится к уравнениям для ALS:
Обучение моделиФункция ошибки:
Это сводится к уравнениям для ALS:
Но есть проблема!
в матрице всего ненулевых элементов,
В матрице всего ненулевых элементов,
Ускорение iALSИдея:
а не зависит от пользователя!
Итого: обновляем вектора пользователей за
Интуиция iALS
Введем «нулевого» пользователя без фидбека:
Тогда для остальных пользователей выводим:
Выпишем ALS-шаг в упрощенной форме:
Как выбирать c0 и p0?
иначе
Как и раньше:
Как выбирать c0 и p0?
иначе
Как и раньше:
Как объяснять рекомендации?
Если вам нравится X, то попробуйте Y…
Вам понравится Y!
Item-based model explanationМодель:
Вклад в рейтинг:
Выберем j с максимальными вкладами —
это и есть объяснение!
ALS explanationМодель:
Выберем j с максимальными вкладами —
это и есть объяснение!
Тогда перепишем модель как
Вклад в рейтинг:
iALS explanationМодель:
Выберем j с максимальными вкладами —
это и есть объяснение!
Тогда перепишем модель как
Вклад в рейтинг:
Как измерить качество?
Prediction quality
Classification qualityИстинный ответ 0
Истинный ответ 1
Предсказали 0 TN FN
Предсказали 1 FP TP
Confusion matrix:
Precision:
Recall:
More on classification qualityAverage precision:
Mean average precision:
MAP — средняя точность на позициях, где есть попадания в top k.
Ranking quality (NDPM)
Ranking quality (NDCG)Пусть для каждого пользователя и item-а задана «релевантность» r
Как оптимизировать ранжирование?
44
│Давайте смотреть на порядок пар!
BPR: problem settingДля пользователей u из U и фильмов i из I составим обучающее множествокак тройки:
где— фильмы с implicit feedback для данного пользователя
— полный порядок на фильмах, причем выполняются свойства:полнота
антисимметричностьтранзитивность
Байесовская формулировка
Тогда для всех пользователей запишем:
Тогда по свойствам порядка это можно упростить:
∏𝑢∈𝑈
𝑝 (¿𝑢|Θ )= ∏𝑢 , 𝑖 , 𝑗∈𝐷 𝑠
¿¿
∏𝑢∈𝑈
𝑝 (¿𝑢|Θ )= ∏𝑢 , 𝑖 , 𝑗∈𝑈 × 𝐼× 𝐼
¿¿¿
Preference modelОкончательно определим модель как:
Здесь — «встроенная» модель, которая отслеживает
связь между u, i и j. Например,
- матричное разложение
- модель kNN
BPR-OptПредположим, наконец, априорное распределение параметров:
Тогда весь алгоритм:
LearnBPR
1. Инициализируем параметры Θ2. Пока не достигнута сходимость:
1. Выберем пример из Ds
3. Вернем финальные параметры
2.
Еще раз о модели рейтингаРаспишем
В случае разложения матриц
Тогда производные распишутся какеслиеслиеслииначе
А разве что-то еще осталось?
If you like this lecture you will like these books
54
We are hiring!
https://yandex.ru/jobs/vacancies/dev/dev_zen/
Контакты
Удачи!Андрей ДанильченкоГруппа технологий рекомендаций, Яндекс
mir_nomer_nol