Все АБ-тесты ошибочны

Все АБ-тесты ошибочны


Ну и название, неправда ли?) Из статьи вы вряд ли узнаете что-то новое для себя, вряд ли поменяете свое отношение к тестам, это скорее своего рода конкурс прогнозов, попробуйте сейчас предположить о каких основных проблемах пойдет речь. Переводя этот текст, поймал себя на мысли, что его мог бы написать и я без какой-либо дополнительной подготовки, разве что с большим числом ошибок в английской грамматике)
Всем приятного прочтения и помните, что АБ тесты не те за кого себя выдают.

Оригинальный текст https://medium.com/@pabloalcain/every-ab-test-is-wrong-496d748461c9

Переведено для канала https://t.me/letsdatanow


Благодаря таким концепциям, как agility и Lean Startups, в отрасли быстро распространилась практика проведения AB-тестов. В двух словах, AB-тесты - это контролируемые сценарии, которые помогают нам решить, какая из двух альтернатив лучше. Один из подходов к принятию такого решения заключается в том, что мы имеем текущее состояние системы и задаем вопрос: что произойдет, если мы проведем изменение? AB-тест позволяет ответить на этот вопрос следующим образом: разделить популяцию случайным образом на две группы (A и B, или контроль и контроль), измерить обе группы и затем принять решение. Но действительно ли AB-тест отвечает на наш вопрос? В этом посте мы рассмотрим основные предположения AB-тестов в двух измерениях (время и пространство) и выясним, соответствуют они действительности или нет, следуя реальному сценарию.

Ожидаемое "распределение" рассматриваемой метрики на AB-тесте, когда все идет хорошо (спойлер: так не бывает)

In a nutshell – в двух словая


В 2022 году Twitter начал выпуск Twitter Circles. Основная идея Circles заключалась в разделении аудитории твитов, позволяя кому-то решать, будет ли твит "для всех" или для избранной аудитории, известной как "Circle", по аналогии с Close Friends на Instagram. Мы не знаем, тестировалась ли функциональность Circles в AB (хотя ее развертывание определенно было поэтапным, то есть не все получили ее одновременно), но давайте попробуем представить, какие проблемы возникли бы, если бы мы этого захотели.

Стабильность во времени

Эффект новизны

Эффект от того, что вы впервые видите изменения, очень велик. Предположим, что весь интерфейс новостного сайта, который вы просматриваете каждое утро, внезапно изменился: вы, вероятно, почувствуете себя потерянным, не сможете найти нужные разделы, будете часто промахиваться. Потребуется некоторое время, чтобы привыкнуть к новизне. Аналогично, в случае с Twitter Circles, вы можете воспринять нововведение с энтузиазмом, который не продлится долго. Но нас не интересуют эти переходные сценарии, поскольку они относятся не только к эффекту от теста: они также относятся к эффекту к периоду после п. Чтобы измерить сам эффект от теста, нам нужно будет подождать, пока этот эффект новизны исчезнет, но это и трудно определить (из-за дисперсии, сопутствующей метрикам), и может потребоваться много драгоценного времени, которого у нас может не быть. Подходы, которые динамически распределяют популяцию по различным группам (например, многорукие бандиты), очень подвержены этой проблеме.

fade out – исчезнуть, пропасть
relate – относиться, касаться
come with – сопутствовать

С бандитами действительно легко получить неверные результаты, особенно, если они настроены не до конца корректно. Ведь при неправильной выборе параметров весь трафик может уйти одной из групп, хотя это может быть "вау-эффескт". На своей практике с бандитами я сталкивался не так много, но сталкивался даже в них со случаем, когда при неправильной настройке бандит почти отрубал показы всех стратегий кроме одной.

Экстраполяция времени

Даже если вы подождете, пока эффект новизны не исчезнет, вы не знаете, что вас ждет в будущем. Если вы проводите AB-тест в течение периода времени T и обнаруживаете, что B лучше, чем A (в соответствии с некоторыми критериями значимости), вы знаете только это: что B был лучше, чем A в течение T, а будущее может сильно отличаться от T. Возьмем, например, сезонность: хотя вы, вероятно, можете иногда учитывать недельную или даже месячную сезонность, вы не сможете делать это для каждого AB-теста, если вы хотите быть динамичным продуктом. Даже помимо сезонности, у вас могут быть некоторые события (например, сезон отпусков), которые очень важны для бизнеса, но во время которых вы не можете проводить тестирование. Что если B окажется намного хуже A во время этого очень важного события? К сожалению, узнать это невозможно. И наконец, у вас есть просто условия окружающей среды: люди в будущем могут вести себя по-разному, и в некоторых из них B не будет работать лучше, чем A. В итоге вы не сможете узнать, что произойдет между B и A в будущем.

according – в соответствии

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

