Логотип ZOOP

Каждая лента в ZOOP выстроена под того, кто её листает

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

ZOOP: продукт вживую
ZOOP: мобильная версия
Клиент
ZOOP
Отрасль
Соцсеть для авторов
Услуги
Рекомендательные системы, ML, AWS
10K+

активных пользователей в месяц получают персональную ленту

0 → 1

рекоменда­тель­ная система, спроекти­рован­ная и построенная с нуля

3

платформы с одной лентой: iOS, Android и веб

AWS

пайплайн данных, модели и инфраструктура от начала до конца

Задача

ZOOP обещает авторам алгоритм, где на первом месте сообщество, а не хаос ленты For You. Сдержать это обещание может только лента. Готовой рекомендательной системы не было. При этом лента должна была ощущаться личной с первой же сессии фаната и давать авторам с небольшой аудиторией реальный шанс, что их заметят.

Наш подход

Мы подошли к ленте как к продукту, а не как к модели. Каждый просмотр, лайк, комментарий и репост становится сигналом в потоковом пайплайне. Этап отбора сужает все посты до короткого списка для каждого человека, ранжирующая модель выстраивает его по порядку, а правила холодного старта дают новым пользователям и новым авторам честный первый шанс. Всё это на AWS ведёт одна команда опытных инженеров.

В приложении для авторов лента и есть обещание. Она должна быть справедливой и к фанату, и к автору.

Что мы сделали

01

Пайплайн сигналов

События из iOS, Android и веба идут потоком через Kinesis, проходят проверку в Lambda и попадают в два места: в хранилище признаков на DynamoDB для ранжирования в реальном времени и в озеро данных на S3 для переобучения.

  • Поток событий из iOS, Android и веба
  • Валидация и дедупликация
  • Хранилище признаков пользователей и постов
  • Озеро сырых событий для переобучения
ZOOP: Пайплайн сигналов

02

Отбор и ранжирование

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

  • Отбор кандидатов двухбашенной моделью
  • ANN-поиск по эмбеддингам постов
  • Ранжирование по времени просмотра и вовлечённости
  • Слоты холодного старта для новых авторов
ZOOP: Отбор и ранжирование

03

Инфраструктура на AWS

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

  • Сервис ленты со слоем кеша
  • Обучение и инференс в SageMaker
  • Версии моделей с офлайн-оценкой
  • Мониторинг задержек и ошибок
ZOOP: Инфраструктура на AWS

Как это работает

  1. 1

    События приложения

    Просмотры, время просмотра, лайки, комментарии и репосты

  2. 2

    Поток событий

    Kinesis передаёт события, Lambda проверяет их и убирает дубли

  3. 3

    Хранилище признаков

    В DynamoDB — свежие признаки пользователей и постов

  4. 4

    Отбор

    Двухбашенная модель и ANN-поиск подбирают кандидатов

  5. 5

    Ранжи­рование

    Модель выстраивает их по порядку, правила делают ленту справедливой

  6. 6

    Feed API

    FastAPI отдаёт ленту, ElastiCache держит её прогретой

  7. 7

    Пере­обучение

    SageMaker переобучает модели на озере событий в S3

Продукт вживую

zoop.com

ZOOP: страница целиком
ZOOP: мобильный экран 1
ZOOP: мобильный экран 2
ZOOP: мобильный экран 3

Результаты

  1. 0110 000+ активных пользователей в месяц открывают ленту, выстроенную только под них
  2. 02ZOOP владеет собственным алгоритмом: он построен с нуля, а не арендован через сторонний API ленты
  3. 03Правила холодного старта дают новым пользователям релевантную ленту, а новым авторам — первую аудиторию
  4. 04Один пайплайн на AWS от события в приложении до готовой ленты — и одна команда опытных инженеров, которая его ведёт

Технологии

Модели
Python · PyTorch · scikit-learn · XGBoost
Отбор кандидатов
Двухбашенная модель · ANN (HNSW) · FAISS · OpenSearch
Пайплайн данных
Kinesis · Lambda · DynamoDB · S3
Инференс
SageMaker · ElastiCache · FastAPI · Docker

Услуги в этом кейсе

Следующий кейс · NVP

Выплаты и документы для компаний с фрилансерами

Обсудим

Есть проект? Разберём его за 30 минут.

Расскажите, что вы создаёте. Уже на первом созвоне вы получите прямой ответ о сроках, команде и подходе.

Ответ в тот же деньРазговор с партнёромБез навязывания услуг