Каждая лента в ZOOP выстроена под того, кто её листает
ZOOP — соцсеть на iOS, Android и в вебе, построенная вокруг авторов. Мы с нуля спроектировали и построили её рекомендательную систему: пайплайн данных, модели и инфраструктуру на AWS — всё, что стоит за каждой персональной лентой.


- Клиент
- ZOOP
- Отрасль
- Соцсеть для авторов
- Услуги
- Рекомендательные системы, ML, AWS
активных пользователей в месяц получают персональную ленту
рекомендательная система, спроектированная и построенная с нуля
платформы с одной лентой: iOS, Android и веб
пайплайн данных, модели и инфраструктура от начала до конца
Задача
ZOOP обещает авторам алгоритм, где на первом месте сообщество, а не хаос ленты For You. Сдержать это обещание может только лента. Готовой рекомендательной системы не было. При этом лента должна была ощущаться личной с первой же сессии фаната и давать авторам с небольшой аудиторией реальный шанс, что их заметят.
Наш подход
Мы подошли к ленте как к продукту, а не как к модели. Каждый просмотр, лайк, комментарий и репост становится сигналом в потоковом пайплайне. Этап отбора сужает все посты до короткого списка для каждого человека, ранжирующая модель выстраивает его по порядку, а правила холодного старта дают новым пользователям и новым авторам честный первый шанс. Всё это на AWS ведёт одна команда опытных инженеров.
В приложении для авторов лента и есть обещание. Она должна быть справедливой и к фанату, и к автору.
Что мы сделали
01
Пайплайн сигналов
События из iOS, Android и веба идут потоком через Kinesis, проходят проверку в Lambda и попадают в два места: в хранилище признаков на DynamoDB для ранжирования в реальном времени и в озеро данных на S3 для переобучения.
- Поток событий из iOS, Android и веба
- Валидация и дедупликация
- Хранилище признаков пользователей и постов
- Озеро сырых событий для переобучения

02
Отбор и ранжирование
Двухбашенная модель и ANN-поиск набирают кандидатов среди авторов из подписок, каналов, похожих пользователей и трендов. Ранжирующая модель оценивает их по вовлечённости, а правила следят, чтобы лента оставалась разнообразной и справедливой.
- Отбор кандидатов двухбашенной моделью
- ANN-поиск по эмбеддингам постов
- Ранжирование по времени просмотра и вовлечённости
- Слоты холодного старта для новых авторов

03
Инфраструктура на AWS
Сервис ленты держит прогретые ленты в ElastiCache, читает признаки из DynamoDB и считает оценки на эндпоинте SageMaker. Модели переобучаются по расписанию, проходят офлайн-оценку и выкатываются через реестр моделей.
- Сервис ленты со слоем кеша
- Обучение и инференс в SageMaker
- Версии моделей с офлайн-оценкой
- Мониторинг задержек и ошибок

Как это работает
- 1
События приложения
Просмотры, время просмотра, лайки, комментарии и репосты
- 2
Поток событий
Kinesis передаёт события, Lambda проверяет их и убирает дубли
- 3
Хранилище признаков
В DynamoDB — свежие признаки пользователей и постов
- 4
Отбор
Двухбашенная модель и ANN-поиск подбирают кандидатов
- 5
Ранжирование
Модель выстраивает их по порядку, правила делают ленту справедливой
- 6
Feed API
FastAPI отдаёт ленту, ElastiCache держит её прогретой
- 7
Переобучение
SageMaker переобучает модели на озере событий в S3
Продукт вживую
zoop.com




Результаты
- 0110 000+ активных пользователей в месяц открывают ленту, выстроенную только под них
- 02ZOOP владеет собственным алгоритмом: он построен с нуля, а не арендован через сторонний API ленты
- 03Правила холодного старта дают новым пользователям релевантную ленту, а новым авторам — первую аудиторию
- 04Один пайплайн на AWS от события в приложении до готовой ленты — и одна команда опытных инженеров, которая его ведёт
Технологии
- Модели
- Python · PyTorch · scikit-learn · XGBoost
- Отбор кандидатов
- Двухбашенная модель · ANN (HNSW) · FAISS · OpenSearch
- Пайплайн данных
- Kinesis · Lambda · DynamoDB · S3
- Инференс
- SageMaker · ElastiCache · FastAPI · Docker
Услуги в этом кейсе
Следующий кейс · NVP
Выплаты и документы для компаний с фрилансерами
Обсудим
Есть проект? Разберём его за 30 минут.
Расскажите, что вы создаёте. Уже на первом созвоне вы получите прямой ответ о сроках, команде и подходе.