Автоматическая категоризация товаров: где ломается ручной разбор
Когда каталог измеряется десятками тысяч карточек, ручная категоризация перестаёт быть задачей, которую в принципе можно закрыть людьми. Разметка товаров вручную работает ровно до того момента, пока ассортимент растёт медленнее, чем команда успевает его обрабатывать. Дальше появляется очередь: новые позиции попадают в разделы по формальному признаку или по привычке оператора, а не по фактическим свойствам товара.
Вторая линия сбоя — правила. Их накапливают годами: по бренду товар идёт в один раздел, по слову в названии в другой, исключения для конкретных поставщиков выносят отдельным списком. Правил становится больше, чем позиций в иных разделах, они начинают конфликтовать между собой, и предсказать, куда уедет новая карточка, уже не может никто. Так рост каталога без правил превращается в набор локальных договорённостей, которые держатся на памяти двух сотрудников.
Дальше ломается не разметка, а то, ради чего она делалась. Свойства заполнены вразнобой: у одной части ассортимента указан цвет и материал, у другой — только название. Фильтры в каталоге показывают пустые значения, поиск находит позицию лишь по точному совпадению, и покупатель не доходит до товара, который физически есть на складе. Менеджер правит карточки по обращению, тратя время на то, что должно было решиться один раз при поступлении.
Ошибки в разделах каталога стоят дороже, чем кажется: часть ассортимента просто не существует для тех, кто ищет, а любая новая категория или поставщик требуют ручной переборки. Разбираем, как это закрывается — от порядка в структуре разделов до модели, которая размечает поступления и отдаёт данные фильтрам.
Эффект внедрения: скорость разбора каталога и доля ручных правок
После вывода модели в рабочий контур меняется не «ощущение порядка», а конкретные числа. Доля позиций, которые попадают в каталог без участия человека, выходит на 85–95 %, остальное уходит в очередь на проверку — оператор видит не весь поток, а только спорные случаи. Точность сопоставления категорий на контрольной выборке держится выше 95 %, причём это не разовая замерка, а метрика, которая пересчитывается на каждой загрузке.
Скорость обработки каталога сокращается с часов ручного разбора до минут: сервис размечает поток, правила достраивают атрибуты и раскладывают позиции по веткам. Новый ассортимент становится виден покупателю в тот же день, а не после того, как оператор отработает накопившуюся очередь.
Единый рубрикатор перестаёт расползаться. Одна и та же категория больше не называется по-разному у разных поставщиков, а появление новой ветки не приводит к ручной правке уже разобранных позиций. При сезонных всплесках, когда поток вырастает в разы, время на одну позицию не растёт: узкое место смещается с людей на пропускную способность сервиса, которую мы задаём заранее.
Чтобы эффект был управляемым, а не декларативным, мы настраиваем порог автоматического приёма и журнал решений: по каждой позиции видно, почему она отнесена к категории, и это можно перепроверить выборочно. Если правило или веса дают просадку на новых данных, контур возвращается к предыдущей конфигурации без остановки каталога.
Подходы к разметке: правила, обучение на примерах, языковые модели
Первый вопрос на старте — что взять за источник правил: словари и правила, модель на размеченных примерах или языковая модель. Выбор определяет не «современность» метода, а предсказуемость каталога — устойчивость названий, число пересекающихся категорий и частоту появления новых групп товаров. Поэтому мы прогоняем историю заказчика через все подходы и считаем долю ручных правок на тысячу позиций.
На практике чаще выигрывает гибридная схема: словари закрывают явные случаи и работают страховкой от грубых ошибок, модель решает спорные, а языковая модель подключается там, где разметки мало. Человек в контуре проверяет только позиции с низкой уверенностью — обычно это единицы процентов от потока.
| Вариант | Когда подходит | Ограничения |
|---|---|---|
| Правила и словари | Стабильный каталог, формализованные названия, десятки категорий | Новая формулировка поставщика ломает правило, словарь растёт быстрее категорий |
| Обучение на примерах | Есть тысячи размеченных карточек и история правок операторов | Новую категорию не ввести без переобучения, чувствительность к смене ассортимента |
| Языковые модели | Разметки мало, категории описаны словами, в карточках много текста | Нестабильность на редких позициях, нужен порог уверенности |
| Гибридная схема разметки | Каталог меняется, есть оператор для спорных случаев | Нужен интерфейс проверки и метрика согласия «модель — человек» |
Критерии сравнения фиксируем до старта: доля позиций без ручной правки, точность на отложенной выборке и время вывода новой категории.
Этапы внедрения: от аудита каталога до передачи модели
Категоризация начинается не с обучения модели, а с аудита каталога: выгружаем позиции с атрибутами, считаем долю неразмеченных, дубли, глубину дерева и «мусорные» узлы. Без этого шага любая метрика качества повисает в воздухе — непонятно, что вообще считать правильным ответом.
- Аудит каталога и данных — оценка полноты и однородности названий, атрибутов и текущих категорий. На выходе карта проблем: где данных не хватает, где разметка противоречива, какие узлы дублируют друг друга.
- Схема таксономии — согласуем дерево категорий и правила разграничения близких узлов. Фиксируем, какие позиции принципиально неоднозначны и остаются за ручной проверкой.
- Разметка выборки — контрольная выборка с перевесом в сторону редких категорий, ручная разметка и замер согласованности между разметчиками. Это эталон для всех дальнейших замеров.
- Настройка модели — базовый вариант на предобученной модели, сравнение с разбором по ключевым словам, подбор порогов уверенности, работа с несбалансированными классами.
- Проверка на потоке — прогон через реальный конвейер поступления товаров в теневом режиме: прогноз не меняет каталог, но каждое расхождение разбирается.
- Приёмка качества — метрика считается по классам, а не «в среднем»: редкая категория весит столько же, сколько массовая. Позиции ниже порога уходят на ручную проверку.
- Передача модели — документация, воспроизводимое обучение, регламент дообучения на новых данных и разбор типовых ошибок.
После передачи каталог категоризируется пачками на вашей стороне, а модель дообучается на новых позициях без нашего участия.
Артефакты проекта: таксономия, модель, регламент поддержки
Проект автоматической категоризации заканчивается не показом модели на отложенной выборке, а передачей комплекта, с которым ваша команда работает дальше без нас. Ниже — что остаётся на руках у заказчика: от дерева категорий до правил, по которым модель переобучается.
- Таксономия категорий и атрибутов — дерево с уровнями вложенности, правилами наследования и обязательными атрибутами для каждого листа. Основа и для разметки, и для выгрузки в учётные системы.
- Схема интеграции — где модель получает данные о товаре, в каком виде возвращает категорию и уверенность, что происходит при низкой уверенности. Два режима: пакетная обработка каталога и разбор карточки в момент публикации.
- Настроенная модель — обученная на вашей истории, с зафиксированными порогами уверенности и списком категорий, которые она не берёт и передаёт человеку.
- Документация по модели — какие признаки на что влияют, на каких данных обучение, как читать качество по каждой категории и где модель систематически ошибается.
- Проверочный набор — фиксированная выборка товаров с эталонными категориями. Прогон по ней показывает, деградировала ли модель после дообучения.
- Регламент поддержки — периодичность дообучения, кто подтверждает новые категории, как откатываться на предыдущую версию, если качество просело.
- Инструкция для операторов — как разбирать спорные карточки и куда складывать исправления, чтобы они попадали в следующий цикл обучения, а не терялись.
Кейс: каталог на десятки тысяч позиций без ручной разметки
Клиент — сеть розничных магазинов «Северный Дом»: каталог на 120 000 позиций и 2 400 подкатегорий. Товары заводили вручную — менеджер выбирал раздел по названию и описанию, спорные случаи уходили на второй круг. На пике сезонных поставок очередь на разметку растягивалась на дни, а часть карточек публиковалась не в тех разделах, и покупатель их просто не находил.
Как было до
Доля ошибочных попаданий в раздел — около 18%: почти каждая пятая карточка оказывалась не там, где её ищут. Товар появлялся в каталоге через два-три дня после приёмки на склад и всё это время был недоступен для заказа. Ручной доработки требовали больше половины карточек: правила категоризации не покрывали новые линейки поставщиков.
Что изменили и что получилось
Обучающую выборку собрали из 8 000 позиций, размеченных вручную по единой схеме; модель училась на названии, атрибутах и изображении товара. Порог уверенности выставили так, чтобы неоднозначные позиции уходили на проверку человеку, а не публиковались наугад.
Ошибочные попадания на потоке — 3% вместо 18%. Товар попадает в каталог в течение часа после приёмки: разметка запускается автоматически при загрузке накладной. Ручная доработка сократилась с 60% карточек до 8% — человек разбирает только спорные позиции и новые линейки, которых модель ещё не видела.
Раз в месяц накопленные исправления уходят в переобучение, качество сверяем на отложенной выборке — точность не падает по мере роста каталога.
Чем отличается категоризация по правилам от модели на примерах?
Категоризация по правилам — это справочники синонимов, регулярные выражения и приоритеты по атрибутам: сработало условие — категория присвоена по таблице соответствий. Такая логика работает с первого дня, не требует разметки и полностью объяснима: в журнале видно, какое правило сработало и почему.
Модель — обучаемый классификатор, который смотрит на название и атрибуты целиком и обобщает закономерности. Она переживает опечатки, новые бренды и непривычные формулировки, зато требует холодного старта: нескольких тысяч размеченных примеров и проверки на отложенной выборке. Объяснимость ниже — на выходе вероятность и признаки, повлиявшие на решение, а не явное правило.
| Вариант | Когда подходит | Ограничения |
|---|---|---|
| Правила и справочники | Узкий ассортимент, жёсткие требования к трассируемости решения | Ручная доработка растёт с каждой новой категорией |
| Статистическая модель на атрибутах | Есть историческая разметка и стабильный набор признаков | Плохо переносит новые формулировки в названиях |
| Нейросетевой классификатор по тексту | Широкий ассортимент, короткие и «грязные» названия | Нужен холодный старт и регулярная переразметка |
Ломаются подходы по-разному. Справочник приходится дописывать под каждую новую категорию, и на широком ассортименте сопровождение съедает больше времени, чем приносит пользы. Модель деградирует незаметно: точность падает при смене поставщиков и формулировок, поэтому нужен контроль доли ручных правок.
На практике мы собираем гибрид: правила отсекают однозначные случаи и фильтруют мусор в данных, модель закрывает остальное. Решения с уверенностью ниже порога уходят на ручную проверку и пополняют обучающую выборку — доля автообработки растёт с 40-60% на старте до 85-90% после нескольких циклов дообучения. Для быстрого входа достаточно компактного классификатора вроде FastText.
Технические сомнения: качество разметки, дрейф данных, поддержка
Технические возражения на этом этапе редко звучат как «заработает ли модель» — спрашивают про качество разметки, поведение на живом потоке и поддержку, когда таксономия начнёт меняться. Ниже — короткие ответы по каждому из этих пунктов.
Сколько данных нужно разметить на старте?
Объём считается от числа классов и их разделимости, а не по принципу «больше — лучше». Практический минимум — несколько тысяч примеров на категорию с обязательным покрытием редких подкатегорий: класс, показанный десятком объектов, модель просто не выделит. Остальное добирается активным обучением — под разметку уходят примеры, где уверенность модели минимальна.
Что делать, когда появляются новые категории?
Таксономию не переучиваем целиком: новую ветку подключаем отдельным слоем, переразмечая только спорную область. Границы уже работающих классов при этом не сдвигаются, поэтому добавление категории не откатывает качество на остальных.
Как модель ведёт себя на живом потоке — не деградирует?
Дрейф данных ловим не по общей точности, а по доле примеров с низкой уверенностью и расхождению распределения входных описаний с обучающей выборкой, плюс выборочный аудит оператором. Когда метрика уходит ниже порога, срабатывает алерт и возврат на предыдущую версию.
Как это встраивается в текущий контур?
Интеграция — через сервисный интерфейс или очередь событий, в пакетном либо онлайн-режиме. Первый период модель работает в теневом режиме рядом с текущей логикой, так что расхождения видно до переключения, а откат сводится к возврату версии.
Обсудим задачу: вернёмся с оценкой и планом внедрения
После обращения мы не начинаем с модели, а разбираем каталог: глубину дерева категорий, долю позиций с неполными атрибутами, откуда приходят данные и как часто меняется структура разделов. На этом разборе строится схема категоризации и состав работ — что делаем мы и что потребуется от вашей стороны.
- Оценка проекта. Считаем объём каталога, число категорий и правила отнесения, проверяем, хватает ли данных для контроля качества. Результат — состав работ и порядок этапов.
- Пилот на выборке. Берём несколько тысяч позиций из разных ветвей каталога и сверяем результат с эталонной разметкой: получаем долю верных отнесений и долю позиций, ушедших на ручную проверку.
- Схема решения. Фиксируем порог уверенности, ниже которого товар уходит оператору, правила для новых категорий и порядок разбора позиций, подходящих сразу нескольким разделам.
- План внедрения. Порядок подключения источников, точки контроля качества на каждом этапе, откат на предыдущую версию правил, если точность на потоке падает.
- Передача в поддержку. Документация по правилам и метрикам, инструкция для операторов, регламент дообучения на новых данных и разбор спорных случаев.
- Обучение команды. Показываем, как читать отчёты по качеству, менять пороги и добавлять категории без нашего участия.
Опишите задачу и пришлите выгрузку каталога — вернёмся с оценкой, схемой и планом внедрения, включая пилот на выборке.







