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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Результат

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

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

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

А совсем скоро, 14 октября, на конференции про рост продуктов Epic Growth Conference Тимур расскажет, как команда строит и развивает систему матчинга, какие есть подводные камни и про особенности тестирования таких систем.

Больше докладов по продуктовому маркетингу — в Telegram-канале.

1919
24 комментария

Интересно было бы увидеть статистику без учета ботов ;)

7
Ответить

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

1
Ответить

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

6
Ответить

Офтоп:
Объясните мне смысл приема повторять цитату отдельно крупно. Почему нельзя выделить ее прямо в тексте? Хорошо ещё не как у некоторых: повторяют ее вообще отдельно от контекста.

4
Ответить

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

4
Ответить

Реальную женщину можно в Badoo найти? 

Ответить

Вадим, все женщины на Баду реальные 

4
Ответить