Сетевой эффект в АБ. Региональные тесты (Cluster Randomization Experiments)
https://t.me/shelter_analyticsВсем привет!
Начинаем серию обзоров методов для снижения сетевого эффекта в АБ экспериментах.

Что такое сетевой эффект?
Способность АБ эксперимента давать несмещённую оценку совокупного среднего эффекта воздействия (TATE, total average treatment effect) зависит от выполнения предположения о стабильности значений воздействия (stable unit treatment value assumption, SUTVA) (Rubin 1974), которое говорит, что в любом данном эксперименте результат (исход) каждой единицы (участника, пользователя, компании и т. д.) зависит только от того, какое воздействие (treatment) она сама получила, а не от того, какое воздействие получили другие.
Проще говоря:
Если ты участвуешь в A/B-тесте, то твой результат зависит только от того, попал ли ты в группу A или в группу B — и не должен зависеть от того, кто ещё в какой группе оказался.
А что же нарушает SUTVA?
Теперь представьте, что мы проводим АБ-тест в команде монетизации Airbnb (сайт по краткосрочной аренде жилья), в котором повышаем комиссию платформы. Мы разбиваем случайно компании по аренде в тест/контроль и получаем такую ситуацию, что, попадая в одну поисковую выдачу, объявления из теста имеют большую стоимость, чем объявления из контрольной группы. Это в свою очередь приводит, что объявления из теста будут иметь целевых действий (бронирования) меньше, чем в контрольной, так как выбор клиентов будет падать на аренду с меньшей ценой при всех равных.
Вот такое явление как раз и нарушает SUTVA, так как единицы из контрольной группы непосредственно влияют на результаты тестовой группы.
Этот эффект и называют - сетевым.
Сетевой эффект — это ситуация в экспериментах, когда поведение одного потребителя услуги или товара может влиять на характеристики или даже возможность предоставления услуги/товара для другого потребителя.
Как бороться с сетевым эффектом?
Существует несколько методов, которые позволяют снизить такое воздействие, как сетевой эффект. Сегодня мы поговорим про первый и "самый простой" - региональные эксперименты или cluster randomization experiments на примере кейса по изменению комиссии платформы в Airbnb.
Немного вводных:
Airbnb - онлайн-площадка для размещения и поиска краткосрочной аренды частного жилья по всему миру. Основные участники взаимодействия - продавцы (те, кто размещает жилью) и покупатели (те, кто селятся в него).
Эксперимент по изменению комиссии платформы представлял из себя вмешательство, которое влияло на изменение структуры платформенных комиссий Airbnb для гостей.
Комиссии Airbnb для гостей отображались в трёх разных местах в процессе бронирования.
Во-первых, комиссия платформы для гостей входила в общую цену, показанную гостям, когда объявление появлялось в результатах поиска (зелёный прямоугольник)
Во-вторых, если гость открывал всплывающую подсказку «разбивка цены» на любом результате поиска, ему показывалась разбивка цены, в которой ночная цена и комиссия гостя отображались отдельно (красный прямоугольник).

Наконец, при просмотре страницы объявления, подробная разбивка цены (включая комиссии) отображалась рядом с кнопкой «Запросить бронирование»:

Эксперимент был нацелен на долгосрочные (давно существующие) объявления — то есть на те, которые уже были размещены на Airbnb к определённой контрольной дате.
Сам эксперимент, как вы можете заметить, был на продавцов.
Какие факторы оказывают влияние на смещение эффектов в данном эксперименте?
1. Продавцы подсматривают за конкурентами и реагируют на изменения у них.
Чтобы проверить это, ребята из Airbnb анализируют поисковую и просмотровую активность (просмотры страниц товара) хостов объявлений Airbnb в эксперименте за месяц до его запуска.
Они обнаружили, что подавляющее большинство хостов Airbnb не осуществляют поиск в своих собственных географических районах и не просматривают страницы конкурентов, что указывает на маловероятность того, что механизм «влияния продавцов» играет существенную роль в создании переливов эффектов в эксперименте.
В месяц, предшествующий эксперименту, только 20,1 % хостов объявлений хотя бы один раз осуществили поиск в своей географии, и лишь 12 % — поиск на конкретные даты в своей географии (т.е. они ставили даты бронирования). Среди тех хостов, кто выполнил хотя бы один поиск в своей географии, медианный хост сделал всего восемь поисков.
Кроме того, только 21,3 % хостов имели хотя бы один просмотр страницы чужого объявления в своей географии (не своего собственного). Среди тех, у кого был хотя бы один такой просмотр, медианный хост совершил четыре просмотра страниц, относящихся к трём разным объявлениям.
Более подробные данные о поисковой и просмотровой активности за месяц до эксперимента показаны на рисунке 1:

