Как Badoo связал миллионы людей, изменив алгоритм рекомендаций
Тимур Гарифзянов, Product Lead Magic Lab (Badoo, Bumble and others), рассказал, как менялся алгоритм рекомендательной системы Badoo и как это помогло сгенерить миллионы матчей.
Почему решили изменить привычный алгоритм
Как любая крупная компания, мы хотим стать ещё больше. Как одно из направлений решили изучить a-ha-моменты пользователей. Оказалось, ретеншн значительно выше, когда пользователь получает первый матч — находит взаимную симпатию.
Если пользователь в первый день не получал матч, он с меньшей вероятностью возвращался обратно в продукт. Мы решили копнуть глубже эту метрику: как драйвить её, увеличивая количество людей с одним матчем и с помощью этого сделать так, чтобы меньше людей уходило из продукта.
Если пользователь в первый день не получал матч, он с меньшей вероятностью возвращался обратно в продукт.
Очевидным способом казалась оптимизация алгоритма. Однако тут возникли проблемы. Алгоритм годами накапливал изменения, подстраиваясь под динамично развивающийся продукт. К сожалению, часть знаний, почему те или иные решения приняты, были утеряны.
Вдобавок к этому рекомендательная система играет основополагающую роль в экосистеме Badoo, на ней завязано многое. Предсказать, как изменения отразятся на всей экосистеме, не имея полных знаний, — сложно. Так оказалось, что единственным правильным решением будет переписать весь алгоритм с нуля.
Как тестировали изменения
Достаточно быстро мы поняли, что A/B-тесты нам не помогут, так как не получалось выделить контрольную группу или изолировать часть людей. К тому же всё это не дало бы ответов, как это повлияет на экосистему в целом.
Вместо этого мы нашли отличную систему Casual Impact, которая показывает, как метрика будет себя вести, если изменений не будет, используя соседние страны и исторические данные.
Так как все страны сильно отличаются, у нас возник вопрос, как построить процесс так, чтобы не получилось, что что-то сработало в одной стране, а при запуске в других странах там это не работает.
После нескольких итераций выбрали такой подход: взяли несколько метрик, которые непосредственно влияют на наш алгоритм — как много мужчин и женщин, процент использования приложения, процент payer-ов и средний возраст. Разделили страны на три сегмента, например, условно в Аргентине у нас довольно много людей и они достаточно хорошо платят, а в Белоруссии не очень много людей, но зато есть хорошее соотношение.
Далее разделили страны на три группы и смотрели, в каких странах эксперимент работает одинаково. Например, будучи уверенными, что эксперимент в Аргентине и в Швейцарии будет работать примерно одинаково, не факт, что он сработает в России.
Будучи уверенными, что эксперимент в Аргентине и в Швейцарии будет работать примерно одинаково, не факт, что он сработает в России.
Тестили каждую группу: если в одной группе эксперимент был успешным, переходили на другую. И только после того как эксперимент давал отличные результаты во всех группах — раскатывали его глобально.
Результат
Благодаря тому, что мы переписали алгоритм, мы получили гибкую, контролируемую систему: каждый эксперимент задокументирован, изменения предсказуемы. В итоге мы можем быстро запускать и анализировать изменения.
Через несколько итераций мы оптимизировали нашу основную метрику — на 50% больше людей у нас получают матч в первый же день пользования продуктом.
За 2018 год это позволило нам сгенерить — 2,7 млрд матчей.
А совсем скоро, 14 октября, на конференции про рост продуктов Epic Growth Conference Тимур расскажет, как команда строит и развивает систему матчинга, какие есть подводные камни и про особенности тестирования таких систем.
Больше докладов по продуктовому маркетингу — в Telegram-канале.