3,583 papers
arXiv:2508.04219 84 6 авг. 2025 г. FREE

Иерархическая классификация через промпты: три стратегии для многоуровневой категоризации

КЛЮЧЕВАЯ СУТЬ
LLM теряется в иерархиях. 'Email-рассылки' может быть и в 'Маркетинге', и в 'IT' — без контекста родительской категории модель путается на похожих метках. Метод позволяет автоматически распределять тексты по многоуровневым структурам (отдел → тип → конкретная тема) с высокой точностью. DH-стратегия показывает модели все пути сразу в формате 'Категория > Подкатегория > Тема' — модель видит полную карту связей и выбирает путь, а не блуждает по уровням. Few-shot примеры (3-5 штук) резко поднимают точность — модель схватывает паттерн как формулировки соотносятся с метками.
Адаптировать под запрос

TL;DR

Иерархическая классификация — это когда метки организованы по уровням: категория → подкатегория → конкретная метка. Например: "Бизнес" → "Маркетинг" → "Email-рассылки". Исследователи проверили три стратегии промптинга для такой классификации: (1) DL — предсказать сразу конечную метку, (2) DH — предсказать полный путь одним запросом, (3) TMH — идти по уровням пошагово.

LLM плохо классифицирует, когда иерархия глубокая, а метки похожи. Проблема: модель не видит структуру связей между уровнями. "Email-рассылки" может быть и в "Маркетинге", и в "IT". Без контекста родительской категории модель путается. Few-shot (добавление 3-5 примеров) резко улучшает результат — модель схватывает паттерн связей.

Стратегия DH (показываем полную иерархию в промпте) работает лучше всего на глубоких структурах (3+ уровня). TMH (пошаговый спуск) экономит токены на мелких иерархиях, но требует нескольких запросов. DL (только конечные метки) подходит для быстрой классификации, но теряет точность на сложных структурах.


🔬

Схема методов

📌

DL (Direct Leaf) — Прямое предсказание конечной метки

ПРОМПТ: Список всех конечных меток (без структуры) → Выбери одну
ОТВЕТ: Конечная метка

Один запрос. Модель не видит иерархию.

📌

DH (Direct Hierarchical) — Прямое предсказание пути

ПРОМПТ: Все пути в формате "уровень1 > уровень2 > уровень3" → Выбери путь
ОТВЕТ: Полный путь через ">"

Один запрос. Модель видит полную структуру.

📌

TMH (Top-down Multi-step) — Пошаговый спуск

ШАГ 1: Метки верхнего уровня → Выбери категорию
ШАГ 2: Дочерние метки выбранной категории → Выбери подкатегорию
ШАГ N: Продолжай до конечного уровня

Несколько запросов. На каждом шаге — только релевантные метки.


🚀

Пример применения

⚠️ Ограничения метода: DH лучше работает на глубоких иерархиях (3+ уровня). Для простых двухуровневых структур достаточно DL. TMH оптимален, когда нужно экономить токены или когда список всех путей слишком длинный для одного промпта.

Задача: Ты ведёшь проект по автоматизации клиентской поддержки. Входящие обращения нужно распределять по отделам → типам → конкретным темам. Структура: (1) Продажи / Техподдержка / Бухгалтерия, (2) Вопрос / Проблема / Запрос, (3) 20+ конкретных тем. Вручную сортировать 200 обращений в день — убийство времени.

Промпт (стратегия DH с 3-shot):

Классифицируй обращение по структуре: Отдел > Тип > Тема

Примеры:
1. "Не пришёл счёт за ноябрь" → Бухгалтерия > Проблема > Выставление счетов
2. "Как подключить API к CRM?" → Техподдержка > Вопрос > Интеграции
3. "Хочу увеличить лимит по договору" → Продажи > Запрос > Условия договора

Доступные пути:
- Продажи > Вопрос > Тарифы и цены
- Продажи > Вопрос > Условия договора
- Продажи > Запрос > Увеличение лимита
- Техподдержка > Проблема > Ошибки в системе
- Техподдержка > Вопрос > Интеграции
- Бухгалтерия > Проблема > Выставление счетов
[...остальные 15 путей]