Учитывая эти результаты, а также, что:
(1) многие эксперименты в Airbnb проводятся намного меньше 30 дней
(2) воздействия на комиссию маркетплейса, как правило, вряд ли могут быть замечены хостами после небольшого количества поисков или просмотров
Поэтому можно предположить, что взаимное влияние в онлайн-маркетплейсах обусловлено не «влиянием продавцов», а тем, что продавцы совместно попадают в наборы рассмотрения потенциальных покупателей и конкурируют друг с другом за транзакции.
P.s. подчеркну, что эти воздействия в вашем случае могут быть заметны и стоит провести обязательно анализ перед запуском эксперимента, потому что Airbnb не учитывает тот факт, что хостосы могут быть собраны в общих каналах в месседжерах и обсуждать изменения политики компании, как, например, продавцы Озон/ВБ/Авито...
2. Самоусиливающиеся "переливы" эффектов из-за конкурирования продавцов друг с другом за транзакции.
Что это такое?
Если воздействие заставляет хостов Airbnb повышать (или снижать) цены, это может привести к снижению (или повышению) спроса на их собственные объявления и, следовательно, к повышению (или снижению) спроса на объявления их конкурентов.
Интересно, что в социальных сетях или экспериментах, где нет такого двухполярного взаимодействия (продавец-покупатель), где сетевой эффект вообще впервые был изучен, такие переливы имеют наоборот - одно направление.
Например, воздействия, направленные на повышение уровня вакцинации, может увеличить долю вакцинированных не только среди тех, кто получил воздействие, но и среди их окружения. Или вмешательство, увеличивающее активность публикаций у пользователей, попавших в тест, также повысит активность публикаций у их друзей.
Как раз этот и эффект оказывает наибольшее воздействие в АБ-экспериментах в маркетплейсе на примере Airbnb, так как при индивидуальной рандомизации пользователи чаще видят смесь тестовых и контрольных объявлений, и те, кто видит такую смесь, могут переносить бронирования с объявлений с более высокой комиссией на объявления с более низкой.
Как показывали, какое смещение возникает при проведении классического АБ-эксперимента, а не кластерного?
Для этого команда Airbnb проводила мета-эксперимент.
Дизайн его заключался в следующем:
Сначала объявления Airbnb были разделены на кластеры.
Затем кластеры случайным образом назначались в одну из двух мета-групп (meta-treatment arms):
— индивидуально-рандомизированную (25 % кластеров),
— или кластерно-рандомизированную (75 % кластеров).
Внутри индивидуально-рандомизированной мета-группы тритмент назначался на уровне отдельных объявлений. Внутри кластерно-рандомизированной мета-группы тритмент назначался на уровне кластера.
Каждую мета-группу можно анализировать как самостоятельный эксперимент, который дает оценку TATE (среднего тотального эффекта лечения).
Затем, анализируя данные от обеих мета-групп вместе, можно измерить, существует ли статистически значимая разница между этими двумя оценками.
Чтобы повысить статистическую мощность для этого сравнения, они разбили кластеры на страты и применили пост-стратификацию при анализе данных.
Дизайн на изображении:

Как делали кластеризацию?
Здесь я не буду вдаваться в подробности, так как для этого необходимо углубление в нейросети. Всем любителям их посоветую прочесть раздел подробнее в статье (4.2.1. Generating Hierarchical Listing Clusters).
Идея:
Airbnb использовал векторные представления (embeddings) для всех объявлений, чтобы математически описать похожие по спросу объекты — т.е. те, которые пользователи часто просматривают вместе.
Затем на этих embedding-векторах построили иерархическую кластеризацию, чтобы объединить похожие объявления в «иерархические кластеры», которые потом применялись как единицы рандомизации.

