Запуск простого МРБ-эксперимента и интерпретация результатов
Итак, вы готовы запустить свой первый эксперимент с многорукими бандитами (МРБ)! Вы уже знаете, что такое «руки» и «награды», и как подготовить данные. Теперь давайте соберём всё это вместе.
Запускаем МРБ-эксперимент: пошаговая инструкция
Представьте: вы хотите протестировать три варианта заголовка для рекламного объявления (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/Б. МРБ работает непрерывно. Остановите его, когда увидите явного лидера или если нужно добавить новые варианты.
Мониторинг и дальнейшие шаги
Запустили эксперимент? Отлично! Теперь важно постоянно следить за его работой. Как понять, что всё идёт по плану? Какие метрики смотреть? И что делать, если что-то пошло не так? Об этом поговорим в следующем уроке, где разберём ключевые метрики и типичные проблемы.