Что такое персонализация в реальном времени

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

Real-time персонализация решает другую задачу: адаптироваться к намерению пользователя прямо сейчас — в текущей сессии, до следующего батчевого пересчёта.

Пользователь → просмотрел 3 товара в «Беговая обувь»
→ событие передаётся в движок (< 10 мс)
→ следующий виджет рекомендаций показывает беговые носки,
  GPS-часы, шорты для бега — а не холодные топ-продажи

Почему это важно для e-commerce

Для новых пользователей — нет истории для батчевой модели. Real-time позволяет начать персонализировать с первого клика. 3–5 действий в сессии дают достаточно сигналов для контекстной подборки.

Для сезонного поведения — пользователь, который обычно покупает электронику, пришёл за подарком к 8 марта. Батчевый профиль покажет гаджеты. Real-time по сессионным кликам быстро «поймёт» контекст подарка.

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

Техническая архитектура

Компонент Функция Требование к latency
Event API Приём событий от клиента Async, не блокирует UI
Сессионный store (Redis) Хранение текущего контекста сессии < 5 мс чтение/запись
Рекомендательный движок Запрос с учётом сессионного контекста < 50–100 мс
CDN / edge cache Кэширование ответов для популярных контекстов < 10 мс

Важно: real-time персонализация не означает пересчёт тяжёлой ML-модели при каждом клике. Это быстрое чтение актуального сессионного контекста и применение лёгких правил ранжирования поверх уже готовых кандидатов.

Сочетание с долгосрочным профилем

Лучший результат даёт комбинация: долгосрочный профиль предпочтений (история покупок, категориальные affinity) + сессионный контекст (что делает сейчас). Если они противоречат — приоритет у сессионного сигнала: явное намерение важнее исторической нормы.

Типичные ошибки внедрения

  • Слишком агрессивная адаптация — если рекомендации полностью меняются после каждого клика, пользователь теряет ориентиры. Баланс: учитывать контекст, но сохранять «якорные» позиции.
  • Персонализация без fallback — при сбое real-time движка виджет должен показывать популярные товары, а не пустоту.
  • Не измерять сессионный лифт — A/B тест real-time vs батч должен быть настроен именно как сравнение двух стратегий, с атрибуцией в рамках сессии.