УДК 004.891.3
И. Ф. Юсупов, Ю. М. Kypamoe
Московский физико-технический институт (национальный исследовательский университет)
Диалоговый агент с обучаемым диалоговым
менеджером
Представлен диалоговый агент bot#1337, созданный в рамках участия в соревновании по разработке диалоговых агентов NIPS Conversational Intelligence Challenge 2017 (ConvAI). Этот агент способен вести диалог с человеком о заданном тексте. Диалог ведется с помощью навыков определения темы, реферирования, ответов на вопросы, генерации вопросов и разговора на общие темы. Система обучалась выбирать подходящий навык для выдачи ответа. Представленный бот произведен с использованием открытых инструментов и данных; он не зависит от внешних сервисов и может работать в закрытом контуре; его диалоговый менеджер является обучаемым. Последнее позволяет разработчику сфокусироваться на создании навыков вместо описания конечного автомата агента. Bot#1337 является победителем соревнования со средней оценкой качества диалога 2.78, которые были проставлены людьми. Исходный код и обученные модели представленного бота доступны на Github.
Ключевые слова: диалоговые системы, обработка естественного языка, диалоговый менеджер.
I. F. Yusupov, Y. М. Kuratov Moscow Institute of Physics and Technology
Dialogue system with a supervised dialog manager
We present bot#1337: a dialog system developed for the 1st NIPS Conversational Intelligence Challenge 2017 (ConvAI). The bot is capable of conversing with humans about a given text (e.g., a paragraph from Wikipedia article). The conversation is enabled by a set of skills, including chit-chat, topic detection, text summarization, question answering and question generation. The system has been trained in a supervised setting to select an appropriate skill for generating a response. Our bot is implemented with open-source software and ОрвП dcltcl, it is self-hosted and employs a supervised dialog manager with a linear hierarchy. The latter allows a developer to focus on skill implementation rather than the finite state machine based dialog manager. Bot#1337 was a winner of the competition with an average dialogue quality score of 2.78 given by human evaluators. Source code and trained models for the bot#1337 are available on GitHub.
Key words: dialogue systems, natural language processing, dialogue manager. 1. Введение
Диалоговый агент (диалоговая система, агент, чат-бот, бот) - это программа, которая ведет разговор с человеком через текстовый или звуковой интерфейс. Диалоговые системы разделяются на целеориентированные, которые решают определенную задачу, например бронирование авиабилетов, и на общего назначения. Также их разделяют по области действия (домену) - закрытый или открытый. Боты с открытым доменом покрывают широкий
© Юсупов И. Ф., Куратов Ю. М., 2020
© Федеральное государственное автономное образовательное учреждение высшего образования
«Московский физико-технический институт (национальный исследовательский университет)», 2020
спектр тем диалога, тогда как чат-бот с закрытым доменом специализируется только на конкретных темах.
Ранние диалоговые системы использовали подход, основанный на правилах для разработки стратегии ведения диалога [1,3]. Такие системы трудны в поддержке и требуют написания новых правил при расширении поддерживаемых тематик диалога. Этот подход все еще широко применяется там, где необходим полный контроль над диалогом (например, в индустриальных системах). Появления диалоговых корпусов (DSTC [4], Twitter Corpus [5], Ubuntu Dialogue Corpus [6]) сделали возможным обучение end-to-end диалоговых систем [7,8]. End-to-end системы обычно используют рекуррентные нейронные сети [2] и модели типа последовательность-последовательность (sequence-to-sequence) [9], которые обучаются на сырых диалоговых данных.
Одной из основных проблем диалоговых агентов общего назначения является оценка их качества. Причина - отсутствие хороших метрик. Оценка качества целеориентированных диалоговых систем может быть посчитана как процент диалогов, в которых пользователь достиг своей цели. Для систем общего назначения такая метрика отсутствует, т.к. цель системы выдать реплику, которая подходила бы под контекст диалога. Оценка качества такой реплики может быть посчитана как перплексия [25], которая, однако, не гарантирует адекватность ответа. Также часто используются метрики сравнения с золотым стандартом, например BLEU [27] и METEOR [26], которые были разработаны для оценки качества моделей машинного перевода. Такие метрики не являются оптимальными для оценки качества чат-ботов, т.к. релевантный ответ может отличаться от золотого стандарта [28]. В недавних работах было предложено оценивать качество диалоговых агентов путем обучения модели, предсказывающую такую оценку, используя размеченную выборку [29,30]. Однако получение таких корпусов требует много времени и усилий, и предсказываемая оценка может быть ошибочной [30], поэтому она редко используется.
Соревнования по разработке диалоговых агентов общего назначения являются одним из путей привлечения людей к оценке качества. В этой области уже проводятся такие соревнования как AI Loebner [22] и Alexa Prize [23]. Соревнование по разработке диалоговых агентов Conversational Intelligence Challenge (ConvAI) было организовано как часть конференции NIPS в 2017 году. Задачей разработчиков было создание диалоговой системы, которая должна вести с человеком беседу о тексте.
Типичная диалоговая система для соревнования обладает набором навыков1 для приветствия, генерации вопросов и т.п., и диалоговым менеджером - модулем для выбора, когда применять тот или иной навык. Конечный автомат может быть первоначальным вариантом построения диалогового менеджера. Преимуществом конечного автомата является его детерминистичность и прозрачность в плане контроля диалога, но его сложность быстро растет при усложнении системы. Добавление в конечный автомат новых состояний и переходов обычно усложняется наличием конфликтующих состояний и связей в системе. В результате его использования усложняется расширяемость диалоговой системы.
Победитель AI Loebner последних лет бот Mitsuku2 использует подход, основанный на правилах, и язык AIML (Artificial Intelligence Markup Language) [3]. Участник 2017 Alexa Prize MILABOT [11] основан на комбинации методов глубокого обучения, обучения с подкреплением и правил. MILABOT использует большую размеченную выборку, полученную с помощью Amazon Mechanical Turk для обучения своего диалогового менеджера. Mitsuku использует набор правил, поэтому ее сложно расширять, MILABOT требует большой размеченной выборки. В дополнение ко всему эти боты не могут сами инициировать диалог, а только выдают ответ на реплику пользователя.
В данной работе предложен обучаемый диалоговый менеджер. Он принимает на вход контекст диалога3 и возвращает навык, который должен использоваться. Это упрощает
1 Навык - это модель, которая принимает на вход текст и диалоговый контекст и возвращает реплику ответа.
2http://www.mitsuku.com
3Диалоговый контекст, определен как конкатенация истории диалога и текущей реплики пользователя.
разработку по сравнению с использованием конечного автомата и позволяет сфокусироваться на разработке навыков.
В следующих разделах описан диалоговый агент bot#1337, который победил в ConvAI. В разделе 2 описаны реализованные навыки, в разделе 3 описан диалоговый менеджер. В разделе 4 дано высокоуровневое описание взаимодействия навыков, менеджера диалога и пользователя. Раздел 5 содержит подробную информацию об участии в NIPS Conversational Intelligence Challenge, включая сравнение с другой победившей системой, анализ частоты использования навыков, оценку качества диалогового менеджера и сведения, полученные после чтения диалогов. Пример диалога между человеком и ботом находится в разделе 6. Информация о лицензии bot#1337, исходном коде и демонстрационном стенде дана в разделе 7.
2. Навыки
Для ведения диалога о тексте требуются различные навыки. Во-первых, бот должен уметь приветствовать пользователя, отвечать на вопросы о тексте и задавать их. Во-вторых, заданный текст бывает длинным, поэтому важно уметь делать автоматическое реферирование текста. Часто пользователь может иметь желание поговорить с ботом на общие темы.
Навыки разговора на общие темы. Во время разговора о тексте от пользователя могут поступать вопросы, которые не совсем связаны с текстом, например «Какое v тебя настроение?», «Мне не нравится погода на улице» и т. п. Чтобы поддерживать такого рода диалог, было разработано три навыка разговора на общие темы.
Разговорные навыки no OpenSubtitles и Facebook новостям используют нейросете-вые методы машинного перевода и основаны на моделях типа последовательность-последовательность (sequence-to-sequence) с механизмом внимания. Они обучены с помощью открытого программного комплекса OpenNMT. OpenNMT - это библиотека для реализации моделей глубокого обучения, в особенности моделей типа последовательность-последовательность. Она покрывает задачи машинного перевода, реферирования, отображения изображения в текст и распознавания голоса. Библиотека также может решать задачи построения языковых моделей и разметки последовательности [12].
Обучение осуществлялось на уровне представления слов с методом оптимизации ADAM [32]. Размерность векторных представлений слов была равна 150, веса слов обновлялись во время обучения.
Разговорный навык по OpenSubtitles принимает на вход контекст диалога и генерирует реплику на выходе. В качестве модели используется двуслойный энкодер-декодер с ячейкой LSTM размерности 2048. За обучающую выборку взят датасет OpenSubtitles [18].
Разговорный навык по Facebook новостям на вход принимает контекст диалога и текст, о котором идет беседа. Текст и контекст разделены специальным токеном «ЕОР» (end of paragraph - конец параграфа). На выходе также генерируется реплика. В качестве модели используется 1-слойный энкодер-декодер с ячейкой LSTM размерности 1024. За обучающую выборку выступает датасет новостей из Facebook4, который состоит из постов-новостей и комментариев из Facebook.
Разговорный навык Alice [3] принимает на вход контекст диалога и генерирует реплику на выходе. Навык построен с помощью AIML и использует открытую версию Alice из Github5.
Разговорные навыки, использующие модели типа последовательность-последовательность, на выходе генерируют несколько реплик. Сгенерированные реплики могут быть короткими или содержать неприемлемые и повторяющиеся слова. Такие реплики проходят через алгоритм фильтрации (алг. 1). Если фильтрацию не прошла ни
4https://github.com/jbencina/facebook-news
5https://github.com/sld/convai-bot-1337/tree/master/ALICEChatAPI
одна реплика, то запускается навык Alice или возвращается одна из запасных реплик. Запасные реплики включают в себя такие фразы, как «Do you like this text?», «What do you think about the competition?» и т. п.
Вход: реплики кандидаты. Выход: отфильтрованные реплики.
1. Удалить дублирующие реплики.
2. Удалить короткие реплики.
3. Удалить реплики с большим количеством повторяющихся слов.
4. Удалить реплики с большим количество стоп-слов.
5. Удалить реплики с нежелательными словами.
6. Вернуть отфильтрованные реплики.
Алг. 1. Фильтрация реплик-кандидатов
Вопросно-ответные навыки. Разговор о тексте может включать в себя вопросно-ответный сценарий. Мы разработали навыки для генерации вопроса, ответа на вопрос и проверки ответа на заданный вопрос.
Для навыка генерации вопроса была реализована модель типа последовательность-последовательность с вниманием использующая дополнительные признаки [15]. В качестве модели используется двуслойный энкодер-декодер с ячейкой GRU размерности 512. Она обучена на датасете SQuAD [19] с помощью библиотеки OpenNMT. Обучение осуществлялось на уровне представления слов с методом оптимизации ADAM. Размерность векторных представлений слов была равна значению 300. Размерность лексических признаков и признака ответа была представлена векторами размерности 32. Этот навык принимает на вход параграф, именованные сущности и лексические признаки, которые извлекались с помощью открытого программного комплекса Stanford CoreNLP [20], и на выходе возвращает сгенерированный вопрос. Во время стадии предсказания модель принимает на вход именованные сущности в качестве ответов, по которым должны быть выданы вопросы.
Навык проверки ответа, на, вопрос связан с предыдущим навыком. Правильный ответ для каждого вопроса является именованной сущностью, которая извлекается с помощью Stanford CoreNLP. Этот навык проверяет правильность ответа, который дал пользователь, используя алгоритмы нечеткого совпадения строк (например, расстояние Левенштейна). Впоследствии навык использует шаблоны, по которым выдается ответ пользователю, например, для ответа «google» может быть выдана такая реплика, в случае если пользователь ответил неверно, «You can do better! Hint: first 3 letters is goo».
Навык генерации вопросов использует модель BiDAF - bidirectional attention flow model [14] - двунаправленную рекуррентную нейронную сеть с механизмом внимания. На вход модели идет вопрос пользователя, текст и на выходе возвращается ответ. Впоследствии этот ответ используется в одной из шаблонных фраз, которая выдается пользователю (например, «I think the answer is ...»). В данной работе использована открытая версия модели BiDAF из Github6.
Навык автоматического реферирования. Параграф текста, о котором надо беседовать, состоит из 5-10 предложений. Навык реферирования может помочь пользователю в экономии времени на чтение и в вовлечении его в беседу.
Для этого навыка была использована модель типа последовательность-последовательность с вниманием, предобученная на датасете Gigaword на OpenNMT7. В качестве модели используется двуслойный энкодер-декодер с ячейкой LSTM размерности 500. Размерность векторных представлений слов равна 500. Модель принимает на вход куски из заданного текста и возвращает сокращенные версии. Впоследствии этот ответ
6https: / / github.com/allenai/bi-att-flow
7http: / / opennmt. net / Models / ^english-summarization
используется в одной из шаблонных фраз, которая выдается пользователю (например, «Maybe this article's main idea is ...»). Для выбора лучшего ответа применяется алг. 1.
Навык определения темы текста. Упоминание основной темы текста может вовлечь пользователя в беседу. Мы проанализировали данные первого раунда ConvAI, и это подтвердило гипотезу.
Навык определения темы реализован с помощью библиотеки для тематического моделирования BigARTM. BigARTM - это инструмент для тематического моделирования, основанный на методе аддитивной регуляризации тематических моделей. Этот метод позволяет строить модели с несколькими целевыми функциями, путем использования линейной комбинации функций регуляризаций [13].
Модель принимает на вход текст и возвращает список возможных тем. Название темы добавляется в шаблонную фразу, например «Am I right that topic of the text is ... ?». Модель обучалась на корпусе Википедии из сайта BigARTM8. Модель была обучена9 предсказывать 15 тем. Названия тем, такие как «Politics», «Culture», и т.д., были установлены вручную по результатам анализа топ-k наиболее вероятных слов.
Другие навыки. Мы реализовали два навыка, независимые от входа. Они оба состоят из фраз написанных вручную, которые выбираются случайно и отправляются пользователю.
Навык приветствия используется в начале диалога, если пользователь молчит в течение некоторого времени. Он включает в себя такие фразы как «Well hello there!», «Hiva!», и т п
Навык общих фраз используется во время диалога, если пользователь не проявляет активности в течение некоторого времени или если все другие навыки вернули пустой ответ. Он включает в себя такие фразы как «WThat do you think about ConvAI competition?», «Do you like this text?», и т. п.
3. Диалоговый менеджер
Диалоговый менеджер, представленный на рис. 1, использует два классификатора, которые принимают на вход контекст диалога или реплику пользователя и возвращают навык, который должен выдать ответ.
Первый классификатор использует небольшую обучающую выборку, состоящую из нескольких фраз на навык, среднее значение векторного представления слов (на основе GloVe представлений10) и метод k-ближайших соседей (k-NN).
Второй классификатор использует большую обучающую выборку и библиотеку fastText. FastText - это библиотека для реализации классификаторов текстов и обучения представлений [16]. FastText модель была обучена11 предсказывать 5 классов (рис. 1).
Все навыки могут быть поделены на две категории: с или без обучающей выборки. Для разговорных и вопросно-ответных навыков имеются данные с репликами, вопросами и ответами. Их наличие позволяет обучить классификатор выбрать более подходящую входную реплику пользователя для какого-либо датасета (и следовательно навыка). Навыки реферирования, определения темы и генерации вопросов не имеют данных, по которым можно понять, что нужно их выбирать. Для этих навыков мы написали по 3-10 фраз и использовали их с k-NN вместе со средним значением векторных представлений слов фразы.
Например, имеется два навыка - Open Subtitles и определение темы. Первый навык использует классификатор, обученный с помощью fastText, т.к. вместе с ним идет множество диалоговых реплик, таких как «They still behind us?», «Señora, give me a break!» и т. п. Второй навык таких реплик не имеет. Написав для него несколько фраз, таких как
8http://docs.bigartm.org/en/stable/tutorials/datasets.html
9Скрипт обучения доступен по адресу https://github.com/sld/convai-bot-1337/blob/master/topic-modelling
10https://nlp. stanford.edu/projects/glove/
11Скрипт обучения доступен по ссылке https://github.com/sld/convai-bot-1337/tree/master/classifiers
«What is the theme of text?», «Say me theme», «This text main topics», можно обучить k-NN классификатор.
Рис. 1. Диалоговый менеджер с классификаторами, навыками и их данными.
Навыки без диалоговых реплик имеют более высокий приоритет. Если уверенность k-NN классификатора больше некоторого порогового значения (90%), тогда выбирается навык, предсказанный им. Иначе выбирается навык fast Text классификатора.
4. Схема взаимодействия диалоговой системы и пользователя
Схема взаимодействия диалоговой системы и пользователя (рис. 2) показывает как пользователь взаимодействует с агентом.
Рис. 2. Схема взаимодействия диалоговой системы и пользователя.
Диалоговый агент начинает беседу, когда пользователь посылает команду Start. В состоянии init state происходит инициализация диалогового менеджера и навыков. Навыки реферирования и генерации вопросов обрабатывают входной текст и генерируют возможные реплики для использования в будущем.
После этого диалоговый агент переходит в состояние started. Пользователь или бот могут начать беседу. В этом состоянии бот ждет пока пользователь начнет диалог, либо
включает навык приветствия, если пользователь ничего не пишет в течение некоторого времени.
Самой важной задачей является реакция на реплику пользователя. После получения реплики пользователя включается состояние classifying. В нем диалоговый менеджер решает какой навык использовать. После этого бот генерирует реплику, используя выбранный навык и отправляет ее пользователю.
После отправки реплики пользователю, агент переходит в состояние waiting. Это состояние отвечает за вовлечение пользователя в беседу, если пользователь ничего не пишет в течение некоторого времени. В нем включается случайный навык, например, генератор вопросов. Если от пользователя все равно нет реакции, то бот завершает диалог.
5. Участие в NIPS Conversational Intelligence Challenge
В NIPS Conversational Intelligence Challenge 2017 требовалось разработать диалоговую систему, которая обсуждает с пользователем текст. Каждый диалог в конце оценивался человеком по шкале от 1 (плохо) до 5 (отлично) по трем показателям: качество, глубина и вовлеченность. Каждую реплику бота можно было пометить как подходящую или наоборот. Датасет первого раунда, состоящий из 2778 диалогов с оценками, был опубликован по адресу: http://convai.io/2017/data/.
Первая версия bot#1337 включала в себя разговорный и вопросно-ответный навык с диалоговым менеджером на правилах и fastText классификатором. Эта версия заняла второе место со средней оценкой 2.31 из 5. Победивший бот набрал 2.38, а человек 3.8. Выложенные данные содержали в себе информацию, анализ которой помог в составлении следующих шагов по развитию агента. Мы приняли решение добавить разговорный навык Alice, навык реферирования и определения темы. В навык приветствия было добавлено упоминание темы текста. Новые навыки требовали добавления новых правил для их вызова. Вместо правил мы добавили классификатор k-NN для навыков без диалоговых данных (описано в разделе 3). Таким образом, значительно упростился процесс разработки диалоговой системы. Все это в результате привело к победе bot •••• 1337 (табл. 1).
Таблица 1
Результаты финала ConvAI
Бот Качество (средняя оценка человека) Ф Количество диалогов
bot#1337 2.779 68
poetwannabe 2.623 53
RLLChatBot 2.462 13
kAIb 2.2 35
PolvU 1.75 28
DeepTalkHawk 1.262 42
5.1. Сравнение Ъо1#1337 с poetwannabe
РоеЛинжпаЬе - другая победившая система, разработанная командой Вроцлавского университета, которая использовала похожую архитектуру, но фокусировалась на извлечении знаний из сторонних ресурсов (\¥1ЫресЦа, БВРесЦа, \¥1Ыдогйе). Вместо обучаемого диалогового менеджера они использовали значение уверенности, которое ставилось в соответствие реплике навыка. Значение уверенности считалось на основе лингвистических признаков, истории диалога и внутреннего состояния агента [31].
5.2. Анализ данных финала СопуА1
Для лучшего понимания проблем бота и для разработки дальнейших шагов по улучшению, мы проанализировали частоту использования навыков, качество диалогового мене-
джера и диалоги финала. Диалоговые данные были предоставлены организаторами соревнования. Мы вручную разметили 68 диалогов hot •••• 1337. Каждой реплике был проставлен навык, выданный системой, и навык, который по нашему мнению мог бы лучше подойти под контекст диалога.
Частота использования навыков
Анализ (табл. 2) показал, что разговорные навыки самые частотные. Соответственно, их нужно разделять на более специфичные навыки и внимательно реализовывать. Навыки реферирования и определения темы используются редко, т.к. они вызываются только один раз за весь диалог. Это не значит, что они бесполезны. Их вызов вовлекает пользователя в беседу. Ниже представлен участок диалога оценки 5, который показывает позитивную реакцию пользователя на реферирование:
User: What do you think about this text?
Bot: I suppose that this text main idea is: New rules on investment?
User: Maybe you are right. Ниже представлен пример диалога с оценкой 1, показывающий негативную реакцию пользователя на разговорный навык:
Bot: I will try to explain it to you.
User: Please do.
Bot: Ahem.
User: Go on.
Bot: Narration continues...
User: you are dumb.
Таблица2
Процент использования навыков bot#1337 в финале ConvAI. Они сгруппированы по оценке диалога человеком. Мы посчитали сколько раз каждый тип навыка был использован в диалогах. Разговорные навыки включают в себя OpenSubtitles, Facebook и Alice. Q&A включает в себя навык ответа на вопрос, проверки ответа и генерации вопроса
Оценка Разг. навыки, % Q&A, % Рефер., % Опр. темы, % Приветствие, % Общие фразы
5 71.4 16.3 0.7 3.2 3.9 4.6
4 56.2 23.3 2.7 6.8 8.2 2.7
3 57 21 1.1 5.9 7.5 7.5
2 55.3 24.9 2.3 6.8 7.6 3
1 64.3 15.6 1.7 4.5 6.7 7.2
Качество диалогового менеджера
При имеющемся предсказанном и размеченном навыке была посчитана Fl-мера. Навыки определения темы, приветствия и общих фраз не были включены в подсчет, т. к. они почти всегда использовались только в состоянии waiting (описано в разделе 4), и диалоговый менеджер здесь не участвовал.
F1 диалогового менеджера (описан в разделе 3) равен 0.76. Навыки генерации вопроса и реферирования, выбор которых контролировался классификатором k-NN, показывают F1 меньше навыков, выбранных классификатором fastText (разговорный навык и навык проверки ответа). Fl-мера этих навыков может быть улучшена путем увеличения обучающей выборки для k-NN классификатора. Несмотря на большую выборку v навыка ответа на
вопрос, его оценка качества наименьшая в табл. 3. Анализ ошибок показал, что пользователь часто задает сложный вопрос, который не покрывается обучающей выборкой SQuAD. Например:
User: Let's talk about Guinea-Bissau then. What do you know about it? [классифицировано как Open Subtitles]
ТаблицаЗ
Качество диалогового менеджера
Навык Точность Полнота F1 Число реплик
OpenSubtitles 0.79 0.84 0.81 249
Проверка ответа 0.82 0.70 0.75 57
Alice 0.81 0.68 0.74 152
Facebook 0.63 0.85 0.73 53
Генерация вопроса 1.00 0.56 0.71 9
Реферирование 0.67 0.57 0.62 14
Ответ на вопрос 0.56 0.60 0.58 25
Среднее 0.77 0.76 0.76 559
Даже при наличии высокой Fl-меры необходим анализ работы каждого навыка в диалоге. Чтение диалогов необходимо для поиска ошибок в логике работы навыков и понимания, в каком направлении надо двигаться для улучшения диалоговой системы.
Чтение и анализ диалогов
После чтения 68 диалогов финала, мы можем сказать, что наличие разговорных навыков, которые выдают разнообразные и качественные реплики, и вовлечение пользователя в беседу, когда он не отвечает в течение некоторого времени (состояние waiting из раздела 4), помогает делать диалог лучше.
Другие сведения, которые могут помочь улучшить бота, описаны ниже.
Бот начинает разговор очень быстро и пользователю это не нравится.
Bot: Yo! [Навык приветствия]
Bot: I think this text is connected with nationalities. I can ask you a question about it. [Навык определения темы беседы] User: Wait, I am still reading it.
Bot: WThv is this news? [Разговорный навык OpenSubtitles] Наличие навыка, который определяет, что пользователь еще не прочитал текст, и в ответ давать реплику «Okay, I am waiting», исправило бы данную проблему.
Пользователь спрашивает о соревновании, но у бота отсутствует навык для ответа.
User: WThat are my instructions for today?
Bot: I'm not sure. [Разговорный навык OpenSubtitles]
User: Do you something about CONVAI?
Bot: No, i'm not. [Разговорный навык OpenSubtitles]
Отсутствие семантической модели не позволяет боту говорить о фактах в тексте. User: WThat kind of sport is this text about?
Bot: I suppose that this article can be described as: WTin club world cup..? [Навык реферирования]
User: But what sport? Football, hockey, basketball?
Bot: I'd like to say that correct answer is: barcelona accomplished two new records in spanish [Навык ответа на вопрос]
User: I want to know more about Barcelona.
Bot: Tell me about your likes and dislikes? [Разговорный навык Alice] User: Ok, is this article about football?
Bot: I think this article main idea is: Season begins. [Навык реферирования] Вопросно-ответные навыки не покрывают случай из диалога выше. Диалог о фактах в тексте требует использования внешних баз знаний (например, DBpedia). Также проблему можно решить путем использования веб-сервисов, например BabelNet (https://babelnet.org), но по правилам соревнования этого делать нельзя. Диалоговая система должна работать в закрытом контуре без доступа в Интернет.
Бот выдает грубые реплики.
User: It was basically my answer.
Bot: February was basically his answer? very interesting. [Разговорный навык Alice]
User: What did you base my gender on?
Bot: Nothing. [Разговорный навык OpenSubtitles]
User: Then why «his answer»? And why talk to me in the third person?
Bot: Oh darn, I broke you. [Разговорный навык OpenSubtitles]
Необходимо улучшать качество навыка ответа на вопрос и навыка проверки ответа. Навык проверки ответа видит разницу между числом и его представлением в виде слова, что представлено в диалоге ниже:
Bot: How many mathematical treatises have managed to survive? [Навык генерации
вопроса]
User: 3?
Bot: It is incorrect:) Hint: first 3 letters is thr. Try again. [Навык проверки ответа на
вопрос]
User: 3.
Bot: No. [Навык проверки ответа на вопрос]
Bot: I think that answer is: three. [Навык проверки ответа на вопрос] User: Infact I did mentioned the same.
Bot: How old are you? [Разговорный навык OpenSubtitles] Пользователь может спросить бота о вопросе, заданном ранее. Но бот этого не понимает из-за отсутствия модуля разрешения анафоры: User: Ask me question.
Bot: How many years did nbc universal sell in 2006? [Навык генерации вопроса] User: I dont know.
Bot: WThv wouldn't they have taken the meeting? [Разговорный навык OpenSubtitles] User: Do you know?
Bot: I dont know what you're doing. [Разговорный навык OpenSubtitles]
Пользователь пробует учить бота, но бот этого не понимает. User: WThat was article about?
Bot: Maybe this text can be described as: Father and grandfather born in hungarv..?
[Навык реферирования]
User: No! It was about von Neumann.
User: WThich city lies on seven hills?
Bot: WThat a joke. [Разговорный навык OpenSubtitles]
User: Answer me.
Bot: Try asking me again using simpler words. [Разговорный навык Alice] User: WThich city lies on seven hills. Answer: Rome. Bot: WThv is this news? [Разговорный навык Facebook]
Бот ведет беседу в одной стилистике. Ведение диалога с использованием разных сти-листик может помочь вовлечь в беседу пользователя, который повторно общается с данной диалоговой системой.
6. Пример диалога Текст
In 2015-2016, Notre Dame ranked 18th overall among «national universities» in the United States in U.S. News k World Report's Best Colleges 2016. In 2014, USA Today ranked Notre Dame 10th overall for American universities based on data from College Factual. Forbes.com's America's Best Colleges ranks Notre Dame 13th among colleges in the United States in 2015 ... According to pavscale.com, undergraduate alumni of University of Notre Dame have a mid-career median salary $110,000, making it the 24th highest among colleges and universities in the United States. The median starting salary of $55,300 ranked 58th in the same peer group.
Bot - Навык приветствия: Hiva!
Bot - Навык приветствия, навык определения темы: Let's talk about culture, or I can ask you a question about this text. User: Ask me then :)
Bot - Навык генерации вопроса: WThat is the median salary in notre dame? User: 55,300
Bot - Навык проверки ответа на вопрос: Show me your best! Hint: first 3 letters is $1. Try again.
User: WThat is the rank of Notre Dame?
Bot - Навык ответа на вопрос: It seems that correct answer is: «18th overall among national universities in the united states in u.s. ...» User: Nice!
Bot - Разговорный навык Facebook: This is what happens when you don't want to be in the white house.
User: Very funny :) This is very long text to read, can you summarize it in couple sentences? Bot - Навык суммаризации: I suppose that this article main idea is: University of notre dame's salary.
User: Hope you are not lying to me.
Bot - Разговорный навык Facebook: This is what happens when you vote for a democrat.
User: You are so into politics.
Bot - Разговорный навык Alice: I will tell my the kind people in the lab you said i am into politics.
User: I have to go! Bye!
7. Доступность
Демонстрация диалогового агента доступна в Telegram12 по ссылке: https://t.me/ConvAI1337Bot. Также доступен публичный JSON API, документация к которому находится по адресу: https://github.com/sld/convai-bot-1337/wiki/Api-Documentation. Исходный код выложен под свободной лицензией GNU GPLv3 и доступен на GitHub: https: / / github .com/sld / convai-b ot-1337.
8. Заключение
В данной работе описан диалоговый агент hoi • IЯ: 17. Этот бот занял первое место в NIPS Conversational Intelligence Challenge 2017 со средней оценкой качества диалога 2.78
12https://telegr am.org
из 5. Обучаемый диалоговый менеджер позволил нам сфокусироваться на разработке навыков, избежать написания правил и упростить разработку системы. Такие навыки, как определение темы, вопросно-ответные и реферирования, вовлекают пользователя в беседу о заданном тексте. Анализ диалогов показал, что пользователь часто разговаривает на общие темы. Разговорный навык Alice, написанный на AIML, покрывает широкий спектр тем, а разговорные навыки, основанные на моделях типа последовательность-последовательность и обученные на данных OpenSubtitles и Facebook, делают беседу интереснее. Такие библиотеки с открытым кодом, как OpenNMT, BigARTM, fastText позволяют значительно ускорить разработку диалоговой системы. Делая исходный код bot#1337 открытым, мы даем возможность сообществу разработчиков и исследователей разговорного интеллекта познакомиться с его модулями и внести вклад в дальнейшее развитие этой области.
Литература
1. Weizenbaum J. ELIZA^a computer program for the study of natural language communication between man and machine // Communications of the ACM. 1966. V. 9, N 1. P. 36-45.
2. Graves A. Generating sequences with recurrent neural networks. arXiv preprint arXiv:1308.0850. 2013.
3. Wallace R.S. The anatomy of ALICE. Parsing the Turing Test. Springer, Dordrecht, 2009. P. 181-210.
4. Williams J.D. [et al.}. The dialog state tracking challenge series // AI Magazine. 2014. V. 35, N 4. P. 121-124.
5. Ritter A., Cherry C., Dolan B. Unsupervised modeling of twitter conversations // Human Language Technologies: The 2010 Annual Conference of the North American Chapter of the Association for Computational Linguistics. Association for Computational Linguistics, 2010. P. 172-180.
6. Lowe R. [et al.}. The ubuntu dialogue corpus: A large dataset for research in unstructured multi-turn dialogue systems. arXiv preprint arXiv:1506.08909. 2015.
7. Sordoni A. [et al.}. A Neural Network Approach to Context-Sensitive Generation of Conversational Responses // Proceedings of the 2015 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. 2015. P. 196-205.
8. Vinyals O., Le Q. A neural conversational model. arXiv preprint arXiv:1506.05869. 2015.
9. Sutskever I., Vinyals O., Le Q. V. Sequence to sequence learning with neural networks // Advances in neural information processing systems. 2014. P. 3104-3112.
10. Williams J.D., Atui K.A., Zweig G. Hybrid Code Networks: practical and efficient end-to-end dialog control with supervised and reinforcement learning // Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2017. P. 665-677.
11. Serban I. V. [et al.}. A deep reinforcement learning chatbot. arXiv preprint arXiv:1709.02349. 2017.
12. Klein G. [et al.}. OpenNMT: Open-Source Toolkit for Neural Machine Translation // Proceedings of ACL 2017, System Demonstrations. 2017. P. 67-72.
13. Vorontsov K. [et al.}. Bigartm: Open source library for regularized multimodal topic modeling of large collections // International Conference on Analysis of Images, Social Networks and Texts. Springer, Cham, 2015. P. 370-381.
14. Seo M. [et al.}. Bidirectional attention flow for machine comprehension. arXiv preprint arXiv:1611.01603. 2016.
15. Zhou Q. [et al.}. Neural question generation from text: A preliminary study // National CCF Conference on Natural Language Processing and Chinese Computing. Springer, Cham, 2017. P. 662-671.
16. Joulin A. [et al.}. Bag of Tricks for Efficient Text Classification // Proceedings of the 15th Conference of the European Chapter of the Association for Computational Linguistics: Volume 2, Short Papers. 2017. P. 427-431.
17. Pennington J., Socher R., Manning C.D. Glove: Global vectors for word representation // Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP). 2014. P. 1532-1543.
18. Tiedemann J. News from OPUS-A collection of multilingual parallel corpora with tools and interfaces / /Recent advances in natural language processing. 2009. V. 5. P. 237-248.
19. Rajpurkar P. [et al.}. SQuAD: 100,000+ Questions for Machine Comprehension of Text // Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing. 2016. P. 2383-2392.
20. Manning C.D. [et al.}. The Stanford CoreNLP natural language processing toolkit // Proceedings of 52nd annual meeting of the association for computational linguistics: system demonstrations. 2014. P. 55-60.
21. Liu C.W. [et al.}. How NOT To Evaluate Your Dialogue System: An Empirical Study of Unsupervised Evaluation Metrics for Dialogue Response Generation // Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing. 2016. P. 2122-2132.
22. Mauldin M. L. Chatterbots, tinvmuds, and the turing test: Entering the loebner prize competition / /AAAI. 1994. V. 94. P. 16-21.
23. Ram A. [et al.}. Conversational ai: The science behind the alexa prize. arXiv preprint arXiv:1801.03604. 2018.
24. Fang H. [et al.}. Sounding board-university of Washington's alexa prize submission // Alexa prize proceedings. 2017.
25. Serban I.V. [et al.}. Hierarchical neural network generative models for movie dialogues // arXiv preprint arXiv:1507.04808. 2015. V. 7, N 8.
26. Lavie A., Agarwal A. METEOR: An automatic metric for MT evaluation with high levels of correlation with human judgments // Proceedings of the second workshop on statistical machine translation. 2007. P. 228-231.
27. Papineni K. [et al.}. BLEU: a method for automatic evaluation of machine translation // Proceedings of the 40th annual meeting on association for computational linguistics. Association for Computational Linguistics. 2002. P. 311-318.
28. Liu C.W. [et al.}. How NOT To Evaluate Your Dialogue System: An Empirical Study of Unsupervised Evaluation Metrics for Dialogue Response Generation // Proceedings of the
2016 Conference on Empirical Methods in Natural Language Processing. 2016. P. 2122-2132.
29. Lowe R. [et al.}. On the Evaluation of Dialogue Systems with Next Utterance Classification // Proceedings of the 17th Annual Meeting of the Special Interest Group on Discourse and Dialogue. 2016. P. 264-269. MLA.
30. Lowe R. [et al.}. Towards an Automatic Turing Test: Learning to Evaluate Dialogue Responses // Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2017. P. 1116-1126.
31. Chorowski J. [et al.}. A Talker Ensemble: The University of Wroclaw's Entry to the NIPS
2017 Conversational Intelligence Challenge. The NIPS'17 Competition: Building Intelligent Systems. Springer, Cham, 2018. P. 59-77.
32. Kingma D.P., Ba J. Adam: A Method for Stochastic Optimization. arXiv preprint arXiv:1412.6980. 2014.
References
1. Weizenbaum J. ELIZA^a computer program for the study of natural language communication between man and machine. Communications of the ACM. 1966. V. 9, N 1. P. 36-45.
2. Graves A. Generating sequences with recurrent neural networks. arXiv preprint arXiv:1308.0850. 2013.
3. Wallace R.S. The anatomy of ALICE. Parsing the Turing Test. Springer, Dordrecht, 2009. P. 181-210.
4. Williams J.D., et al, The dialog state tracking challenge series. Al Magazine. 2014. V. 35, N 4. P. 121-124.
5. Ritter A., Cherry C., Dolan B. Unsupervised modeling of twitter conversations. Human Language Technologies: The 2010 Annual Conference of the North American Chapter of the Association for Computational Linguistics. Association for Computational Linguistics, 2010. P. 172-180.
6. Lowe R., et al, The ubuntu dialogue corpus: A large dataset for research in unstructured multi-turn dialogue systems. arXiv preprint arXiv:1506.08909. 2015.
7. Sordoni A., et al, A Neural Network Approach to Context-Sensitive Generation of Conversational Responses. Proceedings of the 2015 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. 2015. P. 196-205.
8. Vinyals O., Le Q. A neural conversational model. arXiv preprint arXiv:1506.05869. 2015.
9. Sutskever I., Vinyals O., Le Q. V. Sequence to sequence learning with neural networks. Advances in neural information processing systems. 2014. P. 3104-3112.
10. Williams J.D., Atui K.A., Zweig G. Hybrid Code Networks: practical and efficient end-to-end dialog control with supervised and reinforcement learning. Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2017. P. 665-677.
11. Serban I. V., et al, A deep reinforcement learning chatbot. arXiv preprint arXiv:1709.02349. 2017.
12. Klein G., et al, OpenNMT: Open-Source Toolkit for Neural Machine Translation. Proceedings of ACL 2017, System Demonstrations. 2017. P. 67-72.
13. Vorontsov K., et al, Bigartm: Open source library for regularized multimodal topic modeling of large collections. International Conference on Analysis of Images, Social Networks and Texts. Springer, Cham, 2015. P. 370-381.
14. Seo M., et al, Bidirectional attention flow for machine comprehension. arXiv preprint arXiv:1611.01603. 2016.
15. Zhou Q., et al, Neural question generation from text: A preliminary study. National CCF Conference on Natural Language Processing and Chinese Computing. Springer, Cham, 2017. P. 662-671.
16. Joulin A., et al, Bag of Tricks for Efficient Text Classification. Proceedings of the 15th Conference of the European Chapter of the Association for Computational Linguistics: Volume 2, Short Papers. 2017. P. 427-431.
17. Pennington J., Socher R., Manning C.D. Glove: Global vectors for word representation. Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP). 2014. P. 1532-1543.
18. Tiedemann J. News from OPUS-A collection of multilingual parallel corpora with tools and interfaces. Recent advances in natural language processing. 2009. V. 5. P. 237-248.
19. Rajpurkar P., et al, SQuAD: 100,000+ Questions for Machine Comprehension of Text. Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing. 2016. P. 2383-2392.
20. Manning C.D., et al., The Stanford CoreNLP natural language processing toolkit. Proceedings of 52nd annual meeting of the association for computational linguistics: system demonstrations. 2014. P. 55-60.
21. Liu C.W., et al, How NOT To Evaluate Your Dialogue System: An Empirical Study of Unsupervised Evaluation Metrics for Dialogue Response Generation. Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing. 2016. P. 21222132.
22. Mauldin M.L. Chatterbots, tinvmuds, and the turing test: Entering the loebner prize competition / /AAAI. 1994. V. 94. P. 16-21.
23. Ram A., et al, Conversational ai: The science behind the alexa prize. arXiv preprint arXiv:1801.03604. 2018.
24. Fang H., et al, Sounding board-university of Washington's alexa prize submission. Alexa prize proceedings. 2017.
25. Serban I. V., et al, Hierarchical neural network generative models for movie dialogues. arXiv preprint arXiv:1507.04808. 2015. V. 7, N 8.
26. Lavie A., Agarwal A. METEOR: An automatic metric for MT evaluation with high levels of correlation with human judgments. Proceedings of the second workshop on statistical machine translation. 2007. P. 228-231.
27. Papineni K., et al, BLEU: a method for automatic evaluation of machine translation. Proceedings of the 40th annual meeting on association for computational linguistics. Association for Computational Linguistics. 2002. P. 311-318.
28. Liu C.W., et al, How NOT To Evaluate Your Dialogue System: An Empirical Study of Unsupervised Evaluation Metrics for Dialogue Response Generation. Proceedings of the
2016 Conference on Empirical Methods in Natural Language Processing. 2016. P. 21222132.
29. Lowe R., et al, On the Evaluation of Dialogue Systems with Next Utterance Classification. Proceedings of the 17th Annual Meeting of the Special Interest Group on Discourse and Dialogue. 2016. P. 264-269. MLA.
30. Lowe R., et al, Towards an Automatic Turing Test: Learning to Evaluate Dialogue Responses. Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2017. P. 1116-1126.
31. Chorowski J., et al, A Talker Ensemble: The University of Wroclaw's Entry to the NIPS
2017 Conversational Intelligence Challenge. The NIPS'17 Competition: Building Intelligent Systems. Springer, Cham, 2018. P. 59-77.
32. Kingma D.P., Ba J. Adam: A Method for Stochastic Optimization. arXiv preprint arXiv:1412.6980. 2014.
Поступим в редакцию 30.06.2020