Developing an AI System for Automatic Product Categorization
Imagine you have 50,000 SKUs, with hundreds of new products added weekly from suppliers using different names, descriptions, and images. Manual categorization can't keep up—errors multiply, the content team is overwhelmed, and buyers can't find what they need. We solve this with an AI system that automatically categorizes products by analyzing text, images, and attributes. Our experience spans years in machine learning and numerous successful projects for retail and marketplaces. We offer a turnkey solution: from data audit to a ready-to-use API. Contact us for a preliminary assessment of your catalog.
According to Wikipedia, hierarchical classification reduces computational complexity by stepwise category refinement.
How automatic product categorization works
Product catalogs have a tree structure: "Clothing → Outerwear → Jackets." The classifier first determines the top level, then refines—this reduces complexity and improves accuracy. Example hierarchy:
Clothing and footwear ├── Men's clothing │ ├── Outerwear │ │ ├── Jackets │ │ └── Coats │ └── Pants └── Women's clothing For each level, we train a separate model or use a unified hierarchical architecture. We choose the approach based on your catalog—from a simple BERT classifier to a retrieval-based system using embeddings. The hierarchical approach is 30% more efficient than flat classification for catalogs with depth greater than 3 levels.
Input data and features—developing the AI system
To ensure accurate model performance, we use as many available features as possible:
class ProductFeatures(BaseModel): title: str # "Men's winter Nike jacket blue" description: str | None # full description attributes: dict # characteristics: material, size, color images_url: list[str] | None # for multimodal classification brand: str | None price: float | None # price range hints at category supplier_category: str | None # supplier category (noisy but useful) The multimodal approach (text + image) provides a 5–10% accuracy boost over text-only. This is confirmed in our projects: in one case (10,000-product catalog), accuracy rose from 89% to 96% after adding images.
Classifier implementation
The architecture choice depends on catalog size and availability of labeled data:
| Approach | When to use | Accuracy | Complexity |
|---|---|---|---|
| BERT fine-tuning | < 500 categories, sufficient labeled data | 90–95% | Low |
| Hierarchical classifier | > 500 categories, clear hierarchy | 92–97% | Medium |
| Retrieval-based (embeddings + kNN) | > 500 categories, frequent new products | 88–93% | Medium |
| Zero-shot (LLM) | New categories without training data | 80–90% | High |
Example code for a hybrid approach:
def categorize_product(product: ProductFeatures) -> CategoryPrediction: text = f"{product.title}\n{product.description or ''}\n{format_attributes(product.attributes)}" # Fast classifier top_categories = fast_classifier.predict_top_k(text, k=5) if top_categories[0].score > 0.85: return top_categories[0] # high confidence → immediate # Low confidence → LLM for refinement return llm_classify(product, top_categories) Below is a comparison of accuracy with different feature combinations:
| Features | Top-1 accuracy | Top-3 accuracy |
|---|---|---|
| Title only | 85% | 93% |
| Title + description | 90% | 96% |
| Title + description + attributes | 93% | 98% |
| Multimodal (text + image) | 96% | 99% |
Example multimodal pipeline
Images are encoded via a CLIP vision encoder, text via Sentence-BERT. The embeddings are concatenated and fed into the classifier. This allows using visual features (style, color, material) even when text descriptions are sparse.
Why multimodal improves accuracy
Images contain information not present in text: style, color, visible material. For categories like "Dresses" or "Sneakers", visual features are critical. We use pre-trained vision encoders (e.g., CLIP) that output embeddings combined with text embeddings. This is especially effective for products with sparse descriptions.
Handling tricky cases
- Multi-category products: "Book-style phone case"—accessory or case? Both. We use multi-label classification.
- Mismatch between title and content: "Crafting kit"—what's inside? Need description. If missing, the model flags the product for manual review.
- New categories: Automatically create an "Unknown category" cluster for review. After confirmation, retrain the model.
Metrics: Top-1 accuracy, Top-3 accuracy (product in one of 3 predicted categories). Typical results: Top-1 90–95%, Top-3 97–99% for standard catalogs.
What our work includes
- Data audit: analyze catalog structure, labeling quality, available features.
- Model design: choose architecture (BERT, hierarchical, retrieval-based) for your case.
- Training and validation: on your data with tracking via MLflow.
- Integration: REST API or gRPC, documentation, code examples.
- Deployment and monitoring: containerization, A/B testing, logging.
- Team training: how to update the model, add new categories.
Timeline and cost
Basic solution: from 2 to 6 weeks. Cost is calculated individually after auditing your data and requirements. We guarantee transparent pricing and fixed timelines. Certified engineers (TensorFlow, AWS, GCP) ensure stable operation.
Request a consultation: we evaluate your catalog and propose the optimal solution. Get demo access to a working system.







