К тренажеру
ВопросHardmlsd-recsysРеальный собес

Спроектировать рекомендательную ленту видео с товарами

В e-commerce приложении запускается TikTok-like лента видео на главной. К каждому видео привязаны товары, видео около 1500 и живут 1-2 месяца. Истории по новой поверхности нет. Как спроектировать систему рекомендаций?

Короткий ответ

Начать с цели и ограничений, запустить offline MVP с простым ранжированием и exploration, залогировать события, затем обучать ranker и проверять через A/B.

Полный разбор

Хороший дизайн начинается не с модели, а с product objective: GMV/profit, discovery non-food ассортимента, guardrails по заказам и UX. Для 1500 видео можно на первом этапе скорить всех кандидатов offline и хранить top-N на пользователя или сегмент. MVP строится на popularity/GMV/маркетинговом приоритете, свежести и availability, но часть трафика нужно оставить под exploration.

После запуска нужно собрать impression logs, позицию, user context, video/product features и downstream-события: open, watchtime, переход к товарам, add-to-cart, purchase, attributed GMV. Следующая итерация - pointwise/pairwise ranker, diversity, frequency caps, freshness и fallback для новых пользователей.

Теория

При малом числе кандидатов отдельный candidate generator не обязателен. Главный риск новой поверхности - холодный старт и feedback loop, поэтому baseline должен одновременно давать качество и собирать обучающие данные.

Типичные ошибки

  • Начинать со сложной нейросети без бизнес-метрики.
  • Не логировать показы и позицию, а потом строить смещенный датасет.
  • Оптимизировать только CTR или watchtime без связи с покупками и маржой.

Как отвечать на собеседовании

  • Сначала проговори assumptions: candidate count, lifetime видео, objective, latency.
  • Раздели MVP, сбор данных и следующую ML-итерацию.