Где и как использовать Персонализатор

Важно!

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

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

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

Пример вариантов применения Персонализатора

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

Ожидания, необходимые для использования Персонализатора

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

Рекомендация Описание
Бизнес-цель У вас есть бизнес-цель или цель повышения удобства использования вашего приложения.
Содержимое В вашем приложении есть место, где принятие контекстуального решения о том, что показывать пользователям, поможет этой цели.
Количество содержимого У вас есть менее 50 действий для ранжирования за звонок.
Сводные данные Лучший выбор может и должен делаться на основе общего поведения пользователей и общей оценки вознаграждения.
Этическое использование Использование машинного обучения для персонализации соответствует руководствам по ответственному использованию и вашему выбору.
Лучший единый вариант Контекстные решения можно выразить как ранжирование лучших вариантов (действий) при ограниченном наборе вариантов.
Оцененный результат Насколько хорошо ранжированный выбор сработал для вашего приложения, можно определить, измерив некоторые аспекты поведения пользователей и выразив их в баллах вознаграждения.
Соответствующее время Оценка вознаграждения не приносит слишком много смешанных или внешних факторов. Продолжительность эксперимента достаточна мала, поэтому оценку вознаграждения можно вычислить, пока она еще полезна.
Достаточные возможности контекста Вы можете выразить контекст для ранжирования в виде списка, по крайней мере, из 5 функций, которые, по вашему мнению, помогут сделать правильный выбор, и который не включает идентифицируемую информацию для конкретного пользователя.
Достаточные функции действий У вас есть информация о каждом выборе содержимого, действия, как списка с минимум 5 функциями, которые могут помочь Персонализатору сделать правильный выбор.
Ежедневные данные Имеется достаточно событий для оптимальной персонализации, если проблема изменяется со временем (например, предпочтения новостей или моды). Персонализатор адаптируется к постоянным изменениям реального мира, однако результаты не будут оптимальными, если событий и данных будет недостаточно, чтобы учиться на них, а также открывать и осваивать новые шаблоны. Следует выбрать вариант использования, который применяется достаточно часто. Рассмотрите возможность поиска вариантов использования, которые попадаются по крайней мере 500 раз в день.
Данные журнала Приложение может хранить данные достаточно долго, чтобы накопить журнал с минимум 100 000 взаимодействий. Это позволяет Персонализатору собирать достаточно данных для выполнения автономных оценок и оптимизации политики.

Не используйте Персонализатор там, где персонализированное поведение не может быть обнаружено всеми пользователями. Например, использование Персонализатора, чтобы предложить заказ первой пиццы из списка из 20 пунктов меню, полезно, но предложение контакта для вызова из списка контактов пользователей, когда необходима помощь по уходу за ребенком (например, "Бабушка"), сложно назвать персонализацией в базе пользователей.

Использование Персонализатора в веб-приложении

Добавление цикла обучения в веб-приложение включает:

  • Определение того, какой вариант взаимодействия необходимо персонализировать, какие действия и функции есть в наличии, какие функции контекста необходимо использовать и какое вознаграждение необходимо настроить.
  • Добавление ссылки на пакет SDK для персонализации в приложении.
  • Вызов API ранжирования на момент готовности к персонализации.
  • Сохранение eventId. Позже вы отправите вознаграждение с помощью API вознаграждения.
  1. Вызовите операцию "Активировать" для события, когда будете уверены, что пользователь увидел вашу персонализированную страницу.
  2. Дождитесь, пока пользователь выберет ранжированное содержимое.
  3. Вызовите API вознаграждения, чтобы указать эффективность выходных данных API ранжирования.

Использование Персонализатора с чат-ботом

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

  • Получите код для этого примера.
  • Настройте решение бота. Опубликуйте приложение LUIS.
  • Управляйте вызовами API ранжирования и вознаграждения для бота.
    • Добавьте код для управления обработкой намерения LUIS. Если в качестве намерения с самым высоким показателем возвращается значение Нет или показатель этого намерения ниже порогового значения бизнес-логики, отправьте список намерений в Персонализатор для ранжирования намерений.
    • Покажите список намерений пользователю в качестве доступных для выбора ссылок, в котором первое намерение является намерением с высшим приоритетом из ответа API ранжирования.
    • Запишите выбор пользователя и отправьте его в вызов API вознаграждения.
  • Осуществляйте вызовы API ранжирования Персонализатора всякий раз, когда необходимо устранить неоднозначность вместо того, чтобы кэшировать результаты для каждого пользователя. Результат устранения неоднозначности намерения может изменяться со временем для одного пользователя. Если позволить API ранжирования исследовать расхождения, ускорится обучение в целом.
  • Выберите взаимодействие, общее для большого числа пользователей, чтобы у вас было достаточно данных для персонализации. Например, вводные вопросы подходят лучше, чем меньшие уточнения глубоко в графе диалога, к которому могут получить доступ только небольшое число пользователей.
  • Используйте вызовы API ранжирования, чтобы включить беседы "первая рекомендация подходит", в которых пользователь получает запрос "Хотите ли вы X?" или "Вы имели в виду X?" и должен просто подтвердить свой ответ в отличие от меню вариантов, где он должен выбрать нужный. Например, Пользователь: "Я хочу заказать кофе" Бот: "Хочешь двойной эспрессо?". Таким образом сигнал вознаграждения также надежный, так как он относится непосредственно к одному предложению.

Использование Персонализатора с решением рекомендаций

Многие компании используют системы рекомендаций, маркетинговые и рекламные инструменты, сегментацию и кластеризацию аудитории, совместную фильтрацию и другие средства, чтобы рекомендовать клиентам продукцию из большого каталога.

В репозитории GitHub Microsoft Recommender содержатся примеры и рекомендации по созданию систем рекомендаций, предоставляемых в виде записных книжек Jupyter. Он предоставляет рабочие примеры подготовки данных, создания моделей, оценки, настройки и ввода в эксплуатацию систем рекомендаций для многих распространенных подходов, включая xDeepFM, SAR, ALS, RBM, DKN.

Персонализатор может работать с имеющейся системой рекомендаций.

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

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

Добавление средств защиты содержимого в приложение

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

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

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

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

Guidelines for responsible implementation of Personalizer (Руководство по ответственной реализации Персонализатора).