Кейс: Яндекс.Советник — увеличение скорости A/B-тестов

Яндекс.Советник подсказывает пользователям, где тот или иной товар можно купить дешевле. Он работает внутри браузера и реагирует, когда люди посещают интернет-магазины. Яндекс купил Советник в 2014 году — и к 2020 году трафик сервиса вырос в 25 раз. Это произошло благодаря интеграции сервиса в приложения Яндекса: браузер, перекоючатель клавиатуры и т.п.

Раньше команда замеряла CTR — то есть конверсию в первый клик, но со временем главной метрикой стали покупки. И сразу возникла серьезная прощуктовая проблема: чтобы развивать сервис, нужно проверять много гипотез. А чтобы проверять гипотезы, нужны A/B-тесты. Однако трафика в покупках на порядки меньше, чем кликов по объявлениям. В итоге один A/B-тест по расчетам должен был проходить около трех лет, иначе результат просто не будет статзначим.

В описании кейса — основные сведения о Яндекс.Советнике и описание проблемы A/B-тестов. Естественно, бизнес не может проверять гипотезы по несколько лет — пожтому вам необходимо придумать, как команда может серьезно сократить необходимое для экспериментов время?

История продукта

Яндекс.Советник — расширение для браузера. Он замечает, когда вы открываете страницу с каким-то товаром, сравнивает его стоимость с аналогичными предложениями других интернет-магазинов (на основе анализа изображений) и показывает, где можно купить дешевле. Аудитория Советника — более 50 млн активных пользователей (примерно как у Авито или Facebook в России).

Так выглядят подсказки Яндекс.Советника

Приложение со всплывающими подсказками Яндекс.Маркета с более низкой ценой или похожим товаром по умолчанию встроено в различные программы для веба: Яндекс.Браузер (второй по популярности браузер в России), автоматический переключатель клавиатуры Punto Switcher, различные аддоны, десктопные расширения и т.д.

С 2014 года, когда Яндекс купил приложение Советник, количество пользователей выросло в 25 раз.

В какой-то момент самой важной метрикой стала конверсия, а не CTR.

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

  1. Если CTR 3%, то только 1 из 33 показов заканчивается кликом. То есть тригеров для измерения конверсии в 33 раза меньше, чем триггеров для CTR.
  2. Реальных покупок еще меньше, чем кликов по предложениям.

Получается, даже если конверсия в покупку из клика будет на уровне 10%, то данных в A/B-тестировании гипотез конверсии будет в 10 раз меньше, чем для тестрования гипотез по CTR. По факту же конверсия в покупку ниже CTR даже в абсолютных процентах — а значит, и допустимая погрешность у конверсии тоже должна быть меньше.

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

Вопрос

Вы посчитали: результаты A/B-теста были статзначимы, необходимо проводить его 150-200 недель (~3 года). Конечно, бизнес столько ждать не станет — это катастрофа.

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

Дисклеймер

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

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

Ответ на кейс

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

Если мы снизим дисперсию в два раза, то понадобится в два раза меньше данных.

А если мы можем позволить себе в 2 раза большую погрешность, то данных надо в 4 раза меньше. Потому что в формуле — квадрат погрешности.

Когда мы проводим эксперимент, у нас есть группы A1, A2 и B. Мы можем посчитать интересующую нас метрику на группе A1 — общее количество кликов, деленное на показы. Дальше каждого пользователя представляем кликом этого пользователя за вычетом коэффициента, умноженного на показы пользователя. То же самое мы можем делать с любой метрикой отношений, в том числе и конверсией.

И CTR, и конверсия лежат в пределах от 0 до 1. Линеаризованная метрика может быть больше единицы и меньше нуля. Соответственно, так мы сможем повысить допустимую погрешность, уменьшив количество необходимых наблюдений. Это решение помогло сократить время тестов до 14 дней.