0. Рекомендашки a.k.a. RecSys
О чём поговорим
Задача – предсказать то, что понравится
Два типа обратной связи
Самый простой алгоритм – «популярное»
Коллаборативная фильтрация – учимся у других
Матричное разложение (MF) – скрытые факторы
Учитываем порядок действий – последовательные модели
Проблема – как учить, когда каталог огромен
Промышленный стандарт – двухэтапная архитектура
Как объединять несколько источников кандидатов
Ускорение – ANN и эмбеддинги
DSSM – двухбашенные нейросети
Как оценивать рекомендации офлайн? (Разбиение данных)
Офлайн‑метрики
Проблема смещения (bias) в логах
Контрфактуальная оценка – IPS и Doubly Robust
A/B тесты и бизнес‑эффект
Что нужно логировать, чтобы всё работало
Холодный старт и другие практические сложности
С чего начать? (Практические шаги)
1.16M

Рекомендашки

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. Популярное – baseline
2. Item-based KNN – простая коллаборативная фильтрация
3. Матричное разложение (ALS) – хорошее качество и
масштабируемость
4. Двухэтапка: кандидаты (MF + ANN) + ранжировщик (бустинг)
5. A/B тест и бизнес-метрики
English     Русский Rules