Как вычисляется MAP

MAP строится на двух уровнях агрегации.

Шаг 1 — Average Precision для одного пользователя:

Представьте список из 5 рекомендаций, где релевантны позиции 1, 3 и 5:

Позиция: 1    2    3    4    5
Хит:     ✓    ✗    ✓    ✗    ✓
P@1 = 1/1 = 1.0  (на позиции 1 нашли 1-й релевантный)
P@3 = 2/3 = 0.67 (на позиции 3 нашли 2-й релевантный)
P@5 = 3/5 = 0.60 (на позиции 5 нашли 3-й релевантный)

AP = (1.0 + 0.67 + 0.60) / 3 = 0.76

Шаг 2 — MAP = среднее значений AP по всем пользователям (или запросам).

Зачем учитывать порядок

Разница между двумя алгоритмами часто не в том, сколько релевантных позиций они находят, а где их размещают. Пользователь, скорее всего, просматривает первые 3–5 рекомендаций. Алгоритм, который ставит релевантные товары в начало списка, получит MAP выше — и окажет реальное влияние на клики и конверсию.

MAP vs NDCG: когда что выбирать

Критерий MAP NDCG
Тип релевантности Бинарная (да/нет) Градуированная (1, 2, 3…)
Чувствительность к порядку Высокая Высокая
Неодинаковое число релевантных Корректно Корректно
Типичное применение Поиск, базовые рекомендации Персонализированные рекомендации

Совет: для офлайн-оценки рекомендательного движка считайте несколько метрик одновременно — MAP, NDCG@10, Coverage. Одна метрика может маскировать проблемы в других измерениях.

Практические ограничения

MAP предполагает, что у каждого пользователя известен полный список релевантных товаров. На практике это сложно: история взаимодействий неполна (пользователь просто не видел часть товаров). Поэтому офлайн-метрики дополняют онлайн-экспериментами — A/B тестами — где победитель определяется по реальной конверсии и выручке.