Все

Сетап А/В-теста, который помог снизить MDE выручки в 2 раза

Статьи analytics
Привет! Я Соня Ожерельева — тимлид в команде Monetization Efficiency в Авито. Здесь мы создаём ML/Data-продукты в команде монетизации и AdTech. В частности внедряем бизнес-логику в ранжирование — учитываем там надёжность продавцов и услуги продвижения, которые они покупают для увеличения количества просмотров.
В статье расскажу про новый сетап A/B-теста, который мы использовали при тестировании системы Уровень сервиса на Авито. Он, как и A/B-тест по регионам, позволяет измерять влияние как на покупателей, так и на продавцов. При этом MDE нашего сетапа в 2 раза ниже, чем у регионального. Материал будет полезен аналитикам любых грейдов.

Кратко по терминам

Minimum detectable effect (MDE) — минимальный эффект, который мы можем заметить в результате A/B-теста.
Региональный A/B-тест — разновидность теста, в котором пользователей делят на группы не случайным образом, а распределяют их по регионам. Например, странам или городам.
Сетевой эффект — в упрощённом виде это ситуация, когда поведение пользователей из одной группы влияет на других. Например, мы тестируем голосовые сообщения в мессенджере, где их раньше не было. Делим пользователей на тех, кто сможет пользоваться голосовыми, и на тех, кто не сможет.
Пользователи, которые будут отправлять голосовые, начнут влиять на тех, кто голосовые отправлять не может, так как вторые будут их слушать. В результате это приведёт к сетевому эффекту.

Что такое надёжность продавцов и как Уровень сервиса помогает её оценивать

Надёжность продавцов — это элемент системы оценки уровня сервиса в Авито. До появления показателя надёжности единственным способом мотивировать пользователей следовать нашим правилам была угроза блокировки. Нас не устраивает такой подход, так как мы не можем блокировать всех продавцов, в которых не уверены.
Система Уровень сервиса решает эту проблему с двух сторон:
  1. Предоставляет недобросовестным продавцам возможность исправиться и улучшить взаимодействие с покупателями.
  2. Даёт преимущества продавцам с хорошей репутацией, например, отображение выше в поисковой выдаче и рекомендациях. Продавцы с высоким уровнем сервиса получают больше просмотров от потенциальных покупателей, а те, в свою очередь, больше общаются с теми, в ком мы точно уверены.
Из чего состоит Уровень сервиса:
  • проверки. Чтобы оценить надёжность продавца, мы смотрим на актуальность объявлений, достоверность информации, качество коммуникации с пользователями и другие факторы;
  • вычисление уровня сервиса и определение порогов. После проверок через репутационную формулу мы получаем скор от 0 до 1. На основе этого показателя выделяем группы надёжных и недобросовестных продавцов;
  • отображение информации у продавца и наши рекомендации, чтобы улучшать сервис. Продавец видит свою оценку уровня сервиса в профиле — там же находятся подсказки и инструкции, которые помогают скорректировать поведение и получать преимущества.
Рекомендации, как повышать репутацию, в профиле пользователя Авито:
Рекомендации, как повышать репутацию, в профиле пользователя Авито
  • система ограничений и преимуществ. С помощью неё мы мотивируем продавцов становиться лучше. Туда включены механики управления покупательским трафиком: отображение объявлений добросовестных продавцов выше в поиске, рекомендациях, а также блокировка рекомендаций для продавцов с красным уровнем.
Подробнее о том, как мы создавали систему оценки качества сервиса, можно почитать в статье: «Как изменить поведение продавцов на Авито и не испортить с ними отношения».

Первые шаги по учёту уровня сервиса продавцов в ранжировании объявлений на выдаче

Поисковое ранжирование в Авито строится на множестве параметров, которые помогают нам: определять релевантность объявлений поисковому запросу, вероятность заключения сделки, а также управлять эффективностью услуг продвижения.
Благодаря всему этому покупатели видят наиболее интересные и релевантные объявления вверху результатов поиска, а продавцы получают предсказуемый эффект от покупки услуг продвижения.
Помимо поисковой выдачи, в Авито есть блок рекомендаций. Это автоматически сформированная подборка объявлений, в которой мы учитываем интересы покупателя, предыдущие покупки и запросы:
В блок рекомендаций попадают объявления, которые могут быть интересны конкретному пользователю 
В первой итерации мы перестали показывать в рекомендациях объявления продавцов с низким уровнем сервиса. Хотели узнать, как это повлияет на выручку, поведение продавцов и опыт покупателей.
Перед тем как убрать объявления из рекомендаций, мы отправили сообщение пользователям с красным уровнем. Предупредили их об отключении рекомендаций и дали инструкцию, как улучшить показатели. Так продавцы могли скорректировать поведение и остаться в блоке с рекомендациями.
Вот какие гипотезы мы проверяли с помощью эксперимента:
  • считали, что недобросовестные продавцы начнут меняться в лучшую сторону. Мы рассчитывали, что ограничения будут мотивировать их повышать качество сервиса , а инструкция по работе с показателями поможет разобраться, что нужно улучшить в общении с покупателями;
  • рассчитывали, что мы не увидим существенной просадки в выручке. Из раздела рекомендаций приходит около 30% просмотров всех объявлений — нам было важно проверить, насколько мы потеряем в выручке, если не будем показывать там часть предложений. Изменения выручки было важно зафиксировать как можно быстрее и точнее — дальше расскажу об этом подробнее;
  • предполагали, что мы значимо улучшим покупательский опыт, так как покупатели ценят продавцов с высоким уровнем сервиса.
