Многорукие бандиты в A/B тестах — зачем они нужны
Серия постов про адаптивные эксперименты. Часть 1 — зочем
Все подписчики знают, как устроен стандартный AB тест: поделили трафик поровну, подождали, посмотрели результат, сорвали куш 😺 Работает отлично, пока вариантов два и трафика достаточно. Но допустим, нам надо протестировать рекомендательный алгоритм с тремя параметрами по три значения — это 9 комбинаций Делим трафик на 9 равных частей, каждая получает ~11% трафика, и чтобы набрать мощность на каждую, ждёшь три-четыре недели. При этом уже через пару дней можем увидеть ситуацию, когда 4 из 9 вариантов явно проигрывают, но трафик на них всё равно идёт, потому что AB-тест так устроен, что распределение фиксировано до конца
Из-за такой конфигурации мы получаем двойной урон, так как тратим время и при этом показываем пользователям заведомо плохие варианты (теряем в метриках). В индустрии это называют exploration-exploitation tradeoff — нужно балансировать между изучением вариантов (exploration) и использованием лучшего из известных (exploitation). Наш AB тест это чистый exploration: изучаем все варианты одинаково до самого конца, а exploit начинается только после запуска победителя в прод
Многорукий бандит (multi-armed bandit) — это алгоритм, который делает exploration и exploitation одновременно. Он смотрит на промежуточные результаты и адаптивно перераспределяет трафик, перспективным вариантам даёт больше, аутсайдерам — меньше
Когда это реально нужно:
➖ Много вариантов (5+) При 2–3 вариантах обычный AB справляется, но при 9–10 адаптивный трафик экономит недели
➖ Цена ошибки высока Если каждый показ плохого варианта — это потерянная покупка, бандит минимизирует количество пользователей, увидевших неоптимальный вариант. Stitch Fix, Netflix, Amazon используют бандитов именно поэтому — regret (суммарные потери от показа неоптимальных вариантов) при бандите ниже, чем при стандартном AB
Когда обычный AB лучше:
➖ Нужна чистая оценка эффекта Бандит хорошо находит лучший вариант, но плохо отвечает на вопрос "а на сколько именно он лучше", потому что выборки неравные и зависимые. Если тебе нужна точная оценка размера эффекта для бизнес-кейса, то не крутим бандита
➖ Высокие требования к статзначимости Бандиты из коробки не контролируют false positive rate так, как это делает классический тест с фиксированным alpha (про это будет отдельный пост в серии)
В следующей части — как именно работают три главных алгоритма: epsilon-greedy, UCB и Thompson Sampling