Компания
О комапнии
olga@epoch8.co
Контакты
Кейсы

Система рекомендаций туров для YouTravel

YouTravel.me — маркетплейс авторских туров от тревел-экспертов и частных независимых гидов. На сайте представлено почти 40 000 уникальных предложений. Здесь можно легко и безопасно выбрать тур и отправиться в незабываемое путешествие в любую точку мира.

Проблема

Сегодня персонализация в ecommerce — это чаще всего блоки вроде «Вам понравится также», «С этим товаром покупают» или upsell-рекомендации в корзине. Да, такие решения проще и дешевле внедрить, но их эффективность оставляет желать лучшего. Пользователь не видит весь выбор, который мог бы его заинтересовать, не находит нужное и просто уходит. А вместе с ним — и деньги бизнеса.

Задача

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

Решение

Мы разработали стратегию персонализации, которая легко интегрируется на уровне пересортировки любых листингов с их собственной логикой формирования.

Вместо простого выдачи списка рекомендованных объектов через API, мы реализовали:

  • сбор данных о ленивых просмотрах и других поведенческих факторах;
  • пересортировку любого списка товаров под каждого клиента.

Именно такую стратегию мы внедрили на сайте YouTravel.

СБОР ДАННЫХ

Для работы персонализации важно собирать данные о действиях пользователя.
Совместно с YouTravel мы сделали систему по сбору информации о том:
  • что пользователь видел на странице;
  • на что кликнул;
  • куда перешел.
Команда YouTravel занималась доработкой фронтенда, а мы разработали серверную часть и обеспечили регулярную обработку данных.
«Ключевой момент в нашем сборе данных - это учет ленивых просмотров. В типичном трекинге сбор информации про просмотры без взаимодействия отсутствует. А нам важно знать, что пользователь видел вот эти 20 товаров, но ничего не выбрал и не совершил никакого действия. Эта информация необходима для статистики и для обучения ML-модели».

– Андрей Татаринов, генеральный директор Epoch8.

КАК ВСЕ УСТРОЕНО

Мы улучшили систему сбора данных как на стороне заказчика, так и на нашей. Теперь она фиксирует:

  • ленивые просмотры,
  • глубокие просмотры (например, открытие карточки товара),
  • покупки.

ПРОЦЕССИНГ ДАННЫХ

Мы получаем данные с фронтенда и сохраняем их в два места:

  1. Долгосрочное хранилище — для переобучения модели и подсчета статистики.
  2. Онлайн-профиль — он предоставляет информацию о текущих предпочтениях пользователя и его поведении в реальном времени.

От онлайн-профиля есть еще одна ветка данных. Сюда поступает поток событий с фронтенда, что позволяет поддерживать актуальное представление о пользователе в режиме реального времени.
Наше API рекомендаций, построенное на основе ML-модели, исполняет ключевой метод — пересортировку списка товаров.

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

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

Общее решение выглядит так:

СТРАТЕГИИ РЕКОМЕНДАЦИЙ

Мы используем три стратегии для формирования рекомендаций, которые работают одновременно:

  1. Долгосрочный пользователь. Если пользователь находится на сайте более 30 минут, он уже участвует в ежечасном цикле переобучения.Поэтому мы пользуемся хорошо рассчитанным вектором свойств пользователя и делаем рекомендации. Они получаются самыми качественными.
  2. Недавно пришедший пользователь. Когда пользователь только начал взаимодействовать с сайтом, его поведенческие данные еще не вошли в расчет фичей. Однако, если он уже проявил интерес, например, кликнул на товар, мы строим рекомендации, основываясь на свойствах этого товара.
  3. Новый пользователь. Если пользователь только что зашел на сайт, и о нем пока ничего не известно, мы формируем рекомендации на основе статических данных: выбранного языка, региона, устройства и других общих характеристик.

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

РЕЗУЛЬТАТЫ

Сейчас наша стратегия интегрирована в часть листингов на сайте YouTravel, результаты такие:

Если средняя конверсия из показа в клик без рекомендаций — от 3% до 4,5%.
То у персонализированных предложений — от 6% до 9%.

За два месяца мы смогли добиться двукратного увеличения целевого действия. И это не предел!

ЧТО ДАЛЬШЕ?

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

Чтобы сделать холодные рекомендации более точными, мы включаем в них больше статической информации. Например, начинаем учитывать:

  • рекламную кампанию, по которой пришел пользователь;
  • текст объявления, анализируем его и интегрируем данные в рекомендации.

Кроме того, расширяем учет следующих факторов:
  • лендинг, на который попал пользователь;
  • модель устройства, с которого выполнен вход;
  • язык сайта или браузера, установленный у пользователя;
  • его геолокацию.

Технологии

  • REST/GRPC
  • Kafka/PG/HTTP push
  • Prometheus Grafana
  • Python/FastAPI
  • GPU
  • Python Airflow/Prefect
  • Redis
  • MLflow/S3/HDFS/Hive
  • Pytorch/XGB
  • Metabase/Superset/Tableau
  • Jupiter
Рекомендации