Category constraints поверх ANN retrieval
Как наложить ограничения по категориям и комплементарности, если candidates достаются через ANN по embeddings?
Ответить самому
Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.
Короткий ответ
Ограничения можно применять pre-filter в индексе, post-filter после retrieval или category-aware reranking. Обычно комбинируют shortlist побольше и hard/soft constraints.
Полный разбор
ANN возвращает ближайшие embeddings, но близость не гарантирует допустимую категорию или complementarity. Есть несколько уровней контроля. Pre-filter применяет category/availability constraints внутри индекса или через отдельные per-category indices. Это быстрее после retrieval, но может снизить recall, если фильтр слишком жесткий.
Post-filter берет shortlist больше K, удаляет недоступные и неподходящие категории, затем reranker выбирает top-K. Category-aware reranker добавляет признаки cart category, candidate category, compatibility score, price ratio и diversity penalties. Для важных hard rules нужен deterministic слой, который нельзя перебить model score.
Мониторинг: доля кандидатов, удаленных фильтрами, empty results после constraints, latency, coverage категорий и online uplift по complements.
Теория
ANN retrieval оптимизирует similarity, а product constraints часто оптимизируют полезность и допустимость. Эти цели нужно явно соединять в pipeline.