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

Я довольно долго экспериментировал с lightfm и обнаружил, что генерировать рекомендации очень полезно. Тем не менее, есть два основных вопроса, которые я хотел бы знать.

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

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

Спасибо


person bohr    schedule 02.08.2017    source источник


Ответы (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.

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

person Maciej Kula    schedule 02.08.2017
comment
Как можно интерпретировать AUC в недвоичном случае? то есть оценка фильма непрерывна - person Jorge Barrios; 31.03.2018
comment
Действительная точка. Я бы предпочел ожидать что-то вроде RMSE. Это как-то возможно? - person Mez13; 16.04.2020