Как Badoo связал миллионы людей, изменив алгоритм рекомендаций

Anastasia Stasy
Epic Growth
Published in
3 min readOct 4, 2019

Тимур Гарифзянов, Product Lead Magic Lab (Badoo, Bumble and others), рассказал, как менялся алгоритм рекомендательной системы Badoo и как это помогло сгенерить миллионы матчей.

Почему решили изменить привычный алгоритм

Как любая крупная компания, мы хотим стать еще больше. Как одно из направлений решили изучить a-ha моменты пользователей. Оказалось, ретеншн значительно выше, когда пользователь получает первый матч — находит взаимную симпатию.

Если пользователь в первый день не получал матч, он с меньшей вероятностью возвращался обратно в продукт. Мы решили копнуть глубже эту метрику: как драйвить её, увеличивая количество людей с одним матчем и с помощью этого сделать так, чтобы меньше людей уходило из продукта.

Если пользователь в первый день не получал матч, он с меньшей вероятностью возвращался обратно в продукт.

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

Вдобавок к этому, рекомендательная система играет основополагающую роль в экосистеме Badoo, на ней завязано многое. Предсказать, как изменения отразятся на всей экосистеме, не имея полных знаний — сложно. Так оказалось, что единственным правильным решением будет переписать весь алгоритм с нуля.

Как тестировали изменения

Достаточно быстро мы поняли, что A/B-тесты нам не помогут, так как не получалось выделить контрольную группу или изолировать часть людей. К тому же, все это не дало бы ответов, как это повлияет на экосистему в целом.

Вместо этого мы нашли отличную систему Casual Impact, которая показывает, как метрика будет себя вести, если изменений не будет, используя соседние страны и исторические данные.

Так как все страны сильно отличаются, у нас возник вопрос, как построить процесс так, чтобы не получилось, что что-то сработало в одной стране, а при запуске в других странах там это не работает.

После нескольких итераций выбрали такой подход, взяли несколько метрик, которые непосредственно влияют на наш алгоритм: как много мужчин и женщин, % использования приложения, % payer-ов и средний возраст. Разделили страны на три сегмента, например, условно в Аргентине у нас довольно много людей и они достаточно хорошо платят, а в Белоруссии не очень много людей, но зато есть хорошее соотношение.

Далее разделили страны на три группы, и смотрели в каких странах эксперимент работает одинаково. Например, будучи уверенными, что эксперимент в Аргентине и в Швейцарии будет работать примерно одинаково, не факт, что он сработает в России.

Будучи уверенными, что эксперимент в Аргентине и в Швейцарии будет работать примерно одинаково, не факт, что он сработает в России.

Тестили каждую группу: если в одной группе эксперимент был успешным, переходили на другую. И только после того, как эксперимент давал отличные результаты во всех группах — раскатывали глобально.

Результат

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

Через несколько итераций мы оптимизировали нашу основную метрику — на 50% больше людей у нас получают матч в первый же день пользования продуктом.

За 2018 год это позволило нам сгенерить — 2.7 млрд матчей.

Еще больше крутых примеров и процессов развития и роста продуктов читайте в нашем телеграм-канале.

--

--