Как интерпретировать показатели решения в AWS Personalize? - PullRequest
1 голос
/ 14 октября 2019

Может ли кто-нибудь помочь мне интерпретировать метрики версий решения AWS Personalize с точки зрения непрофессионала или, по крайней мере, сказать мне, как эти метрики должны выглядеть в идеале?

У меня нет знаний по машинному обучению, и я хотел быВоспользуйтесь преимуществами Personalize, поскольку они продаются как ML SaaS «не требующий знания». Тем не менее, «метрики версии решения» в результатах моего решения, кажется, требуют довольно высокого уровня математических знаний.

Метрики версии My Solution следующие:
Нормализованный накопленный дисконтированный кумулятивный
При 5: 0,9881, При 10: 0,9890, При 25: 0,9898
Точность
При 5: 0,1981, При10: 0,0993, в 25: 0,0399
Среднее взаимное звание
В 25: 0,9833

Исследования

Я просмотрел Персонализированное руководство разработчика , которое включает краткое определение каждой метрики на странице 72. Я также попытался просмотреть статьи Википедии о дисконтированном совокупном выигрыше и среднем взаимном ранге . Исходя из прочтения, это мое толкование каждой метрики:
NDG = соответствие актуальности рекомендаций;Является ли первая рекомендация такой же актуальной, как и последняя?
Точность = Актуальность рекомендаций для пользователя;Насколько актуальны ваши рекомендации для пользователей по всем направлениям?
MRR = Соответствие первой рекомендации в списке по сравнению с другими в списке;Насколько актуальна ваша первая рекомендация для каждого пользователя?

Если эти интерпретации верны, то мои метрики решения указывают на то, что я очень последовательно рекомендую не относящийся к делу контент. Это правильный вывод?

1 Ответ

1 голос
/ 18 октября 2019

Хорошо, у моей компании есть поддержка уровня разработчика, поэтому я смог получить ответ на этот вопрос от AWS.

Резюме ответа

Метрики лучшеближе они к «1». Моя интерпретация моих метрик была в значительной степени правильной, но мой вывод был неверным.

По-видимому, эти метрики (и Персонализация в целом) не учитывают, насколько пользователь любит элемент . Персонализация заботится только о том, как скоро соответствующая рекомендация попадет к пользователю. Это имеет смысл, потому что, если вы получаете 25-й элемент в очереди и вам не нравится то, что вы видели, вы вряд ли продолжите искать.

Учитывая это, в моем решении происходит то, что первое-я рекомендация актуальна, но ни одна из остальных не подходит.

Подробный ответ от AWS

Сначала я начну с относительно более простого вопроса: каковы идеальныеЗначения этих метрик, так что версия решения может быть предпочтительнее, чем другая версия решения? Ответ на поставленный выше вопрос заключается в том, что для каждой метрики лучше использовать более высокие числа. [1] Если у вас более одной версии решения, пожалуйста, предпочтите версию решения с более высокими значениями для этих показателей. Обратите внимание, что вы можете создать количество версий решения, переопределив параметры рецепта по умолчанию [2]. И с помощью гиперпараметров [3].

Второй вопрос: как понять и интерпретировать показатели для версии AWS Personalize Solution? Из своего исследования я могу подтвердить, что определения и интерпретация, предоставленные для этих показателей в данном случае, являются действительными.

Прежде чем я объясню каждую метрику, вот учебник для одного из основных понятий в машинном обучении. Как рассчитываются эти показатели? На этапе обучения модели во время создания версии решения входной набор данных разбивается на две части: набор обучающих данных (~ 70%) и набор тестовых данных (~ 30%). Набор данных для обучения используется во время обучения модели. Как только модель обучена, она используется для прогнозирования значений для тестового набора данных. Как только прогноз сделан, он проверяется по известному (и правильному) значению в тестовом наборе данных. [4]

Я продолжил исследования, чтобы найти больше ресурсов для понимания концепции, лежащей в основе этих метрик, а также детально проиллюстрировать пример, приведенный в документации AWS. [1]

"mean_reciprocal_rank_at_25"

Давайте сначала разберемся с взаимным рейтингом: например, сервис потокового видео использует версию решения, чтобы предсказать список из 5 рекомендуемых фильмов для конкретного пользователя, т.е. A,B, C, D, E. Как только эти 5 рекомендуемых фильмов сравниваются с реальными фильмами, которые понравились этому пользователю (в наборе тестовых данных), мы обнаруживаем, что пользователю действительно нравятся только фильмы B и E. Взаимный ранг будет учитывать только первую релевантную (правильную в соответствии с тестовым набором данных) рекомендацию, которая относится к фильму B, расположенному на ранге 2, и он будет игнорировать фильм E, расположенный на ранге 5. Таким образом, Взаимный ранг будет 1/2 = 0,5 * 1030. *

Теперь давайте расширим приведенный выше пример, чтобы понять среднее взаимное ранжирование: [5] Давайте предположим, что мы выполнили прогнозы для трех пользователей, и были рекомендованы фильмы ниже.
Пользователь 1: A, B, C, D, E (пользователю понравились B и E, таким образом, Взаимный ранг равен 1/2)
Пользователь 2: F, G, H, I, J (пользователю понравились H и I, таким образом, Взаимный ранг составляет 1/3)
Пользователь3: K, L, M, N, O (пользователю понравилось K, M и N, таким образом, Взаимный ранг равен 1)
Средний Взаимный ранг будет суммой всех отдельных Взаимных рангов, деленной на общее количество запросов. побежал за прогнозы, который составляет 3. (1/2 + 1/3 + 1) / 3 = (0,5 + 0,33 + 1) / 3 = (1,83) / 3 = 0,61

