Введение

Диалоговый менеджер (DM) — это компонент диалоговой системы (DS), отвечающий за состояние и ход беседы. Обычно:

Вход для DM — это высказывание пользователя, как правило, преобразованное в некоторое семантическое представление, специфичное для системы, компонентом понимания естественного языка (NLU). Например, в диалоговой системе планирования перелётов вход может выглядеть так: "ORDER(from=TA,to=JER,date=2012 01 01)". DM обычно поддерживает переменные состояния, такие как история диалога, последний неотвеченный вопрос и т. п., в зависимости от системы. Выход DM — это список инструкций для других частей диалоговой системы, обычно в семантическом представлении, например "TELL(flight num=123,flight time=12:34)". Это семантическое представление обычно преобразуется в естественный язык компонентом генерации естественного языка (NLG). Существует множество различных DM, выполняющих очень разные функции. В одной DS может быть даже несколько компонентов DM. Единственное, что объединяет все DM, — это их способность сохранять состояние, в отличие от других частей DS (таких как компоненты NLU и NLG), которые являются просто функциями без сохранения состояния. Роли DM можно условно разделить на следующие группы:

Контроль ввода, обеспечивающий контекстно-зависимую обработку высказываний пользователя. Контроль вывода, обеспечивающий генерацию текста, зависящую от состояния. Стратегический контроль потока, определяющий, какое действие должен предпринять диалоговый агент в каждой точке диалога. Тактический контроль потока, принимающий тактические решения в ходе беседы (обработка ошибок, управление инициативой и т. д.).

Выход-контроль DM

Выходные данные компьютера можно сделать более естественными, запоминая историю диалога. Например, NPCEditor (фреймворк для разработки персонажей, отвечающих на вопросы пользователей) позволяет автору задавать пары «вопрос-ответ», так что для каждого вопроса предусмотрено несколько вариантов ответа. DM выбирает наилучший ответ на вопрос, если он еще не использовался; в противном случае выбирается второй по качеству ответ и так далее. Аналогичная функция реализована в ChatScript (фреймворк для создания чат-ботов): каждый раз, когда DS применяет определенное правило, DM помечает это правило как «использованное», чтобы избежать его повторного применения. Недавняя система технической поддержки использует продвинутые правила, основанные на машинном обучении, для выбора наиболее подходящих терминов для описания объектов. Например, если DM определяет, что общается со взрослым, он будет использовать такие термины, как «левая рука»; если же DM определяет, что общается с ребенком, он будет использовать менее технические термины, например, «рука, на которой носят часы». Эта функция находится на стыке между DM и NLG.

Тактический контроль потока DM

В дополнение к соблюдению общей структуры и целей диалога, некоторые ведущие также принимают тактические решения в ходе беседы – локальные решения, влияющие на качество общения.

Контроль инициативы

Некоторые DS имеют несколько режимов работы: режим по умолчанию – инициатива пользователя, при котором система просто спрашивает: «Чем я могу вам помочь?» и позволяет пользователю управлять ходом беседы. Это подходит для опытных пользователей. Однако, если между пользователем и системой возникает много недопониманий, DM может переключиться в режим смешанной или системной инициативы – задавать пользователю конкретные вопросы и принимать только один ответ за раз.

Педагогические решения

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

Училась тактике.

Вместо того чтобы позволять эксперту вручную разрабатывать сложный набор правил принятия решений, чаще используется обучение с подкреплением. Диалог представляется как марковский процесс принятия решений (MDP) – процесс, в котором в каждом состоянии агент должен выбрать действие, основываясь на текущем состоянии и возможных вознаграждениях за каждое действие. В этом случае автору диалога необходимо лишь определить функцию вознаграждения, например: в обучающих диалогах вознаграждением является повышение успеваемости ученика; в диалогах, направленных на поиск информации, вознаграждение положительное, если пользователь получает необходимую информацию, но также предусмотрено отрицательное вознаграждение за каждый шаг диалога. Затем методы обучения с подкреплением используются для выработки стратегии, например, какой тип подтверждения следует использовать в каждом состоянии и т.д. Эта стратегия впоследствии используется агентом в реальных диалогах. Учебное пособие по данной теме было написано Лемон и Ризер (2009). Другой подход к обучению стратегий диалога – имитация поведения человека с помощью экспериментов типа "Волшебник страны Оз", в которых человек, находясь в скрытой комнате, подсказывает компьютеру, что говорить; см., например, Passonneau et al (2011).