Диалоговые системы
Определение
Диалоговые системы (англ. Conversational Agent, CA) — компьютерные системы, предназначенные для общения с человеком. Они имитируют поведение человека и обеспечивают естественный способ получения информации, что позволяет значительно упростить руководство пользователя и тем самым повысить удобство взаимодействия с такими системами.
Диалоговую систему также называют разговорным искусственным интеллектом или просто ботом.
Диалоговая система может в разной степени являться целеориентированной системой (англ. Goal/Task-Oriented) или системой общего назначения. Как правило, системы общего назначения, в отличие от целеориентированных, поддерживают большое количество доменов, но не способны различать много вопросов в рамках кажного из них.
Определение: |
Домен (англ. Domain) — область знаний, которая относится к запросу пользователя. |
Целеориентированные диалоговые системы
Модульная архитектура
Диаграмма модульной архитектуры целеориентированной системы показана на рисунке 1.
Диалоговая система с модульной архитектурой:
Домен -- область знаний, restaurant которая относится к запросу.
Намерение (Intent) -- желание пользователя в рамках вопроса
Именованная сущность (просто сущность) -- параметр запроса
Политика -- статегия поведения
Гипотеза -- распознанная фраза
Эмбидинг -- 2
Контекст
Для генерации ответа используют генеративные модели, либо шаблоны.
Системы имеющие такую структуру имеют проблему масштабирования. Накапливается большое число правил, которые сложно согласовывать друг с другом. Время на сопровождение системы быстро растет, а затраченных ресурсов становится больше, чем нанят живого человека
Каноническая архитектура показана на рисунке.
Нейросетевая архитектура
Как извлекать намерение? Можно использовать регулярные выражения. Но один и тот же запрос на естественном языке можно построить по-разному, часто такой подход будет ошибаться. Сложно описать все возможные способы задания запроса
Целеориентированные диалоговые системы. Позволяет решать одну задачу.
Модель на основе нейронных сетей (end-to-end):
Энкодер-Декодер с вниманием.
Проблемы: валидных ответов может быть несколько, контекст может находится за пределами диалога.
Chit-Chat
Seq2seq, поддержа большого количества тем, но неглубокая.
Примеры систем
ELIZA иалоговая система-психоаналитик (сейчас, ее назвали бы чат-бот), родом из 60-ых годов.
Диалоговая операционная система.
Фреймворки
Существует множество фрейморков, которые значительно упрощают построение диалоговых систем.
DeepPavlov.ai
Включает множество компонентов, при помощи которых создаются скилы. Множество скилов объединяются в диалоговый агент с которым взаимодействуют пользователи на естественном языке.
LTP
Rasa
spaCy
Другое
Языковые модели: word2vec, esim, gpt, bert. Хорошей языковой модели достаточно около 100 примеров для хорошей классификации намерения.
См. также
Примечания