Премия Нетфликс

Еще в 2006 году Netflix учредил премию Netflix Prize в размере 1 миллиона долларов за создание лучшего алгоритма прогнозирования для своей киноплатформы. В то время конкурс попал в заголовки газет как из-за новаторского подхода к краудсорсингу их бизнес-задач, так и из-за крупного 7-значного приза. Специфика конкурса заключалась в публикации набора данных из более чем 1 миллиона отзывов пользователей, а также некоторых пользовательских функций. Победившая работа сможет успешно прогнозировать пользовательские рейтинги на отдельном наборе данных с высочайшей точностью. В нем приняли участие более 20 000 команд из более чем 150 стран, в том числе ученые, профессионалы отрасли и команды ведущих технологических компаний. Подходы были очень инновационными в то время и в конечном итоге привели к улучшениям в механизме предложений Netflix для повышения вовлеченности контента. В 2006–2009 годах были последующие испытания, но в 2010 году конкурс был отменен.

Теперь ценность алгоритмов, созданных как командами-победителями, так и другими участниками, скорее всего, принесла пользу Netflix и их командам инженеров, но главная проблема, связанная с этим подходом, а также с другими подобными учебными упражнениями для рекомендаций пользователей, заключается в том, что решения не стареть хорошо. Этот подход использует статический набор данных и полагается на интенсивную обработку и обучение данных для создания прогнозов. В некоторых случаях к моменту завершения обучения и выбора наилучшей модели пользовательские предпочтения могут измениться. Особенно в случае кино и телевидения новые актеры, которые никогда не снимались в предыдущих ролях и поэтому не представлены в обучающей выборке, могут ворваться на сцену и изменить предпочтения пользователей. Точно так же известные актеры или роли могут упасть в немилость и, следовательно, стать менее актуальными. Могут быть способы смягчить последствия этих событий, но в целом недостаток пакетного обучения/оценки для механизмов рекомендаций заключается в том, что пользовательские предпочтения могут измениться в одночасье, и создание процесса, позволяющего не отставать от пользователей, может стать сложным и дорогостоящим.

Чем может помочь обучение с подкреплением?

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

  • Спросите у модели предложение
  • Если предложение хорошее, наградите модель
  • иначе не награждай
  • Повторение

Это может быть слишком упрощено, но предпосылка состоит в том, что модель может строиться на основе получаемых вознаграждений. Теперь, прежде чем мы пойдем дальше, типичный подход заключается в том, чтобы позволить модели обучаться самостоятельно, это означает, что для первых взаимодействий с моделью предложения, вероятно, будут случайными или псевдослучайными, чтобы создать значимые рекомендации. Существуют методы теплого старта или предварительной подготовки модели, но во многих случаях это требует больше времени/усилий, чем оно того стоит.

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

API персонализатора Azure

Azure Cognitive Service Personalizer API предоставляет очень простой способ использования Reinforcement Learning для создания высококачественного механизма рекомендаций с минимальными усилиями. API работает следующим образом:

  • Спросите модель о предложении — отправьте API набор вариантов вместе с пользовательскими функциями.
  • Получить предложение от API — отобразить предложение пользователю в приложении.
  • Отправить ответное действие — в зависимости от действий пользователя, нажатие на предложение или кнопку «Далее» отправляет итоговое вознаграждение API от 0 до 100.

Выполнив несколько простых вызовов REST API, вы сможете использовать Reinforcement Learning в своих собственных целях и даже отслеживать результаты через портал Azure.

Ссылка: https://docs.microsoft.com/en-us/azure/cognitive-services/personalizer/

Ищите последующие статьи с более подробными объяснениями этой новой услуги. А пока посетите этот демонстрационный сайт, чтобы увидеть API персонализатора в действии: (personalizationdemo.azurewebsites.net)