Что такое распознавание намерений

Пользователь пишет «хочу что-то синее и дышащее для пробежки» — система должна понять: это запрос на товарную рекомендацию, категория «спортивная обувь», параметры «синий, дышащий материал». Это и есть задача intent recognition + entity extraction в связке.

Намерение — это ответ на вопрос «что пользователь хочет сделать?», а не «что именно он ищет?»:

  • find_product — хочет найти товар
  • compare_products — хочет сравнить варианты
  • check_availability — хочет узнать наличие
  • track_order — хочет статус заказа
  • initiate_return — хочет вернуть товар
  • get_help — нужна помощь общего характера

Как работает классификация намерений

Современные системы используют несколько подходов:

Fine-tuned модели: небольшая модель (BERT, DistilBERT) дообучается на размеченных диалогах конкретного магазина. Работает быстро, дёшево в инференсе, но требует разметки обучающих данных.

LLM с prompting: запрос и список возможных намерений передаются языковой модели. Не требует разметки, гибко добавлять новые намерения, но дороже в инференсе.

Гибридный подход: LLM для редких и сложных случаев, маленькая модель для типовых — оптимум по стоимости/качеству.

Запрос: "когда придёт мой заказ"
→ Intent: track_order (confidence: 0.94)
→ Entity: [implicit: order_id нужен]
→ Action: запросить order_id у пользователя

Почему intent recognition критичен в e-commerce

В диалоговых ассистентах для покупок один неверный intent ломает весь сценарий. Пользователь, получивший нерелевантный ответ, не уточняет запрос — он закрывает диалог.

Неверный intent Последствие
Transactional → Informational Покупатель готов купить, но получает статью — пауза конверсии
Return → Product discovery Пришедший с возвратом видит рекламу новых товаров — раздражение
Out-of-scope не определён Система пытается ответить на вопрос вне своих компетенций — hallucination

Совет: всегда проектируйте отдельный интент out_of_scope и чёткий сценарий для него: «Я не могу помочь с этим, переключаю на оператора». Отсутствие этого интента — причина большинства провальных диалогов.

Intent confidence и fallback

Большинство классификаторов возвращают вероятность принадлежности к каждому классу, а не просто победителя. Низкая уверенность (confidence < порога) — сигнал к действию:

  • Задать уточняющий вопрос: «Вы хотите найти товар или узнать статус заказа?»
  • Переключить на оператора: если пользователь в затруднении и stakes высоки (возврат, претензия)
  • Запросить переформулировку: «Я не уверен, что правильно понял — уточните, пожалуйста»

Оптимальный порог зависит от задачи: для транзакционных намерений порог должен быть выше — цена ошибки больше.