Упрощенные версии диалоговых систем — чат-боты — имеют очень простую архитектуру. Она предполагает нахождение шаблонов или клю- чевых слов в высказываниях людей, с помощью которых система подби- рает ответ из существующего набора вариантов. Более подробно об этом рассказывается в следующем разделе. Во многих случаях обмен несколь- кими репликами может создать впечатление естественного диалога, но в какой-то момент он превращается в неразбериху.
Современные полномасштабные диалоговые системы имеют более сложную архитектуру и состоят из нескольких модулей. Их архитектура сильно варьируется, но принято считать, что в ней обычно присутствует пять главных элементов: распознавание речи (speech recognition), понима- ние языка (natural language understanding), диалоговый менеджмент (dia-
logue management), генерация естественного языка (natural language gen- eration) и синтез речи (speech synthesis). Некоторые элементы являются необязательными и отсутствуют в ряде систем. Например, распознавание и синтез речи часто исключаются, поскольку обычно они реализуются как отдельные независимые модули. Рассмотрим кратко три оставшихся ком- понента диалоговых систем.
Модуль понимания естественного языка
Задачей модуля понимания естественного языка (natural language un- derstanding — NLU) является получение семантического представления входного текста, которое затем сможет быть использовано для реализации каких-либо заданий в рамках диалоговых систем. Есть два подхода для разработки данного модуля, выбор которых зависит от сложности диало- говой системы и имеющихся ресурсов: построенные вручную правила (handcrafted) или правила, основанные на данных (data-driven) [Ginzburg and Fernandez 2010].
Для успешной работы данного модуля необходимо большое количество информации, включающей знания об окружающем мире, контекст диалога и информацию о дискурсе. В системах типа IBM Watson или диалоговых функциях Google для описания окружающего мира используются базы знаний (knowledge graph). Базы знаний формируются на основании открытых структурированных источников, таких как Википедия, и пополняются с помощью различных алгоритмов извлечения информации из текстов. Эти данные также используются для дальнейшего обучения модулей NLU распознаванию именованных сущностей в репликах пользователей. Мобильные ассистенты также могут накапливать информацию о пользователе: его интересы, предпочтения, дату рождения и другую личную информацию.
Диалоговый менеджер
Диалоговый менеджер — это центральная составляющая диалоговых систем, которая координирует деятельность других компонентов. Её ос- новной задачей является сохранение представления о текущем состоянии диалога [Bui 2006]. Траум и Ларссон [Traum and Larsson 2003] так опреде- ляют главные задачи диалогового менеджера:
обновление контекста диалога на основании проинтерпретированного общения;
предоставление контекстно-зависимых интерпретаций сигналов;
работа с обработкой задания и области знания (например, базы дан- ных, планирование, реализация и другие системы), координирование
диалогового и недиалогового поведения, принятие решения о том, ка- ково будет содержание следующего высказывания и когда следует его реализовать.
Диалоговые менеджеры должны интерпретировать речевые акты, производить необходимые действия, формулировать ответы и поддержи- вать идею системы о состоянии дискурса [Dale, Moisi and Somers 2000]. Таким образом, диалоговый менеджер контролирует всю архитектуру и структуру беседы, а также является связующим звеном между модулями понимания и генерации языка, так как берет на себя функцию донесения информации от одного модуля к другому.
Существует масса различных классификаций диалоговых менедже- ров. Журавский и Мартин рассматривают четыре основных типа их архи- тектуры:
с конечным количеством состояний (finite-state DM);
базирующийся на фреймах-формах (frame/form based DM);
с информационными состояниями (information-state DM);
ДМ, основанный на плане (plan-based DM).
Буи совмещает первые два типа в одну группу и вводит понятие кол- лаборативного агентного подхода (collaborative agent-based approach). Бо- лее детальное обсуждение данных подтипов не входит в замысел данной главы, однако, заинтересованные читатели могут получить более подроб- ную информацию из [Jurafsky and Martin 2009, Bui 2006 и Ginzburg and Fernandez 2010].
Модуль генерации естественного языка
Генерация естественного языка ответственна за автоматическое соз- дание высказываний на естественном языке на основе полученного пред- ставления нелингвистической информации. Преимущественно процесс генерации языка состоит из трех стадий: планирование документа (docu- ment planning), микропланирование (microplanning) и поверхностная реа- лизация (surface realization) [Reiter and Dale, 2000].
Планирование документов включает определение содержания (con- tent determination) (преобразование необработанного материала в опреде- ленный тип data objects) и структурирование документов/планирование дискурса (упорядочение информации, к которым относится и структури- рование выходного/конечного текста). Стадия микропланирования состоит из лексикализации (выбора подходящих слов для выражения информации), аггрегации (aggregation) (принятие решения о том, какую информацию вложить в одно предложение) и генерации отсылочных выражений (refer- ring expression). Последняя стадия, поверхностная реализация (surface
realization), включает лингвистическую реализацию (создание граммати- чески правильных предложений) и реализацию структуры (конвертация результирующего текста в какой-то запрашиваемый формат).
В диалоговых системах информация, поступающая в модуль генера- ции языка, приходит из диалогового менеджера. Это означает, что диало- говый менеджер ответственен за подбор информации для выдачи ее поль- зователю и для планирования дискурса. Таким образом, в большинстве случаев модуль генерации языка формулирует высказывания системы, то есть принимает решение «как сказать».
Многие диалоговые системы оперируют ограниченной областью зна- ния, таким образом, часть стадий генерации языка становятся тривиаль- ными, и нет нужды разрабатывать сложную систему. В таком случае обычно полагаются на заранее определенные шаблоны, хотя это может сказаться на качестве текста, и человеку такие высказывания покажутся неестественными. Для устранения данной проблемы, обычно используют- ся местоимения, небольшие перефразирования для внесения разнообразия в ответы системы. Некоторые чат-боты используют марковские цепи для генерации разнообразных ответов, при этом выглядящих похоже на пред- ложения, сгенерированные человеком [Bradeško et al. 2012].
Во многих простых чат-ботах модуль генерации речи может отсутст- вовать: система использует предварительно созданные разработчиками ответы, список которых может пополняться. Например, система Cleverbot используют для пополнения своей базы знаний реплики пользователей и пользовательские реакции на них — что сделало этого бота несколько аг- рессивным и не слишком приятным в общении.
Достарыңызбен бөлісу: |