Как работать с деревьями категорий заказчиков
У каждого заказчика свое дерево категорий: названия могут быть нормальными словами, внутренними кодами или разной глубины. Как учитывать такие категории при подборе поставщиков?
Ответить самому
Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.
Короткий ответ
Нельзя слепо embedding-ить category id: нужно использовать hierarchy, category text/description, локальные mappings заказчика, historical co-occurrence и fallback на parent/global taxonomy.
Полный разбор
Проблема в том, что category name не всегда семантически полезен. У одного заказчика это "laptops", у другого внутренний код "A-16", у третьего дерево другой глубины. Поэтому sentence embedding category name может работать только на части данных.
Практичный подход: хранить category id заказчика как categorical feature; использовать hierarchy path и parent categories; добавлять category description, если она есть; маппить локальные категории в global taxonomy там, где возможно; строить статистики по историческим заявкам и поставщикам внутри категории; использовать text/item description как независимый сигнал.
В модели category features лучше комбинировать с текстом заявки, географией, историей поставщика и предпочтениями заказчика. Для cold или бессмысленных category codes fallback идет на parent category, text description заявки и historical behavior. Важно измерять качество отдельно по компаниям-заказчикам, потому что taxonomy drift может быть локальным.
Теория
Локальная таксономия заказчика - пример domain-specific categorical data. Семантические embeddings помогают только когда текст несет смысл; внутренние коды требуют id features, mappings и behavioral signals.
Типичные ошибки
- Считать, что любой category name можно корректно embedding-ить.
- Потерять hierarchy path и локальный category id заказчика.
- Не оценивать качество по компаниям-заказчикам отдельно.
Как отвечать на собеседовании
- Сразу скажи: category text может быть несемантическим.
- Предложи комбинацию global taxonomy mapping, hierarchy и behavioral stats.