Обращение: "{текст обращения}"

Ответ (только путь):

Результат: Модель выдаст точный путь в формате "Отдел > Тип > Тема". Структура в промпте показывает модели связи между уровнями — она понимает, что "Выставление счетов" относится к "Бухгалтерии", а не к "Продажам". Few-shot примеры калибруют понимание: модель видит, как формулировки клиентов (разговорный стиль) соотносятся с формальными метками.


🧠

Почему это работает

Слабость LLM: При классификации по плоскому списку меток модель не видит контекст верхних уровней. "Счета", "Договоры", "Тарифы" — всё звучит про деньги. Без структуры модель путает похожие темы из разных отделов. Добавь сюда синонимы и разговорные формулировки — точность падает.

Сильная сторона LLM: Модель отлично понимает структуру и следует паттернам, если их явно показать. Формат "Категория > Подкатегория > Тема" создаёт иерархическую привязку — модель видит, что "Выставление счетов" существует только внутри ветки "Бухгалтерия > Проблема". Few-shot примеры работают как семантическая калибровка — модель учится соотносить стиль текста с уровнем формальности меток.

Как метод использует силу: DH-стратегия показывает модели все связи одновременно — она видит полную карту и выбирает путь, а не блуждает по уровням. TMH работает как фильтр с сужением — на каждом шаге модель выбирает из меньшего числа релевантных вариантов, что снижает вероятность ошибки. Few-shot даёт модели якорные примеры — она схватывает паттерн "как люди формулируют → как это переводится в метки".

📋

Рычаги управления промптом

Глубина few-shot (0 / 3 / 5 / 10 примеров):

  • 0 примеров → быстро, но неточно на сложных структурах
  • 3-5 примеров → золотая середина — точность растёт, стоимость терпима
  • 10+ примеров → точность почти не растёт, токены дорожают

Формат вывода:

  • "Только путь" → модель выдаёт "Бухгалтерия > Проблема > Счета"
  • "С объяснением" → модель пишет "Выбрал Бухгалтерию, потому что..." (дороже, но видно логику)

Выбор стратегии:

  • Глубокая иерархия (3+ уровня) → DH (модель видит все связи)
  • Мелкая иерархия (2 уровня) → DL или TMH (проще, дешевле)
  • Огромный список меток → TMH (не влезет весь список в один промпт)

📋

Шаблон промпта

📌

DH (Direct Hierarchical) — для глубоких иерархий

Классифицируй текст по иерархии: {уровень_1} > {уровень_2} > {уровень_3}

{few_shot_примеры}

Доступные пути:
{список_всех_путей}

Текст: "{текст}"

Ответ (только путь через ">"):

Что подставлять:

  • {уровень_1/2/3} — названия уровней ("Отдел", "Тип", "Тема")
  • {few_shot_примеры} — 3-5 примеров в формате "Текст" → Путь
  • {список_всех_путей} — все возможные пути, каждый с новой строки
  • {текст} — текст для классификации
📌

TMH (Top-down Multi-step) — для экономии токенов

Шаг 1 (верхний уровень):

Выбери категорию для текста.

Категории: {категории_уровня_1}

Текст: "{текст}"

Ответ (только название категории):

Шаг 2 (следующий уровень):

Выбери подкатегорию внутри "{выбранная_категория}".

Подкатегории: {дочерние_метки}

Текст: "{текст}"

Ответ (только название подкатегории):

Повторяй до конечного уровня.


🚀 Быстрый старт — вставь в чат:

Вот шаблон для иерархической классификации текста. Адаптируй под мою задачу: {твоя задача}. 
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит про структуру твоей иерархии (сколько уровней, какие метки на каждом) и примеры текстов для few-shot. Она возьмёт паттерн из шаблона и адаптирует формат под твои метки — сгенерирует промпт, который ты сможешь использовать для классификации.


⚠️

Ограничения

