Какие метрики ранжирования существуют
Что проверяют
Отличаете ли вы метрики ранжирования от метрик классификации и понимаете ли, что в ранжировании важен порядок, а не только факт попадания. Следом почти всегда просят посчитать NDCG или MRR на маленьком примере и спрашивают, какую метрику вы бы взяли для конкретного продукта.
Как отвечать
Разделите метрики на две группы: те, что смотрят только на состав верхушки выдачи, и те, что учитывают позицию.
- Precision@k и Recall@k: доля релевантных среди первых k и доля найденных релевантных от всех существующих. Порядок внутри top-k им безразличен, зато они понятны бизнесу;
- HitRate@k: есть ли в первых k хотя бы один релевантный объект. Типичная метрика для рекомендаций;
- MRR: среднее по запросам от 1/rank первого релевантного результата. Первый релевантный на третьем месте даёт 1/3. Подходит, когда пользователю нужен один правильный ответ, например в поиске по базе знаний;
- MAP: для каждого запроса усредняется precision в позициях, где стоят релевантные документы, потом берётся среднее по запросам. Работает с бинарной релевантностью;
- NDCG@k: сумма релевантностей со штрафом за позицию (делитель log2(i+1)), нормированная на идеальный порядок. Основная метрика для градуированной релевантности с оценками 0, 1, 2, 3.
Добавьте, что офлайн-метрики не равны продуктовым: рост NDCG на логах не гарантирует рост CTR, финальное решение даёт A/B-тест. Для обучения ранжирующих моделей упомяните LambdaMART (в LightGBM это objective="lambdarank"), который оптимизирует как раз NDCG. Плюсом будут метрики «вне точности»: coverage, diversity, novelty.
Где спотыкаются
Называют F1 и ROC AUC метриками ранжирования и не упоминают k. Без отсечки precision по всей выдаче мало говорит о том, что видит пользователь.
Путают MRR: говорят «средний ранг первого релевантного», хотя усредняется обратная величина, и чем метрика больше, тем лучше.
Считают NDCG без нормировки или нормируют только на то, что вернула модель, а не на все известные релевантные документы. Цифры получаются завышенными и несравнимыми между моделями.