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.