Для проверки мы решили использовать A/B-тесты — первые две гипотезы решили проверить тестом по продавцам, а последнюю — по покупателям.
Когда нужно измерить эффекты и по покупателям, и по продавцам, простое решение — запустить региональный тест на всех. Но такое решение нам не подходило.
Минимальный детектируемое изменение (MDE) выручки регионального теста с учётом всех улучшений, о которых мы знали, составлял 8%. Это означало, что мы рисковали не задетектировать эффект, поэтому мы стали искать другие решения.

Новый сетап A/B-теста как способ снизить минимальный детектируемый эффект по выручке с 8 до 4%

Новый сетап основан на стандартном A/B-тесте по продавцам, но с несколькими фишками. Несмотря на то что выборка недобросовестных продавцов небольшая, переход на A/B по продавцам существенно снизил MDE по сравнению с региональным сетапом.
Сначала мы разбили всех недобросовестных продавцов на тестовую и контрольную группы, как в стандартном A/B. Чтобы измерить эффект и на покупателей, мы убираем продавцов тестовой группы из рекомендаций в 90% случаев. А в 10% случаев убираем из рекомендаций в том числе и продавцов контрольной группы.
Так формируются три тестовые группы:
  • покупательский тест — это 10% покупателей, которые совсем не видят объявления недобросовестных продавцов, независимо от того, находятся ли они в контрольной или тестовой группе;
  • остальные покупатели — 80% покупателей, которые видят объявления продавцов контрольной и не видят объявления из тестовой группы;
  • покупательский контроль — 10% покупателей, для которых ничего не поменяется.
Сравним старый и новый сетапы:
При таком сетапе мы скрываем всех продавцов тестовой группы из раздела рекомендаций:
При таком сетапе мы скрываем всех продавцов тестовой группы из раздела рекомендаций 
Красным показаны продавцы тестовой группы, их объявления мы исключаем из рекомендаций в 90% случаев. Розовым — продавцы контрольной группы, их исключаем из рекомендаций в 10% случаев:
Красным показаны продавцы тестовой группы, их объявления мы исключаем из рекомендаций в 90% случаев. Розовым — продавцы контрольной группы, их исключаем из рекомендаций в 10% случаев
Здесь можно заметить минус нашего сетапа — воздействие на продавцов во время теста будет отличаться от воздействия при масштабировании. Мы решим эту проблему дальше, когда будем делать корректировку результатов A/B-теста на различие в воздействии.
Несмотря на такой недостаток, у нашего сетапа есть важные преимущества, которые перевешивают:
  • мы можем увидеть эффект не только по продавцам, но и по покупателям;
  • у теста с нашим сетапом будет такая же чувствительность, как и у стандартного A/B по продавцам.

Корректировка на разницу воздействия во время теста и после раскатки

Разница в воздействии между экспериментом и реальным масштабированием возникает по двум причинам:
  • неполное воздействие на продавцов тестовой группы. Их объявления пропадают из рекомендаций только в 90% случаев. При этом в 10% случаев мы замечаем воздействие и на контрольную группу;
  • сетевой эффект в группе «остальных» покупателей.
Что такое сетевой эффект. Это ситуация, когда воздействие на тестовую группу также опосредованно влияет и на контрольную. В результате зафиксированные метрики искажаются, а чистота эксперимента — нарушается.
Как он возникает. Сетевой эффект возникает в группе покупателей, которые видят объявления контрольной группы продавцов, но не видят объявления из тестовой. Мы называем их «группой остальных покупателей».
Продавцы из обеих групп появляются на одной и той же поисковой выдаче. И если из неё исчезают объявления продавцов из теста — объявления продавцов контрольной группы занимают их место. Это приводит к росту просмотров у последних, и, соответственно, к искажению метрик.
Как измерить сетевой эффект. Чтобы зафиксировать его, сравним трафик на объявления продавцов из контрольной группы в двух случаях:
  • в столбце посередине, где работает сетевой эффект;
  • в правом столбце, где мы ничего не меняли:
Измерение сетевого эффекта на контрольных группах
Вычисляем корректировку итоговых результатов с учётом неполного воздействия и наличия сетевого эффекта.
Обозначим:
A — это размер сетевого эффекта в эксперименте.
Х — это трафик, который получали из рекомендаций все продавцы до начала эксперимента.
Если группа контрольных продавцов в столбике посередине будет получать на A% больше трафика, чем группа контрольных продавцов в правом столбце, это как раз и будет сетевым эффектом.
Тестовая группа: здесь мы пессимизируем объявления в 90% случаев, поэтому там останется 10% трафика:

