Multi-armed bandit или A/B-тест: как выбирать способ ротации креативов

Когда использовать A/B-тест, а когда multi-armed bandit для креативов: цель, regret, дрейф, задержка, exploration, атрибуция и проверка политики.

Оглавление20 разделов

A/B-тест и multi-armed bandit решают близкие, но не одинаковые задачи. Первый обычно жертвует частью краткосрочного результата ради чистого сравнения и решения для будущего. Второй старается уменьшить regret во время работы, постепенно направляя больше трафика к перспективным вариантам. Если команда хочет узнать, какая концепция переносится на следующий месяц, адаптивная ротация может осложнить ответ; если каждый показ дорог и среда быстро меняется, фиксированное равенство может быть слишком затратным.

Прямой ответ

Сначала выберите цель: оценка эффекта, выбор победителя или максимизация текущего результата. Затем учтите задержку conversion, минимальную exploration, drift и стоимость ошибки. Bandit запускают только после offline simulation и A/A-проверки логирования propensity.

1. Три разные цели

Estimation требует точной оценки различий, best-arm identification — выбора лидера, regret minimization — максимального результата во время обучения. Один алгоритм не оптимален для всех целей.

Запишите приоритет и горизонт до выбора метода.

Полезно оформить decision memo. Если креативы живут три дня и каждый показ дорог, regret может быть главным. Если победитель станет шаблоном на квартал, нужна надёжная оценка. Если задача — найти две перспективные концепции для следующего этапа, best-arm identification важнее текущего дохода. Без такого выбора команда оценивает bandit по метрике, которую он не оптимизировал.

2. Когда A/B проще и сильнее

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

Цена — трафик, который продолжает получать слабый вариант до завершения.

A/B-тест предпочтителен, когда важна несмещённая оценка конкретного контраста и решение можно подождать. Фиксированное распределение упрощает диагностику: различия в аудитории, времени и доставке легче заметить, а интервал имеет заранее понятную интерпретацию.

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

3. Когда bandit имеет смысл

Адаптация полезна при частых решениях, достаточном потоке, быстро наблюдаемом reward и коротком сроке жизни вариантов.

Если reward редкий и созревает неделями, алгоритм долго обучается на неполных proxy.

Перед внедрением оцените expected lifetime каждого arm и скорость накопления reward. Если вариант успевает устареть раньше, чем получит зрелую обратную связь, адаптивная политика будет в основном реагировать на proxy. В таком случае пакетное экспертное тестирование или fixed allocation может быть честнее и дешевле инфраструктурно.

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

4. Выберите reward

CTR частый, но может оптимизировать любопытство. FTD ближе к бизнесу, но редкий и запаздывает. Predicted value требует калиброванной модели.

Reward должен соответствовать цели и иметь guardrails по downstream качеству.

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

5. Задержка обратной связи

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

Нужна модель delayed feedback или зрелые батчи.

Используйте pending reward ledger. Для каждого показа алгоритм знает, что окно ещё не закрылось, а не присваивает ноль. Обновление policy может происходить батчами после watermark. Сравните несколько моделей lag на истории; слишком агрессивный прогноз создаёт feedback loop, а полное ожидание замедляет адаптацию.

6. Минимальная exploration

Без нижнего порога arm может почти исчезнуть после ранней случайности и никогда не восстановиться. Exploration обеспечивает наблюдаемость и адаптацию к изменению.

Размер зависит от риска и drift; универсального процента нет.

7. Холодный старт

Новый креатив не имеет истории. Prior, forced exploration или отдельный пилот определяют его шанс.

Prior калибруют на прошлых сопоставимых концепциях, не на лучших победителях.

8. Non-stationarity

Аудитория, аукцион и fatigue меняются. Среднее за весь срок может быть нерелевантно текущему состоянию. Sliding window или discount помогают, но увеличивают шум.

Версия политики и момент изменений сохраняются.

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

9. Контекстные bandits

Устройство, placement или GEO могут менять лучший arm. Contextual policy выбирает вариант условно, но требует больше данных и строгой защиты от leakage.

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

10. Propensity logging

Для каждого показа храните probability назначения каждого доступного arm, chosen arm, policy version и context. Без propensity последующий unbiased анализ сильно ограничен.

Лог должен отражать фактическую вероятность после всех фильтров.

