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

Multi-Objective и Re-Ranking

Spotify Discover Weekly - 30 персонализированных треков каждый понедельник. Первая версия (2015) давала очень похожие треки: высокая relevance, нулевое разнообразие. Пользователи слушали первые несколько и закрывали. После добавления diversity-aware re-ranking completion rate вырос драматически - плейлист стал «ощущаться открытием», а не «тем же самым».

  • **Spotify Discover Weekly** - diversity re-ranking для баланса между персонализацией и открытием нового
  • **LinkedIn Feed** - fairness constraints: новые создатели контента получают гарантированный minimum exposure независимо от начального engagement
  • **TikTok For You Page** - epsilon-greedy exploration: каждые N видео - exploration slot для нового контента без истории

Предварительные знания

  • Ranking и scoring кандидатов
  • Embeddings и cosine similarity
  • Базовая вероятность (Beta-распределение, матожидание)
  • Context-Aware Recommendations
  • Candidate Generation

От Learning to Rank к Multi-Task Ranking

В 2005 году Chris Burges с коллегами в Microsoft Research опубликовали RankNet, нейросетевую learning-to-rank модель, обученную на попарных предпочтениях с вероятностной функцией стоимости. RankNet питал ранжирование Bing от Microsoft и положил начало современной эпохе learning-to-rank, за которой затем последовали LambdaRank и LambdaMART. Следующим скачком стало обучение многим целям сразу. В 2018 году Jiaqi Ma с коллегами в Google представили Multi-gate Mixture-of-Experts (MMoE), где общие эксперты комбинируются через gating-сети для каждой задачи, так что слабо связанные цели перестают конфликтовать друг с другом. В 2019 году Zhe Zhao и команда YouTube применили multi-task ranking в production, предсказывая цели вовлечённости и удовлетворённости вместе и добавив неглубокую башню для коррекции position bias. Именно эта архитектура позволяет одной ранжирующей модели балансировать клики, время просмотра и удовлетворённость на стадии re-ranking.

Diversity: почему 10 похожих рекомендаций хуже 10 разных

Spotify Discover Weekly в первых версиях давал 30 треков, очень похожих друг на друга - все из одного жанра, одного темпа. Пользователи слушали первые 5 и закрывали. После внедрения diversity-aware re-ranking плейлист начал «ощущаться свежим» - и completion rate вырос. Релевантность и разнообразие - разные оси качества.

**Maximal Marginal Relevance (MMR)** - алгоритм итеративного отбора, балансирующий relevance и novelty. На каждом шаге выбирается документ с максимальной разностью между релевантностью и сходством с уже выбранными.

**Submodular optimization:** diversity задачи часто submodular - добавление нового item даёт убывающий прирост разнообразия. Это позволяет использовать greedy алгоритмы (как MMR) с гарантией (1-1/e) ≈ 63% от оптимального решения при полиномиальной сложности.

MMR с параметром lambda=0 (минимум) приоритизирует:

Fairness: справедливость для провайдеров и пользователей

Spotify обнаружил: 90% прослушиваний приходится на 1% артистов - даже среди треков одинакового качества. Новые артисты практически не получают exposure. Это **provider fairness** - несправедливость для создателей контента. **User fairness** - когда система систематически хуже обслуживает меньшинства (users with niche tastes, non-English speakers).

Тип fairnessКто страдаетМетрикаРешение
Provider fairnessНовые/нишевые артистыExposure per groupMin-exposure constraints
User fairnessПользователи с нишевыми вкусамиError rate by groupGroup-specific calibration
Disparate impactЗащищённые категорииDI ratio (>= 0.8)Post-processing re-ranking
Popularity biasНепопулярные itemsLong-tail coverageExploration boost для новых

Disparate impact ratio < 0.8 означает:

Exploration-Exploitation: бандиты для новых items

Cold-start проблема: новый трек на Spotify не имеет истории - collaborative filtering даёт ему нулевой скор. При epsilon-greedy с вероятностью ε рекомендуется случайный item (exploration), с вероятностью 1-ε - лучший по текущей оценке (exploitation). Thompson Sampling - байесовский подход без жёсткого ε.

**Когда какой метод:** epsilon-greedy прост, но неэффективен (constant exploration). Thompson Sampling адаптивен - высокая неопределённость → больше exploration, низкая → больше exploitation. LinUCB учитывает контекст пользователя - лучший выбор для персонализированного exploration.

Почему Thompson Sampling эффективнее epsilon-greedy при cold-start?

Business Rule Injection: реальность поверх ML

ML модель оптимизирует proxy-метрику. Бизнес имеет дополнительные требования: безопасность контента, лицензионные ограничения, спонсорский контент, юридические запреты по регионам. **Post-processing re-ranking layer** применяет эти правила после ML scoring - без переобучения модели.

**Архитектура re-ranking pipeline:** ML candidate generation (1000 items) → ML scoring & ranking → business rules post-processing → diversity re-ranking (MMR) → fairness constraints → final top-K. Каждый слой независим и может быть изменён без переобучения модели.

Diversity и fairness противоречат relevance - их нельзя оптимизировать одновременно.

Небольшое снижение relevance (+diversity, +fairness) часто повышает долгосрочное engagement и user satisfaction. MMR с lambda=0.7 обычно теряет 2-5% precision при +20-30% diversity. Это приемлемый trade-off для большинства продуктов.

Пользователи устают от filter bubble - однородный контент снижает сессионное engagement. Исследования Netflix и Spotify показали: diverse рекомендации увеличивают return rate пользователей.

Почему business rules применяются после ML scoring, а не как ограничения при обучении модели?

Multi-Objective и Re-Ranking

  • **Diversity (MMR):** итеративный выбор: relevance - lambda * similarity_to_selected; submodular, greedy-алгоритм с (1-1/e) гарантией
  • **Fairness:** provider fairness (exposure для новых), user fairness (equal quality for minorities), disparate impact ratio >= 0.8
  • **Exploration:** epsilon-greedy (constant), Thompson Sampling (adaptive posterior), LinUCB (contextual) для cold-start items
  • **Business rules post-processing:** лицензии, возраст, sponsored fraction - быстрые изменения без переобучения модели

Связанные темы

Re-ranking - финальный слой рекомендательного pipeline поверх retrieval и scoring.

  • Context-Aware Recommendations — Multi-task scores из context-aware моделей - вход в re-ranking слой
  • Candidate Generation — Re-ranking работает на топ-1000 из retrieval; качество retrieval ограничивает re-ranking

Вопросы для размышления

  • Как выбрать lambda в MMR для конкретного продукта - какие данные нужны для обоснованного решения, а не интуитивного?
  • Почему provider fairness (exposure для новых артистов) выгодна платформе в долгосрочной перспективе, даже если краткосрочно снижает engagement метрики?
  • Как Thompson Sampling ведёт себя при наличии seasonality - нужно ли сбрасывать prior при смене сезона?

Связанные уроки

  • rec-07 — Контекст дает сигналы, балансируемые при реранкинге
  • rec-09 — Генерация кандидатов поставляет элементы для реранкинга
  • rec-11 — Bandit-исследование управляет онлайн-выбором реранкинга
  • ml-48-rl-intro — Исследование против эксплуатации идет из обучения с подкреплением
  • stat-05-hypothesis — Проверки справедливости похожи на проверку гипотез
  • ml-01-intro
Multi-Objective и Re-Ranking

0

1

Войти