Назад к подготовке

Двухэтапный retrieval/ranking для подбора поставщиков

Как спроектировать candidate generation и ranking для подбора поставщиков под закупочную заявку в маркетплейсе корпоративных закупок?

Ответить самому

Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.

Загрузка

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

Сначала собрать high-recall candidate pool через hard filters, lexical/vector retrieval и business constraints, затем rerank по признакам заказчика, заявки, поставщика и истории взаимодействий.

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

Candidate generation должен быть дешевым и recall-oriented. В него входят hard filters по availability, geography, category compatibility, compliance и ограничениям заказчика; lexical/full-text search по title/description/profile; vector retrieval по заявке и представлению поставщика; возможно несколько generators с merge/dedup.

Ranking stage получает top-N поставщиков из retrieval и считает более дорогие признаки: историю взаимодействий заказчика и поставщика, response rate поставщика, win/bid history, category similarity, geo distance, deadline fit, предпочтения заказчика, ручные удаления/добавления, freshness и diversity constraints. Модель может быть GBDT/LambdaMART/learning-to-rank или более сложный neural reranker, но baseline должен быть простым.

Serving: online-заявка идет в retrieval service, затем ranker, затем post-processing rules. Важно логировать exposure и decision context, чтобы offline evaluation и retraining не теряли, какие поставщики вообще были доступны и показаны.

Теория

Two-stage architecture разделяет recall и precision. Retrieval максимизирует шанс не потерять хорошего поставщика, а ranker оптимизирует порядок и business utility по богатым признакам.

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

  • Делать один universal embedding и считать, что он решит все constraints.
  • Не объяснить merge/dedup нескольких candidate generators.
  • Забыть business rules после ranker.

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

  • Назови 3 источника candidates: filters, lexical search, vector search.
  • Отдельно проговори post-ranking constraints и logging.