Разработка AI-системы автоматической категоризации товарного каталога
Автоматическая категоризация товаров — критическая задача для маркетплейсов и ритейлеров с тысячами SKU. Ручная категоризация не масштабируется: новые товары ежедневно, категории меняются, поставщики используют нестандартные названия.
Иерархическая категоризация
Товарные каталоги имеют многоуровневую структуру:
Одежда и обувь
├── Мужская одежда
│ ├── Верхняя одежда
│ │ ├── Куртки
│ │ └── Пальто
│ └── Брюки
└── Женская одежда
Модель категоризирует на нескольких уровнях иерархии. Подход: сначала определить верхний уровень, затем уточнять — это снижает вычислительную сложность.
Входные данные и признаки
Для точной категоризации используйте все доступные данные о товаре:
class ProductFeatures(BaseModel):
title: str # «Куртка мужская зимняя Nike синяя»
description: str | None # полное описание
attributes: dict # характеристики: материал, размер, цвет
images_url: list[str] | None # для мультимодальной классификации
brand: str | None
price: float | None # price range намекает на категорию
supplier_category: str | None # категория поставщика (шумная, но полезная)
Мультимодальная классификация (текст + изображение) даёт +5–10% accuracy по сравнению с text-only.
Реализация классификатора
Для < 500 категорий: BERT fine-tuning на парах (товар → категория). 1 GPU, 2–4 часа обучения.
Для > 500 категорий: иерархический классификатор или retrieval-based (эмбеддинги + kNN по категориям).
Zero-shot для новых категорий: GPT-4o с описанием категории — без переобучения.
def categorize_product(product: ProductFeatures) -> CategoryPrediction:
text = f"{product.title}\n{product.description or ''}\n{format_attributes(product.attributes)}"
# Быстрый классификатор
top_categories = fast_classifier.predict_top_k(text, k=5)
if top_categories[0].score > 0.85:
return top_categories[0] # высокая уверенность → сразу
# Низкая уверенность → LLM для уточнения
return llm_classify(product, top_categories)
Обработка сложных случаев
- Мультикатегорийные товары: «Чехол-книжка для телефона» — аксессуар или чехол? Обе категории.
- Несоответствие названия содержанию: «Набор для рукоделия» — что внутри? Нужно описание.
- Новые категории: автоматически создавать кластер «Неизвестная категория» для ревью.
Метрики: Top-1 accuracy, Top-3 accuracy (товар в одной из 3 предсказанных категорий). Типичные результаты: Top-1 90–95%, Top-3 97–99% для стандартных каталогов.







