Similar presentations:
Рекомендашки
1. 0. Рекомендашки a.k.a. RecSys
2. О чём поговорим
Зачем нужны рекомендации и как они работают (очень просто)
Какие бывают данные и первые модели
Как перейти от «лаборатории» к реальной системе
Как понять, работает ли рекомендация (и зарабатывает ли деньги)
Что изучают в продвинутых курсах
3. Задача – предсказать то, что понравится
У нас есть пользователи и товары (фильмы, клипы, услуги)
У каждого пользователя – история: что смотрел, покупал, лайкал
Эту историю можно представить как огромную разреженную
матрицу
Надо заполнить пустые клетки: какую оценку пользователь
поставит?
4. Два типа обратной связи
Явная – оценки звёздами, лайки / дизлайки (сильный сигнал, но её
мало)
Неявная – просмотры, клики, время прослушивания, добавление в
корзину (много, но шумная)
5. Самый простой алгоритм – «популярное»
Рекомендуем всем одно и то же – самые популярные товары
Варианты: популярное за последнюю неделю, популярное в
категории, популярное среди похожих пользователей
Это сильный baseline – многие сложные модели едва его обгоняют
6. Коллаборативная фильтрация – учимся у других
User-based KNN – «скажи мне, кто твой друг…»
Item-based KNN – «кто купил этот товар, тот купил и тот»
Item-based часто работает лучше, потому что отношения между
товарами стабильнее, чем вкусы людей
7. Матричное разложение (MF) – скрытые факторы
Каждый пользователь и каждый товар – это вектор скрытых
признаков (размерность 50–200)
Рейтинг = скалярное произведение вектора пользователя и вектора
товара
Учим векторы так, чтобы ошибка на известных взаимодействиях
была минимальной
8. Учитываем порядок действий – последовательные модели
Пользователь взаимодействует с
товарами последовательно (сессия)
RNN / GRU4Rec – предсказываем следующий товар
Трансформеры (SASRec, BERT4Rec) – ещё мощнее
9. Проблема – как учить, когда каталог огромен
Полный softmax по миллиону товаров – дорого
Решение: негативная выборка (sampled softmax)
In-batch negatives – используем другие позитивные примеры в
батче как негативы
10. Промышленный стандарт – двухэтапная архитектура
Этап 1 – генерация кандидатов (быстро, много, высокий recall)
Этап 2 – ранжирование (медленно, точно, с кучей признаков)
11. Как объединять несколько источников кандидатов
Не пересечение, а объединение
Ранжировщик сам научится, какому источнику доверять
Полезные признаки: обратный ранг от каждого источника, индикатор
источника, контекстные фичи
12. Ускорение – ANN и эмбеддинги
Для кандидатов среди миллионов нужно быстро искать ближайших
соседей
ANN (приближённый поиск ближайших соседей): FAISS, Annoy,
HNSW
Эмбеддинги пользователей и товаров кэшируются
13. DSSM – двухбашенные нейросети
User tower и item tower – отдельные нейросети
Выход – косинусная близость (или скалярное произведение)
Можно добавлять любые признаки: текст, изображения, контекст
Используется для candidate generation в масштабе миллиардов
14. Как оценивать рекомендации офлайн? (Разбиение данных)
Случайное разбиение – ошибка, будет утечка будущего
Хронологическое – последнее действие пользователя в тест (уже
лучше)
Временное окно – train: всё до даты T, test: после T – золотой
стандарт
15. Офлайн‑метрики
Офлайн-метрикиHitRate@K – есть ли релевантный товар среди топ-K
MRR – обратная позиция первого релевантного
MAP@K – средняя точность по релевантным позициям
NDCG@K – учитывает позицию с логарифмическим дисконтом
16. Проблема смещения (bias) в логах
Логи собраны старой политикой – показывали одни рекомендации,
получали обратную связь
Новая модель может предлагать другие товары – мы не знаем, как
пользователь отреагирует
Обычная офлайн-оценка будет смещённой
17. Контрфактуальная оценка – IPS и Doubly Robust
IPS (Inverse Propensity Scoring): перевзвешиваем логи обратной
склонностью
Doubly Robust (DR) – комбинация IPS и прямой модели награды
На практике DR даёт лучшие результаты
18. A/B тесты и бизнес‑эффект
A/B тесты и бизнес-эффектОфлайн-метрики – только гипотеза
A/B тест – золотой стандарт: контроль vs эксперимент
Бизнес-метрики: CTR, выручка, удержание, время на сайте
Иногда NDCG растёт, а выручка падает – важно смотреть на бизнес
19. Что нужно логировать, чтобы всё работало
Контекст (время, устройство, страна)
Кандидатный набор (какие товары вообще показывались)
Выбранное действие и полученная награда
Склонность (propensity) – вероятность, с которой старый алгоритм
показал этот товар
20. Холодный старт и другие практические сложности
Холодные пользователи (нет истории) – используем популярное
или контентные признаки
Холодные товары (новинки) – рекомендуем на основе метаданных
(жанр, бренд) или через bandit-алгоритмы
Повторное потребление – товары, которые можно покупать много
раз (молоко) vs уникальные (фильмы)
Фильтруем уже просмотренные/купленные товары
21. С чего начать? (Практические шаги)
1. Популярное – baseline2. Item-based KNN – простая коллаборативная фильтрация
3. Матричное разложение (ALS) – хорошее качество и
масштабируемость
4. Двухэтапка: кандидаты (MF + ANN) + ранжировщик (бустинг)
5. A/B тест и бизнес-метрики