⚠️ Стоимость растёт с глубиной: На иерархиях с 3+ уровнями стратегия DH требует показать все пути в промпте. Если у тебя 300+ путей — промпт раздувается до 5000+ токенов. TMH экономит токены, но требует нескольких запросов (по одному на каждый уровень) — итоговая стоимость может быть сравнима.

⚠️ Качество меток важно: Если метки неоднозначные ("Разное", "Прочее", "Другое") или перекрываются семантически — модель путается даже с few-shot. Чёткие, различимые названия критичны.

⚠️ Не для простых классификаций: Если у тебя 2 уровня и 10 меток — достаточно обычного списка без структуры. Иерархические промпты — это overkill для простых задач. Используй DL или вообще обычный "выбери категорию из списка".

⚠️ Zero-shot хуже на 15-20%: Без примеров модель делает больше ошибок, особенно на схожих метках. Few-shot (3-5 примеров) существенно поднимает точность — экономия на промпте выйдет дороже через ошибки классификации.


🔍

Как исследовали

Исследователи взяли GPT-4o-mini и проверили три стратегии промптинга на двух датасетах: Web of Science (научные статьи, 2 уровня: область → ключевое слово) и Amazon Product Reviews (отзывы на товары, 3 уровня: категория → подкатегория → товар). Тестировали в zero-shot (без примеров) и few-shot (1, 3, 5, 10, 20 примеров). Сравнивали с традиционной ML-моделью HPT (Hierarchy-aware Prompt Tuning), которая требует обучения на данных.

Измеряли точность на каждом уровне и условную вероятность — насколько часто модель правильно предсказывает дочернюю метку, если родительская угадана верно. Это важно: ошибка на верхнем уровне убивает точность на всех нижних. Также считали стоимость в токенах — сколько prompt tokens (входных) и completion tokens (выходных) съедает каждая стратегия.

Главная находка: На датасете WOS (2 уровня, мелкая иерархия) традиционная ML-модель выигрывает — HPT даёт 82.6% на первом уровне vs 71.3% у лучшей LLM-стратегии. Но на APR (3 уровня, глубокая иерархия) картина меняется: DH с 5-shot даёт 86.8% на первом уровне vs 82.3% у HPT. На третьем уровне DH с 20-shot выдаёт 53.2% vs 37.7% у HPT — разгром в пользу LLM!

Почему так? HPT обучена на фиксированных данных — она хорошо работает на неглубоких структурах, где можно натренировать модель на всех связях. Но на глубоких иерархиях с редкими метками HPT страдает от нехватки данных для обучения. LLM с few-shot не требует обучения — она схватывает паттерн из примеров и обобщает на новые тексты. DH-стратегия явно показывает модели структуру — это критично для глубоких иерархий.

Стоимость: Zero-shot на WOS съедает ~833 prompt tokens для DL, ~1249 для DH. Few-shot раздувает промпт — 20-shot на DH требует уже 6822 токена. На APR ещё хуже: DH с 20-shot — 5575 токенов. TMH стартует дёшево (511 токенов), но при 20-shot взрывается до 6473 токенов из-за того, что на каждом шаге нужно переотправлять контекст. Completion tokens стабильны (3-12 токенов) — основная стоимость в промптах.

Инсайт для практики: Если у тебя глубокая иерархия (3+ уровня) и мало данных для обучения ML-модели — LLM с few-shot выгоднее традиционного ML. Но если иерархия мелкая (2 уровня) и есть много размеченных данных — классическая ML-модель всё ещё лучше по точности и стоимости.


📄

Оригинал из исследования

Контекст: Исследователи использовали этот промпт для стратегии DH на датасете Web of Science.

### Instructions
Q. What area does this passage relate to?

### Candidates
Computer Science > Data Structure
Computer Science > Machine Learning
Computer Science > Operating Systems
Medical Science > Asthma
Medical Science > Cancer
[...full list of hierarchical paths]

### Passage
{input data}

### Answer

Для TMH (пошаговая стратегия) промпт на первом уровне выглядел так:

### Instructions
Q. What is area this passage related to?

