March 4

Рекомендательные системы для аналитиков, часть 2. Контентный и коллаборативный подход

Все рекомендательные системы можно разделить на два больших лагеря: коллаборативная фильтрация (Collaborative Filtering) и контентная фильтрация (Content-based Filtering). Представьте, что вы ищете новый фильм:

  • Контентный подход смотрит на сам фильм: его жанр, актёров, режиссёра. "Вам понравился Джон Уик? Тогда, возможно, вам зайдёт Рейд, потому что там тоже много драк и тот же герой-одиночка". Система анализирует свойства объектов (item information) и сопоставляет их с вашим профилем.
  • Коллаборативный подход игнорирует содержание. Он использует мудрость толпы: "Другие люди, которым понравился Джон Уик, также любили Дэдпул. Значит, и вы, скорее всего, оцените Дэдпула". Системе всё равно, о чём эти фильмы — она видит только паттерны поведения.

Оба подхода имеют недостатки. Контентный часто предлагает однотипные вещи (вы смотрели боевик — получите ещё 100 боевиков). Коллаборативный страдает от холодного старта: как только появляется новый фильм, о котором ещё никто не выразил мнение, он никому не будет рекомендован. Поэтому на практике часто используют гибридные системы (Hybrid RS), сочетающие обе стратегии.

В ходе статей я буду в основном идти по этой картинке:

Однако существует современный подход, который здесь не указан: sequantial-based системы. Это методы, которые учитывают порядок действий пользователя. Вместо того чтобы смотреть на всю историю как на мешок, система анализирует последовательность. Например, если вы заказали на маркетплейсе корм для кошек, вам явно нужно предложить наполнитель.

Обычно используются нейросети, специально созданные для работы с последовательностями:

  • Рекуррентные нейросети (RNN, LSTM, GRU) — они помнят предыдущие элементы и обновляют своё состояние с каждым новым действием
  • Трансформеры (Transformers) — современный стандарт, который с помощью механизма внимания может учитывать сразу все элементы последовательности и выявлять сложные зависимости
  • Специализированные модели вроде GRU4Rec — созданы именно для рекомендаций по сессиям (например, что вы положили в корзину за текущий визит)

Из более классических методов используются марковские цепи.

Sequantial-based рекомендации особенно важны для сценариев с короткими сессиями (онлайн-магазины, стриминговые сервисы, новостные ленты), где контекст последних действий критичен