В случае персонализации AWSМетрики версии решения, среднее из взаимных рангов первой соответствующей рекомендациииз 25 лучших рекомендаций по всем запросам называется «mean_reciprocal_rank_at_25».

«precision_at_K»

Это указывается как способность модели предоставлять соответствующие элементы с наименьшим количеством рекомендаций. Концепция точности описана в следующем бесплатном видео, доступном на Coursera. [6] Очень хорошая статья на ту же тему может быть найдена здесь. [7]

Давайте рассмотрим тот же пример, служба потокового видео использует версию решения для прогнозирования списка из 5 рекомендуемых фильмов для конкретного пользователя, т.е. A, B, C, D, E. Как только эти 5 рекомендуемых фильмов сравниваются с реальными фильмами, которые понравились этому пользователю (правильные значения в наборе тестовых данных), мы обнаруживаем, что пользователю действительно нравятся только фильмы B и E. Precision_at_5 будет 2 правильно предсказанными фильмами из 5 фильмов и может быть задано как 2/5 = 0,4

"normalized_discounts_cumulative_gain_at_K"

В этом метрике используется концепция логарифма и логарифмической шкалы для назначениявесовой коэффициент для соответствующих элементов (правильные значения в наборе тестовых данных). Полное описание логарифма и логарифмической шкалы выходит за рамки этого документа. Основная цель использования логарифмической шкалы состоит в том, чтобы уменьшить масштабируемые количества до крошечных областей.

discounts_cumulative_gain_at_K
Давайте рассмотрим тот же пример, служба потоковой передачи фильмов использует версию решения для прогнозирования списка из 5 рекомендуемых фильмов. для конкретного пользователя т.е. A, B, C, D, E. Как только эти 5 рекомендуемых фильмов сравниваются с реальными фильмами, которые понравились этому пользователю (правильные значения в наборе тестовых данных), мы обнаруживаем, что пользователю действительно нравятся только фильмы B и E. Давайте рассмотрим тот же пример, служба потокового видео использует версию решения для прогнозирования списка из 5 рекомендуемых фильмов для конкретного пользователя, т.е. A, B, C, D, E. Как только эти 5 рекомендуемых фильмов сравниваются с реальными фильмами, которые понравились этому пользователю (правильные значения в наборе тестовых данных), мы обнаруживаем, что пользователю действительно нравятся только фильмы B и E. Для получения совокупного дисконтированного усиления (DCG) на уровне 5 каждому соответствующему элементу присваивается весовой коэффициент (с использованием логарифмической шкалы) в зависимости от его положения в верхних 5 рекомендациях. Значение, полученное по этой формуле, называется «дисконтированным значением».
Формула равна 1 / log (1 + позиция)
Поскольку B находится в положении 2, поэтому дисконтированное значение равно = 1 / log (1 + 2). )
Поскольку E находится в положении 5, поэтому дисконтированное значение равно = 1 / log (1 + 5)
Суммарное дисконтированное усиление (DCG) рассчитывается путем сложения дисконтированных значений для обоих соответствующих элементов DCG = (1 / log(1 + 2) + 1 / log (1 + 5))

normalized_discounts_cumulative_gain_at_K
Прежде всего, что такое «идеальная DCG»? В приведенном выше примере идеальные прогнозы должны выглядеть как B, E, A, C, D. Таким образом, соответствующие элементы должны быть под номерами 1 и 2 в идеальном случае. Чтобы получить «идеальную DCG» на 5, каждому соответствующему элементу присваивается весовой коэффициент (с использованием логарифмической шкалы) на основе его позиции в 5 лучших рекомендациях. Значение, полученное по этой формуле, называется «дисконтированным значением».
Формула равна 1 / log (1 + позиция).
Поскольку B находится в положении 1, поэтому дисконтированное значение равно = 1 / log (1 +). 1)
Поскольку E находится в положении 2, поэтому дисконтированное значение равно = 1 / log (1 + 2)
Идеальная DCG рассчитывается путем сложения дисконтированных значений для обоих соответствующих элементов. DCG = (1 / log (1 +)1) + 1 / log (1 + 2))

Нормализованный дисконтированный совокупный коэффициент усиления (NDCG) - это DCG, деленная на «идеальную DCG». DCG / идеальный DCG = (1 / log (1 + 2) + 1 / log (1 + 5)) / (1 / log (1 + 1) + 1 / log (1 + 2)) = 0,6241

Я надеюсь, что приведенная выше информация поможет понять концепцию этих метрик.

[1] https://docs.aws.amazon.com/personalize/latest/dg/working-with-training-metrics.html
[2] https://docs.aws.amazon.com/personalize/latest/dg/customizing-solution-config.html
[3] https://docs.aws.amazon.com/personalize/latest/dg/customizing-solution-config-hpo.html
[4] https://medium.com/@m_n_malaeb/recall-and-precision-at-k-for-recommender-systems-618483226c54
[5] https://www.blabladata.com/2014/10/26/evaluating-recommender-systems/
[6] https://www.coursera.org/lecture/ml-foundations/optimal-recommenders-4EQc2
[7] https://medium.com/@bond.kirill.alexandrovich/precision-and-recall-in-recommender-systems-and-some-metrics-stuff-ca2ad385c5f8

...