### Candidates
Medical Sciences
Computer Science
Electrical Engineering
[...list of top-level categories]

### Passage
{input data}

### Answer

На следующем шаге показывали только дочерние метки выбранной категории.


💡

Адаптации и экстраполяции

📌

💡 Адаптация для триажа в техподдержке

В оригинале классифицировали научные статьи и товары. Принцип работает для любой многоуровневой категоризации. Вот адаптация для IT-компании:

Задача: Распределять баги из GitHub Issues по: Модуль > Тип проблемы > Приоритет

Классифицируй баг по структуре: Модуль > Тип > Приоритет

Примеры:
1. "API падает при отправке больших файлов" → Backend > Performance > High
2. "Кнопка 'Сохранить' не меняет цвет при наведении" → Frontend > UI/UX > Low
3. "База данных не откатывает транзакцию при ошибке" → Database > Logic Error > Critical

Доступные пути:
- Backend > Performance > High
- Backend > Logic Error > Critical
- Frontend > UI/UX > Low
- Frontend > Functionality > Medium
- Database > Performance > Medium
- Database > Logic Error > Critical
[...остальные комбинации]

Баг: "{текст issue}"

Ответ (только путь через ">"):

Почему это работает здесь: Модуль определяется по ключевым словам (API, база, кнопка). Тип проблемы — по описанию симптома (падает = Performance, не работает логика = Logic Error). Приоритет — по бизнес-критичности формулировки. Структура в промпте помогает модели не путать "Performance в Backend" и "Performance в Database" — это разные вещи.


📌

🔧 Техника: Динамическая глубина → адаптация под конкретный текст

Проблема: Не все тексты требуют классификации до самого нижнего уровня. Например, обращение "У вас есть техподдержка?" — это вопрос о компании, не конкретная проблема. Классифицировать до "Техподдержка > Вопрос > Доступность услуги" — overkill.

Решение: Добавь в промпт опцию "не определено" на каждом уровне:

Классифицируй обращение. Если уровень не применим — пиши "N/A".

Примеры:
"У вас есть техподдержка?" → Общая информация > N/A > N/A
"Не работает оплата картой" → Техподдержка > Проблема > Платёжная система

Структура: Отдел > Тип > Конкретная тема

Обращение: "{текст}"

Ответ:

Эффект: Модель сама решает, нужна ли глубокая классификация. Это экономит токены (не нужно показывать все пути для простых запросов) и повышает точность (не форсирует модель придумывать несуществующие подкатегории).


📌

🔧 Техника: Confidence score → фильтрация неоднозначных случаев

Проблема: Иногда текст действительно неоднозначен. "Не могу войти в систему" — это техподдержка или бухгалтерия (не вижу счета)? Модель выберет категорию, но может ошибиться.

Решение: Попроси модель оценить уверенность:

Классифицируй обращение и оцени уверенность (Low/Medium/High).

Структура: Отдел > Тип > Тема | Уверенность

Обращение: "{текст}"

Ответ:

Пример вывода:

Техподдержка > Проблема > Доступ к системе | Medium

Эффект: Обращения с Low confidence можно отправлять на ручную проверку — это снижает количество неправильно распределённых задач. Вместо 100% автоматизации с 20% ошибок получаешь 80% автоматизации с 5% ошибок + 20% на ручной триаж.


🔗

Ресурсы

Hierarchical Text Classification Using Black Box Large Language Models Kosuke Yoshimura, Hisashi Kashima (Kyoto University, 2024)

Упомянутые исследования:

  • HPT (Hierarchy-aware Prompt Tuning) — Wang et al., 2022
  • HierVerb — Ji et al., 2023
  • TELEClass — Zhang et al., 2024

Датасеты:

  • Web of Science (WOS) — 46,985 научных статей, 2 уровня иерархии
  • Amazon Product Reviews (APR) — отзывы на товары, 3 уровня иерархии

Методы проверки контаминации:

  • ChatGPT-Cheat? — Sainz et al., 2023
  • Time-Travel-in-LLMs — Golchin & Surdeanu, 2024

