В эксперименте на ранжировании вы используете bucketing (разбивка пользователей на группы) по user_id, но кэш результатов поиска настроен без учета варианта и иногда отдает пользователю выдачу, посчитанную для другого варианта. Что это за риск?
AТолько снижение скорости системы, на корректность эксперимента это не влияет
BЭто
SRM (Sample Ratio Mismatch), потому что кэш меняет размеры группCПроблема только в
unit of analysis, кэш на нее не влияетDЗагрязнение (contamination) и нарушение
SUTVA (Stable Unit Treatment Value Assumption), потому что пользователи получают опыт другого варианта через общий кэшПравильный ответ. Если инфраструктура смешивает ответы разных вариантов, происходит contamination и эксперимент перестает измерять чистый эффект.
Разбор
Кэш, который не учитывает вариант, делает фактическую экспозицию несовпадающей с назначением по bucketing (разбивка пользователей на группы). Тогда часть пользователей из control увидит поведение treat или наоборот, и различия между группами размоются. Это нарушает предпосылки дизайна и может скрыть реальный эффект или создать ложный. Обычно решают добавлением варианта в ключ кэша и проверкой консистентности назначения и экспозиции.
Проверь себя · 1/3разбор после ответа
Вы тестируете новый экран оплаты. Пользователь может заходить в приложение много раз. Метрика — конверсия в покупку за 7 дней на уровне
user_id. Какую unit of randomization (единица рандомизации) выбрать, чтобы минимизировать смешение вариантов?Ещё вопросы по теме «Дизайн эксперимента и рандомизация»
- Вы тестируете новый экран оплаты. Пользователь может заходить в приложение много раз. Метрика — конверсия в покупку за 7 дней на уровне `user_id`. Какую `unit of randomization` (единица рандомизации) выбрать, чтобы минимизировать смешение вариантов?
- Эксперимент рандомизируется по `user_id`, а вы считаете метрику на уровне `session_id` (например, длительность сессии) и сравниваете сессии как независимые наблюдения. Что здесь главное методологическое последствие?
- В тесте нового реферального механизма пользователь из `treat` отправляет приглашения друзьям, которые попадают в `control` и тоже меняют поведение. Какое допущение нарушается и почему это важно?
- Эксперимент меняет алгоритм распределения заказов между курьерами. Курьеры обслуживают сразу нескольких пользователей, и решение для одного заказа влияет на время доставки других. Какой подход к рандомизации чаще всего лучше уменьшит `interference`?
- Вы делаете `bucketing` (разбивка пользователей на группы) как `hash(user_id + day) % 2`, где `day` — текущая дата. Что самое вероятное следствие для эксперимента?
- Все вопросы по «Дизайн эксперимента и рандомизация» →