Алгоритм многорукий бандит Яндекса - это способ автоматически распределять показы и трафик между вариантами (объявлениями, ставками, позициями), усиливая те, что дают больше целевых действий. Он непрерывно учится на кликах и конверсиях, снижая долю неэффективных вариантов без жёстких и долгих A/B‑тестов.
Краткая суть метода многорукого бандита в ранжировании
- Каждый вариант (объявление, ставка, позиция, блок) рассматривается как «рука» однорукого бандита.
- Система одновременно показывает несколько вариантов, но чаще те, что уже показали лучшую конверсию или CTR.
- Часть трафика всегда оставляется на исследование новых или слабозакрытых вариантов.
- Вес вариантов пересчитывается по фактическим кликам и конверсиям в режиме почти реального времени.
- В Яндекс Рекламе это работает как автоматическая оптимизация ставок и показов, без ручного перебора.
- Основной эффект - многорукий бандит Яндекс улучшение конверсий и ускорение выхода на рабочую стратегию.
Математическая постановка задачи и целевая метрика
Формально задача многорукого бандита - выбрать на каждом шаге одну из нескольких альтернатив (рук), чтобы максимизировать суммарную награду за длительный период. В контексте Яндекса наградой может быть клик, конверсия, доход от рекламодателя или комбинация сигналов.
Ключевое отличие от классического A/B‑теста: алгоритм не делит трафик жёстко 50/50 или 33/33/33, а каждый раз пересчитывает вероятности показа. Это позволяет быстрее направлять показы на более успешные варианты, одновременно оставляя небольшой процент трафика на исследование.
Целевая метрика задаётся системой: для Яндекс Директ это может быть конверсия в заявку, целевая цена конверсии или доход; для поискового ранжирования - вероятность клика, полезность ответа, поведенческие сигналы. Всё, что видит алгоритм, сводится к «награде за показ», которую он пытается максимизировать.
Когда вы используете алгоритм многорукий бандит Яндекс Директ, фактические ставки, расположение объявлений и распределение бюджета перестают быть жёстко заданными: система динамически смещает трафик к тем комбинациям таргетинга, креативов и фраз, которые дают более высокую ожидаемую награду.
Архитектура интеграции в ранжировщик Яндекса
- Формирование набора действий. Для поиска это различные места показа и документы, для Яндекс Рекламы - объявления, креативы, ставки, стратегии; каждый вариант - отдельная рука.
- Онлайн‑оценка ожидаемой награды. Перед показом система вычисляет для каждой руки прогноз награды: вероятность клика, доход, вероятность целевого действия с учётом истории показов.
- Стохастический выбор руки. Ранжировщик не всегда выбирает самый ожидаемо выгодный вариант; часть вероятности даётся на исследование других рук, чтобы не застрять в локальном максимуме.
- Запись фактического исхода. После показа система фиксирует клик, конверсию, отказ, время на сайте и другие события, превращая их в численную награду.
- Онлайн‑обновление модели. Параметры распределений (для UCB или Томпсона) обновляются по каждому действию. Этим достигается непрерывная оптимизация ставок в Яндекс Директ многорукий бандит без жёстких «итераций» кампаний.
- Интеграция с ограничениями. В ранжировщик вшиты бюджетные лимиты, условия показов, фильтры качества. Бандитский слой работает поверх этих ограничений, а не вместо них.
Стратегии выбора действия: жадность, UCB и метод Томпсона
Практически все схемы выбора действия в Яндексе - вариации на тему балансировки исследования и эксплуатации. Конкретная формула может отличаться между поиском, РСЯ и Яндекс Директ, но инженерный смысл одинаков.
- Жадная стратегия с эпсилон‑рандомизацией. Большинство показов уходит на лучший по текущей оценке вариант, небольшая доля тратится на случайный выбор других рук. Это базовый уровень, часто используемый для дешёвой засечки новых креативов и таргетингов.
- UCB (Upper Confidence Bound). Каждому варианту считается не только средняя награда, но и доверительный интервал. Чем меньше показов, тем шире интервал, и тем выше шанс, что эта рука будет выбрана для исследования. Хорошо подходит для ранжирования документов в блоках и распределения трафика между слотами.
- Метод Томпсона. Для каждой руки поддерживается распределение вероятности награды (например, бета‑распределение для кликов). На каждом шаге из распределений сэмплируются значения и выбирается рука с максимальным сэмплом. Это даёт естественный стохастический баланс исследования и эксплуатации.
- Гибриды с учётом стоимости. В рекламе важна не только вероятность клика, но и цена клика/конверсии. Поэтому UCB и Томпсон модифицируют так, чтобы максимизировать не CTR, а ожидаемую прибыль или CPA, а также учитывать ограничения бюджета кампании.
- Стратегии для групп объявлений. При настройке стратегии многорукий бандит Яндекс Директ система часто оптимизирует не одну руку, а группу: фраза + ставка + креатив. Это даёт более реалистичную картину, но увеличивает размер пространства действий.
| Подход | Как распределяется трафик | Практический эффект |
|---|---|---|
| Классический A/B‑тест | Фиксированно (например, 50/50), до конца теста | Просто интерпретировать, но долго «сжигает» трафик на слабый вариант |
| Многорукий бандит | Динамически, больше трафика уходит на сильные варианты | Быстрее рост метрики, меньше потерь на заведомо плохих руках |
Мини‑сценарии использования в Яндекс Рекламе и ранжировании
- Ротация креативов в группе объявлений. Вы грузите 3-5 объявлений, задаёте цель «конверсии». Алгоритм многорукий бандит Яндекс Директ в первые дни крутит их более равномерно, затем отдает всё больше трафика тем, что лучше приводят заявки по нужной цене.
- Оптимизация ставок по площадкам РСЯ. Без бандита вы вручную режете площадки. С бандитом часть трафика постоянно уходит на «сомнительные» площадки для проверки, и если они показывают потенциал, система сама поднимает их долю и эффективную ставку.
- Перестановка документов внутри блока выдачи. В поиске несколько релевантных документов могут быть обменяемы по смыслу. Бандит подбирает конкретный порядок в блоке так, чтобы максимизировать клики и полезные взаимодействия, а не только «сырую» релевантность.
- Эксперименты с посадочными страницами. Вместо жёсткого A/B вы подключаете несколько лендингов к одной кампании. Бандит постепенно закрепляет трафик за наиболее конверсионными, продолжая иногда тестировать альтернативы, чтобы не пропустить смену поведения аудитории.
Учет контекста и моделирование неопределённости
Реальные пользователи и запросы сильно отличаются друг от друга, поэтому в продакшене используется контекстный многорукий бандит. Контекстом служат запрос, пользовательские признаки, тип устройства, время, география, история взаимодействий и другие факторы, которые позволяют подбирать не просто «лучший в среднем» вариант, а лучший для конкретного показа.
Моделирование неопределённости обязательно: алгоритм должен понимать, насколько он уверен в оценке награды по каждой руке в данном контексте, чтобы не переобучаться на случайный успех и не замораживать исследование новых вариантов.
Преимущества контекстного подхода
- Лучшее соответствие объявления или документа конкретному пользователю и ситуации запроса.
- Возможность «вытаскивать» нишевые, но очень эффективные связки (гео + устройство + время + креатив).
- Более безопасное исследование: риск «слива» бюджета снижается, потому что рискованные действия выдаются только в тех контекстах, где у них выше ожидаемый выигрыш.
- Быстрая адаптация к изменениям поведения аудитории (сезонность, акции, новые тренды запросов).
Ограничения и подводные камни
- Сложность модели растёт с размером контекста; без регуляризации возможна переоптимизация под шум.
- Нужен устойчивый поток данных; в малых кампаниях алгоритм может банально не успеть обучиться.
- Контекст не всегда доступен полностью (ограничения по приватности, технические задержки), что снижает эффективность.
- Неправильно выбранная целевая метрика (например, клик вместо конверсии) приводит к росту «мусорного» трафика при внешне хороших показателях.
Сбор сигналов, рандомизация экспериментов и коррекция смещений
Чтобы многорукий бандит работал корректно, важна не только формула выбора руки, но и то, какие именно данные он видит. Ошибки на уровне сигналов и логирования легко ломают даже самую умную стратегию.
- Смещение из‑за логов после фильтрации. Если в модель попадают только «чистые» логи после антифрода, она не видит часть реальных показов и может завышать ожидания по ряду рук.
- Неполная или нерегулярная рандомизация. Попытка «подкрутить» алгоритм вручную, отключая якобы слабые варианты слишком рано, ломает баланс исследования и эксплуатации и ведёт к локальным максимумам.
- Отсутствие корректировки по задержанным конверсиям. В контекстной рекламе конверсии часто приходят с задержкой; если не учитывать лаги, алгоритм накажет долгие, но ценные в итоге цепочки.
- Перекос в сторону дешёвых кликов. Если целевая функция настроена только на цену клика, а не на ценность действия, алгоритм уводит трафик в сегменты с низкой ценой, но слабой окупаемостью.
- Неправильная атрибуция. При сложных воронках bandit может «приписывать» себе результат других каналов, если не настроена корректная модель атрибуции конверсий.
Ограничения на практике: стабильность, масштабирование и эвристики
На реальном трафике идеальный математический многорукий бандит приходится немного «приземлять» инженерными ограничениями. Иначе возможны скачки показов, нестабильность ставок и неожиданные просадки по важным рекламодателям или документам.
Типичный инженерный контур в Яндекс Рекламе при включенной автостратегии можно упростить до следующего псевдокода:
// псевдокод, иллюстрирующий логику выбора ставки/объявления
for each auction:
context = build_context(user, query, time, placement)
arms = get_available_arms(campaign, context) // объявления, ставки, креативы
for arm in arms:
prior = load_bandit_state(arm, context_segment)
score = sample_or_ucb(prior, exploration_rate)
score = apply_business_rules(score, budgets, limits)
chosen_arm = argmax(score)
show(chosen_arm)
reward = observe_click_and_conversion(chosen_arm)
update_bandit_state(chosen_arm, context_segment, reward)
На уровне интерфейса рекламодатель видит это упрощённо: выбирает автоматическую стратегию, задаёт цель и ограничения бюджета. Дальше как работает алгоритм многорукий бандит в Яндекс Рекламе - уже внутренняя логика платформы: перераспределение показов, адаптивные ставки, отключение очевидно слабых связок без ручного участия.
Когда вы включаете автоматическую настройку стратегии многорукий бандит Яндекс Директ, практические рекомендации сводятся к трём действиям: дать системе достаточно вариантов (объявлений, фраз, посадочных), обеспечить корректную передачу конверсий и не «дёргать» кампанию слишком часто, чтобы модель успевала доучиваться.
Ответы на типовые технические вопросы по внедрению
Можно ли использовать многорукий бандит в очень маленьких кампаниях?
Технически да, но эффективность будет ограничена: алгоритму нужен поток данных, чтобы отличать шум от закономерностей. В малых кампаниях лучше сократить число вариантов и упростить цель (например, оптимизировать сначала CTR, затем переходить к конверсии).
Нужно ли выключать слабые объявления вручную при автооптимизации?
Чаще всего нет: система сама режет долю слабых объявлений. Имеет смысл выключать только явно некорректные варианты (ошибки в тексте, промах в оффере), а не те, что просто пока хуже работают - за них отвечает алгоритм.
Как быстро многорукий бандит адаптируется к изменениям креативов?

