Оценка модели рекомендаций LightFM
Я довольно долго играл с lightfm и нашел, что действительно полезно генерировать рекомендации. Однако есть два основных вопроса, которые я хотел бы знать.
чтобы оценить модель LightFM в случае, когда значение рекомендаций имеет значение, стоит ли больше полагаться на
precision@k
или другие предоставленные метрики оценки, такие какAUC score
? в каких случаях я должен сосредоточиться на улучшении моегоprecision@k
по сравнению с другими показателями? а может они сильно коррелируют? а это значит, что если мне удастся улучшитьprecision@k
оценка, другие метрики будут следовать, я прав?как бы вы интерпретировали, если модель, которая обучалась с использованием
WARP
Функция потерь имеет оценку 0,089 дляprecision@5
? AFAIK, Precision at 5 говорит мне, какая доля из 5 лучших результатов является положительной / актуальной. а это значит, я бы получил 0precision@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.
Надеюсь это поможет!