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

Автор: Дмитрий Иванов [Команда P9X]

~8 минут чтения

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

Как работает кампания:

  • Создание скриптов для звонков: маркетинговая команда разрабатывает несколько версий скрипта для звонков, каждая с разным подходом к продвижению нового продукта или плана.
  • Звонки агентов: торговые агенты используют эти скрипты для звонков определённой группе клиентов. В каждом взаимодействии с клиентом используется один из предопределённых скриптов.
  • Сбор данных: во время звонков компания собирает данные об ответах клиентов, таких как проявленный интерес, заданные вопросы и, в конечном итоге, коэффициенты конверсии (то есть сколько клиентов купили новый продукт или подписались на новый план).
  • Анализ в реальном времени: компания анализирует эти данные в режиме реального времени, чтобы оценить эффективность каждого скрипта. Этот анализ помогает определить, какие скрипты более успешны в привлечении клиентов к новому плану/продукту.
  • Обновление стратегии: на основе текущего анализа компания динамически регулирует частоту использования каждого скрипта. Скрипты с более высокими коэффициентами конверсии используются чаще, что со временем делает кампанию всё более эффективной.

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

Решение с использованием многорукого бандита

Наш сценарий похож на задачу о многоруком бандите (MAB). Представьте игрока в казино, стоящего перед игровым автоматом («бандитом») с несколькими рукоятками, каждая с неизвестным распределением выплат (вознаграждения). Цель игрока — максимизировать общий выигрыш, решая, какие рукоятки играть и как часто играть каждую из них. Задача состоит в том, чтобы сбалансировать разведку, пробуя разные рукоятки для сбора информации об их вознаграждениях, и эксплуатацию, используя собранную информацию для игры с рукояткой с наивысшим известным вознаграждением.

В нашем примере каждый скрипт для звонка действует как рукоятка игрового автомата, где вознаграждение — это успех скрипта. Вознаграждение равно 1, если клиент подписывается на новый план или покупает новый продукт, и 0 в противном случае. Например, три скрипта для звонков с коэффициентами конверсии 0,1, 0,3 и 0,7 имеют успехи, следующие распределению Бернулли с ожидаемыми значениями 0,1, 0,3 и 0,7 соответственно.

Популярной стратегией для задачи о многоруком бандите является алгоритм Upper Confidence Bound (UCB). Он назначает верхнюю границу уверенности ожидаемому вознаграждению каждой рукоятки (скрипта для звонков) и играет с рукояткой с наивысшей верхней границей уверенности.

Важность бюджета

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

Случайная продолжительность звонка

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

Наше решение: асимметричные доверительные интервалы

Наша стратегия ω-UCB устраняет недостатки ранее описанных решений. Хотя мы начинаем с того же соотношения UCB ᵢʳ /LCB ᵢᶜ, что и составная стратегия, мы используем другой метод для вычисления этих границ. Наши доверительные интервалы более точны и остаются в пределах поддержки вознаграждений или затрат.

Заключительные мысли

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

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

Далее, это обсуждение было сосредоточено на выборе лучшего скрипта для среднего или репрезентативного клиента. Вероятно, разные скрипты будут лучше работать для разных групп клиентов. Лучший скрипт может различаться в зависимости от группы. Простой подход — сегментировать клиентов и рассматривать каждую комбинацию «сегмент-скрипт» как отдельную рукоятку в алгоритме Budgeted MAB, который мы описали.

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