ML system design: рекомендации товаров на главной
Вопрос
Спроектируйте систему рекомендаций товаров на главной странице маркетплейса с 50 млн пользователей и 10 млн товаров.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Цель и метрики: онлайн (выручка, конверсия, удержание), офлайн (recall@k, NDCG), ограничения по латентности
Данные: просмотры, корзины, покупки, признаки товаров, контекст; неявный фидбек и негативы
Кандидаты: two-tower и ANN, item-to-item, популярное, недавно просмотренное
Ранкер: бустинг или нейросеть по богатым признакам, затем бизнес-правила и разнообразие
Холодный старт, петля обратной связи и exploration
Инфраструктура и запуск: feature store, офлайн и онлайн-признаки, A/B, мониторинг
Что могут спросить следом
- Как обеспечить ответ за 100 мс?
- Как не рекомендовать то, что пользователь уже купил?
- Как оценивать влияние на продавцов?
Разбор
Сначала требования: цель это рост выручки и удержания, при этом нужны разнообразие и справедливость к продавцам; ответ за 100-200 мс. Офлайн буду мерить recall@k на этапе кандидатов и NDCG на ранжировании, онлайн выручку на пользователя и конверсию в A/B. Данные: логи просмотров, корзин, покупок, поиска с таймстемпами, каталог (категории, цены, тексты, картинки), контекст (устройство, время). Архитектура двухэтапная. Генерация кандидатов из нескольких источников: two-tower модель с ANN-индексом по эмбеддингам товаров, item-to-item по совместным покупкам от недавно просмотренного, популярное в сегменте, новинки для исследования. Получаю около тысячи кандидатов. Ранкер, например градиентный бустинг или нейросеть, учится на кликах и покупках с признаками пользователя, товара, их пересечений и контекста, цель взвешена по выручке. Затем пост-обработка: убрать купленное и недоступное, разнообразие категорий, бизнес-правила. Холодный старт решаю контентными эмбеддингами и долей показов на exploration, петлю обратной связи учитываю логированием вероятностей показа. Инфраструктура: feature store с одинаковыми признаками офлайн и онлайн, батчевый пересчёт эмбеддингов товаров, стриминговые признаки сессии, мониторинг качества и задержек, запуск через A/B.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.