При появлении нового объявления или лендинга алгоритм выделяет им исследовательский трафик. Скорость адаптации зависит от объёма трафика и частоты конверсий: чем интенсивнее поток, тем быстрее система сможет перераспределить показы в пользу успешного варианта.
Что важнее для алгоритма: клики или конверсии?
Зависит от выбранной цели. При оптимизации по кликам ядром награды становится CTR, при цели по конверсии - вероятность целевого действия и его ценность. Для коммерческих кампаний разумнее ориентировать алгоритм именно на конверсии, а не только на клики.
Как понять, что алгоритм стабилизировался и его можно «не трогать»?
Смотрите на динамику целевой метрики и распределение трафика по вариантам. Когда доли вариантов перестают сильно прыгать, а метрика держится на устойчивом уровне или растёт медленно, это признак, что бандит вышел в рабочий режим.
Имеет ли смысл параллельно запускать классический A/B‑тест?
Да, но аккуратно. Если вам важно именно статистически чистое сравнение двух подходов, A/B‑тест лучше запускать на верхнем уровне (стратегия vs стратегия), а внутри каждой ветки уже позволять многорукому бандиту оптимизировать детали.
Что делать, если автоматическая оптимизация даёт хуже результат, чем ручные ставки?
Проверьте корректность передачи конверсий, настройки целей и ограничения бюджета. Затем дайте алгоритму время на обучение с неизменными условиями. Если после стабилизации результат всё ещё хуже, можно вернуться к ручному управлению или сменить тип автостратегии.


