Поделиться через


Использование режима ученика для обучения Персонализатора без влияния на существующее приложение

Важно!

Начиная с 20 сентября 2023 г. вы не сможете создавать новые ресурсы Персонализатора. Служба Персонализатора отменяется 1 октября 2026 года.

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

Что такое режим ученика?

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

После того как Персонализатор сможет разумно соответствовать существующей логике 60–80 % времени, вы можете изменить поведение с режима ученика на режим "Онлайн". В то время Персонализатор возвращает лучшие действия в API ранжирования, как определено базовой моделью, и может узнать, как принимать лучшие решения, чем ваша базовая политика.

Почему используйте режим ученика?

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

Ниже приведены две основные причины использования режима ученика.

  • Устранение проблемы холодного запуска. Режим ученика помогает снизить затраты на обучение "новой" модели в рабочей среде путем обучения без необходимости принимать неинформируемые решения. Модель учится имитировать существующую логику приложения.
  • Проверка функций действия и контекста: функции контекста и действия могут быть неадекватными, неточными или неоптимально спроектированными. Если признаков слишком мало, слишком много, они неправильные или шумные, персонализация будет испытывать трудности при обучении хорошей модели. Проведение оценки признаков в режиме ученика позволяет узнать, насколько эффективны функции в обучении Персонализатор и могут определить области улучшения качества функций.

Когда необходимо использовать режим ученика?

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

  • Вы реализуете Персонализатор в новом сценарии.
  • Вы внесли основные изменения в функции контекста или действия.

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

Кто должен использовать режим ученика?

Режим ученика будет полезен для разработчиков, специалистов по обработке и анализу данных и бизнес-руководителей.

  • Разработчики могут использовать режим ученика, чтобы обеспечить правильность реализации API ранжирования и вознаграждения в приложении, а функции, отправляемые персонализатору, не могут быть освобождены от ошибок и распространенных ошибок. Дополнительные сведения о создании хороших функций контекста и действий.

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

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

Сравнение поведений — режим ученика и режим "в сети"

Обучение в режиме ученика отличается от обучения в режиме "в сети" по следующим режимам.

Площадь Режим ученика Онлайн-режим
Влияние на взаимодействие с пользователем Возможности пользователей и бизнес-метрики не изменятся. Персонализатор обучен путем наблюдения за базовыми действиями текущей логики приложения, не затрагивая их. Взаимодействие пользователей может измениться по мере принятия решения персонализатором, а не вашим базовым действием.
Скорость обучения Персонализатор в режиме ученика работает медленней, чем при обучении в режиме "в сети". Режим ученика может учиться только путем наблюдения за наградами, полученными по умолчанию, без изучения того, что ограничивает возможности обучения Персонализатора. Обучается быстрее, поскольку может как использовать лучшее действие из текущей модели, так и изучить другие действия для получения потенциально лучших результатов.
Эффективность обучения "потолок" Персонализатор может приблизиться только и никогда не превышать производительность текущей логики приложения (общее среднее вознаграждение, достигнутое базовым действием). Маловероятно, что Персонализатор достигнет 100% соответствия с логикой текущего приложения и рекомендуется, чтобы после достижения сопоставления 60%-80% персонализатор должен быть переключен в режим "Онлайн". Персонализатор должен превышать производительность базовой логики приложения. Если производительность персонализатора с течением времени останавливается, вы можете проводить автономную оценку и оценку функций, чтобы добиться дополнительных улучшений.
Значение API ранжирования для rewardActionId RewardActionId всегда будет идентификатором действия по умолчанию. То есть действие, которое вы отправляете в качестве первого действия в JSON запроса API ранжирования. Иными словами, API ранжирования ничего не делает видимого для приложения в режиме ученика. RewardActionId будет одним из идентификаторов, предоставленных в вызове API ранжирования, как определено моделью Персонализатора.
Оценки Персонализатор сравнивает итоговые вознаграждения, получаемые текущей логикой приложения, с итоговыми вознаграждениями, получаемыми Персонализатором, если в этот момент он работает в режиме "в сети". Это сравнение доступно для просмотра в колонке "Монитор" ресурса Персонализатора в портал Azure. Оцените эффективность Персонализатора, запустив автономные вычисления, которые позволяют сравнить итоговые вознаграждения, которых достиг Персонализатор, с возможными вознаграждениями базовых показателей приложения.

