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

Содержание:
Что такое надёжность продавцов и как Уровень сервиса помогает её оценивать
Первые шаги по учёту уровня сервиса продавцов в ранжировании объявлений на выдаче
Новый сетап A/B-теста как способ снизить минимальный детектируемый эффект по выручке с 8 до 4%
Корректировка на разницу воздействия во время теста и после раскатки
Кратко по терминам
Minimum detectable effect (MDE) — минимальный эффект, который мы можем заметить в результате A/B-теста.
Региональный A/B-тест — разновидность теста, в котором пользователей делят на группы не случайным образом, а распределяют их по регионам. Например, странам или городам.
Сетевой эффект — в упрощённом виде это ситуация, когда поведение пользователей из одной группы влияет на других. Например, мы тестируем голосовые сообщения в мессенджере, где их раньше не было. Делим пользователей на тех, кто сможет пользоваться голосовыми, и на тех, кто не сможет.
Пользователи, которые будут отправлять голосовые, начнут влиять на тех, кто голосовые отправлять не может, так как вторые будут их слушать. В результате это приведёт к сетевому эффекту.
Что такое надёжность продавцов и как Уровень сервиса помогает её оценивать
Надёжность продавцов — это элемент системы оценки уровня сервиса в Авито. До появления показателя надёжности единственным способом мотивировать пользователей следовать нашим правилам была угроза блокировки. Нас не устраивает такой подход, так как мы не можем блокировать всех продавцов, в которых не уверены.
Система Уровень сервиса решает эту проблему с двух сторон:
Предоставляет недобросовестным продавцам возможность исправиться и улучшить взаимодействие с покупателями.
Даёт преимущества продавцам с хорошей репутацией, например, отображение выше в поисковой выдаче и рекомендациях. Продавцы с высоким уровнем сервиса получают больше просмотров от потенциальных покупателей, а те, в свою очередь, больше общаются с теми, в ком мы точно уверены.
Из чего состоит Уровень сервиса:
проверки. Чтобы оценить надёжность продавца, мы смотрим на актуальность объявлений, достоверность информации, качество коммуникации с пользователями и другие факторы;
вычисление уровня сервиса и определение порогов. После проверок через репутационную формулу мы получаем скор от 0 до 1. На основе этого показателя выделяем группы надёжных и недобросовестных продавцов;
отображение информации у продавца и наши рекомендации, чтобы улучшать сервис. Продавец видит свою оценку уровня сервиса в профиле — там же находятся подсказки и инструкции, которые помогают скорректировать поведение и получать преимущества.

система ограничений и преимуществ. С помощью неё мы мотивируем продавцов становиться лучше. Туда включены механики управления покупательским трафиком: отображение объявлений добросовестных продавцов выше в поиске, рекомендациях, а также блокировка рекомендаций для продавцов с красным уровнем.
Подробнее о том, как мы создавали систему оценки качества сервиса, можно почитать в статье: «Как изменить поведение продавцов на Авито и не испортить с ними отношения».
Первые шаги по учёту уровня сервиса продавцов в ранжировании объявлений на выдаче
Поисковое ранжирование в Авито строится на множестве параметров, которые помогают нам: определять релевантность объявлений поисковому запросу, вероятность заключения сделки, а также управлять эффективностью услуг продвижения.
Благодаря всему этому покупатели видят наиболее интересные и релевантные объявления вверху результатов поиска, а продавцы получают предсказуемый эффект от покупки услуг продвижения.
Помимо поисковой выдачи, в Авито есть блок рекомендаций. Это автоматически сформированная подборка объявлений, в которой мы учитываем интересы покупателя, предыдущие покупки и запросы.

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


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

Вычисляем корректировку итоговых результатов с учётом неполного воздействия и наличия сетевого эффекта.
Обозначим:
A — это размер сетевого эффекта в эксперименте.
Х — это трафик, который получали из рекомендаций все продавцы до начала эксперимента.
Если группа контрольных продавцов в столбике посередине будет получать на A% больше трафика, чем группа контрольных продавцов в правом столбце, это как раз и будет сетевым эффектом.
Тестовая группа: здесь мы пессимизируем объявления в 90% случаев, поэтому там останется 10% трафика:
Контрольная группа: пессимизируем объявления в 10% случаев. Плюс добавляется сетевой эффект, который срабатывает на 80% оставшегося трафика — это средняя группа на схеме сетапа. Поэтому трафика там останется столько:
Сравним с идеальным сетапом: здесь мы пессимизировали бы объявления тестовой группы и сводили трафик к нулю, а трафик контрольной группы не менялся бы во время эксперимента. Получилось бы так:
тестовая группа получает 0% трафика;
контрольная — 100% трафика без искажений.
У нас получается такое сравнение:
Поюзерный эксперимент | Anti-Regional сетап | |
Тестовая группа | 0 | 0.1X |
Контрольная группа | X | 0.9 + 0.8aX |
Смотрим, какой объём воздействия применяется в итоге в нашем новом сетапе. Если бы мы проводили эксперимент по продавцам, то сила воздействия была бы 100%. С учётом сетевого эффекта и особенностей сетапа получается, что мы воздействуем с силой:
Теперь, когда мы знаем силу воздействия в эксперименте, можем скорректировать эффект на метрики. Предположим, эксперимент показал снижение выручки на 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 тестовые группы:
Те, кто совсем не видит объявления недобросовестных продавцов.
Покупатели, которые видят объявления продавцов контрольной и не видят объявления тестовой группы.
Покупатели, для которых ничего не меняется.
В конце сделали корректировку на разницу воздействия во время теста и после раскатки. Так мы избавились от сетевого эффекта и неполного воздействия на продавцов тестовой группы.
С A/B-тестами удобно работать в Trisigma — платформе для тестирования, анализа и визуализации метрик, разработанной у нас в компании. Если хотите внедрить это решение в свою компанию — переходите на лендинг продукта и записывайтесь на демо.
Как вам обновленный сетап A/B-теста? Пишите в комментариях, как можно сделать этот эксперимент ещё лучше.
Заглядывайте также в наш канал «Коммуналка аналитиков»: здесь понравится каждому, кто интересуется аналитикой и любит читать тексты на эту тему.
А если хотите вместе с нами помогать людям и бизнесу через технологии — присоединяйтесь к командам. Свежие вакансии есть на нашем карьерном сайте.