A/B тестирование

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: {{well|Статья написана с использованием LLM '''GPT-5.5 Thinking''' и проверена участником [[Участник:Vladimir Garanin|Vladimir Ga...)
 
Строка 1: Строка 1:
-
{{well|Статья написана с использованием LLM '''GPT-5.5 Thinking''' и проверена участником [[Участник:Vladimir Garanin|Vladimir Garanin]] }}
+
{{well|Статья написана с использованием LLM '''GPT-5.5 Thinking''' и проверена участником [[Участник:Vladimir Garanin|Vladimir Garanin]]}}
-
+
-
'''A/B-тестирование''' (англ. ''A/B testing'') — метод статистического сравнения двух или более вариантов продукта, интерфейса или алгоритма, основанный на случайном разделении пользователей на независимые группы. Целью A/B-тестирования является определение того, приводит ли изменение системы к статистически значимому улучшению выбранной метрики.
+
-
A/B-тестирование является одним из основных инструментов принятия решений в интернет-сервисах, рекомендательных системах, [[Машинное обучение|машинном обучении]], цифровом маркетинге и разработке программного обеспечения. В отличие от субъективной оценки качества изменений, A/B-тестирование позволяет принимать решения на основании статистического анализа экспериментальных данных.
+
'''A/B-тестирование''' (англ. ''A/B testing'') — метод статистического сравнения двух или более вариантов продукта, интерфейса или алгоритма, основанный на случайном разделении пользователей на независимые группы. Целью A/B-тестирования является определение того, приводит ли изменение системы к статистически значимому улучшению выбранной [[Метрика|метрики]].
 +
 
 +
A/B-тестирование является одним из основных инструментов принятия решений в [[Машинное обучение|машинном обучении]], [[Рекомендательная система|рекомендательных системах]], [[Информационный поиск|информационном поиске]], цифровом маркетинге и разработке программного обеспечения. В отличие от субъективной оценки качества изменений, A/B-тестирование позволяет принимать решения на основании [[Статистический вывод|статистического вывода]] и экспериментальных данных.
== Основная идея ==
== Основная идея ==
-
Предположим, что необходимо проверить, улучшает ли новый вариант страницы регистрацию пользователей.
+
Предположим, что необходимо проверить, улучшает ли новая версия страницы регистрацию пользователей.
Создаются два варианта системы:
Создаются два варианта системы:
-
* '''вариант A''' — текущая версия (контроль);
+
* '''вариант A''' — текущая версия продукта (контрольная группа);
-
* '''вариант B''' — новая версия (эксперимент).
+
* '''вариант B''' — новая версия (экспериментальная группа).
Каждый пользователь случайным образом попадает только в одну из групп. После накопления достаточного количества наблюдений сравниваются значения заранее выбранной метрики.
Каждый пользователь случайным образом попадает только в одну из групп. После накопления достаточного количества наблюдений сравниваются значения заранее выбранной метрики.
Строка 18: Строка 18:
Если различие оказывается статистически значимым, принимается решение о внедрении новой версии.
Если различие оказывается статистически значимым, принимается решение о внедрении новой версии.
-
Главное преимущество такого подхода состоит в том, что обе версии работают одновременно при одинаковых внешних условиях, поэтому влияние сезонности, времени суток и других факторов существенно уменьшается.
+
Главное преимущество такого подхода состоит в том, что обе версии работают одновременно при одинаковых внешних условиях. Благодаря этому влияние сезонности, времени суток, рекламных кампаний и других факторов существенно уменьшается.
== Формальная постановка ==
== Формальная постановка ==
Строка 26: Строка 26:
Для контрольной группы
Для контрольной группы
-
::<tex>X_A \sim P_A,</tex>
+
::<tex>X_A\sim P_A,</tex>
-
для экспериментальной
+
для экспериментальной группы
-
::<tex>X_B \sim P_B.</tex>
+
::<tex>X_B\sim P_B.</tex>
Необходимо определить, различаются ли распределения
Необходимо определить, различаются ли распределения
Строка 40: Строка 40:
::<tex>P_B.</tex>
::<tex>P_B.</tex>
-
Чаще всего проверяется различие математических ожиданий
+
Во многих задачах достаточно сравнить их [[Математическое ожидание|математические ожидания]]
::<tex>\mu_A=E[X_A],</tex>
::<tex>\mu_A=E[X_A],</tex>
Строка 46: Строка 46:
::<tex>\mu_B=E[X_B].</tex>
::<tex>\mu_B=E[X_B].</tex>
-
== Нулевая и альтернативная гипотезы ==
+
Если
 +
 
 +
::<tex>\mu_A=\mu_B,</tex>
 +
 
 +
то изменение не оказывает влияния на исследуемую метрику.
 +
 
 +
== Статистические гипотезы ==
-
Любой A/B-тест начинается с формулировки статистических гипотез.
+
Любой A/B-тест начинается с формулировки [[Статистическая гипотеза|статистических гипотез]].
-
'''Нулевая гипотеза'''
+
'''[[Нулевая гипотеза|Нулевая гипотеза]]'''
::<tex>H_0:\mu_A=\mu_B.</tex>
::<tex>H_0:\mu_A=\mu_B.</tex>
-
Она утверждает, что изменение никак не повлияло на исследуемую метрику.
+
Она утверждает, что различий между вариантами не существует.
-
'''Альтернативная гипотеза'''
+
'''[[Альтернативная гипотеза|Альтернативная гипотеза]]'''
::<tex>H_1:\mu_A\neq\mu_B.</tex>
::<tex>H_1:\mu_A\neq\mu_B.</tex>
-
или, если ожидается улучшение только в одну сторону,
+
Если заранее предполагается улучшение только в одном направлении, используют одностороннюю гипотезу
::<tex>H_1:\mu_B>\mu_A.</tex>
::<tex>H_1:\mu_B>\mu_A.</tex>
-
Далее по экспериментальным данным проверяется, достаточно ли оснований отвергнуть нулевую гипотезу.
+
После завершения эксперимента производится [[Проверка статистических гипотез|проверка статистической гипотезы]], позволяющая определить, согласуются ли наблюдаемые данные с нулевой гипотезой.
-
== Случайное разбиение ==
+
== Случайное распределение пользователей ==
-
Одним из важнейших требований A/B-тестирования является случайное распределение пользователей между вариантами.
+
Корректность A/B-тестирования во многом определяется качеством случайного распределения пользователей между вариантами.
-
Если группы формируются случайно, то математическое ожидание всех внешних факторов оказывается одинаковым для обеих выборок. Благодаря этому наблюдаемое различие можно связать именно с тестируемым изменением.
+
При случайном распределении обе группы в среднем оказываются одинаковыми по всем факторам, кроме исследуемого изменения. Благодаря этому различия между группами можно интерпретировать как следствие тестируемого воздействия.
-
На практике пользователей распределяют с помощью случайной функции от постоянного идентификатора пользователя (например, User ID). Это гарантирует, что один и тот же пользователь всегда попадает в одну и ту же группу.
+
На практике распределение обычно осуществляется посредством хеширования постоянного идентификатора пользователя (например, User ID). Такой подход гарантирует, что пользователь всегда попадает в одну и ту же экспериментальную группу.
-
Нарушение случайности приводит к систематическому смещению результатов и делает выводы эксперимента недостоверными.
+
Если случайность нарушается, возникает [[Систематическая ошибка|систематическое смещение]], которое способно полностью исказить результаты эксперимента.
== Выбор метрики ==
== Выбор метрики ==
-
Перед запуском эксперимента необходимо определить метрику, по которой будет оцениваться результат.
+
До начала эксперимента необходимо определить основную метрику, по которой будет оцениваться успешность изменения.
-
Наиболее распространённые метрики:
+
Наиболее часто используются:
-
* конверсия;
+
* [[Конверсия|конверсия]];
-
* средний доход пользователя;
+
* средний доход на пользователя;
* число кликов;
* число кликов;
-
* время нахождения на сайте;
+
* время взаимодействия с сервисом;
* удержание пользователей;
* удержание пользователей;
* количество покупок;
* количество покупок;
-
* вероятность совершения целевого действия.
+
* вероятность выполнения целевого действия.
-
Метрика должна быть определена до начала эксперимента. Изменение основной метрики после просмотра результатов может привести к некорректным статистическим выводам.
+
Метрика должна быть определена заранее. Изменение основной метрики после просмотра результатов эксперимента нарушает корректность статистического анализа и увеличивает вероятность ложных выводов.
== Конверсия ==
== Конверсия ==
-
Одной из наиболее популярных метрик является конверсия.
+
Во многих интернет-сервисах основной метрикой является [[Конверсия|конверсия]].
Если
Если
Строка 104: Строка 110:
::<tex>k</tex>
::<tex>k</tex>
-
— число пользователей, выполнивших целевое действие,
+
— число пользователей, совершивших целевое действие,
то оценка конверсии равна
то оценка конверсии равна
Строка 110: Строка 116:
::<tex>\hat p=\frac{k}{n}.</tex>
::<tex>\hat p=\frac{k}{n}.</tex>
-
Например, если регистрацию прошли 320 пользователей из 4000,
+
Например, если регистрацию завершили 320 пользователей из 4000,
::<tex>\hat p=\frac{320}{4000}=0.08.</tex>
::<tex>\hat p=\frac{320}{4000}=0.08.</tex>
-
Именно сравнение двух таких вероятностей является наиболее распространённой задачей A/B-тестирования.
+
Одной из наиболее распространённых задач A/B-тестирования является сравнение именно двух вероятностей конверсии.
== Размер эффекта ==
== Размер эффекта ==
-
Даже если различие статистически значимо, оно может быть практически бесполезным.
+
Даже при наличии статистически значимого различия важно оценить его практическую ценность.
-
 
+
-
Поэтому различают два понятия:
+
-
 
+
-
* статистическая значимость;
+
-
* практическая значимость.
+
Например, увеличение конверсии с
Например, увеличение конверсии с
Строка 133: Строка 134:
::<tex>10.003\%</tex>
::<tex>10.003\%</tex>
-
может оказаться статистически значимым при очень большом числе пользователей, но практически никак не повлияет на бизнес.
+
может оказаться статистически значимым при очень большом объёме выборки, однако практически не повлиять на бизнес-показатели.
-
Поэтому вместе с проверкой гипотез обычно оценивают абсолютное и относительное изменение метрики.
+
Поэтому результаты A/B-теста обычно сопровождаются оценкой абсолютного и относительного прироста метрики, а также [[Доверительный интервал|доверительными интервалами]].
-
== Основные статистические критерии ==
+
== Статистические критерии ==
-
Выбор статистического критерия зависит от природы исследуемой метрики.
+
Выбор статистического критерия определяется природой исследуемой метрики.
Наиболее часто используются:
Наиболее часто используются:
-
* z-критерий для сравнения долей;
+
* [[Z-критерий]] — для сравнения долей;
-
* t-критерий Стьюдента для сравнения средних;
+
* [[Критерий Стьюдента]] — для сравнения средних значений;
-
* критерий χ² для категориальных данных;
+
* [[Критерий хи-квадрат]] — для категориальных данных;
-
* непараметрические критерии (например, критерий Манна—Уитни), если предположения параметрических методов нарушаются.
+
* [[Критерий Манна — Уитни]] — при нарушении предположений параметрических методов.
-
Все эти критерии позволяют вычислить вероятность получить наблюдаемое различие при условии справедливости нулевой гипотезы.
+
Все эти критерии позволяют вычислить вероятность наблюдать полученные данные при условии справедливости нулевой гипотезы.
-
== p-value ==
+
== P-value ==
-
Основным результатом статистического теста является '''p-value'''.
+
Результатом большинства статистических критериев является [[P-value|p-value]].
-
Это вероятность получить различие не меньше наблюдаемого при условии, что нулевая гипотеза верна.
+
Под p-value понимается вероятность получить наблюдаемое различие или ещё более сильное различие при условии, что нулевая гипотеза верна.
Если
Если
Строка 166: Строка 167:
— заранее выбранный уровень значимости (обычно 0.05),
— заранее выбранный уровень значимости (обычно 0.05),
-
то нулевая гипотеза отвергается.
+
нулевая гипотеза отвергается.
-
Важно понимать, что p-value '''не является''' вероятностью истинности нулевой гипотезы. Оно лишь показывает, насколько необычны полученные данные при предположении, что различий между вариантами нет.
+
Важно отметить, что p-value не является вероятностью истинности нулевой гипотезы. Оно лишь показывает, насколько необычными являются наблюдаемые данные при предположении отсутствия различий между вариантами.
== Доверительные интервалы ==
== Доверительные интервалы ==
-
Помимо проверки гипотез, в A/B-тестировании обычно вычисляют доверительные интервалы для оцениваемого эффекта. В отличие от одного лишь значения p-value, доверительный интервал показывает не только наличие статистически значимого различия, но и возможный диапазон его величины.
+
Помимо [[Проверка статистических гипотез|проверки гипотез]], при анализе результатов A/B-теста почти всегда вычисляют [[Доверительный интервал|доверительные интервалы]] для оцениваемого эффекта.
-
Например, если 95%-й доверительный интервал для прироста конверсии составляет от 1,2% до 3,8%, то экспериментальные данные согласуются именно с таким диапазоном улучшения.
+
В отличие от одного лишь значения [[P-value|p-value]], доверительный интервал показывает диапазон значений, с которым согласуются экспериментальные данные.
 +
 
 +
Например, если 95%-й доверительный интервал для прироста конверсии составляет от 1,2% до 3,8%, это означает, что наблюдаемые данные совместимы именно с таким диапазоном возможного улучшения.
Если доверительный интервал для разности средних или разности конверсий содержит ноль, статистически значимое различие обычно отсутствует.
Если доверительный интервал для разности средних или разности конверсий содержит ноль, статистически значимое различие обычно отсутствует.
 +
 +
Поэтому в современных публикациях рекомендуется приводить одновременно и значение p-value, и доверительный интервал.
== Ошибки первого и второго рода ==
== Ошибки первого и второго рода ==
-
Как и любой статистический критерий, A/B-тестирование связано с вероятностью ошибочных решений.
+
При проведении любого статистического эксперимента возможны ошибочные решения.
-
'''Ошибка первого рода''' возникает, когда нулевая гипотеза отвергается, хотя на самом деле различий между вариантами нет. Вероятность такой ошибки обозначается через
+
'''[[Ошибка первого рода|Ошибка первого рода]]''' возникает тогда, когда [[Нулевая гипотеза|нулевая гипотеза]] отвергается, хотя в действительности она верна.
 +
 
 +
Вероятность этой ошибки обозначается
::<tex>\alpha.</tex>
::<tex>\alpha.</tex>
-
Именно она задаётся уровнем значимости эксперимента.
+
Именно эта величина называется '''уровнем значимости'''.
-
'''Ошибка второго рода''' возникает, когда реально существующее улучшение не обнаруживается экспериментом.
+
'''[[Ошибка второго рода|Ошибка второго рода]]''' возникает в противоположной ситуации: эксперимент не обнаруживает реально существующее различие между вариантами.
Её вероятность обозначают
Её вероятность обозначают
Строка 193: Строка 200:
::<tex>\beta.</tex>
::<tex>\beta.</tex>
-
Вероятность успешно обнаружить существующий эффект называется '''мощностью теста''':
+
Вероятность успешно обнаружить существующий эффект называется '''мощностью статистического критерия''':
::<tex>Power=1-\beta.</tex>
::<tex>Power=1-\beta.</tex>
-
На практике обычно стремятся обеспечить мощность не ниже 80–90%.
+
При планировании экспериментов обычно стремятся обеспечить мощность не ниже 80–90%.
-
== Размер выборки ==
+
== Планирование размера выборки ==
-
До начала эксперимента желательно оценить необходимый объём данных.
+
Перед запуском A/B-теста желательно заранее оценить необходимый объём выборки.
-
Слишком маленькая выборка приводит к большой дисперсии оценок и высокой вероятности ошибки второго рода.
+
Если выборка слишком мала, дисперсия оценок оказывается высокой, а вероятность [[Ошибка второго рода|ошибки второго рода]] существенно возрастает.
-
Слишком большая выборка увеличивает стоимость эксперимента и может привести к обнаружению статистически значимых, но практически бесполезных различий.
+
Напротив, чрезмерно большие выборки увеличивают стоимость эксперимента и могут приводить к обнаружению статистически значимых, но практически несущественных различий.
-
Размер выборки зависит от нескольких факторов:
+
Размер необходимой выборки определяется несколькими факторами:
-
* уровня значимости;
+
* выбранным уровнем значимости;
-
* требуемой мощности теста;
+
* требуемой мощностью теста;
-
* дисперсии исследуемой метрики;
+
* дисперсией исследуемой метрики;
-
* минимального эффекта, который необходимо обнаружить.
+
* минимальным эффектом, который необходимо обнаружить (''Minimum Detectable Effect'', MDE).
-
Расчёт размера выборки является обязательным этапом планирования крупных A/B-экспериментов.
+
Расчёт необходимого объёма выборки является обязательным этапом проектирования крупных онлайн-экспериментов.
== Множественные сравнения ==
== Множественные сравнения ==
-
На практике часто сравнивают не два, а сразу несколько вариантов интерфейса.
+
Во многих практических задачах одновременно сравниваются не два варианта, а сразу несколько.
 +
 
 +
Если каждый вариант независимо проверяется при уровне значимости 0.05, вероятность хотя бы одного ложного обнаружения постепенно возрастает.
-
Если каждый вариант независимо проверяется при уровне значимости 0.05, вероятность хотя бы одного ложного обнаружения быстро возрастает.
+
Эта проблема известна как проблема [[Множественная проверка гипотез|множественных проверок гипотез]].
-
Для борьбы с этой проблемой используют методы коррекции множественных проверок:
+
Для её решения используются различные методы коррекции:
-
* поправку Бонферрони;
+
* [[Поправка Бонферрони]];
* метод Холма;
* метод Холма;
-
* контроль False Discovery Rate (FDR).
+
* контроль [[False Discovery Rate]] (FDR).
-
Без подобных поправок вероятность ложных выводов может оказаться значительно выше ожидаемой.
+
Без подобных корректировок вероятность ложноположительных результатов может значительно превышать заранее выбранный уровень значимости.
== Последовательное тестирование ==
== Последовательное тестирование ==
-
Распространённой ошибкой является ежедневный просмотр результатов эксперимента с немедленной остановкой после достижения статистической значимости.
+
Одной из наиболее распространённых ошибок является регулярный просмотр результатов эксперимента с последующей остановкой теста сразу после появления статистической значимости.
-
Такой подход нарушает предположения классических статистических критериев и существенно увеличивает вероятность ошибки первого рода.
+
Такой подход нарушает предположения классической [[Проверка статистических гипотез|проверки гипотез]] и существенно увеличивает вероятность [[Ошибка первого рода|ошибки первого рода]].
-
Для корректного досрочного завершения эксперимента применяются специальные методы последовательного анализа (''sequential testing''), учитывающие многократные проверки гипотез по мере накопления данных.
+
Для корректного досрочного завершения эксперимента применяются специальные методы '''последовательного тестирования''' (''Sequential Testing''), учитывающие многократную проверку гипотез по мере накопления наблюдений.
-
Современные платформы проведения экспериментов обычно реализуют такие методы автоматически.
+
Современные платформы проведения A/B-тестов обычно реализуют подобные алгоритмы автоматически.
== Практические ошибки ==
== Практические ошибки ==
-
На практике качество A/B-теста часто определяется не столько используемым статистическим критерием, сколько корректностью проведения эксперимента.
+
Даже при использовании корректных статистических методов результаты эксперимента могут оказаться недостоверными вследствие ошибок в организации исследования.
-
Наиболее распространённые ошибки:
+
Наиболее распространёнными являются:
-
* отсутствие случайного распределения пользователей;
+
* нарушение случайного распределения пользователей;
-
* слишком маленький размер выборки;
+
* недостаточный размер выборки;
* изменение основной метрики после начала эксперимента;
* изменение основной метрики после начала эксперимента;
* преждевременная остановка теста;
* преждевременная остановка теста;
-
* влияние одного пользователя сразу на несколько вариантов;
+
* попадание одного пользователя одновременно в несколько экспериментальных групп;
-
* одновременное проведение нескольких независимых экспериментов над одной и той же аудиторией;
+
* проведение нескольких независимых экспериментов на одной аудитории без учёта их взаимного влияния;
-
* игнорирование сезонности и внешних факторов.
+
* игнорирование сезонности, праздников или внешних факторов.
-
Даже при использовании корректного статистического критерия подобные ошибки могут сделать результаты эксперимента недостоверными.
+
Поэтому качественное проведение A/B-тестирования требует не только знания математической статистики, но и аккуратного проектирования эксперимента.
== Применение в машинном обучении ==
== Применение в машинном обучении ==
-
A/B-тестирование широко используется при внедрении моделей машинного обучения.
+
A/B-тестирование является стандартным инструментом оценки качества моделей [[Машинное обучение|машинного обучения]] после их разработки.
-
Типичные примеры:
+
Типичные области применения:
-
* сравнение двух рекомендательных систем;
+
* сравнение [[Рекомендательная система|рекомендательных систем]];
-
* оценка новой модели ранжирования поисковой выдачи;
+
* оценка новых алгоритмов [[Информационный поиск|ранжирования поисковой выдачи]];
-
* проверка новой рекламной модели;
+
* сравнение моделей прогнозирования;
-
* сравнение алгоритмов прогнозирования;
+
* тестирование алгоритмов персонализации;
-
* оценка качества различных стратегий персонализации.
+
* оценка новых моделей показа рекламы;
 +
* проверка изменений в системах обнаружения мошенничества.
-
Во многих компаниях новая модель сначала проходит офлайн-оценку на исторических данных, после чего запускается ограниченный онлайн-эксперимент. Только после успешного завершения A/B-теста модель становится основной.
+
Во многих компаниях новая модель сначала проходит офлайн-оценку на исторических данных, после чего запускается ограниченный онлайн-эксперимент. Только после успешного завершения A/B-тестирования модель становится основной.
-
Таким образом, A/B-тестирование является важным этапом жизненного цикла моделей машинного обучения и позволяет оценивать их влияние на поведение реальных пользователей.
+
Таким образом, A/B-тестирование служит заключительным этапом жизненного цикла большинства моделей машинного обучения.
== Ограничения ==
== Ограничения ==
-
Несмотря на широкое распространение, A/B-тестирование имеет ряд ограничений.
+
Несмотря на широкое распространение, A/B-тестирование обладает рядом ограничений.
-
Во-первых, эксперимент позволяет оценить только те изменения, которые были непосредственно протестированы. Если лучший вариант не попал в эксперимент, A/B-тест не сможет его обнаружить.
+
Во-первых, эксперимент позволяет сравнивать только те варианты, которые были заранее подготовлены исследователем. Если оптимальное решение не вошло в эксперимент, обнаружить его невозможно.
-
Во-вторых, результаты эксперимента справедливы только для той аудитории и условий, в которых проводилось исследование. Изменение пользовательской базы, времени года или особенностей продукта может привести к изменению эффекта.
+
Во-вторых, результаты эксперимента справедливы лишь для той аудитории и условий, в которых проводилось исследование. При изменении поведения пользователей или внешней среды наблюдаемый эффект может существенно измениться.
-
Кроме того, некоторые метрики проявляют изменение только через длительное время. Например, влияние новой рекомендательной системы на удержание пользователей может стать заметным лишь спустя несколько недель или месяцев.
+
Кроме того, некоторые изменения оказывают влияние лишь в долгосрочной перспективе. Например, новая [[Рекомендательная система]] может увеличить удержание пользователей только спустя несколько месяцев после внедрения.
-
Наконец, A/B-тестирование не отвечает на вопрос ''почему'' произошло изменение метрики. Оно лишь показывает наличие или отсутствие статистически подтверждаемого эффекта.
+
Наконец, A/B-тестирование позволяет определить наличие статистически подтверждаемого эффекта, однако само по себе не объясняет причины его возникновения.
== См. также ==
== См. также ==
 +
* [[Проверка статистических гипотез]]
* [[Статистическая гипотеза]]
* [[Статистическая гипотеза]]
-
* [[Статистический критерий]]
+
* [[Нулевая гипотеза]]
 +
* [[Альтернативная гипотеза]]
 +
* [[P-value]]
* [[Доверительный интервал]]
* [[Доверительный интервал]]
-
* [[Проверка гипотез]]
+
* [[Ошибка первого рода]]
-
* [[Стохастический градиентный спуск]]
+
* [[Ошибка второго рода]]
-
* [[Рекомендательные системы]]
+
* [[Критерий Стьюдента]]
 +
* [[Критерий хи-квадрат]]
 +
* [[Критерий Манна — Уитни]]
 +
* [[Рекомендательная система]]
* [[Информационный поиск]]
* [[Информационный поиск]]
* [[Машинное обучение]]
* [[Машинное обучение]]
Строка 305: Строка 321:
* Montgomery, D. C. ''Design and Analysis of Experiments''. Wiley, 2017.
* Montgomery, D. C. ''Design and Analysis of Experiments''. Wiley, 2017.
-
[[Категория:Статистика]]
 
[[Категория:Машинное обучение]]
[[Категория:Машинное обучение]]
 +
[[Категория:Статистика]]
[[Категория:Экспериментальные методы]]
[[Категория:Экспериментальные методы]]
[[Категория:Энциклопедия анализа данных]]
[[Категория:Энциклопедия анализа данных]]

Текущая версия

Статья написана с использованием LLM GPT-5.5 Thinking и проверена участником Vladimir Garanin


A/B-тестирование (англ. A/B testing) — метод статистического сравнения двух или более вариантов продукта, интерфейса или алгоритма, основанный на случайном разделении пользователей на независимые группы. Целью A/B-тестирования является определение того, приводит ли изменение системы к статистически значимому улучшению выбранной метрики.

A/B-тестирование является одним из основных инструментов принятия решений в машинном обучении, рекомендательных системах, информационном поиске, цифровом маркетинге и разработке программного обеспечения. В отличие от субъективной оценки качества изменений, A/B-тестирование позволяет принимать решения на основании статистического вывода и экспериментальных данных.

Содержание

Основная идея

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

Создаются два варианта системы:

  • вариант A — текущая версия продукта (контрольная группа);
  • вариант B — новая версия (экспериментальная группа).

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

Если различие оказывается статистически значимым, принимается решение о внедрении новой версии.

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

Формальная постановка

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

Для контрольной группы

X_A\sim P_A,

для экспериментальной группы

X_B\sim P_B.

Необходимо определить, различаются ли распределения

P_A

и

P_B.

Во многих задачах достаточно сравнить их математические ожидания

\mu_A=E[X_A],
\mu_B=E[X_B].

Если

\mu_A=\mu_B,

то изменение не оказывает влияния на исследуемую метрику.

Статистические гипотезы

Любой A/B-тест начинается с формулировки статистических гипотез.

Нулевая гипотеза

H_0:\mu_A=\mu_B.

Она утверждает, что различий между вариантами не существует.

Альтернативная гипотеза

H_1:\mu_A\neq\mu_B.

Если заранее предполагается улучшение только в одном направлении, используют одностороннюю гипотезу

H_1:\mu_B>\mu_A.

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

Случайное распределение пользователей

Корректность A/B-тестирования во многом определяется качеством случайного распределения пользователей между вариантами.

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

На практике распределение обычно осуществляется посредством хеширования постоянного идентификатора пользователя (например, User ID). Такой подход гарантирует, что пользователь всегда попадает в одну и ту же экспериментальную группу.

Если случайность нарушается, возникает систематическое смещение, которое способно полностью исказить результаты эксперимента.

Выбор метрики

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

Наиболее часто используются:

  • конверсия;
  • средний доход на пользователя;
  • число кликов;
  • время взаимодействия с сервисом;
  • удержание пользователей;
  • количество покупок;
  • вероятность выполнения целевого действия.

Метрика должна быть определена заранее. Изменение основной метрики после просмотра результатов эксперимента нарушает корректность статистического анализа и увеличивает вероятность ложных выводов.

Конверсия

Во многих интернет-сервисах основной метрикой является конверсия.

Если

n

— число пользователей,

k

— число пользователей, совершивших целевое действие,

то оценка конверсии равна

\hat p=\frac{k}{n}.

Например, если регистрацию завершили 320 пользователей из 4000,

\hat p=\frac{320}{4000}=0.08.

Одной из наиболее распространённых задач A/B-тестирования является сравнение именно двух вероятностей конверсии.

Размер эффекта

Даже при наличии статистически значимого различия важно оценить его практическую ценность.

Например, увеличение конверсии с

10.000\%

до

10.003\%

может оказаться статистически значимым при очень большом объёме выборки, однако практически не повлиять на бизнес-показатели.

Поэтому результаты A/B-теста обычно сопровождаются оценкой абсолютного и относительного прироста метрики, а также доверительными интервалами.

Статистические критерии

Выбор статистического критерия определяется природой исследуемой метрики.

Наиболее часто используются:

Все эти критерии позволяют вычислить вероятность наблюдать полученные данные при условии справедливости нулевой гипотезы.

P-value

Результатом большинства статистических критериев является p-value.

Под p-value понимается вероятность получить наблюдаемое различие или ещё более сильное различие при условии, что нулевая гипотеза верна.

Если

p<\alpha,

где

\alpha

— заранее выбранный уровень значимости (обычно 0.05),

нулевая гипотеза отвергается.

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

Доверительные интервалы

Помимо проверки гипотез, при анализе результатов A/B-теста почти всегда вычисляют доверительные интервалы для оцениваемого эффекта.

В отличие от одного лишь значения p-value, доверительный интервал показывает диапазон значений, с которым согласуются экспериментальные данные.

Например, если 95%-й доверительный интервал для прироста конверсии составляет от 1,2% до 3,8%, это означает, что наблюдаемые данные совместимы именно с таким диапазоном возможного улучшения.

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

Поэтому в современных публикациях рекомендуется приводить одновременно и значение p-value, и доверительный интервал.

Ошибки первого и второго рода

При проведении любого статистического эксперимента возможны ошибочные решения.

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

Вероятность этой ошибки обозначается

\alpha.

Именно эта величина называется уровнем значимости.

Ошибка второго рода возникает в противоположной ситуации: эксперимент не обнаруживает реально существующее различие между вариантами.

Её вероятность обозначают

\beta.

Вероятность успешно обнаружить существующий эффект называется мощностью статистического критерия:

Power=1-\beta.

При планировании экспериментов обычно стремятся обеспечить мощность не ниже 80–90%.

Планирование размера выборки

Перед запуском A/B-теста желательно заранее оценить необходимый объём выборки.

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

Напротив, чрезмерно большие выборки увеличивают стоимость эксперимента и могут приводить к обнаружению статистически значимых, но практически несущественных различий.

Размер необходимой выборки определяется несколькими факторами:

  • выбранным уровнем значимости;
  • требуемой мощностью теста;
  • дисперсией исследуемой метрики;
  • минимальным эффектом, который необходимо обнаружить (Minimum Detectable Effect, MDE).

Расчёт необходимого объёма выборки является обязательным этапом проектирования крупных онлайн-экспериментов.

Множественные сравнения

Во многих практических задачах одновременно сравниваются не два варианта, а сразу несколько.

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

Эта проблема известна как проблема множественных проверок гипотез.

Для её решения используются различные методы коррекции:

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

Последовательное тестирование

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

Такой подход нарушает предположения классической проверки гипотез и существенно увеличивает вероятность ошибки первого рода.

Для корректного досрочного завершения эксперимента применяются специальные методы последовательного тестирования (Sequential Testing), учитывающие многократную проверку гипотез по мере накопления наблюдений.

Современные платформы проведения A/B-тестов обычно реализуют подобные алгоритмы автоматически.

Практические ошибки

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

Наиболее распространёнными являются:

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

Поэтому качественное проведение A/B-тестирования требует не только знания математической статистики, но и аккуратного проектирования эксперимента.

Применение в машинном обучении

A/B-тестирование является стандартным инструментом оценки качества моделей машинного обучения после их разработки.

Типичные области применения:

Во многих компаниях новая модель сначала проходит офлайн-оценку на исторических данных, после чего запускается ограниченный онлайн-эксперимент. Только после успешного завершения A/B-тестирования модель становится основной.

Таким образом, A/B-тестирование служит заключительным этапом жизненного цикла большинства моделей машинного обучения.

Ограничения

Несмотря на широкое распространение, A/B-тестирование обладает рядом ограничений.

Во-первых, эксперимент позволяет сравнивать только те варианты, которые были заранее подготовлены исследователем. Если оптимальное решение не вошло в эксперимент, обнаружить его невозможно.

Во-вторых, результаты эксперимента справедливы лишь для той аудитории и условий, в которых проводилось исследование. При изменении поведения пользователей или внешней среды наблюдаемый эффект может существенно измениться.

Кроме того, некоторые изменения оказывают влияние лишь в долгосрочной перспективе. Например, новая Рекомендательная система может увеличить удержание пользователей только спустя несколько месяцев после внедрения.

Наконец, A/B-тестирование позволяет определить наличие статистически подтверждаемого эффекта, однако само по себе не объясняет причины его возникновения.

См. также

Литература


  • Kohavi, R., Tang, D., Xu, Y. Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing. Cambridge University Press, 2020.
  • Kohavi, R., Longbotham, R., Sommerfield, D., Henne, R. Controlled Experiments on the Web: Survey and Practical Guide. Data Mining and Knowledge Discovery, 2009.
  • Deng, A., Shi, X. Data Science for Business Decision Making. Cambridge University Press, 2021.
  • Casella, G., Berger, R. Statistical Inference. Duxbury Press, 2002.
  • Montgomery, D. C. Design and Analysis of Experiments. Wiley, 2017.
Личные инструменты