Запуск простого МРБ-эксперимента и интерпретация результатов - Быстрый старт: Многорукие бандиты в A/Б тестировании - Qpel.AI

Запуск простого МРБ-эксперимента и интерпретация результатов

Итак, вы готовы запустить свой первый эксперимент с многорукими бандитами (МРБ)! Вы уже знаете, что такое «руки» и «награды», и как подготовить данные. Теперь давайте соберём всё это вместе.

Запускаем МРБ-эксперимент: пошаговая инструкция

Представьте: вы хотите протестировать три варианта заголовка для рекламного объявления (A, B, C). Ваша цель — получить максимум кликов (CTR).

1. Выберите алгоритм

Для бинарных наград (клик или не клик) Thompson Sampling — отличный выбор.

Если пишете на Python, вам понадобятся параметры alpha и beta для каждого варианта. На старте установите их в 1.

# Инициализация для трех заголовков
variants = ['Заголовок A', 'Заголовок B', 'Заголовок C']

# alpha: количество успехов + 1
# beta: количество неудач + 1
# На старте все варианты равны
alpha = [1] * len(variants)
beta = [1] * len(variants)

2. Распределите трафик

Каждый раз, когда пользователь видит объявление, вам нужно решить, какой вариант ему показать. Thompson Sampling делает это так: он «сэмплирует» значение из бета-распределения для каждого варианта и выбирает тот, у кого значение выше.

import numpy as np

def choose_variant(alpha_params, beta_params):
    """Выбирает вариант на основе Thompson Sampling."""
    sampled_probabilities = [np.random.beta(a, b) for a, b in zip(alpha_params, beta_params)]
    chosen_index = np.argmax(sampled_probabilities)
    return chosen_index, variants[chosen_index]

# Пример: выбираем вариант для нового пользователя
chosen_index, chosen_variant = choose_variant(alpha, beta)
print(f"Показываем вариант: {chosen_variant}")

3. Собирайте и обновляйте награды

Пользователь взаимодействовал с вариантом (кликнул или нет)? Вы получили «награду». Используйте её, чтобы обновить параметры alpha и beta для этого варианта.

  • Кликнул (успех): alpha[chosen_index] += 1
  • Не кликнул (неудача): beta[chosen_index] += 1
# Допустим, пользователь кликнул
user_clicked = True # Или False

if user_clicked:
    alpha[chosen_index] += 1
else:
    beta[chosen_index] += 1

print(f"Обновленные параметры для {chosen_variant}: alpha={alpha[chosen_index]}, beta={beta[chosen_index]}")

Важно: В реальной системе эти шаги (выбор варианта и обновление параметров) происходят постоянно, с каждым новым пользователем и его действием.

4. Интерпретируйте результаты

В отличие от классического A/Б-теста, где вы ждёте статистической значимости, МРБ постоянно адаптируется. Вот на что стоит смотреть:

  • Распределение трафика: Со временем МРБ будет направлять больше трафика на самые эффективные варианты. Если один вариант явно лучше, он получит большинство показов.
  • Средняя награда (CTR, конверсия): Отслеживайте общую среднюю награду. Она должна расти или стабилизироваться на высоком уровне.
  • Параметры alpha и beta (для Thompson Sampling): Чем больше alpha по сравнению с beta для варианта, тем выше его эффективность.

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

  • Заголовок A: alpha=1000, beta=9000 (CTR ~10%)
  • Заголовок B: alpha=1500, beta=8500 (CTR ~15%)
  • Заголовок C: alpha=500, beta=9500 (CTR ~5%)

Очевидно, Заголовок B — самый эффективный. Система будет отдавать ему предпочтение.

Совет: Не ждите «окончания» эксперимента, как в A/Б. МРБ работает непрерывно. Остановите его, когда увидите явного лидера или если нужно добавить новые варианты.

Мониторинг и дальнейшие шаги

Запустили эксперимент? Отлично! Теперь важно постоянно следить за его работой. Как понять, что всё идёт по плану? Какие метрики смотреть? И что делать, если что-то пошло не так? Об этом поговорим в следующем уроке, где разберём ключевые метрики и типичные проблемы.