Случайность над случайностью или в поисках “Социального эффекта”

Kseniia Menzorova
expf
Published in
7 min readJun 29, 2021

Дисклеймер

Всем привет, с вами на связи DS Маркетплейса СитиМобил Ксения.

Сегодня мы хотим поговорить чуть более подробно о так называемом “социальном эффекте” или “Network Effect”. Последние пару лет в аналитике активно обсуждается новый подход к проведению экспериментов, а именно Switchback-эксперименты (более подробно в эту тему можно погрузиться здесь или здесь). Отчасти такой интерес к данному типу проведения экспериментов вызван активным развитием маркетплейсов с несколькими участниками— самые популярные из них это, конечно, такси и всеми нами любимые сервисы доставки еды — где как раз и может возникать вышеупомянутый социальный эффект.

Прежде, чем искать способы проведения экспериментов, которые снижают социальный эффект и применять их для вашей задачи, хорошо бы понимать есть ли он (социальный эффект) в вашем случае и значимо ли статистически его влияние на изменение бизнес-метрик.

Есть много классных статей, которые позволяют ответить на этот вопрос уже постфактум (например, одна из них) — после запуска эксперимента или даже серии экспериментов, но обычно у нас нет столько времени и нам хочется иметь ответ на свой вопрос здесь и сейчас (ну или через период времени равный длине вашего стандартного эксперимента🤓).

Поэтому сегодня мы познакомим вас со статьей ребят из Linkedin, которая позволяет узнать, есть ли у вас социальный эффект, провести корректный эксперимент и затратить на это времени не больше, чем на ваш стандартный тест. Так что переходим к обзору статьи!

Интро

А/В-тест можно считать валидным, если для него выполняется “stable unit treatment value assumption (SUTVA)”. Это предположение говорит о том, что при проведении теста измененные условия для одной из групп должны воздействовать только на нее, и не должны на пользователей из других групп.

Взаимодействие пользователей, при котором они “передают” друг другу свои измененные состояния, называется “социальным эффектом” или “Network Effect”.

Авторы статьи разработали способ проверки выполнения SUTVA и обнаружения наличия социального эффекта в эксперименте.

Если кратко, то их идея заключается в следующем — запустить эксперимент в двух дизайнах параллельно: первый дизайн— классический полностью рандомизированный, второй дизайн — для уменьшения социального эффекта, например, на кластеризованных группах. Далее разница между группами измеряется с помощью предложенного авторами статистического теста. Если разница между группами статистически значимая, то социальныц эффект присутствует и оценивать результаты эксперимента можно только по второму дизайну. Если разницы нет, то эффект оценивается по совокупным данным.

Способы уменьшения социального эффекта

Существует несколько способов уменьшения социального эффекта, каждый из которых обладает рядом особенностей, причем не каждый из них может быть применен с равной степенью легкости для разных типов бизнесов. Авторы выделяют 3 основных направления.

Разделение на группы по кластерам

Пользователи разбиваются на кластера, которые далее случайным образом размечаются на пилотную и контрольную группы. Эту идею можно изобразить следующим образом:

Pic. 1 Пример разделения эксперимента на пилотную и контрольную группы по кластерам.

Многоуровневые дизайны эксперимента

В этих дизайнах варьируется объем долей популяции под экспериментом. Краткая идея заключается в том, что общий эффект в эксперименте — это сумма разницы между пилотом и контролем, которую мы наблюдаем в тесте и изменения “показаний” контрольной группы за счет влияния пилотной. В многоуровневых дизайнах предполагается, что такое изменение “показаний” пропорционально объему пилотной группы в эксперименте.

Для иллюстрации этого эффекта рассмотрим интересный и актуальный пример из вот этой статьи. Ее, кстати, можно использовать далее как знакомство с этим методом. Авторы в ней делятся результатами теста вакцины от холеры.

Рассмотрим два дизайна эксперимента. В группе 1 было вакцинировано 28% людей, в группе 2 — 50% людей. Эффект в эксперименте будет измеряться количеством повторных случаев на 1000 человек. Теперь сравним эффекты в обеих группах. (А — невакцинированные люди, В — вакцинированные)

Группа 1: А1 — B1 = 7.01–2.66 = 4.35

Группа 2: А2 — B2 = 1.47–1.27 = 0.2

Мы видим, что результаты очень сильно отличаются. Более того, если бы мы видели только вторую группу, нам бы не захотелось пользоваться такой вакциной, хотя на самом деле отсутствие эффекта в группе A2 вызвано в целом долей вакцинированных людей в группе 2.

Социальный эффект по закону

Существует также подход, который предполагает, что влияние между пользователями распространяется согласно некоторому закону. Такие модели зачастую более сложные и разрабатываются в исследовательских целях для специфических случаев. Для начала можно прочитать вот эту или эту статьи.

От себя добавим, что в данном делении Switchback-тестирование попадет в группу экспериментов, основанных на кластеризации. По сути в Switсhback мы кластеризуем группы по пространству и времени, предполагая, что именно через них идет основная связь между пользователями, которую мы и хотим уменьшить.

Слабые стороны теста на кластерах