📋 Дайджест исследования

Ключевая суть

LLM теряется в иерархиях. 'Email-рассылки' может быть и в 'Маркетинге', и в 'IT' — без контекста родительской категории модель путается на похожих метках. Метод позволяет автоматически распределять тексты по многоуровневым структурам (отдел → тип → конкретная тема) с высокой точностью. DH-стратегия показывает модели все пути сразу в формате 'Категория > Подкатегория > Тема' — модель видит полную карту связей и выбирает путь, а не блуждает по уровням. Few-shot примеры (3-5 штук) резко поднимают точность — модель схватывает паттерн как формулировки соотносятся с метками.

Принцип работы

Три стратегии под разные задачи. DL (Direct Leaf) — покажи все конечные метки списком, модель выбирает одну. Быстро, но модель не видит структуру. DH (Direct Hierarchical) — покажи все пути через разделитель '>', модель выбирает полный путь. Один запрос, модель видит все связи. TMH (Top-down Multi-step) — иди по уровням пошагово, на каждом шаге показывай только релевантные метки. Несколько запросов, но экономит токены. Выбор зависит от глубины иерархии: 3+ уровня — DH работает лучше, 2 уровня — достаточно DL, огромный список путей — TMH.

Почему работает

Слабость LLM: при классификации по плоскому списку модель не видит контекст верхних уровней. 'Счета', 'Договоры', 'Тарифы' — всё звучит про деньги. Без структуры модель путает похожие темы из разных отделов. Сильная сторона LLM: модель отлично понимает структуру и следует паттернам, если их явно показать. Формат 'Категория > Подкатегория > Тема' создаёт иерархическую привязку — модель видит что 'Выставление счетов' существует только внутри ветки 'Бухгалтерия > Проблема'. Few-shot примеры работают как семантическая калибровка — модель учится соотносить стиль текста (разговорный) с формальными метками.

Когда применять

Классификация текстов → автоматическое распределение по многоуровневым категориям (клиентская поддержка, каталоги товаров, документооборот), особенно когда иерархия глубокая (3+ уровня) и метки семантически похожи. НЕ подходит для простых двухуровневых структур с 10-20 метками — там достаточно обычного списка без иерархии.

Мини-рецепт

1. Определи структуру: сколько уровней, какие метки на каждом (пример: Отдел → Тип → Тема)
2. Составь все пути: каждый путь через разделитель '>' ('Продажи > Вопрос > Тарифы')
3. Подбери 3-5 примеров: реальные тексты → правильные пути (покрывай разные ветки иерархии)
4. Выбери стратегию: глубокая иерархия — DH (все пути в промпте), мелкая — DL (только конечные метки), огромный список — TMH (пошагово)
5. Формат вывода: попроси 'только путь через >' без объяснений (экономия токенов)

Примеры

[ПЛОХО] : Определи категорию для обращения: 'Не пришёл счёт за ноябрь' — модель не видит структуру, путается между похожими метками
[ХОРОШО] : Классифицируй обращение по структуре: Отдел > Тип > Тема Примеры: 1. 'Не пришёл счёт за ноябрь' → Бухгалтерия > Проблема > Выставление счетов 2. 'Как подключить API к CRM?' → Техподдержка > Вопрос > Интеграции 3. 'Хочу увеличить лимит' → Продажи > Запрос > Условия договора Доступные пути: - Продажи > Вопрос > Тарифы и цены - Продажи > Запрос > Увеличение лимита - Техподдержка > Проблема > Ошибки в системе - Техподдержка > Вопрос > Интеграции - Бухгалтерия > Проблема > Выставление счетов [...остальные пути] Обращение: 'У меня не открывается личный кабинет' Ответ (только путь): Модель выдаст точный путь, видя все связи между уровнями. Few-shot примеры показывают как разговорные формулировки переводятся в формальные метки.
Источник: Hierarchical Text Classification Using Black Box Large Language Models
ArXiv ID: 2508.04219 | Сгенерировано: 2026-01-12 01:24

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с