Как сформулировать ML System Design-задачу подбора поставщиков
Fairmarkit -- маркетплейс для корпоративных закупок: заказчик создает заявку, а система предлагает подходящих поставщиков. Как сформулировать ML-задачу подбора поставщиков перед выбором модели?
Ответить самому
Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.
Короткий ответ
Сначала нужно описать продуктовый сценарий: заказчик создает заявку, система предлагает поставщиков, заказчик редактирует список, поставщики отвечают bid/no-bid/ignore, затем выбирается победитель.
Полный разбор
Начинать стоит не с "возьмем embeddings", а с границ решения. Fairmarkit управляет стартовым списком поставщиков для закупочной заявки. Дальше заказчик может удалить или добавить поставщиков, отправить приглашения, получить bid/no-bid/ignore и выбрать победителя.
Формулировка ML-задачи: по заказчику, заявке и доступной базе поставщиков вернуть top-K поставщиков, которые с высокой вероятностью окажутся релевантными для приглашения и дадут полезный результат закупки. При этом нужно учитывать обязательные поля заявки, категории заказчика, географию, сроки, количество/единицы измерения и историю взаимодействий.
Важно отделить цель продукта от proxy labels. Бизнес хочет экономить время заказчика и повышать качество закупки, а модель может оптимизировать recall подходящих поставщиков, вероятность ответа/ставки, вероятность не быть удаленной заказчиком и downstream winner signal. Эти сигналы не равнозначны, поэтому их нужно обсуждать явно.
Теория
В ML System Design для marketplace/recsys кейсов постановка задачи должна связывать пользовательский сценарий, действие модели, доступные данные и метрики. Без этого легко оптимизировать удобный label, который не отражает ценность продукта.
Типичные ошибки
- Сразу выбирать embedding model без описания сценария закупки.
- Считать winner единственной истиной релевантности.
- Не отделить поставщиков, которых заказчик удалил, добавил вручную или которые проигнорировали приглашение.
Как отвечать на собеседовании
- Начни с одного предложения: "мы ранжируем поставщиков до отправки приглашений".
- Перечисли события процесса и скажи, какие из них могут стать labels.