Когда мы пробуем различные настройки для популяций A и B, мы хотим, чтобы обе они были репрезентативны для всей популяции: влияние на любую из них отражает влияние на всех возможных пользователей. Именно поэтому A и B выбираются случайным образом, но этого недостаточно. Рассмотрим AB-тест, в котором мы хотим проверить эффект от сервиса Circles. Twitter - это очень сплоченная социальная сеть, в которой взаимодействия определяют поведение пользователей.

Если вы дадите пользователям из группы B возможность использовать Circles, как вы справитесь с взаимодействием с группой A? Решения этой проблемы не существует: если вы позволите людям из группы А видеть, что группа Б использует Circles, то группа А не будет репрезентативной в вопросе "что будет, если ни у кого не будет Circles?". С другой стороны, если вы не позволите людям из группы A видеть твиты из Circles группы B, то именно группа B не будет репрезентативной. Конечно, вы можете сделать несколько хитрых манипуляций и попытаться выбрать группы A и B так, чтобы взаимодействие между ними было минимальным и, следовательно, эффект уменьшился. Но он не исчезнет, и его очень трудно смоделировать. В литературе это известно как нарушение предположения о Stable Unit Treatment Validity Assumption (SUTVA), и всякий раз, когда люди могут общаться друг с другом за пределами вашего приложения (к счастью, всегда), вы подвержены ему. Даже если ваш тест заключается в изменении цвета фона вашей веб-страницы, кто-то из группы B может позвонить кому-то из группы A и сказать: "О, мне очень не нравится новый цвет", и все.

handle – справляться

Каково воздействие?

Мы все знаем, что AB-тесты сопровождаются погрешностью, и мы делаем все возможное, чтобы измерить ее (с помощью p-значений, уровней значимости, ожидаемых потерь и т.п.). Но главной проблемой является та погрешность, которую нельзя измерить. Все наши измерения погрешности строятся на этих шатких основаниях, о которых мы уже упоминали. И как будто этого недостаточно, эта дисперсия также помогает завысить результаты наших AB-тестов. Предположим, что между A и B нет никакого эффекта, кроме сезонности: в январе-июне B работает на 2% лучше, чем A, а в июле-декабре A работает на 2% лучше, чем B (в нашем целевой метрике). В январе мы проводим AB-тест и определяем, что B определенно лучше, чем A, поэтому мы внедряем B. Если к концу года мы измерим влияние нашего AB-теста (например, предположим, что мы заморозили часть трафика с конфигурацией начала года), мы обнаружим, что вместо улучшения на 2% он уменьшился на столько же! Наш тестовый эффект AB будет казаться завышенным на 4%, а на самом деле он будет завышен на 2%.

Тут я думал минут 5, прежде чем понять о чем идет речь, но кажется понял мысль автора. Провели тест, снимаете метрики: у группы B в Январе-июле значение этой метрики 8%, а у А – 6%. Вы такие радостные, раскатываете вариант В на прод, оставляя незначительному числу пользователей вариант А, как вечному контролю. И тут ваступает Декабрь, вы тратите пришедшую премию, сделали задачи последнего спринта в году, делать нечего. Вам на глаза попадается ноут с запуском теста и выборкой вечного контроля из того самого теста и вы решаете глянуть, что там у вечного контроля-то творится. И вы с удивлением обнаруживаете, что на текущий момент вечный контроль на 2 п.п. имеет выше. И вы вместо того, чтобы "перебирать" 2% по отношеннию к контролю, наоборот "недобираете" 2%. Отсюда как раз завышение на 4%. Но на деле это не вы опустились на 4 п.п. по отношению контроля, а это вы упали на 2 и он вырос на 2.

uncertainty – погрешность
consequence – последствие

Как правило, каждый раз, когда мы добавляем дисперсию к метрике, которую мы выбираем, мы вносим смещение отбора. Это известно как проклятие победителя https://en.wikipedia.org/wiki/Winner%27s_curse.

bias – смещение

Итак... стоит ли нам прекратить проводить AB-тесты?

Эти неизбежные проблемы ставят шансы против нас, из-за них нам труднее быть уверенными в наших результатах. Но это нормально: мы проводим AB-тесты не потому, что они дают нам абсолютную уверенность в том, что одна модель лучше другой, а потому, что они дают нам больше уверенности, чем случайный выбор. В тех частях, где у нас есть контроль, мы должны быть как можно более строгими, а это подразумевает (в большинстве случаев) проведение AB-тестов. Но их подводные камни существуют, и если мы не можем их избежать, нам нужно найти способ измерить их или, по крайней мере, их влияние. Даже если мы уверены в правильности всех наших статистических методов, проведение мета-анализа AB-тестов, наряду с такими методами, как вечными контролями, может помочь нам увидеть, насколько хороши наши AB-тесты, и измерить нашу подверженность этим проблемам. Конечно, все эксперименты ошибочны. Но некоторые из них полезны.

rigorous – строгий, точный
pitfalls – подводные камни

Ожидаемая концовка? Угу, никакого новаторства...Спасибо за прочтение!

Карточки со словами, как обычно здесь https://quizlet.com/join/652wFk84Y?i=50b342&x=1tqY


Report Page