Как вычисляется 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 тестами — где победитель определяется по реальной конверсии и выручке.