Назад к подготовке
ВопросСредняяrecommender-systemsML System Design на скрининге · GamerAM

Rich-get-richer bias в matching-рекомендациях

В dating или matching продукте топ-профили получают львиную долю показов, а остальные растворяются. Как диагностировать и смягчить этот перекос, не убив вовлеченность?

Ответить самому

Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.

Загрузка

Короткий ответ

Сначала измерьте концентрацию показов: Gini/entropy, долю показов у top 1/10%, покрытие и метрики по exposure buckets. Затем добавьте контролируемый exploration, ограничения на показы, diversity/fairness constraints и cold-start boosts с guardrails по engagement и match quality.

Полный разбор

Диагностика начинается с распределения показов: сколько impressions получает каждый профиль, какая доля у top 1% и 10%, Gini/entropy exposure, coverage long tail, exposure by cohort и conversion по exposure buckets. Нужно отделить реальное качество профиля от feedback loop: популярные профили могут быть сильными, но система не должна бесконечно усиливать только их.

Смягчение должно быть контролируемым. Подходы: exploration slots, freshness/cold-start boosts, per-profile exposure caps, diversity constraints, multi-objective ranking или re-ranking, который балансирует expected engagement и coverage. Для matching важно оптимизировать reciprocal outcomes, а не только one-sided likes.

Нельзя просто рандомизировать всю выдачу. Нужен A/B test с guardrails: sessions, likes, messages, retention, complaints/reports, match quality и latency. Цель - расширить здоровое покрытие, не разрушая relevance.

Теория

Popularity bias возникает из feedback loop между exposure и observed engagement, поэтому нужны и exposure metrics, и product outcome metrics.

Типичные ошибки

  • Смотреть только CTR/like rate и не смотреть exposure concentration.
  • Слишком сильно рандомизировать выдачу.
  • Оптимизировать только one-sided likes в reciprocal matching.

Как отвечать на собеседовании

  • Назовите Gini или entropy для распределения показов.
  • Предложите exploration плюс guardrail A/B test.