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