Привет, Хабр! Давайте на примере кейса с рекламой в ПВЗ Wildberries разберемся в двойном машинном обучении (DML) и методе псевдорандомизации (PSM). Вы в деле?
Меня зовут Платон Попов, я дата-аналитик в команде A/B-платформы RWB. В нашей команде я занимаюсь задачами из области причинно-следственного анализа (Causal Inference) и методами понижения дисперсии.
В этой статье расскажу о самом кейсе и объясню, почему для него не подошёл классический t-тест. Покажу, как мы учитывали спутывающие факторы с помощью Propensity Score Matching (PSM), почему этого оказалось недостаточно и почему в итоге перешли к Double Machine Learning (DML). В конце сравним результаты и обсудим наш план выкатки метода оценки нерандомизированных экспериментов в промышленный масштаб.
Какую рекламу видит аудитория в ПВЗ

С одной стороны были посетители пунктов выдачи, чьи интересы мы считывали. С другой стороны — продавцы, которые задавали таргеты для кампании и выбирали рекламные материалы для показа покупателям. С помощью механизма сопоставления (Matcher) мы сравнивали интересы пользователей с выбранными таргетами и показывали подходящую рекламу на экранах в ПВЗ.
Наша гипотеза: таргетированная реклама должна увеличивать количество купленных товаров и GMV на пользователя.
Почему нельзя ограничиться t-тестом?
На первый взгляд, всё решается по старинке. Сравниваем средние значения метрик в тестовой и контрольной группах, и мы великолепны! Но в нашем нестандартном сеттинге есть две проблемы: сетевые эффекты и спутывающие переменные (конфаундеры).
Первая проблема — сетевые эффекты. Пользователи могли посещать ПВЗ с рекламными экранами и без одновременно. А также в контроль могут попасть пользователи, которые видели чужую рекламу. Например, ожидая своей очереди, человек мог заметить рекламный ролик и подвергнуться воздействию (Treatment) на экране, и контрольная группа уже переставала быть «чистой».
Мы боролись с сетевыми эффектами двумя способами.
Во-первых, в качестве единицы рандомизации выбрали не пользователя вообще, а пользователя в конкретном ПВЗ. Во-вторых, распределили группы, чтобы исключить влияние чужой рекламы:
в тест попадали пользователи, которые видели таргетированную рекламу,
в контроль — пользователи, посетившие ПВЗ в дни, когда не было рекламы.
Следующая проблема — конфаундеры. Это спутывающие факторы, способные влиять и на получение воздействия, и на исход: пол, возраст, покупательская способность и т. д.
Так, например, часть пользователей делала заказы не из-за рекламы, а потому, что они в целом более склонны к покупке. Кроме того, продавцы могли выбирать более успешные пункты выдачи, где и без рекламы наблюдались высокие продажи. Мы это контролировали с помощью фичей площади ПВЗ, количества проданных товаров и оборота.
Почему бы не сопоставить наблюдения через обычный мэтчинг? Из-за проклятия размерности. Это классическая проблема, которая не позволяет подобрать контроль для каждого наблюдения, потому что необходимо одновременно учитывать огромный набор факторов.
Решение — Propensity Score Matching (PSM), или метод псевдорандомизации. Идея метода достаточно проста: берём все фичи X, которые могли бы спутывать эффект → выражаем их с помощью условной вероятности попасть в Treatment (Propensity Score, PS, e(x)) → оцениваем эту вероятность с помощью модели, например, логистической регрессии (Logistic Regression) → контролируем конфаундеры через оцененную условную вероятность попасть в Treatment.

Для оценки эффекта применялся Inverse Propensity Weighting (IPW), где каждому наблюдению присваивается вес, обратно пропорциональный вероятности попасть в Treatment (PS).
Таким образом, пользователи из тестовой группы с низким значением PS получали больший вес, поскольку были больше похожи на пользователей из контроля. Аналогично взвешивались наблюдения контрольной группы.
Далее мы провели диагностику весов. В первую очередь сравнили баланс признаков до и после взвешивания по стандартизированной разнице среднего (SMD) и увидели, что разница в наблюдениях до взвешивания составила > 0,1.
Это значение считается золотым стандартом в литературе и говорит о существенных различиях между группами. После взвешивания показатели для всех признаков оказались ниже 0,1. Значит, мы получили хороший баланс между тестом и контролем!

Также распределения PS в обеих группах неплохо пересекались. Практически к каждому объекту из теста был подобран объект из контроля для сравнения. При этом в хвостах наблюдались очень большие веса, которые потенциально могли ухудшить оценку.

Первые результаты с IPW
Помните целевые метрики из нашей гипотезы? Мы получили по ним статистически значимый прирост! Итоговый эффект выглядит так:
количество купленных товаров (Purchased Items) выросло на 6,03%,
GMV выросла на 10,87%.

