Что такое персонализация в реальном времени
Большинство рекомендательных систем работают в батчевом режиме: 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 батч должен быть настроен именно как сравнение двух стратегий, с атрибуцией в рамках сессии.