В своем исследовании авторы остановились на особенном разделении на экспериментальные и контрольные группы по кластерам, которое мы обговорим ниже в разделе “Дизайн эксперимента”.

Для работы с социальными сетями это действительно самый простой и эффективный способ снижения социального эффекта, но справедливости ради стоит отметить несколько его недостатков:

  • Не так просто подобрать подходящий способ кластеризации для своих пользователей.
  • Есть сложности с равномерностью “набивки” пользователей в контрольную и экспериментальную группы. Если говорить проще, то нам необходимо, чтобы при разделении всех кластеров на нужное нам количество групп они показывали одинаковые бизнес-метрики, при условии, что к ним не применяются измененные условия. Как раз вот этого на кластерах добиться бывает сложно.
  • Разброс метрик обычно выше, чем в рандомизированном тесте, как следствие, тест на кластерах придется держать чуть дольше, чем обычный.

После того, как мы приняли все недостатки данного подхода, можно обсудить дизайн эксперимента, который предложили авторы статьи.

Дизайн эксперимента

Классические подходы

Если бы у нас был способ узнать соблюдается ли SUTVA в наших экспериментах, то мы бы смогли понять, какой способ проведения эксперимента нам подходит — классический полностью рандомизированный или основанный на кластерах (или какой-либо другой, снижающий социальный эффект). Раньше исследователи предлагали проверить это постфактум, уже после проведения эксперимента, например, как это сделать рассказано тут, тут или даже тут.

Такой подход требует не только дополнительного времени, но и, возможно, запуска невалидного теста в продакшн, о чем мы узнаем только после самого теста. А значит потратим дополнительное время на его перезапуск в новом дизайне.

Подход авторов

Всех этих лишних трат времени в условиях быстро развивающихся бизнесов хочется избежать, что и позволяет сделать подход, описанный в статье. А именно мы сможем узнать выполняется ли SUTVA прямо в процессе эксперимента.

Авторы предлагают реализовать следующий подход: одновременно запустить полностью рандомизированный и кластеризованный эксперименты на разных случайным образом выбранных частях популяции. Ответ на вопрос, был ли соблюден SUTVA, будет браться на основе сравнения результатов в двух ветках эксперимента. Если результат очень разный (авторы предоставляют критерий), то SUTVA не выполняется и нам надо оценивать результаты по ветке, где шел кластеризованный эксперимент, если же нет, то результат оценивается по всей популяции.

Две ветки эксперимента получим следующим образом:

  • кластеризуем клиентов на m кластеров;
  • делим кластеры на две группы случайным образом;
  • одну группу будем делить на экспериментальную и контрольную группы по кластерам, другую рандомизированно до клиента.

Эта идея наглядна представлена на картинке ниже:

Pic. 2 Разделение клиентов на тестовую и контрольную группу. (cr — completely randomized, cbr — cluster-based randomized). Картинка взята из оригинальной статьи авторов.

Здесь µ c разными индексами — это разница средних между пилотом (treatment) и контролем (control) в двух ветках эксперимента, которые считаются следующим образом:

Аналогично для стандартных отклонений:

В таком дизайне сохраняется одна особенность кластеризованных экспериментов, которую мы обговорили раньше. Такие кластеры могут разделиться на группы неравномерно, например, в одну группу попадут активные пользователи, в другую нет. Чтобы избежать этого, предварительно разделим выборку на страты и внутри каждой страты проведем описанный выше процесс, это может выглядеть следующим образом:

Pic. 3 Разделение клиентов на тестовую и контрольную группу с применение страт. Картинка взята из оригинальной статьи авторов.

Когда процесс проведен, эксперимент прошел, а данные собраны, полученные в двух ветках метрики могут быть сравнены статистическим тестом, предложенным авторами:

После знакомства с базовой идей обговорим, какие результаты были получены авторами на реальных данных и какие особенности необходимо дополнительно учесть на практике при запуске эксперимента в таком дизайне.

Проверка на реальных данных

В описании дизайна эксперимента явно не указано, но большой этап работы в нем также посвящен подбору подходящего алгоритма кластеризации и его применении к данным.

Авторы предъявили следующие требования к алгоритму кластеризации:

  • масштабируем на объемы данных компании
  • результатом работы являются сильно плотные кластеры
  • кластеры сбалансированы (одинаковое/схожее количество ребер внутри них)

Алгоритм выбирался из следующего списка:

Финальный эксперимент был проведен на reLDG, так как на тестах он дал наиболее плотные кластера.

Свой подход авторы опробовали на пользователях Linkedin из Голландии, на которых проверили два разных алгоритма ранжирования. В обоих экспериментах был обнаружен социальный эффект.

Заключение

Авторы предложили дизайн эксперимента, который позволяет одновременно провести валидный тест, а также узнать есть ли у вас социальный эффект в данных. Проведение такого теста единожды позволит определиться с подходящим для вас дизайном тестов и быть полностью уверенным, что их результаты корректны. Всем прорывных идей и валидных экспериментов!

Ссылка на оригинальную статью — https://web.stanford.edu/~msaveski/assets/publications/2017_detecting_network_effects/paper.pdf

--

--