Назад к подготовке

Офлайн-метрики рекомендаций: 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.