0.1Х
Контрольная группа: пессимизируем объявления в 10% случаев. Плюс добавляется сетевой эффект, который срабатывает на 80% оставшегося трафика — это средняя группа на схеме сетапа. Поэтому трафика там останется столько:

0.9Х + 0.8АХ
Сравним с идеальным сетапом: здесь мы пессимизировали бы объявления тестовой группы и сводили трафик к нулю, а трафик контрольной группы не менялся бы во время эксперимента. Получилось бы так:
  • тестовая группа получает 0% трафика;
  • контрольная — 100% трафика без искажений.
У нас получается такое сравнение:
Смотрим, какой объём воздействия применяется в итоге в нашем новом сетапе. Если бы мы проводили эксперимент по продавцам, то сила воздействия была бы 100%. С учётом сетевого эффекта и особенностей сетапа получается, что мы воздействуем с силой:

(0,9X 十 0,84X 一 0,1X) / Х = 0,8 x (1 + A)
Теперь, когда мы знаем силу воздействия в эксперименте, можем скорректировать эффект на метрики. Предположим, эксперимент показал снижение выручки на 10%, и выручка линейно зависит от силы воздействия.
Делим 10% на силу воздействия в эксперименте и получаем:
-10% → -10% ÷ (0,8 × (1 + A))
Таким образом мы смоделировали изменение выручки, которое получим при масштабировании на 100% продавцов.
В итоге мы придумали сетап эксперимента, который позволил:
  • снизить минимальный детектируемый эффект по выручке в 2 раза;
  • измерить эффект и на продавцов, и на покупателей;
  • учесть как сетевые эффекты, так и неполноту воздействия.
Всё это значит, что никаких блокеров к применению сетапа нет.
В каких случаях подойдёт наш сетап A/B-теста и какие у него есть ограничения:
  • если вам нужно измерить эффект и на продавцов, и на покупателей;
  • когда минимальный детектируемый эффект регионального теста слишком высок, из-за чего можно не заметить значимые изменения.
Ограничения сетапа:
  • продавцы в тестовой группе не должны заметить, что воздействие неполное. Иначе это нарушит чистоту эксперимента. В тесте с ограничением рекомендаций мы проверили, что продавцы не видят, откуда к ним приходит трафик, и не могут увидеть своё объявление в рекомендациях;
  • эффект можно измерить только на тех продавцах, на которых мы раскатываем тестовое воздействие. Например, в тесте с ограничением рекомендаций мы не сможем измерить, как изменится поведение всех остальных продавцов, если мы масштабируем воздействие на недобросовестных.

Вся статья кратко

Мы в Авито используем систему Уровень сервиса, чтобы оценивать надёжность продавцов. Проверяем, соответствуют ли их действия правилам площадки и помогаем скорректировать поведение, если видим, что уровень сервиса падает.
Чтобы протестировать работу системы, мы проводили A/B-тесты. Например, в одной из итераций мы перестали показывать в рекомендациях объявления продавцов с низким уровнем сервиса. Хотели узнать, как это повлияет на выручку, поведение продавцов и опыт покупателей.
Со временем выяснили, что стандартный региональный A/B-тест для наших задач не подходит, у него слишком высокий MDE — 8%. Если бы продолжили использовать такие тесты для проверки гипотез — это могло привести к тому, что значимые изменения остались незамеченными.
Разработали новый сетап эксперимента, который снизил MDE с 8 до 4% и позволил нам оценить влияние не только на продавцов, но и на покупателей Авито.
Новый сетап основан на стандартном A/B-тесте по продавцам, но с несколькими дополнениями:
  • сначала разбили всех недобросовестных продавцов на тестовую и контрольную группы, как в стандартном A/B;
  • чтобы измерить эффект и на покупателей, убрали продавцов тестовой группы из рекомендаций в 90% случаев, а в 10% случаев убрали из рекомендаций ещё и продавцов контрольной группы;
  • сформировали 3 тестовые группы:
  1. Те, кто совсем не видит объявления недобросовестных продавцов.
  2. Покупатели, которые видят объявления продавцов контрольной и не видят объявления тестовой группы.
  3. Покупатели, для которых ничего не меняется.
В конце сделали корректировку на разницу воздействия во время теста и после раскатки. Так мы избавились от сетевого эффекта и неполного воздействия на продавцов тестовой группы.
С A/B-тестами удобно работать в Trisigma — платформе для тестирования, анализа и визуализации метрик, разработанной у нас в компании. Если хотите внедрить это решение в свою компанию — переходите на лендинг продукта и записывайтесь на демо.
Заглядывайте также в наш канал «Коммуналка аналитиков»: здесь понравится каждому, кто интересуется аналитикой и любит читать тексты на эту тему.
А если хотите вместе с нами помогать людям и бизнесу через технологии — присоединяйтесь к командам. Свежие вакансии есть на нашем карьерном сайте.