УДК 004.891.3
И. Ф. Юсупов, М. В. Трофимова,, М. С. Бурцев
Московский физико-технический институт (национальный исследовательский университет)
Построение и использование диалогового графа для улучшения оценки качества в целенаправленном
диалоге
Представлен метод извлечения диалогового графа из текстового корпуса. Диалоговый граф визуализирует основные темы для каждого шага в диалоге и переходы между ними. Предложенный метод извлечения диалогового графа использует набор различных алгоритмов кластеризации вместе с эвристиками. Метод применим для корпусов разных тематик и размеров. Рассмотрена визуализация полученных диалоговых графов для нескольких корпусов. В качестве демонстрации приведен пример использования признаков, извлеченных из диалогового графа в генеративной нейронной сети. Их применение повысило оценку качества BLEU на корпусе MultiWOZ 2 в задаче генерации ответов на 15%.
Ключевые слова: диалоговые системы, структура диалога, визуализация, диалоговый граф.
I. F. Yusupov, М. V. Trofimova, М. S. Burtsev Moscow Institute of Physics and Technology
Unsupervised graph extraction for improvement of multi-domain task-oriented dialogue modelling
This paper proposes a dialogue graph extraction method based on a textual corpus. The dialogue graph displays the main conversational topics for each turn of the dialogue and defines transitions between them. A node in this graph is represents the main conversational topic for the dialogue turn and the edge stands for a possible transition to one of the adjacent topics. The proposed method of dialogue graph extraction is based on a set of clustering algorithms accompanied by a set of heuristics. It is applied to variable size corpora from different domains. We provide visualizations of resulting dialogue graphs for a number of datasets and visualizations aid understanding of the underlying latent dialogue structure in each corpus. As a proof of the concept, we integrate the graph features by a sequence-to-sequence model and improve the current baseline on MultiWOZ 2 response generation task 15%
Key words: dialogue systems, dialogue structure, visualization, dialogue graph.
1. Введение
Человек ведет диалог держа в уме определенную цель и, возможно, план по ее достижению. Например, он может беседовать с другим человеком для поддержки дружеских отношений, и в его план могут входить следующие действия: узнать, как прошел день, сделать комплимент, рассказать историю и т.п. Диалоговый агент (диалоговая система, агент, чат-бот, бот) - это программа, которая ведет разговор с человеком через текстовый
© Юсупов И. Ф., Трофимова М. В., Бурцев М. С., 2020
(с) Федеральное государственное автономное образовательное учреждение высшего образования
«Московский физико-технический институт (национальный исследовательский университет)», 2020
или звуковой интерфейс. Основной задачей диалоговой системы является генерация ответа в диалоге. Мы полагаем, что оценка качества в этой задаче может быть значительно улучшена, если бот будет преследовать в диалоге цель и иметь план по ее достижению.
В [1] и [2] описаны некоторые механизмы планирования и модели, которые можно применить для управления диалогом. Эти модели описываются декларативно. В моделях, основанных на плане, структура диалогов содержит элементы, описывающие схему взаимодействия агентов через переходы, которые явно указывают связь между шагами в диалоге и частями плана.
Главной проблемой диалоговых агентов, использующих план, является то, что они основаны на правилах и требуют инженерии со стороны человека. Обычно агенты на правилах ограничены доменом, и разработка таких правил требует экспертизы в данном домене.
Последние исследования в области глубокого обучения показывают целесообразность использования нейронных сетей в диалоговых системах. В [3] представлена диалоговая система, использующая нейронную сеть типа последовательность-последовательность (sequence-to-sequence), которая строит отображение из истории диалога в ответ системы и для ее обучения применяет модель энкодер-декодер. Однако этот подход использует обучение с учителем и требует большой обучающей выборки. К тому же, получившаяся стратегия ведения диалога может быть неустойчивой, т.к. обучающая выборка представляет собой только текст без какой-бы то ни было семантической и прагматической разметки, и таким образом появляется случайность в порождаемых системой репликах.
Для получения устойчивой стратегии ведения диалога бот должен иметь план. В данной работе план представляется в виде диалогового графа. Диалоговый граф показывает основные темы беседы для каждого шага и переходы между ними. Вершина графа - это основная тема беседы для данного шага в диалоге. Ребро отвечает за возможные переходы между темами. Диалоговый граф представляет собой интерпретируемую визуализацию всего корпуса. Таким образом, граф может помочь проанализировать, почему та или иная реплика была сгенерирована диалоговой системой, использующей нейронную сеть типа последовательность-последовательность. В дополнении, диалоговый граф может быть использован как источник признаков для улучшения качества на связанных задачах.
В [4] представлен метод построения диалогового графа с использованием ко-кластеризации. На вход подается диалоговый корпус, и на выходе генерируется диалоговый граф. Результирующий граф описывает основные темы в корпусе и их общую организацию. Авторы вручную редактировали граф и использовали его как приближение конечного автомата диалоговой системы.
Предложенный нами метод генерации диалогового графа использует комбинации различных алгоритмов кластеризации и набор эвристик. Его можно применять для визуализации и как источник дополнительных признаков в методах машинного обучения.
В разделе 2 рассмотрен предложенный в работе алгоритм построения диалогового графа и архитектура типа последовательность-последовательность с механизмом извлечения признаков из графа. Также представлены описания диалоговых корпусов ConvAI 1, ConvAI 2, MultiWOZ 2 и используемые программные средства. В разделе 3 описаны и обсуждены полученные диалоговые графы. Также показан результат использования признаков диалогового графа в задаче генерации реплики по контексту диалога на корпусе MultiWOZ 2.
2. Методы
2.1. Извлечение диалогового графа
Как определить вершину в диалоговом графе? Первоначальным вариантом может быть кластеризация по всем репликам диалогового корпуса и использование кластера как вершины графа. Однако семантика кластера в диалоге зависит от его контекста, а использование «мешка реплик» не учитывает его. Для решения этой проблемы мы предлагаем объединить все i-e шаги диалогов в группы и затем проводить кластеризацию по этим группам.
Таким образом, семантика каждого кластера будет привязываться к определенному шагу в диалоге.
Алгоритм построения диалогового графа представлен на рис. 1. Сначала происходит группировка г-х шагов по всем диалогам (г € 1... Ь), где Ь — количество реплик в самом длинном диалоге корпуса, и их преобразование в векторное пространство. Затем производится независимая кластеризация каждой получившейся группы. После этого каждому кластеру присваивается название, а каждой реплике диалога кластер. На последнем шаге алгоритма составляются тройки вида: название кластера предыдущей реплики в диалоге, название кластера текущей реплики, количество переходов из кластера предыдущей реплики в кластер текущей. Используя такие тройки, конструируется граф диалога.
Рис. 1. Алгоритм построения диалогового графа
В следующих параграфах дается детальное описание шагов построения диалогового графа.
Объединение реплик диалогов в группы. На вход подается диалоговый корпус и происходит итерация по всем репликам в диалогах и их объединение в группы по шагам. Пример представлен в табл. 1.
Т а б л и ц а 1
Пример объединения в группы по шагам. Имя кластера назначается как
случайная реплика из группы
Шаг Диалог 1 Диалог 2 Группа по шагам Название кластера
1 Hi! Hi! [Hi!; Hi!] Hi
2 Hello! Hi! [Hello!; Hi!] Hi
3 How are you? How you doing? [How are you?; How you doing?] How are you
4 I'm fine, thanks. I'm good. What about you? [I'm fine, thanks; I'm good. What about you?] I'm fine, thanks
5 - I'm good too, [I'm good too, I'm good too,
thanks. thanks.] thanks
6 - You're welcome. [You' re welcome. ] You're welcome
Отображение в векторное пространство и кластеризация. Перед применением кластеризации необходимо отобразить текстовые реплики в векторное пространство. Отображение можно получить, например, с помощью tf-idf, универсального энкодера предложений (unversal sentence encoder) [5], транеформера BERT [6]. Затем полученные векторные представления могут быть кластеризованы с помощью метода fc-средних [7], тематического моделирования [8] и т.п.
В данной работе описано использование tf-idf в комбинации с тематическим моделированием. Также были опробованы методы кластеризации, не требующие заранее задавать количество кластеров, такие как DBSCAN, OPTICS, x-means, и трансформер BERT в качестве энкодера предложений. На них кластеры явно не выделялись, либо кластеры были шумными. Использование универсального энкодера предложений в комбинации с методом fc-средних позволяло явно выделять кластеры, но для именования кластера и получения читаемого графа приходилось вручную редактировать граф.
Именование кластеров. Назначение имени кластера является необходимым шагом для визуализации. Для метода fc-средних можно использовать случайную реплику из кластера или ближайшую к его центроиду. При использовании тематического моделирования появляется возможность брать тему — список наиболее вероятных топ-fc слов. Недостатком тематического моделирования и метода fc-средних является необходимость предварительного выбора количества кластеров или тем к. Для корпусов, у которых набор доменов заранее известен (например, для MultiWOZ 2 - это 7), можно использовать это значение как к. Всего в графе (к * L) вершин. Для корпусов, где набор доменов неизвестен, к можно установить эмпирически с целью получения читаемой визуализации.
Объединение кластеров. Кластеры для разных шагов могут быть похожими. Мы применяем эвристику для объединения таких кластеров, когда используется тематическое моделирование: |Ci\cj | < 1, где Ci — список наиболее вероятных топ-k слов кластера i. В случае использования fc-средних объединение кластеров не производится из-за механизма именования, описанного выше.
Затем каждая реплика в диалоге аннотируется названием соответствующего кластера.
Извлечение троек. После аннотации всех реплик происходит итерация по каждому диалогу и извлекаются тройки вида: <название предыдущего кластера; название текущего кластера; количество таких переходов в корпусе>. Имея такие тройки, строится матрица смежности и рисуется граф.
На рис. 2 представлен граф, построенный по примерам диалогов из табл. 1.
Рис. 2. Пример графа. Число в скобках — это шаг диалога. Толщина ребра определяется количеством таких переходов в диалогах
Для визуализации графа была использована программа верЫ [9].
Для тематического моделирования была использована библиотека BigARTM [8]. BigARTM — библиотека с открытым кодом для тематического моделирования больших коллекций текстовых документов и массивов транзакционных данных. В ней реализована эффективная потоковая параллельная реализация вероятностного тематического моделирования на основе аддитивной регуляризации.
How s(re^ou [3]
I'm fine(/th^nks [4]
I'm good t^)thanks [5]
You're yiej^ome [6]
Для кластеризации векторных представлений, полученных с помощью универсального энкодера предложений, была использована открытая библиотека Pvclustering [10]. Она включает в себя такие методы кластеризации, как DBSCAN, OPTICS, x-means, метод k-средних и т.п.
Исходный код предложенного в статье метода извлечения диалогового графа выложен под открытой лицензией MIT и доступен на GitHub1.
2.2. Диалоговые корпуса
В данном разделе описаны корпуса, для которых были построены диалоговые графы.
ConvAI 1. NIPS Conversational Intelligence Challenge 2017 (ConvAI 1) [11] — это соревнование по построению и оценке качества диалоговых систем общего назначения. Команды, участвовавшие в соревновании, разрабатывали диалоговых агентов, ведущих беседу с человеком о параграфах из Википедии. Диалоги, собранные во время соревнования, были опубликованы в открытом доступе организаторами [12]. Мы использовали данные победившей команды hoi •••• 1337 [13], состоящей из 68 диалогов и 1348 реплик.
ConvAI 2. В сравнении с ConvAI 1, ConvAI 2 [14] — это соревнование, фокусом которой является беседа с человеком на общие темы, такие как интересы и хобби, в отличие от энциклопедических фактов первого соревнования. Мы использовали данные2 из раунда хакатона, который включает в себя 766 диалогов и 15 094 реплики. В отличие от данных ConvAI 1 hoi •••• 1337. этот корпус включает в себя диалоги разных ботов.
MultiWOZ 2. В [15] представлен мультидоменный диалоговый корпус MultiWOZ 2. Всего в нем содержится 10 438 диалогов человека с человеком и 143 048 реплик. Все диалоги разбиты на семь доменов: достопримечательность, больница, полиция, гостиница, ресторан, такси и поезд. MultiWOZ 2 является самым большим корпусом целеориентированных диалогов по среднему числу слов на шаг, количеству диалогов и реплик.
2.3. Извлечение признаков из диалогового графа
Для использования диалоговых графов на целевой задаче, на примере генерации реплики в диалоговой системе, производится отображение графа в фиксированное векторное представление. Предполагая, что диалоговый граф по корпусу дан, представление для г-го шага диалога будет строиться следующим образом:
1) поставить в соответствие г-й реплике ее кластер и соответствующую вершину графа;
2) преобразовать вершину графа в унитарное векторное представление (one-hot encoding) с длиной, равной количеству вершин, где позиция единицы считается как номер соответствующей вершины графа, а остальные номера вершин будут нулями.
Таким образом, унитарное представление описывает определенную вершину в графе. Для улучшения оценки качества на целевой задаче мы конкатенируем для г-го шага представления предыдущих шагов диалога.
Архитектура вида последовательность-последовательность с признаками диалогового графа
Признаки, извлеченные из диалогового графа, были протестированы на задаче генерации реплик диалоговой системой. Задача была поставлена как отображение контекста диалога в текущую реплику и решена с использованием архитектуры вида последовательность-последовательность [17] с мультипликативным механизмом внимания Луонга [16]. Данные
1https: / / github.com/sld/dïalog-graph-generatïon-experiments
2http://convaï.ïo/data/
для оценки качества задачи были взяты из соответствующей дорожки по генерации реплик в MultiWOZ 2 [15]. Оттуда же была взята базовая модель, которая в декодере использует признаки из базы данных возможных диалоговых элементов и представление знаний о мире (belief state). Эти данные идут вместе с диалоговым корпусом MultiWOZ 2 и позволяют воспроизвести оценку качества базовой модели из статьи [15]. Далее мы улучшили предложенную архитектуру путем замены случайно инициализированных векторных представлений слов, которые поступают в энкодер и декодер на предобученные GLoVc [18].
В данной работе был предложен способ использования признаков, извлеченных из диалогового графа, описанного в разделе 2.3. Признаки были добавлены в начальное состояние декодера по аналогии с другими признаками. Получившаяся архитектура показана на рис. 3.
Рис. 3. Архитектура типа последовательность-последовательность вместе с признаками из балы данных, состояния о мире и диалогового графа. В стандартную модель типа энкодер-декодер с механизмом внимания добавлены признаки из внешних источников. Признаки сконкатенированы с начальным скрытым состоянием декодера
Предложенная модель реализована с помощью открытой библиотеки для диалоговых систем DeepPavlov [19]. Она позволяет собирать диалоговую систему из блоков, которые реализуют необходимый функционал для решения задач обработки естественного языка. Эти блоки могут быть переиспользованы диалоговыми агентами в разных задачах, связанных с диалогами.
3. Результаты и обсуждение
3.1. Визуализация диалоговых графов
Результат кластеризации с помощью tf-idf представлений вместе с тематическим моделированием без редактирования человеком получившегося графа представлен на рис. 4. Из графа можно увидеть, что беседа начинается с приветствия (hi, hello), затем идет вопрос о тексте или о ее теме (ask, connected; near, semantically, text). Затем задается другой вопрос (wa лемма для wh* вопросов, what, where и т.п.). На 4-м шаге идет ответ на вопрос. Затем идет проверка правильности ответа (first, letter, hint). Наконец, беседа перетекает в разговор на общие темы. Основная проблема построенного графа это именование вершин. Трудно интерпретировать имена, не имея экспертизы по данному диалоговому корпусу. Например, первая вершина «going, good, Hiva, nice, see [1]» может быть интерпретирована как «приветственная», но значение вершины «access, know, many, please, yes [6]» двойственно.
Граф, построенный с помощью тематического моделирования по корпусу ConvAI 2 и визуализированный с помощью Gephi, представлен на рис. 5. Несмотря на то, что корпус ConvAI 2 больше, чем предыдущий, и включает диалоги разных ботов, визуализация дает некоторое представление о течении беседы: Приветствие (hey, hi) ^ Знакомство (like, name,
love, work) ^ Вопросы и ответы о личности (also, going, guess, like, try) ^ Общая беседа об интересах личности (like, wa, work, love, movie) ^ Прощание (bye, good, time). Можно сделать вывод, что боты, реализованные в ConvAI 2, делятся информацией об их личности и задают вопросы, чтобы вовлечь пользователя в беседу и решить одну из задач соревнования дать пользователю понять, какую личность имитирует бот.
Рис. 4. Граф CorivAI 1 bot //1337, который был построен с помощью тематического моделирования и выбора топ -к слов для именования названий вершин. Число внутри скобок представляет шаг диалога
Граф, построенный с помощью тематических) моделирования по корпусу MultiWOZ 2 и визуализированный с помощью Gcphi, представлен на рис. 6. В графе отображены несколько путей диалога для таких доменов, как: поезд, такси, отель, ресторан и достопримечательность. Но в графе явно отсутствуют домены госпиталя и полиции. Вероятно, причиной этого является несбалансированность этого корпуса. Домен госпиталя покрывает 2.7% корпуса, а полиции 2.3%. Следующий домен по размеру — это такси, и он покрывает 23.4% корпуса.
Бронирование посада отображено в нижней части графа. Сначала пользователь спрашивает о бронировании посада, затем идет вопрос о времени и пункте назначения, после этого идет ответ от пользователя и подтверждение о бронировании. Так как корпус мульти-доменный, чат-бот может переключаться на другие домены, такие как бронирование столика в ресторане или номера в отеле. Также из графа можно извлечь статистическую информацию. Вершина с наибольшим числом связей это «anything, else, help, need, today [4,6,8,10,12]». Наиболее часто диалоговый поток идет по пути бронирования посада. Чаще всего используется вершина, где пользователь что-либо бронирует, и идет последующее подтверждение этого действия («book, night, people, yes [3,5,7]», «booking, number, reference, successful, wa [6,8,10,12]»).
Рис. 5. Граф по раунду хакатона в СопуА1 2. Тематическое моделирование и топ-А; слов были использованы для кластеризации и назначения имени. Число внутри скобок представляет шаг диалога
Рис. 6. Граф по корпусу MultiWOZ 2. Тематическое моделирование и топ-k слов были использованы для кластеризации и назначения имени
3.2. Моделирование целенаправленного диалога с графовыми признаками
Следуя статье по MultiWOZ 2 [15], проводилась оценка качества дналох'овой системы но метрике BLEU [20]. Результаты, полученные с использованием признаков, извлеченных из диалох'овох'о графа, представлены в табл. 2.
Оценка качества проводилась по двум стратегиям построения диалогового графа. Первый использует кластеризацию по всей истории диалога, второй — только по первым 12 шагам. Последняя стратегия упрощает анализ получившегося графа человеком, т.к. он получается компактным. В обоих случаях скрытое состояние декодера дополнялось графовыми признаками для последней реплики пользователя.
Таблица2
Сравнение оценок качества базовой модели (baseline) и предложенного в данной статье подхода для задачи генерации реплики по контексту диалога на
тестовой выборке MultiWOZ 2
Модель BLEU
Baseline [15] 0.184
Baseline + GloVe 0.203
Baseline + GloVe + Graph Features (первые 12 шагов, графовые признаки пользователя) 0.202
Baseline + GloVe + Graph Features (весь диалог, графовые признаки пользователя) 0.206
Baseline + GloVe + Graph Features (весь диалог, графовые признаки пользователя и бота) 0.231
Оценка качества на тестовой выборке показывает, что обе стратегии ведут себя очень похоже. Улучшения качества по сравнению с базовой моделью практически отсутствуют. Причиной может быть ошибочный выбор вершин графа, по которым извлекались признаки. В частности, вершина бота, по которой генерируется реплика, является важной, а не вершина пользователя.
Поэтому также был посчитан BLEU на модели, которая использует информацию как о вершине пользователя, так и о вершине бота. Такая модель улучшила оценку качества более чем на 15%. Это показывает, что графовые признаки могут быть полезны в задаче генерации реплики по контексту диалога.
Несмотря на то, что признаки получены обучением без учителя, кластеры бота не известны заранее в системах, работающих с конечными пользователями. Поэтому для использования такой модели необходимо также обучить классификатор, предсказывающий кластер бота.
4. Заключение
В статье описан метод построения диалогового графа из диалогового корпуса, который является полезным инструментом визуализации. Предложенный метод применим для корпусов разных размеров и доменных областей. Диалоговый граф также является источником полезных признаков, которые улучшают качество на целевой задаче.
В качестве подтверждения концепции мы интегрировали диалоговые признаки в модель типа последовательность-последовательность и улучшили качество в задаче генерации ре-
15%
Для дальнейшего развития необходимо улучшать качество диалогового графа вместе с его визуализацией. Также перспективным представляется использование такого графа, как промежуточный шаг в задаче генерации реплики диалоговой системой.
Литература
1. Ardissono L., Boella G., Lesmo L. A plan-based agent architecture for interpreting natural language dialogue // International Journal of Human-Computer Studies. 2000. V. 52. N 4. P. 583-635.
2. Camilleri G. Dialogue systems and planning // International Conference on Text, Speech and Dialogue. Berlin, Heidelberg : Springer, 2002. P. 429-436.
3. Vinyals O., Le Q. A neural conversational model // arXiv preprint arXiv:1506.05869. 2015.
4. Bouraoui J.L., Lemaire V. Cluster-based graphs for conceiving dialog systems. Workshop DMNLP at European Conference on Machine Learning (ECML). 2017.
5. Cer D. [et al.\. Universal sentence encoder for English // Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations. 2018. P. 169-174.
6. Devlin J. [et al.\. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding // Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers). 2019. P. 4171-4186.
7. MacQueen J. [et al.\. Some methods for classification and analysis of multivariate observations // Proceedings of the fifth Berkeley symposium on mathematical statistics and probability. 1967. V. 1. N 14. P. 281-297.
8. 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.
9. Bastian M., Heymann S., Jacomy M. Gephi: an open source software for exploring and manipulating networks // Third international AAAI conference on weblogs and social media. 2009.
10. Novikov A. PvClustering: data mining library // Journal of Open Source Software. 2019. V. 4. N 36. P. 1230.
11. Burtsev M. [et al.\. The first conversational intelligence challenge // The NIPS'17 Competition: Building Intelligent Systems. Springer, Cham, 2018. P. 25-46.
12. Logacheva V. [et al.\. ConvAI Dataset of Topic-Oriented Human-to-Chatbot Dialogues // The NIPS'17 Competition: Building Intelligent Systems. Springer, Cham, 2018. P. 47-57.
13. Yusupov I., Kuratov Y. NIPS Conversational Intelligence Challenge 2017 Winner System: Skill-based Conversational Agent with Supervised Dialog Manager // Proceedings of the 27th International Conference on Computational Linguistics. 2018. P. 3681-3692.
14. Dinan E. [et al.\. The second conversational intelligence challenge (convai2) // The NeurIPS'18 Competition. Springer, Cham, 2020. P. 187-208.
15. Budzianowski P. [et al.\. MultiWOZ-A Large-Scale Multi-Domain Wizard-of-Oz Dataset for Task-Oriented Dialogue Modelling // Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing. 2018. P. 5016-5026.
16. Luong M.T., Pharn H., Manning C.D. Effective Approaches to Attention-based Neural Machine Translation // Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing. 2015. P. 1412-1421.
17. Sutskever I., Vinyals O., Le Q.V. Sequence to sequence learning with neural networks // Advances in neural information processing systems. 2014. P. 3104-3112.
18. 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.
19. Burtsev M. [et al.\. Deeppavlov: Open-source library for dialogue systems // Proceedings of ACL 2018, System Demonstrations. 2018. P. 122-127.
20. 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.
References
1. Ardissono L., Boella G., Lesmo L. A plan-based agent architecture for interpreting natural language dialogue. International Journal of Human-Computer Studies. 2000. V. 52. N 4. P. 583-635.
2. Camilleri G. Dialogue systems and planning. International Conference on Text, Speech and Dialogue. Berlin, Heidelberg : Springer, 2002. P. 429-436.
3. Vinyals O., Le Q. A neural conversational model. arXiv preprint arXiv:1506.05869. 2015.
4. Bouraoui J.L., Lemaire V. Cluster-based graphs for conceiving dialog systems. Workshop DMNLP at European Conference on Machine Learning (ECML). 2017.
5. Cer D., et al, Universal sentence encoder for English. Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations. 2018. P. 169-174.
6. Devlin J., et al, BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers). 2019. P. 4171-4186.
7. MacQueen J., et al, Some methods for classification and analysis of multivariate observations. Proceedings of the fifth Berkeley symposium on mathematical statistics and probability. 1967. V. 1. N 14. P. 281-297.
8. 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.
9. Bastian M., Heymann S., Jacomy M. Gephi: an open source software for exploring and manipulating networks. Third international AAAI conference on weblogs and social media. 2009.
10. Novikov A. PvClustering: data mining library. Journal of Open Source Software. 2019. V. 4. N 36. P. 1230.
11. Burtsev M., et al, The first conversational intelligence challenge. The NIPS'17 Competition: Building Intelligent Systems. Springer, Cham, 2018. P. 25-46.
12. Logacheva V., et al, ConvAI Dataset of Topic-Oriented Human-to-Chatbot Dialogues. The NIPS'17 Competition: Building Intelligent Systems. Springer, Cham, 2018. P. 47-57.
13. Yusupov I., Kuratov Y. NIPS Conversational Intelligence Challenge 2017 Winner System: Skill-based Conversational Agent with Supervised Dialog Manager. Proceedings of the 27th International Conference on Computational Linguistics. 2018. P. 3681-3692.
14. Dinan E., et al, The second conversational intelligence challenge (convai2). The NeurIPS'18 Competition. Springer, Cham, 2020. P. 187-208.
15. Budzianowski P., et al, MultiWOZ-A Large-Scale Multi-Domain Wizard-of-Oz Dataset for Task-Oriented Dialogue Modelling. Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing. 2018. P. 5016-5026.
16. Luong M.T., Pham H., Manning C.D. Effective Approaches to Attention-based Neural Machine Translation. Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing. 2015. P. 1412-1421.
17. Sutskever I., Vinyals O., Le Q. V. Sequence to sequence learning with neural networks. Advances in neural information processing systems. 2014. P. 3104-3112.
18. 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.
19. Burtsev M., et aï., Deeppavlov: Open-source library for dialogue systems. Proceedings of ACL 2018, System Demonstrations. 2018. P. 122-127.
20. 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.
Поступим в редакцию 18.06.2020