Урок по треку Классический ML 7 мин

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

Коллаборативная фильтрация, матричная факторизация, двухэтапная архитектура, метрики ранжирования, холодный старт.

Рекомендации есть почти в каждой крупной компании: маркетплейсы, стриминг, соцсети, доставка еды. На собесе спрашивают алгоритмы, метрики ранжирования и почти всегда дают ML system design «спроектируйте ленту рекомендаций».

Подходы

  • Популярное: простой и сильный бейзлайн, особенно для новых пользователей.
  • Контентные: похожесть по описаниям, категориям, картинкам. Работают для новых товаров.
  • Коллаборативная фильтрация (CF): только по истории взаимодействий. Похожие пользователи любят похожие товары.
    • user-based и item-based: близость по множествам взаимодействий, обычно косинус;
    • матричная факторизация: R ≈ UVᵀ, у пользователя и товара по k латентных факторов, прогноз это скалярное произведение. Учат по известным ячейкам (SGD или ALS), пропуски не считают нулями.
  • Гибриды и нейросети: two-tower, последовательные модели по истории сессий.

Неявный фидбек

Оценок почти нет, есть просмотры, клики, покупки. Отсутствие взаимодействия не означает «не нравится»: пользователь мог не увидеть товар. Поэтому нужны негативное семплирование, попарные потери (BPR) и веса уверенности (implicit ALS).

Двухэтапная архитектура

Тяжёлую модель нельзя прогнать по 10 млн товаров на каждый запрос, поэтому:

  1. Генерация кандидатов (сотни-тысячи) из нескольких источников: two-tower с ANN-поиском, item-to-item от недавно просмотренного, популярное, новинки.
  2. Ранжирование: бустинг или нейросеть с богатыми признаками пользователя, товара, их пересечений и контекста.
  3. Пост-обработка: убрать купленное и отсутствующее, разнообразие, бизнес-правила.

Two-tower: две сети отдельно кодируют пользователя и товар, релевантность это скалярное произведение. Векторы товаров считаются заранее и кладутся в ANN-индекс, при запросе считается только вектор пользователя.

Метрики

precision@k = релевантных в топ-k / k
recall@k    = релевантных в топ-k / всех релевантных
MRR         = среднее 1 / позиция первого релевантного
DCG@k       = Σ rel_i / log₂(i + 1)
NDCG@k      = DCG@k / идеальный DCG@k

Пример: купил 4 товара, в топ-5 попали 2 на позициях 1 и 4. Precision@5 = 0.4, recall@5 = 0.5, MRR = 1.

Кроме точности смотрят покрытие каталога, разнообразие, новизну. Онлайн: CTR, конверсия, выручка, удержание в A/B.

Холодный старт

  • Новый товар: контентные эмбеддинги, гибридные модели, доля показов на исследование.
  • Новый пользователь: популярное, онбординг (выбор интересов), контекст (откуда пришёл, устройство, регион).

Офлайн против онлайна

Логи собраны старой системой: видно только то, что она показала (exposure bias), а популярное становится ещё популярнее (петля обратной связи). Офлайн-метрика поощряет угадывание того, что купили бы и так. Поэтому:

  • логируют вероятность показа и используют IPS-коррекцию;
  • выделяют трафик на исследование;
  • финальное решение принимают по A/B.

Частые ошибки

  • Считать пропуски в матрице взаимодействий отрицательными оценками.
  • Оценивать только точность и забывать про разнообразие и покрытие.
  • Верить офлайн-NDCG без A/B.
  • Пытаться применить тяжёлый ранкер ко всему каталогу.

Что спросят на собесе

  • Как работают коллаборативная фильтрация и матричная факторизация.
  • Холодный старт для товаров и пользователей.
  • Метрики ранжирования, посчитать precision@k или NDCG.
  • Двухэтапная архитектура и two-tower.
  • Спроектировать рекомендации для маркетплейса или похожие товары.

Закрепите за 5 минут

После урока в тренажёре 3-5 проверочных вопросов, дальше модуль уходит в повторения.