Как A/B-тестировать новую карусель или тег Deal of the Day
В marketplace добавляют новую карусель или тег Deal of the Day с модельным отбором объявлений. В A/B выросла конверсия. Как понять, что сработала именно модель, а не просто новый UI/тег?
Короткий ответ
Нужен дизайн, который разделяет эффект поверхности и эффект модели: control, UI-only/random/baseline ranking и model ranking. Randomization обычно на user level, метрики conversion/contact/transaction плюс guardrails.
Полный разбор
Если в treatment одновременно появились новый UI-блок, тег и новая модель, uplift нельзя приписать модели. Пользователи могли кликать просто на новый яркий элемент. Поэтому нужен факторный или staged experiment.
Минимальный дизайн: control без блока; treatment A с блоком и простым baseline/random/правилами; treatment B с блоком и ML ranking. Разница A-control показывает эффект поверхности, B-A показывает добавленную ценность модели. Randomization обычно user-level, чтобы один пользователь видел консистентный опыт. Для marketplace можно дополнительно контролировать seller/category exposure.
Метрики: conversion/contact/purchase, CTR блока, downstream transaction, revenue/GMV, time-to-sell, complaints/hides, diversity/fairness, seller cannibalization. Важно заранее определить primary metric и длительность теста, проверить sample ratio mismatch и interference между пользователями/листингами.
Теория
Это вопрос про causal experiment design. Когда UI и модель меняются одновременно, обычный A/B отвечает "помог весь treatment", но не "помогла ли модель".
Типичные ошибки
- Приписать весь uplift модели.
- Не добавить UI-only или baseline-ranking arm.
- Игнорировать marketplace interference и seller exposure.
Как отвечать на собеседовании
- Сразу скажи, что нужно отделить эффект новой поверхности от эффекта ранжирования.
- Предложи control / baseline UI / ML UI arms.