Как учитывать категории и комплементарность в корзине
Если пользователь добавил кольцо, стоит ли рекомендовать еще кольца? Как сформулировать цель и ограничения для рекомендаций в корзине?
Короткий ответ
Для корзины часто нужны complements, а не substitutes. Нужно добавить category/business constraints: не повторять уже представленную категорию, рекомендовать совместимые категории и контролировать diversity.
Полный разбор
Цель блока в корзине обычно не "показать похожее", а увеличить чек и полезность заказа. Поэтому если в корзине кольцо, второе кольцо может быть менее полезно, чем серьги, браслет или уходовый аксессуар, в зависимости от домена.
Это можно учесть на candidate generation или reranking. В генерации строим item-to-item neighbors с учетом complementary categories. В ранжировании добавляем признаки: category of cart items, candidate category, category compatibility, price ratio, material, style, occasion. После ранжирования применяем diversity constraints.
Важно обсуждать business rules и availability: нельзя рекомендовать отсутствующие товары, несовместимые пары, слишком дорогие/дешевые outliers без причины. Метрики: add-to-cart, conversion, AOV/GMV, diversity, repeated category rate, complaints/negative feedback.
Теория
В RecSys похожесть и комплементарность — разные цели. В корзине often complements matter more than nearest substitutes.
Типичные ошибки
- Оптимизировать только item similarity.
- Не определить цель блока рекомендаций.
- Не обсудить category constraints и diversity.
Как отвечать на собеседовании
- Сначала спроси: хотим substitutes или complements?
- Приведи пример с корзиной и категориями.