Обратите внимание, что Персонализатор вряд ли достигнет 100 % производительности с базовой логикой приложения, и он никогда не превысит его. Соответствие производительности 60%-80% должно быть достаточно для переключения Персонализатора в режим "Онлайн", где Персонализатор может узнать лучшие решения и превысить производительность базовой логики приложения.

Ограничения режима ученика

Режим ученика обучает модель Персонализатора, пытаясь имитировать базовую логику существующего приложения, используя функции контекста и действия, присутствующих в вызовах ранжирования. Следующие факторы влияют на способность обучения в режиме ученика.

Сценарии, в которых режим ученика может не подходить

Содержимое, отобранное редакторами.

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

  • Тестирование персонализатора в режиме "Онлайн": рекомендуется поместить персонализатор в режим "В сети" или в тесте A/B, если у вас есть инфраструктура, а затем запустить автономную оценку, чтобы оценить разницу между базовой логикой приложения и персонализатором.
  • Добавьте редакторские оценки и рекомендации в качестве признаков: спросите у редакторов, какие факторы влияют на их выбор, и узнайте, можно ли добавить их в качестве признаков для контекста и действий. Например, редакторы в медиакомпании могут выделить содержимое, когда определенная знаменитость часто находится в новостях: эти знания можно добавить как функцию контекста.

Факторы, которые улучшают и ускоряют работу в режиме ученика

Если режим ученика учится и достигает соответствия производительности выше нуля, но производительность улучшается медленно (не до 60% до 80% сопоставленных наград в течение двух недель), возможно, что слишком мало данных отправляется персонализатору. Следующие действия помогут ускорить обучение.

  1. Добавьте отличительных признаки. Вы можете визуально оценить действия с соответствующими признаками в вызове ранжирования. Есть ли у базового действия признаки, отличающиеся от других действий? Если они выглядят в основном одинаково, добавьте дополнительные функции, которые увеличат разнообразие значений признаков.
  2. Уменьшение действий на событие. Персонализатор использует параметр "% вызовов ранжирования для исследования" для обнаружения предпочтений и тенденций. Когда у вызова ранжирования больше действий, вероятность того, что какое-то конкретное действие будет выбрано для исследования, оказывается ниже. Снижение количества действий, отправляемых в каждом вызове ранжирования, до меньшего числа (менее 10), может быть временной корректировкой, которая поможет определить, имеет ли режим ученика достаточно данных для изучения.

Использование режима ученика для обучения с историческими данными

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

Настройте Персонализатор в режиме ученика и создайте скрипт, вызывающий ранжирование, с помощью функций действия и контекста из исторических данных. Вызовите API вознаграждений на основе ваших вычислений записей в этих данных. Возможно, вам потребуется около 50 000 исторических событий, чтобы увидеть, что Персонализатор достигает 60-80% соответствия с базовой логикой вашего приложения. Вы можете достичь удовлетворительного результата с меньшим или большим количеством событий.

При обучении из исторических данных рекомендуется, чтобы данные, отправленные в [функции контекста и действий, их макет в ФОРМАТЕ JSON, используемый для запросов ранга, и вычисление вознаграждения в этом наборе данных обучения], соответствовали данным [функциям и расчету вознаграждения], доступным из существующего приложения.

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

Использование режима ученика и тестов A/B

После проверки и обучения в онлайн-режиме полезно выполнять тесты обработки персонализатора, так как в режиме ученика используется только базовое действие, а существующая логика изучается. Это, по сути, означает, что Персонализатор возвращает действие руки "control" теста A/B, поэтому тест A/B в режиме ученика не имеет значения.

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

Следующие шаги