Разбираем экономику продуктов персонализации и рекомендательных систем V. 8/10 Оцениваем эффект от изменений
Ранее было много постов, где я разбирал разные подходы к росту метрик продукта с помощью рекомендаций. Предположим, вы начали их применять. И почти сразу столкнулись с двумя вопросами: 1. Как оценивать эффект на метрику от конкретного изменения? 2. Как оценивать эффект на метрику от всех изменений команды?
Первый вопрос нужен, чтобы понять:
- Было ли оно позитивным то есть стоит ли катить ли изменение в прод. И на сколько позитивным оно было тоесть стоит ли дальше развивать похожие идеи.
Второй вопрос нужен, чтобы понять насколько хорошо поработала команда и какой эффект от ее работы получил бизнес.
Разберем оба.
1 А как оценивать эффект на метрику конкретного изменения ?
В идеальном мире мы проводим A/B-тест и прямо в тесте видим изменение целевой метрики. После этого репортим результат и радуемся )
Например: придумали новый алгоритм, который управляет рекомендациями в корзине и должен растить средний чек.
Запустили тест. Увидели стат.значимый рост среднего чека на 0.2%. Отлично. Эффект понятен.
Но в реальном мире часто бывает иначе.
Конкретное изменение дает эффект, который сложно детектировать на основной метрике. Например, эффект есть, но он маленький. Или метрика слишком шумная. Или тест нужно было бы крутить слишком долго, чтобы получить стат.значимость.
В таком случае нужно искать прокси-метрики.
Хороший способ — использовать исторические данные и causal inference анализ, чтобы найти чувствительные прокси для конкретной рекомендательной полки.
Например, мы хотим растить средний чек. И можем обнаружить, что для конкретной полки хорошей прокси-метрикой является рост конверсии в добавление товара в корзину с этой полки.
Основную метрику в тесте прокрасить сложно. А прокси-метрику — гораздо проще.
Тогда логика принятия решения становится такой: если прокси растет, а guardrail-метрики не падают, изменение можно считать полезным кандидатом на выкатку.
2. Как оценивать эффект на метрику от всех изменений? Золотой стандарт тут — глобальная контрольная группа.Мы фиксируем для части пользователей базовые алгоритмы и не меняем их. А на основную группу пользователей раскатываем все наши обновления.Дальше сравниваем метрики основной группы и глобального контроля. Так можно оценить суммарный эффект работы команды. Но есть нюанс. Если внутри периода у вас было много сильно красных тестов, то эффект основной группы может быть занижен. Потому что основная группа видела не только успешные изменения, но и неудачные эксперименты. В таком случае помогает “зеленая группа”. Это группа пользователей, на которую мы транслируем только успешные изменения. То есть все то, что уже прошло проверку и было признано хорошим. Тогда эффект можно считать как разницу между зеленой группой и глобальным контролем. Так мы лучше понимаем, какой эффект дают именно успешные изменения команды. —--- Если глобального контроля нет, остается более простой подход. Можно взять все эксперименты, которые были раскатаны в прод, и сложить их эффекты между собой. Например, за период были такие успешные эксперименты: Эксперимент 1 — эффект на средний чек +0.05% Эксперимент 2 — эффект на средний чек +0.25% Эксперимент 3 — эффект на средний чек -0.10% Эксперимент 4 — эффект на средний чек +0.15% Тогда общий эффект на средний чек будет: 0.05% + 0.25% - 0.10% + 0.15% = 0.35% Подход простой и понятный, но у него есть большой минус. Стат.значимость такого суммарного измерения восстановить крайне сложно. Поэтому я бы смотрел на этот метод скорее как на управленческую оценку, а не как на строгий статистический расчет.
Если знаете еще подходы к измерению то пишите в комментариях )