Задача: как измерить, насколько хороши рекомендации

Рекомендательная система выдаёт список из K товаров. Как понять, насколько список хороший? Для этого используют пару метрик: precision и recall.

Точность (Precision) отвечает на вопрос: «Сколько из рекомендованных товаров оказались релевантными?»

Полнота (Recall) отвечает на вопрос: «Сколько из всех релевантных для пользователя товаров система нашла и показала?»

Пример:
Всего релевантных товаров для пользователя: 20
Система рекомендовала: 10 товаров
Из них релевантных: 7

Precision = 7 / 10 = 0.70 (70% рекомендаций попали в цель)
Recall    = 7 / 20 = 0.35 (35% от всего релевантного охвачено)

Компромисс precision vs recall

Между этими метриками существует фундаментальный компромисс. Чтобы повысить recall (охватить больше релевантных товаров), система должна рекомендовать больше товаров или быть менее строгой в фильтрации — и тогда среди них появляется больше нерелевантных, точность падает.

Сценарий Что меняется Эффект
Увеличить K (больше рекомендаций) ↑ Recall ↓ Precision
Ужесточить пороговый скор ↑ Precision ↓ Recall
Показывать только бестселлеры ↑ Precision ↓ Recall (длинный хвост пропадает)

Precision@K и Recall@K

В рекомендательных системах метрики всегда считаются при фиксированном K — числе позиций в виджете:

  • Precision@5 — для виджетов на главной с 5 слотами
  • Precision@10 — для горизонтального виджета на PDP
  • Recall@20 — для поиска или email-подборки

Это делает метрики сопоставимыми и привязанными к реальным условиям интерфейса.

F1-score: когда нужен баланс

F1-score — гармоническое среднее precision и recall. Полезен, когда нет явного приоритета и нужно сравнивать несколько моделей единым числом.

F1 = 2 × (Precision × Recall) / (Precision + Recall)

Модель A: Precision 0.80, Recall 0.80 → F1 = 0.80
Модель B: Precision 0.95, Recall 0.20 → F1 = 0.33

Модель B выглядит «точной», но охватывает только 20% релевантного — F1 честно показывает её слабость.

Совет: precision и recall — офлайн-метрики, рассчитываемые на исторических данных. Для окончательной оценки рекомендательного алгоритма их нужно подтверждать онлайн-метриками в A/B тесте: CTR виджета и атрибутированной выручкой.