Product-driven подход к машинному обучению: кейс «ВКонтакте»

Директор по росту и исследованиям «ВКонтакте» Андрей Законов рассказал на Epic Growth Conference, как получить прирост активности пользователей с помощью внедрения машинного обучения в продукт, а также поделился интересными результатами экспериментов.

Прирост активности на десятки процентов благодаря алгоритму в ключевых метриках

Достаточно много активности приходится на потребление контента — это лента новостей. Мы анализировали, как люди пользуются лентой, что им интересно. В 2016 году мы запустили умную ленту новостей, которая перестала быть хронологической, стала работать на основе алгоритмов. И это был первый классный успех. Прирост активности составил 40%.

Интуитивно логичная гипотеза — сделать рекомендации контента, запустить новый раздел. Для того чтобы запустить рекомендации, появляется внушительный список идей, которые нужно проработать, и задачи, которые надо реализовать.

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

Прежде чем начинать процесс внедрения машинного обучения, хочется ответить на два важных вопроса.

  1. Точно ли это оправданные инвестиции времени команды?
  2. Принесёт ли нам это тот прирост, который мы ожидаем, и как это можно ускорить?
Product-driven подход к машинному обучению: кейс «ВКонтакте»

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

Чтобы не делать новый интерфейс, а проверить гипотезу за пару недель, мы добавили блок «Вам может быть интересно» в ленту новостей и начали смотреть, как реагируют пользователи. Увидели классный результат. Вовлечение в такие записи оказалось в среднем почти в два раза выше, чем в другие записи в ленте.

Второй вопрос, который очевидно появляется:«Как это сделать быстрее и как вообще оценить время на эту задачу?» К примеру, первую версию ленты новостей мы запустили за несколько месяцев. Но с тех пор, с 2016 года, больше трёх лет, мы продолжаем её совершенствовать с точки зрения алгоритмов. При запуске обновлённой ленты мы получаем ещё чуть-чуть прироста в тех метриках, которые нас интересуют.

Поэтому, если всё же хочется уложиться в разумное время, то очень полезно научиться отвечать на вопрос:«А насколько эта фича, этот алгоритм ключевой для продукта, для продуктового запуска, для развития?» Если это вещь ключевая, надо понимать, что процесс работы над ним будет нелёгким и займёт много времени.

При этом, если фича кажется полезной, но вы чувствуете, что на неё не хочется тратить годы, тогда это попадает в категорию nice to have. В этом случае нужно сфокусироваться на скорости и на том, как проще это реализовать.

Product-driven подход к машинному обучению: кейс «ВКонтакте»

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

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

Три уровня сложности для проведения экспериментов

Когда мы тестируем алгоритмы

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

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

Когда пользователь уже знает, что что-то происходит

Здесь сложность в том, что вы не можете это включить на пять минут, а потом обратно выключить, потому что пользователь это уже заметил. И он, соответственно, расстроится, если это внезапно исчезнет. А ещё в нашем случае запуск фичи уже может быть анонсирован в новостях.

Начинается недовольство со стороны пользователей. У кого-то работает, у кого-то нет. Подобные эксперименты удобно проводить в другой стране, например в Бразилии, чтобы это меньше влияло на пользователей в России.

Когда мы решаем, что хотим запускаться красиво с пресс-релизом

В этом случае у нас нет варианта запустить что-то для определённого процента пользователей и посмотреть метрики. Потом запустить на 10% и как-то плавно внедрять. В этом случае надо подготовить всё заранее и сразу сделать круто.

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

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

В случае с рекомендациями мы три-четыре месяца готовились к запуску, создавали инфраструктуру и тестовые группы, для того чтобы запуститься и быстро проверить гипотезы. У нас получилось за полгода увеличить активность в разделе почти в три раза, потому что мы заранее подготовились и протестировали запуск на пользователях.

Фичи с Machine Learning в продакшн — праздник, который всегда с тобой

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

Как максимально быстро создавать ключевые для продукта алгоритмы и проверять гипотезы

Преобразование вертикальных фотографий

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

Product-driven подход к машинному обучению: кейс «ВКонтакте»
  • Интересно: придумать алгоритм и реализовать

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

  • Интересно и полезно: узнать топовые алгоритмы и реализовать

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

  • Быстро и полезно: взять готовое решение

Он абсолютно не понравится команде, потому что скучный. Можно просто взять готовое решение и внедрить его за два часа в ваш продукт. Важно понимать, что около сотни крупных компаний занимаются алгоритмами машинного обучения. Они делают готовые API, которые вы можете использовать, просто поискав нужный вариант.

Распознавание объектов на фотографии

Задача сложная. Вероятность того, что даже если у вас классная команда, вы сделаете круче, чем Google, Amazon, Facebook и Microsoft, достаточно небольшая. Очевидно, если компьютерное зрение — это не ключевое направление вашего бизнеса.

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

Использовать готовое решение лучше. Потому что буквально через день-два вы уже сможете проверить, как вообще этот алгоритм работает, подходит ли эта технология для вашего продукта, насколько становится лучше пользователям, и как это влияет на продуктовые метрики.

Определение текста на фото

У нас в ленте много фотографий, на которых что-то пишут. Понятно, что для определения тематики записи и формирования ленты, нам хотелось бы понимать, что именно написано на фотографии. Задача классическая — проанализировать изображение и понять, что написано. Когда протестировали готовое решение, увидели пользу, и уже потом потратили время на улучшение.

Если протестировали, но не хочется в дальнейшем тратить время на улучшение алгоритмов, стоит подумать, можно ли на уровне продуктового использования алгоритма по-другому его применять в продукте?

Например, когда пользователи загружают фотографии «ВКонтакте», появилась гипотеза, что было бы классно автоматически определять друзей пользователей или автоматически их заменить на фотографии. Мы сделали простую версию и подумали, как её включать на пользователей.

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

Product-driven подход к машинному обучению: кейс «ВКонтакте»

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

У нас получились очень интересные результаты, что все эксперименты, связанные с интерфейсом, подсказками, кнопками и обучением приводят к приросту в 5%, максимум 10%. Если действительно находить записи, которые пользователю интересны, и не менять ничего на их уровне, то только, благодаря правильному выбору записей, активность растет на 30–40%.

Будущее за правильными моделями, алгоритмами и аналитикой.

С одной стороны, это супер сложно, с другой стороны, если достаточно рационально подходить к процессу и осмысленно планировать, то можно получать отличный прирост быстро.

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

1010
1 комментарий

Отличная презентация! Спасибо!

Ответить