Системы рекомендаций — важный элемент в цифровой экономике. Они используются в самых разных сферах: от e-commerce до стриминговых сервисов и социальных сетей. «Аргументам недели» поговорили с опытным разработчиком Богданом Михайловым, который рассказал, как создать персонализированную систему рекомендаций с нуля.
— Персонализация — это не просто тренд, а уже неотъемлемая часть успешных цифровых продуктов. Почему вы считаете, что персонализированные системы — это основа роста?
— Персонализация давно перестала быть модным словом. Это уже не просто дополнительная опция для удобства пользователей на различных платформах, но и ключевой элемент для роста бизнес-показателей. Пример из нашего опыта: в 2022–2023 годах мы создали новую систему персонализации в VK, которая позволила увеличить конверсию в целевое действие в целевых сегментах с 4% до 27% всего за год. Сегодня это не просто удобство — это реально работающий механизм для повышения глубины сессий, времени в продукте, конверсии и удержания.
— С чего начинается процесс создания рекомендательной системы? Какие этапы самые важные?
— Всё начинается с данных. Без них алгоритм — это просто набор формул. Нам нужно понять, какие сигналы мы можем использовать. Например, в соцсетях это лайки, время просмотра контента, комментарии. В интернет-магазине — покупки, добавления в корзину, просмотры карточек товаров. Мы собираем все эти обезличенные данные и превращаем их в числовые представления, которые затем анализирует модель.
— Какие подходы применяются при построении моделей?
— Мы выбрали гибридный подход. Отказались от жёстких категорий интересов и использовали soft-кластеризацию, присваивая каждому пользователю динамический вектор предпочтений, который менялся в течение дня. Мы использовали PyTorch для построения моделей, включая эмбеддинги интересов и click-through prediction с регулярным переобучением. Также особое внимание уделяли объяснимости моделей — пользователи должны понимать, почему им показывается тот или иной контент.
— Как решались вопросы масштабируемости и отказоустойчивости?
— Масштабируемость и отказоустойчивость стали ключевыми задачами, особенно когда система должна обрабатывать десятки миллионов запросов в день. Мы переработали часть backend-инфраструктуры и применили микросервисную архитектуру. Также использовали CI/CD, feature toggling и стриминг логов в ClickHouse, чтобы быстро тестировать гипотезы и модели. Всё это позволяло оперативно проводить A/B тесты, что значительно улучшило процесс оптимизации.
— Рекомендации — это только контент или что-то большее?
— Мы старались встроить рекомендации в каждый сценарий. Это не просто контент в ленте, это и push-уведомления, и разделы музыки, видео. Мы стремились сделать рекомендации интегрированными в пользовательский опыт, а не отдельным элементом. Это позволило значительно улучшить ключевые метрики: например, глубина ленты увеличилась на 18%, а удержание — на 35%.
— Как система понимает, что пользователю нравится?
— Система анализирует тысячи сигналов. Например, не просто лайк, а то, как быстро он был поставлен после начала просмотра. Если вы сразу лайкнули пост — это более сильный сигнал, чем если бы вы пролистали его три раза и потом только лайкнули. Чем больше таких микросигналов, тем точнее становится модель.
— Можно ли сказать, что контент в ленте соревнуется за внимание пользователя?
— Да, это отличная метафора. Каждый пост или видео конкурирует за место в топе. Например, в YouTube нужно выбрать 6 рекомендаций на главной странице из миллионов возможных. Учитываются сотни факторов — от времени суток до того, какие видео недавно смотрели похожие на вас пользователи.
— Как избежать ситуации, когда рекомендации становятся однообразными?
- Это важная задача. Если система будет слишком точно угадывать, она может создать информационный пузырь, когда вы видите только то, что точно может понравиться. Чтобы этого избежать, вводятся механизмы случайности и разнообразия. Например, если вы смотрели только видео про спорт, но среди людей с похожими интересами вдруг стал популярен новый фильм, система может предложить его вам, чтобы «разбавить» контент.
— Как учитываются вопросы приватности?
— Современные системы не хранят личные данные в явном виде. Все вычисления идут на обезличенных данных. Например, модель может знать, что вы «пользователь X с интересами Y», но не знает вашего имени и других данных.
— Как вы видите будущее персонализированных систем?
— В 2025 году персонализация – уже не просто хорошая практика, а стандарт для всех цифровых платформ. Но для успешной реализации важно, чтобы компании понимали потребности своих пользователей, активно тестировали гипотезы и постоянно улучшали опыт. В будущем мы увидим больше фокусировки на реальном времени, на том, как платформа подстраивается под настроение пользователя, его окружение и даже погоду. Прозрачность, этика и контроль со стороны пользователей будут играть важную роль в том, как эти системы будут восприниматься.