A/B-тесты и эксперименты
Дизайн экспериментов, подглядывание, множественные сравнения, эффекты новизны и сети, switchback, CUPED, разрыв offline–online, OEC и A/A-тесты.
11 вопросов
JuniorТеорияОчень частоЧто такое H0 и H1 в A/B-тесте, что задают уровень значимости и мощность и что позволяет утверждать значимость?
Что такое H0 и H1 в A/B-тесте, что задают уровень значимости и мощность и что позволяет утверждать значимость?
H0 утверждает, что вариант и контроль дают одинаковый эффект, H1 — что они различаются. Уровень значимости — доля ложных срабатываний при верной H0, мощность — шанс увидеть реальный эффект нужного размера. Значимость даёт право отвергнуть H0, и только.
Типичные ошибки
- ✗Читать p-value как вероятность того, что H0 верна
- ✗Считать значимость доказательством правильности измеренного размера прироста
- ✗Игнорировать мощность и читать плоский результат как доказательство отсутствия эффекта
Уточняющие вопросы
- →Почему недомощный тест завышает значимый выигрыш — эффект отбора, известный как проклятие победителя?
- →Что меняется в пороге, если запустить односторонний тест вместо двустороннего?
MiddleДизайнОчень частоВаша платформа экспериментов выдала три неожиданных выигрыша модели подряд, и команда перестала доверять разбиению трафика. Перед следующим запуском вас просят прогнать A/A-тест на том же трафике, том же сервисе назначения и том же пайплайне метрик. Объясните, что такое A/A-тест и что он изолирует, какого результата ждать от здоровой платформы, о чём на самом деле говорит проваленный A/A и что вы будете смотреть внутри сплиттера и джойна метрик при провале.
Ваша платформа экспериментов выдала три неожиданных выигрыша модели подряд, и команда перестала доверять разбиению трафика. Перед следующим запуском вас просят прогнать A/A-тест на том же трафике, том же сервисе назначения и том же пайплайне метрик. Объясните, что такое A/A-тест и что он изолирует, какого результата ждать от здоровой платформы, о чём на самом деле говорит проваленный A/A и что вы будете смотреть внутри сплиттера и джойна метрик при провале.
A/A-тест делит трафик между двумя одинаковыми вариантами, поэтому любая значимая разница — ошибка платформы, а не эффект. На здоровой платформе доля значимых A/A близка к alpha. Провал означает смещённое назначение или сломанный джойн метрик.
Типичные ошибки
- ✗Ждать, что здоровый A/A-тест никогда не даст значимого результата
- ✗Винить размер выборки, когда смещены назначение или джойн метрик
- ✗Путать A/A-тест с офлайновым реплеем модели
Уточняющие вопросы
- →Какая ошибка хеширования заставляет бакеты коррелировать с атрибутом пользователя, например датой регистрации?
- →Как держать непрерывный поток A/A рядом с живыми экспериментами?
MiddleДизайнОчень частоВы планируете запускной эксперимент для новой модели ранжирования, и продуктовая команда хочет знать, сколько он должен идти до решения. Проведите их по расчёту размера: как выбирается единственная решающая метрика, на которой считается мощность, как минимальный детектируемый эффект MDE, уровень значимости и целевая мощность задают нужную выборку на группу, как эта выборка превращается в календарные дни из дневного потока, и чем приходится жертвовать, когда выборка недостижима в пределах квартала.
Вы планируете запускной эксперимент для новой модели ранжирования, и продуктовая команда хочет знать, сколько он должен идти до решения. Проведите их по расчёту размера: как выбирается единственная решающая метрика, на которой считается мощность, как минимальный детектируемый эффект MDE, уровень значимости и целевая мощность задают нужную выборку на группу, как эта выборка превращается в календарные дни из дневного потока, и чем приходится жертвовать, когда выборка недостижима в пределах квартала.
Выберите одну решающую метрику — дальше выборка на группу следует из её дисперсии, MDE, alpha и мощности, а вдвое меньший MDE стоит вчетверо больше трафика. Делите на дневной поток и получаете срок. Недостижимую выборку лечат ростом MDE, но не потерей мощности.
Типичные ошибки
- ✗Считать, что нужная выборка растёт линейно с MDE
- ✗Выбирать MDE уже после того, как увидели наблюдаемый эффект
- ✗Молча соглашаться на низкую мощность вместо пересмотра MDE
Уточняющие вопросы
- →Как добавление третьей группы меняет и нужный трафик, и число сравнений?
- →Почему сильно скошенная метрика выручки требует больше трафика, чем бинарная конверсия?
SeniorДизайнОчень частоКоманда поиска маркетплейса обучила новую модель ранжирования, которая обходит production по офлайновой ранжирующей метрике NDCG на 4 процента, и запускной эксперимент ведёте вы. Спроектируйте его целиком: выберите единицу рандомизации и обоснуйте её против альтернатив, задайте решающий критерий OEC, на котором стоит решение, назовите guardrail-метрики, способные заблокировать выкатку даже при выигравшем OEC, выберите минимальный детектируемый эффект и выведите длительность из примерно 400k поисков в день от 120k пользователей, и скажите, как не дать модели переобучиться на данных, которые она сама породила в эксперименте.
Команда поиска маркетплейса обучила новую модель ранжирования, которая обходит production по офлайновой ранжирующей метрике NDCG на 4 процента, и запускной эксперимент ведёте вы. Спроектируйте его целиком: выберите единицу рандомизации и обоснуйте её против альтернатив, задайте решающий критерий OEC, на котором стоит решение, назовите guardrail-метрики, способные заблокировать выкатку даже при выигравшем OEC, выберите минимальный детектируемый эффект и выведите длительность из примерно 400k поисков в день от 120k пользователей, и скажите, как не дать модели переобучиться на данных, которые она сама породила в эксперименте.
Рандомизируйте по пользователю, а не по запросу, чтобы человек стабильно видел один ранкер. OEC — одна решающая метрика из релевантности и выручки; guardrail-метрики закрывают задержку, охват продавцов и жалобы. Считайте размер по пользовательской дисперсии.
Типичные ошибки
- ✗Рандомизировать по запросу, из-за чего один пользователь видит оба ранкера
- ✗Считать OEC достаточным и обходиться без guardrail-метрик
- ✗Позволять логам эксперимента попадать в обучение тестируемой модели
Уточняющие вопросы
- →Какая guardrail-метрика сработает первой, если новый ранкер удвоит хвостовую задержку на 99-м перцентиле?
- →Как заметить, что претендент ухудшил длинный хвост запросов, подняв при этом среднее?
MiddleТеорияЧастоПочему ежедневная проверка p-value раздувает долю ложных срабатываний и что лечит подглядывание?
Почему ежедневная проверка p-value раздувает долю ложных срабатываний и что лечит подглядывание?
Каждый взгляд — ещё один шанс пересечь порог, поэтому повторные проверки на накапливающихся данных поднимают реальную долю ложных срабатываний намного выше номинальных 5 процентов. Лечат это фиксированным горизонтом, alpha-spending или последовательным тестом.
Типичные ошибки
- ✗Считать раннее пересечение 0.05 настоящим результатом, пришедшим раньше
- ✗Применять простой Bonferroni по дням, будто ежедневные взгляды независимы
- ✗Останавливать тест на первом же значимом прочтении
Уточняющие вопросы
- →Что делает с ранними порогами функция расходования alpha, например граница
O'Brien-Fleming? - →Почему последовательный тест можно читать в любой момент без роста доли ошибок?
SeniorДизайнЧастоВы тестируете новый рекомендатель на маркетплейсе с ограниченным предложением: покупатели видят одни и те же лоты и конкурируют за них, а продавец может продать вещь лишь один раз. Разбиение 50/50 по пользователям показывает прирост 6 процентов в варианте, и команда хочет выкатывать. Объясните, почему пользовательской рандомизации здесь нельзя доверять, что группа воздействия делает с контрольной, и какие дизайны — switchback по временным окнам, кластерная рандомизация по регионам или продавцам, гео-сплит — вы примените взамен, назвав цену каждого.
Вы тестируете новый рекомендатель на маркетплейсе с ограниченным предложением: покупатели видят одни и те же лоты и конкурируют за них, а продавец может продать вещь лишь один раз. Разбиение 50/50 по пользователям показывает прирост 6 процентов в варианте, и команда хочет выкатывать. Объясните, почему пользовательской рандомизации здесь нельзя доверять, что группа воздействия делает с контрольной, и какие дизайны — switchback по временным окнам, кластерная рандомизация по регионам или продавцам, гео-сплит — вы примените взамен, назвав цену каждого.
Юниты интерферируют — вариант забирает предложение, которое купил бы контроль, поэтому часть прироста каннибализирована, а оценка смещена вверх. Рандомизировать нужно целые рынки — switchback, кластеры или гео-сплит — ценой числа эффективных юнитов.
Типичные ошибки
- ✗Считать, что одна лишь случайность назначения убирает смещение от интерференции
- ✗Читать каннибализированный прирост как инкрементальную ценность
- ✗Игнорировать потерю эффективного размера выборки в кластерных дизайнах
Уточняющие вопросы
- →Как сторона продавцов меняет то, что обязана содержать граница кластера?
- →Что дизайн switchback предполагает о том, как быстро эффект вымывается между окнами?
SeniorДебаггингЧастоОфлайновая ранжирующая метрика ROC-AUC выросла на 3 процента, а онлайн A/B плоский — как найти, где они расходятся?
Офлайновая ранжирующая метрика ROC-AUC выросла на 3 процента, а онлайн A/B плоский — как найти, где они расходятся?
Перебирайте механически — training-serving skew и занулённые признаки, утечка или устаревший холдаут офлайн, метка, которую офлайн-метрика вознаграждает, а OEC не видит, выигрыш вне показанных слотов и разбавление. Затем прогоните логи на одной популяции.
Открыть задачу →Типичные ошибки
- ✗Считать, что лучшая офлайн-метрика обязана рано или поздно проявиться онлайн
- ✗Сравнивать офлайн и онлайн на разных популяциях
- ✗Игнорировать разбавление сессиями, которые не увидели выдачу
Уточняющие вопросы
- →Как зануление признаков на сервинге меняет выдачу, которую реально видит пользователь?
- →Почему семидневное окно атрибуции способно сделать четырнадцатидневный эксперимент плоским?
JuniorТеорияИногдаЧто такое эффекты новизны и первичности в A/B-тесте модели и почему они смещают результаты первой недели в разные стороны?
Что такое эффекты новизны и первичности в A/B-тесте модели и почему они смещают результаты первой недели в разные стороны?
Новизна — реакция на изменение просто потому, что оно новое, она завышает ранние метрики варианта; первичность — потеря на переучивании привычного сценария, она их занижает. Оба эффекта затухают, поэтому тест продлевают и читают тренд по дням когорты.
Типичные ошибки
- ✗Считать, что оба эффекта смещают первую неделю в одну сторону
- ✗Читать прирост первой недели как установившийся эффект
- ✗Считать, что эффекты не затухают по мере привыкания пользователей
Уточняющие вопросы
- →Как ограничение анализа новыми пользователями продукта помогает отделить новизну?
- →О чём говорит кривая прироста, затухающая до нуля за три недели, в решении о выкатке?
JuniorТеорияИногдаЧто показывать — p-value или доверительный интервал прироста, и как правильно сформулировать нулевой результат?
Что показывать — p-value или доверительный интервал прироста, и как правильно сформулировать нулевой результат?
Показывайте доверительный интервал — он несёт размер эффекта и его неопределённость, а p-value лишь говорит, исключён ли ноль. Нулевой результат значит, что интервал накрывает ноль — тест не обнаружил эффекта заложенного размера, а не что эффекта нет.
Типичные ошибки
- ✗Подавать незначимый результат как доказательство отсутствия разницы
- ✗Читать интервал как диапазон для отдельных пользователей, а не для эффекта
- ✗Терять размер эффекта и сообщать одну лишь значимость
Уточняющие вопросы
- →Чем широкий интервал, накрывающий ноль, отличается по ценности для решения от узкого?
- →Когда статистически значимый прирост всё равно слишком мал, чтобы выкатывать?
SeniorТеорияИногдаПри 20 метриках чего стоит поправка Bonferroni в мощности и когда правильнее контролировать долю ложных открытий?
При 20 метриках чего стоит поправка Bonferroni в мощности и когда правильнее контролировать долю ложных открытий?
Bonferroni делит alpha на число тестов, контролируя вероятность любого ложного срабатывания, но резко срезая мощность каждого теста. Benjamini-Hochberg контролирует ожидаемую долю ложных среди отвергнутых — это для разведочных сканов, а не для выкатки.
Типичные ошибки
- ✗Поправлять разведочные сканы сегментов и основную метрику одной процедурой
- ✗Считать, что поправка на множественность способна повысить мощность
- ✗Путать контроль вероятности хотя бы одной ошибки с контролем доли ложных открытий
Уточняющие вопросы
- →Как заранее объявленная основная метрика снижает нагрузку от поправок?
- →Почему значимый результат в одном сегменте из двадцати редко воспроизводится?
SeniorТеорияРедкоКакую дисперсию убирает метод снижения дисперсии CUPED, что ему нужно от предпериода и когда он не даёт ничего?
Какую дисперсию убирает метод снижения дисперсии CUPED, что ему нужно от предпериода и когда он не даёт ничего?
CUPED регрессирует метрику на ковариату предпериода и вычитает предсказанную часть, убирая дисперсию, существовавшую до разбиения, а не эффект. Ковариата должна коррелировать с метрикой и не зависеть от воздействия. При слабой корреляции выигрыша нет.
Типичные ошибки
- ✗Думать, что CUPED меняет оценку эффекта, а не её дисперсию
- ✗Брать ковариату из самого эксперимента, на которую влияет воздействие
- ✗Ждать выигрыша на пользователях без истории в предпериоде
Уточняющие вопросы
- →Почему ковариату обязательно измерять строго до момента назначения?
- →Как корреляция ковариаты с метрикой переводится в экономию размера выборки?