При этом простое сравнение теста и контроля переоценивало эффект в 3–5 раз, что ещё раз подтвердило: без методов учёта конфаундеров игра не стоит свеч.
Кажется, пора передавать результаты бизнес-заказчику. Но мы решили проверить, насколько этой оценке вообще можно доверять.
Валидация оценки
Мы использовали значения обеих метрик для тех же пользователей до эксперимента. Формировали бутстрэп-выборки с возвращением и оценивали эффект так же, как и в основном эксперименте. После проверяли следующие показатели:
доля ложноположительных результатов (FPR),
распределение z-value,
распределение p-value.

Оказалось, что валидацию метод не проходит. Доля ложноположительных результатов не контролируется на уровне 5%, то есть — используя этот метод оценки мы ошибаемся чаще, чем предполагаем. Равномерность p-value также нарушается.
Аналогичные результаты мы получили и для метрики GMV.

Это лучше не показывать заказчику...
Как наиболее вероятную причину ошибки мы определили сложность выбор модели, которая подбирает веса для PS. Но существует ли фреймворк, который менее чувствителен к подбору модели?
Наш ответ — Double Machine Learning!
Два ключевых свойства DML:
Neyman Orthogonality. Для достаточно больших выборок итоговая оценка среднего эффекта воздействия (ATE) менее чувствительна к подбору модели. Doubly Robust Estimator (DR), о котором я буду говорить далее, удовлетворяет этому свойству и позволяет тратить меньше ресурсов на подбор хорошей модели. В то время как IPW, о котором мы говорили ранее — нет.
Cross-fitting. Оценка эффекта включает в себя два этапа: оценка модели и самого эффекта. Если использовать одну выборку, ошибки при оценке модели смещают оценку эффекта. Избежать этого помогает процедура Cross-fitting. Модель оценивается на n-1 фолде, а оценка эффекта вычисляется на оставшемся фолде. Повторяем эту процедуру для каждого фолда.
Так мы избавляемся от влияния ошибок обучения на итоговую оценку эффекта и используем все имеющиеся данные.
Почему DML работает лучше*

Вот как это работает в теории. Мы сэмплируем АТЕ для двух методов оценики IPW и DR и получаем, что для IPW истинный эффект в среднем значительно завышен, а для DR соответствует ожидаемому результату. В среднем ноль.
Аналогично при анализе распределения т-статистики ATE. Для IPW распределение остаётся смещённым независимо от применения Cross-fitting. Тогда как DR с Cross-fitting позволяет получить близкое к нормальному распределение.*

Как устроен Doubly Robust Estimator
Левая часть уравнения соответствует наблюдениям в тесте, правая — в контроле. В методе оценивания используются две вспомогательные функции:
модель исхода μ,
модель PS p.
Утверждается, что нам достаточно верно специфицировать только одну из моделей. Рассмотрим случай с оценкой среднего для наблюдений из тестовой группы.
Предположим, что модель для μ₁ задана корректно, а для p₁ нет. Тогда математическое ожидание произведения Treatment на остатки модели равно нулю
Это происходит потому, что рассматриваются только наблюдения из тестовой группы, а ошибки модели имеют нулевое среднее. Тогда эта часть уравнения обращается в ноль и остаётся только корректная оценка μ₁. Супер!
Эта же логика работает для обратного случая, когда модель для p₁ задана корректно, а для μ₁ нет. Перегруппируем выражение для оценки среднего для наблюдений из тестовой группы. Получим,
Если p₁ специфицирована правильно, математическое ожидание остатков также равно нулю
Правая часть уравнения обращается в ноль, и остаётся только левая, которая по предположению верна. Супер х2!
Оцениваем результаты DML
Все модели мы оценивали с помощью Random Forest из коробки с теми же фичами, которые ранее использовались для оценки IPW.
Мы вновь получили статистически значимый положительный эффект. Точно так же, как и в теории эффект и T-stat в DR оказались меньше, чем в IPW в 2 раза и в 2–4 раза, соответственно.

После этого мы повторили процедуру валидации. Обе метрики успешно прошли проверку!


Как применять DML в промышленной среде
Шаг 1. Агрегация размеченных данных с теста и предпериода. Собираем метрики и данные по конфаундерам у пользователей и размечаем их по группам на тест и контроль
Шаг 2. Обучение множества моделей с разными гиперпараметрами. Методом перебора гиперпараметров определяем модель, которая минимизирует MDE, то есть позволяет отлавливать наименьший эффект.
Шаг 3. Выбор модели, которая даёт валидные результаты. Проводим валидацию на данных предпериода, и из всех валидных моделей выводим в прод ту, которая дает наименьший MDE.

DML против PSM: кто побеждает в нашем кейсе
Оба метода требуют разметить группы, большое количество ковариат и обучить модели. Для нас наиболее подходящим оказался DML.
Propensity Score Matching — всем известный хороший фреймворк для оценки эффекта в нерандомизированных экспериментах, но у него сложно настраивается модель для получения корректной оценки эффекта.
Double Machine Learning менее чувствителен к подбору модели и легче проходит валидацию. В нерандомизированных экспериментах даёт результат быстрее и надёжнее, чем в PSM.
Вам приходилось сталкиваться с этими подходами в стандартных A/B-тестах и нерандомизированных экспериментах? Расскажите в комментариях!

