Обязательно

Введение в RecSys

Разбираемся зачем нужны рекомендации и какие подходы существуют

Время изучения: 20 мин

Что такое рекомендательные системы

Рекомендательные системы (RecSys) — это алгоритмы, которые предсказывают, какой контент или товар будет интересен конкретному пользователю. Ты сталкиваешься с ними десятки раз в день: лента YouTube, «Вам может понравиться» на Amazon, Discover Weekly в Spotify, подборки фильмов на Netflix, лента TikTok.

По оценкам, 35% продаж Amazon и 80% просмотров Netflix генерируются именно рекомендациями. Это одна из самых прибыльных областей ML — даже небольшое улучшение качества рекомендаций напрямую конвертируется в деньги.

Три основных подхода

Коллаборативная фильтрация (Collaborative Filtering)

Идея простая: «Пользователи, похожие на тебя, любили вот это — значит, тебе тоже понравится». Мы не знаем ничего о самих товарах — только паттерны поведения. Если ты и Вася оценили 50 фильмов одинаково, а Вася ещё поставил 5 звёзд «Интерстеллару» — скорее всего, тебе тоже понравится.

Контентная фильтрация (Content-Based Filtering)

Здесь мы смотрим на свойства товаров. Если ты любишь фильмы Нолана с рейтингом 8+ в жанре sci-fi — рекомендуем другие фильмы с такими же характеристиками. Нужны фичи товаров (жанр, режиссёр, описание), но не нужны данные о других пользователях.

Гибридные подходы

Комбинируем оба подхода — например, коллаборативную фильтрацию для «тёплых» пользователей и контентную для новичков. На практике почти все production-системы гибридные. Netflix Prize показал, что ансамбли разных подходов дают лучший результат.

Типы задач в RecSys

  • Rating Prediction — предсказываем оценку пользователя (например, 4.2 из 5). Классическая задача Netflix Prize
  • Top-N Recommendation — формируем упорядоченный список из N наиболее релевантных товаров. Это то, что видит пользователь в ленте
  • Sequential Recommendation — учитываем порядок действий пользователя. «Ты только что посмотрел экшен → вот ещё экшены», а не просто «тебе нравятся экшены в целом»

На практике top-N recommendation — самая частая постановка. Rating prediction был популярен во времена Netflix Prize, но сейчас фокус сместился: важнее не угадать точную оценку, а показать правильный набор товаров в правильном порядке.

Explicit vs Implicit Feedback

Explicit Feedback

Пользователь явно выражает своё отношение: ставит оценку от 1 до 5, лайк/дизлайк, пишет отзыв. Данные чистые и понятные, но их мало — большинство людей ленятся оценивать.

Implicit Feedback

Пользователь не оценивает явно, но мы наблюдаем за его поведением: клики, просмотры, покупки, время на странице, скролл, добавление в корзину. Данных в 100-1000 раз больше, но они зашумлённые: клик ≠ интерес, отсутствие клика ≠ незаинтересованность.

🎤 На собесе: какие типы рекомендательных систем вы знаете?

Рассказывайте про три подхода (коллаборативная, контентная, гибридная) + упомяните explicit vs implicit feedback. Бонус: расскажите про типы задач (rating prediction vs top-N) и почему на практике все системы гибридные.

Матрица user-item и проблема разреженности

Центральный объект в RecSys — матрица взаимодействий R размером |Users| × |Items|. В ячейке R[u, i] хранится оценка (или факт взаимодействия) пользователя u с товаром i.

RRU×I,Ru,i=rating/interactionR \in \mathbb{R}^{|U| \times |I|}, \quad R_{u,i} = \text{rating/interaction}

Главная проблема: эта матрица чудовищно разреженная. В Netflix средний пользователь оценил ~200 фильмов из ~17 000 — это 1.2% заполненности. На Amazon или YouTube разреженность ещё выше — 0.01% и меньше.

  • Netflix: ~1.2% заполненности матрицы
  • Amazon: ~0.01% заполненности
  • YouTube: каждый пользователь видит ничтожную долю из миллиардов видео

Задача RecSys — заполнить пустые ячейки матрицы: предсказать, как пользователь оценил бы товар, с которым ещё не взаимодействовал. Все подходы (CF, MF, нейросети) — это разные способы решения этой задачи.

RecSys в реальных продуктах

  • Netflix — персонализированные ряды фильмов, даже обложки подбираются под пользователя
  • Spotify — Discover Weekly, Release Radar, Daily Mix. Коллаборативная фильтрация + анализ аудио-фич
  • YouTube — двухстадийная архитектура: candidate generation (отбор ~1000 из миллионов) → ranking (сортировка финального списка)
  • TikTok — рекомендации как основной продукт. Быстрое обучение на implicit feedback (время просмотра, лайки, шеры)
  • Amazon — «С этим товаром покупают», «Вам может понравиться». Item-based CF + персонализация

Итого

  • RecSys предсказывают интересы пользователя на основе его поведения и/или свойств товаров
  • Три подхода: коллаборативная фильтрация, контентная фильтрация, гибридные
  • Основные задачи: rating prediction, top-N recommendation, sequential recommendation
  • Explicit feedback (оценки) — чище, но мало. Implicit (клики, просмотры) — больше, но шумнее
  • Матрица user-item — центральный объект, главная проблема — разреженность (>99% пустых ячеек)