Из плюсов этого подхода могу выделить:
(1) Большее количество кластеров, чем кластеризация по гео, как делают, например, в Авито.
(2) Более точный учет взаимовлияния объявлений без захвата шумов.
(3) Повышение мощности из-за увеличения количества кластеров.
P.s. такие подходы придают мотивацию к изучению нейросетей, так как они помогают более точно подходить к снижению сетевых эффектов в рег. тестах засчет "удаления" взаимоэффектов продавцов через правильный выбор Loss-функции для обучения модели.
Как делали постстратификацию?
Они собрали предтритментные данные на уровне объявлений за месяц до эксперимента.
За этот период рассчитали кластер-уровневые сводные статистики:
— среднее число забронированных ночей на одно объявление,
— среднее число бронирований на одно объявление,
— средние общие траты гостей на одно объявление,
— и количество неэкспериментальных (holdout) объявлений в кластере.
(На момент проведения мета-эксперимента на платформе Airbnb она исключала объявления, входившие в долгосрочную holdout-группу)
После центрирования и масштабирования каждой из этих метрик вычислили расстояние Махаланобиса (Mahalanobis 1936) между каждой парой кластеров.
Расстояние Махаланобиса — это мера расстояния между точкой и распределением (или между двумя точками) с учётом ковариации данных. В отличие от обычного евклидова расстояния, оно учитывает масштаб и взаимную коррелированность признаков.

Махаланобис "растягивает" или "сжимает" пространство в зависимости от дисперсий и корреляций признаков: (1) Если признаки сильно коррелированы, он уменьшает вклад этой корреляции. (2) Если один признак имеет большую дисперсию, он снижает его влияние.
ПРИМЕР: Пусть у нас два признака: рост (в см) и вес (в кг). Если рост и вес сильно коррелируют (высокие люди обычно тяжелее), то точка с необычным соотношением “высокий, но лёгкий” будет иметь большее расстояние Махаланобиса от центра распределения, чем “высокий и тяжёлый” — даже если евклидово расстояние одинаково.
Ну и финально они, используя оптимальный жадный алгоритм, объединяли кластеры в страты максимального размера n = 8.
Проверка расхождений на периоде "до" теста по целевым метрикам
Ребята проверили расхождение на периоде до теста, что очень важно, так как это как раз проверяет корретность сплитовки, так как в противном случае мы бы получили bias, если были различия стат. значимые на препериоде.

Результаты эксперимента
Для оценки как индивидуально-рандомизированной, так и кластерно-рандомизированную ветви мета-эксперимента они используют следующую модель по данным на уровне объявлений:

Кого пугает такая запись для анализа АБ-тестов, советую обратиться к работе моих коллег.
В индивидуально-рандомизированной ветви TATE составляет −0.345 бронирования на объявление, тогда как в кластерно-рандомизированной ветви — −0.277 бронирования на объявление.
Обе эти оценки TATE статистически значимы на уровне доверия 95 %.
Для того, чтобы показать, что разница между TATE является стат. значимой команда Airbnb использует другую модель, которая по факту есть старая + флаг относится ли объявление в кластерную рандомизацию или индивидуальную.

В этой модели коэффициент β измеряет «истинный» эффект тритмента, а ν измеряет разницу между оценённым эффектом тритмента в индивидуально-рандомизированной ветви и оценённым эффектом тритмента в кластерно-рандомизированной ветви.
Другими словами, ν должен показывать, в какой степени кластерная рандомизация уменьшает смещение из-за сетевого эффекта.
Итого: «Истинный» TATE равен −0.277 бронирования на объявление, тогда как −0.068 бронирования на объявление из оценки TATE, полученной в индивидуально-рандомизированной мета-ветви, обусловлены смещением из-за сетевого эффекта. Доверительный интервал для смещения = 19.76 % (± 9.06 %) оценки TATE, т.е. кластерная рандомизация в данном случае снизила эффект на порядка 20%.
Что мы получаем?
(1) Кластерная рандомизация (рег. тесты) очень хорошо помогает бороться с сетевым эффектом
(2) Чем лучше «качество» этих кластеров, тем ближе к истинному эффекту будет оцененный эффект, например, используя мета-эксперимент для оценки силы снижения сетевого эффекта.
(3) Кластерная рандомизация приводит к снижению мощности из-за роста дисперсии и уменьшения выборки, поэтому необходима стратификация, CUPED правильные подходы к выбору кластеров.
Коротко идея рег. тестов (кластерных тестов): формируем в качестве групп для АБ-эксперимента не отдельных клиентов, продавцов, объявления, а группы этих единиц с условием их "влияния" друг на друга (в зависимости от бизнес-контекста - выше я привел такое решение от Airbnb), ну и запускаем АБ-тест на этих группах клиентов.
Всем большое спасибо!
Дальше поговорим про другой метод борьбы с сетевыми эффектами - switchback-тесты, который очень активно используется в каршеринге, пиццериях, доставке ..., там где очень сильные влияния в рамках времени или там где очень маленькие выборки.