Логирование тестируют инвариантами: probability каждого eligible arm неотрицательна, сумма равна единице, chosen arm имеет положительную вероятность, policy version известна. При фильтрации недопустимых arms вероятности пересчитываются и именно итоговый вектор сохраняется. Потеря propensity переводит период в режим, непригодный для causal/off-policy оценки.

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

11. Eligibility set

Не каждый креатив допустим для каждого GEO, формата и аудитории. Сначала применяются жёсткие ограничения, затем bandit выбирает среди eligible arms.

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

12. Frequency и пользовательский опыт

Алгоритм может часто показывать лидера одному пользователю. Frequency и последовательность сообщений контролируются отдельным слоем.

Reward не должен поощрять раздражающий повторный контакт.

13. Бюджет и аукцион

Изменение доли креатива может изменить CPM и доступный placement. Наблюдаемый reward включает реакцию платформенного алгоритма.

Отчёт показывает не только outcome, но и delivery, bid и состав.

14. Offline replay и его ограничения

Исторический replay возможен только для действий, которые имели достаточную вероятность в логирующей политике. Для неизвестного arm нет контрфактического reward.

Используйте importance weighting осторожно и контролируйте большие веса.

Importance weight равен отношению вероятности новой и логирующей политики; при почти нулевой старой вероятности вес становится огромным и оценка нестабильна. Ограничение весов снижает variance, но вводит bias. Отчёт показывает effective sample size и sensitivity к clipping, а не одну точку.

15. Симуляция

Проверьте нулевой сценарий, малый эффект, delayed reward, drift, outlier и arm replacement. Считайте regret, долю трафика, ложное закрепление и время восстановления.

Запускайте production-код политики в симуляции, а не упрощённую формулу.

Реалистичный simulator включает распределение контекстов, зависимость CPM от arm, delay, fatigue и изменения baseline. Он не обязан идеально имитировать рынок; его задача — обнаружить режимы, где policy опасно закрепляется или перестаёт исследовать. Сценарии и ожидаемые свойства хранятся как regression tests перед каждой новой версией.

16. Shadow mode

Политика рекомендует arm, но реальное назначение остаётся прежним. Сравните распределение, eligibility, latency и стабильность без риска.

Shadow не оценивает реальный reward выбранного действия, зато ловит инженерные ошибки.

17. Canary и stop-rule

Начните с ограниченной кампании и лимита. Остановка срабатывает при потере логов, аномальной концентрации, ухудшении guardrail или неизвестной версии.

Fallback policy должна быть простой и проверенной.

Добавьте maximum allocation change per update, чтобы одна аномальная порция данных не перевела весь поток. Rate limit политики действует вместе с exploration floor. Если reward pipeline задержан, распределение замораживается на последней проверенной версии, а не продолжает обучаться на нулях. Все автоматические защиты видимы в журнале решения.

18. Анализ результата

Bandit распределяет трафик неслучайно и неравномерно, поэтому raw mean по arm смещён составом и временем. Анализ использует логированные propensity и выбранный estimand.

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

19. Смена креативов

Добавление и удаление arms меняет пространство решений. Новая concept version не наследует историю автоматически.

Архив сохраняет причины остановки и политику на момент показа.

20. Вывод

A/B-тест выбирают для ясного сравнения и будущего решения, bandit — для адаптивного управления текущим потоком при качественном reward. Успешный bandit требует delayed feedback, exploration, propensity logging, simulation и guardrails.

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

Операционный dashboard bandit должен показывать не только reward: долю каждого arm, exploration floor, pending outcomes, eligibility exclusions, propensity completeness, drift и guardrails. Если владелец не может объяснить резкое изменение доли конкретного креатива через эти сигналы, автоматизация слишком непрозрачна для полного бюджета.

Адаптивность не оправдывает непрозрачность

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

Станьте партнёром и начните работать

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

СТАТЬ ПАРТНЁРОМ

Связанные материалы

Все статьи
Креативы

Производственная очередь креативов: как учитывать время модерации и не останавливать тесты

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

Арбитраж трафика

Как начать арбитраж трафика: первый цикл от выбора задачи до разбора результата

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

Источники трафика

Источники трафика в арбитраже: как сравнивать поиск, соцсети, native, push и in-app

Как выбирать источник трафика для арбитража: намерение пользователя, аукцион, таргетинг, модерация, креатив, атрибуция, качество и стоимость теста.