Оценка модели рекомендаций LightFM

Я довольно долго играл с lightfm и нашел, что действительно полезно генерировать рекомендации. Однако есть два основных вопроса, которые я хотел бы знать.

  1. чтобы оценить модель LightFM в случае, когда значение рекомендаций имеет значение, стоит ли больше полагаться на precision@k или другие предоставленные метрики оценки, такие как AUC score? в каких случаях я должен сосредоточиться на улучшении моего precision@k по сравнению с другими показателями? а может они сильно коррелируют? а это значит, что если мне удастся улучшить precision@k оценка, другие метрики будут следовать, я прав?

  2. как бы вы интерпретировали, если модель, которая обучалась с использованием WARP Функция потерь имеет оценку 0,089 для precision@5? AFAIK, Precision at 5 говорит мне, какая доля из 5 лучших результатов является положительной / актуальной. а это значит, я бы получил 0 precision@5 если мои прогнозы не смогли попасть в топ-5, или я получу 0,2, если я получил только одно правильное прогнозирование в топ-5, но я не могу интерпретировать, что означает 0,0xx для precision@n

Спасибо

1 ответ

Решение

Precision@K и AUC измеряют разные вещи и дают вам различные точки зрения на качество вашей модели. В общем, они должны быть взаимосвязаны, но понимание того, как они различаются, может помочь вам выбрать тот, который более важен для вашего приложения.

  • Precision@K измеряет долю положительных элементов среди K элементов с самым высоким рейтингом. Таким образом, он очень сфокусирован на качестве рейтинга в верхней части списка: не имеет значения, насколько хорошо или плохо остальная часть вашего рейтинга, если первые K элементов в основном положительные. Это будет подходящим показателем, если вы только когда-либо будете показывать своим пользователям самую верхнюю часть списка.
  • AUC измеряет качество общего рейтинга. В двоичном случае это можно интерпретировать как вероятность того, что случайно выбранный положительный элемент оценивается выше, чем случайно выбранный отрицательный элемент. Следовательно, AUC, близкий к 1,0, будет предполагать, что ваш порядок в целом верен: и это может быть правдой, даже если ни один из первых K элементов не является положительным. Этот показатель может быть более подходящим, если вы не осуществляете полный контроль над тем, какие результаты будут представлены пользователю; может случиться так, что первые K рекомендованных предметов больше не будут доступны (скажем, их нет в наличии), и вам нужно продвинуться дальше вниз по рейтингу. Высокий балл AUC даст вам уверенность в том, что ваш рейтинг на высоком уровне.

Также обратите внимание, что хотя максимальное значение метрики AUC равно 1,0, максимальная достижимая точность @ K зависит от ваших данных. Например, если вы измеряете точность @5, но есть только один положительный результат, максимальная оценка, которую вы можете получить, составляет 0,2.

В LightFM процедуры AUC и precision@K возвращают массивы показателей: по одному на каждого пользователя в ваших тестовых данных. Скорее всего, вы усредняете их, чтобы получить среднюю оценку AUC или среднюю точность @ K: если некоторые из ваших пользователей имеют оценку 0 по метрике точности @5, возможно, что ваша средняя точность @5 будет между 0 и 0,2.

Надеюсь это поможет!

Другие вопросы по тегам