Что значит real-time в рекомендациях
Real-time RecSys не обязательно означает “переобучаем модель после каждого клика”. Чаще это значит, что система быстро учитывает свежие события: обновляет session features, candidate sources, counters, embeddings cache или re-ranking context.
Загрузка интерактивного виджета...
Уровни freshness
- Batch: пересчет раз в день или час. Просто, дешево, подходит для стабильных предпочтений.
- Nearline: события попадают в агрегаты за минуты. Хороший компромисс для маркетплейсов и медиа.
- Online features: последние клики/просмотры доступны прямо в запросе.
- Online learning: модель или часть параметров обновляется постоянно. Сложно и рискованно.
Типовая архитектура
- Event stream: impressions, clicks, dwell, purchases, negatives.
- Stream processing: Kafka/Flink/Spark Streaming, обновление counters и session state.
- Online store: Redis/Cassandra/DynamoDB/feature store для свежих фичей.
- Candidate cache: быстрые sources для популярных, персональных и session-based кандидатов.
- Ranker service: собирает фичи, считает score, применяет re-ranking и guardrails.
Загрузка интерактивного виджета...
Риски real-time систем
- Feedback loops: система быстро усиливает случайный всплеск интереса.
- Hot items и skew: один viral item может перегрузить storage/counters.
- Online/offline skew: фича в training считается иначе, чем в serving.
- Debuggability: сложнее понять, почему пользователь увидел конкретный айтем.
- Latency: свежесть не должна ломать SLA.
Как мыслить прагматично
Начинай с вопроса “какая свежесть реально нужна продукту?”. Для новостей и short videos минуты могут быть критичны. Для курсов, мебели или B2B SaaS часто достаточно batch/nearline.
Материалы
Дополнительно
Eugene Yan — Real-time Machine Learning For Recommendations
Один из лучших практических обзоров real-time RecSys.
Netflix TechBlog — System Architectures for Personalization and Recommendation
Архитектурный взгляд на online/nearline/offline персонализацию.
Meta Engineering — Scaling Instagram Explore recommendations
Кэширование, pre-computation и multi-stage ranking в крупной системе.