Офлайн-метрики рекомендаций: recall@K, precision@K, coverage и NDCG
Сравните recall@K, precision@K, coverage и NDCG для candidate generation и ранжирования. Как эти метрики ведут себя при изменении K?
Ответить самому
Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.
Короткий ответ
Recall@K показывает, какая доля релевантных объектов попала в top K; precision@K - какая доля top K релевантна; coverage - какую часть каталога или пользователей покрывает система; NDCG учитывает релевантность с дисконтом по позиции.
Полный разбор
Recall@K - это число релевантных объектов, найденных в top K, деленное на все релевантные объекты для запроса или пользователя. Для candidate generation это часто главная offline-метрика: следующая стадия уже не восстановит кандидатов, которых retrieval не достал. При росте K recall не убывает.
Precision@K - число релевантных объектов в top K, деленное на K. Она отражает концентрацию хороших объектов наверху списка и часто падает при росте K, потому что дальние позиции сложнее удерживать релевантными.
Coverage - отдельное семейство метрик. Это может быть catalog coverage, user coverage, покрытие известных positives у candidate generator или покрытие бизнес-правил после фильтров. Всегда называйте denominator: coverage чего именно вы считаете.
NDCG учитывает и релевантность, и позицию. Высоко релевантные объекты наверху дают больший вклад, чем те же объекты ниже, потому что DCG применяет логарифмический discount по позиции, а NDCG нормирует результат на идеальный ranking.
Теория
Рекомендательной системе нужно несколько offline-метрик, потому что recall, качество ранжирования, охват каталога и полезность списка ломаются по-разному.
Типичные ошибки
- Путать denominator у recall и precision.
- Считать, что precision обязана монотонно расти или падать при изменении K.
- Говорить coverage без уточнения, coverage чего именно.
- Использовать NDCG, не определив binary или graded relevance labels.
Как отвечать на собеседовании
- Явно напишите формулы recall@K и precision@K.
- Скажите, что offline-метрики все равно нужно валидировать online через A/B.