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

Что делать, если рекомендации в корзине не нашлись

В item-item рекомендациях для корзины может не быть соседей: новый товар, редкий товар, новый пользователь или корзина из многих товаров. Какие fallback предусмотреть?

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

Нужна cascade fallback: item-item neighbors, category-level popular, global popular, персональные favorites/history, business-curated complements, с фильтром наличия и исключением уже купленного/добавленного.

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

Система должна быть robust: пользователь не должен увидеть пустой блок только потому, что товар новый или редкий. Поэтому строим каскад.

Первый уровень — item-item соседи товаров из корзины. Второй — популярные товары в категориях, связанных с корзиной. Третий — глобальные top sellers или personalized popular по истории пользователя. Для нового пользователя можно использовать контекст: гео, магазин, устройство, время, текущая категория.

Если корзина большая, нужно не только набрать кандидатов, но и исключить уже присутствующие товары, дедуплицировать, ограничить повторяющиеся категории и не показывать несовместимые товары. Для каждого fallback стоит логировать причину, чтобы мониторить долю fallback traffic.

Теория

Cold start в RecSys бывает не только для пользователей, но и для item, context и конкретного request. Хорошая production-система всегда имеет fallback policy.

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

  • Сказать только "покажем популярное" без каскада.
  • Не исключить товары из корзины.
  • Не мониторить долю fallback и пустых ответов.

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

  • Назови fallback cascade по уровням.
  • Добавь метрики: empty response rate, fallback share, CTR/conversion per fallback level.