Научная статья на тему 'ДИАЛОГОВАЯ СИСТЕМА DREAM В КОНКУРСЕ ALEXA PRIZE CHALLENGE 2019'

ДИАЛОГОВАЯ СИСТЕМА DREAM В КОНКУРСЕ ALEXA PRIZE CHALLENGE 2019 Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
216
22
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ДИАЛОГОВАЯ СИСТЕМА / ЧАТ-БОТ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Куратов Ю. М., Юсупов И. Ф., Баймурзина Д. Р., Кузнецов Д. П., Чернявский Д. В.

Создание диалоговой системы, способной быстро, связно и осмысленно вести диалог на общие темы, является одной из фундаментальных проблем в области искусственного интеллекта (ИИ). Недавний прогресс в обработке естественного языка, обусловленный применением глубоких нейронных сетей, в частности больших языковых моделей, расширил возможности для решения многих сложных проблем разговорного ИИ. Международный конкурс «Alexa Prize Socialbot Grand Challenge» дает уникальную возможность проверить передовые исследовательские идеи в реальных условиях. В этой работе подробно описана диалоговая система DREAM, и представлены результаты её взаимодействия с реальными пользователями. Диалоговая система DREAM реализована как многофункциональный диалоговый агент с модульной микросервисной архитектурой. Агент DREAM управляет десятком аннотаторов, отвечающих за предварительную обработку текста, и более чем 25 навыками для генерации ответов в контексте разговора на общие темы. Отзывы и оценки пользователей Alexa позволили нам постепенно развивать нашего диалогового агента путем увеличения количества разговорных навыков и улучшения переходов между ними. В результате диалоги стали длиннее на 50%, а средний рейтинг вырос с ∼ 3 из 5 на начальном этапе в декабре 2019 года до ∼ 3.4 из 5 в последние две недели апреля 2020 года. Финальная версия диалоговой системы DREAM - это гибридная система, сочетающая компоненты на основе правил, глубокого обучения и баз знаний.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

SOCIALBOT DREAM IN ALEXA PRIZE CHALLENGE 2019

Building a dialogue system able to talk fluently and meaningfully in an open domain conversation is one of the foundational challenges in the field of AI. Recent progress in NLP driven by the application of the deep neural networks and large language models opens new possibilities to solve many hard problems of the conversational AI. Alexa Prize Socialbot Grand Challenge gives a unique opportunity to test cutting edge research ideas in the real-world setting. In this report, we outline the DREAM socialbot solution and present evaluation results. DREAM socialbot is implemented as a multiskill conversational agent with the modular microservice architecture. DREAM agent orchestrates a dozen text preprocessing annotators and more than 25 conversational skills to generate responses in the context of the open domain conversation. Feedback from Alexa users during the evaluation period allows us to gradually develop our solution by increasing the number of conversational skills and improving the transition between them. As a result, dialogues became 50% longer, and average rating grows from ∼ 3 during the initial stage in December’19 to ∼ 3.4 during the last two weeks of April’20. The final version of DREAM socialbot is a hybrid system that combines rule-based, deep learning, and knowledge base driven components.

Текст научной работы на тему «ДИАЛОГОВАЯ СИСТЕМА DREAM В КОНКУРСЕ ALEXA PRIZE CHALLENGE 2019»

УДК 004.891.3

DOI: 10.53815/20726759_2021_13_3_62

Ю. М. Kypamoe, И. Ф. Юсупов, Д. Р. Баймурзиш, Д. П. Кузнецов,

Д. В. Чернявский, А. Дмитриевский, Е. С. Ермакова, Ф. С. Игнатов, Д. А. Карпов, Д. А. Корнев, Т. А. Ле, П.Ю. Пугин, М. С. Бурцев

Московский физико-технический институт (национальный исследовательский университет)

Диалоговая система DREAM в конкурсе Alexa Prize Challenge 2019

Создание диалоговой системы, способной быстро, связно и осмысленно вести диалог на общие темы, является одной из фундаментальных проблем в области искусственного интеллекта (ИИ). Недавний прогресс в обработке естественного языка, обусловленный применением глубоких нейронных сетей, в частности больших языковых моделей, расширил возможности для решения многих сложных проблем разговорного ИИ. Международный конкурс «Alexa Prize Socialbot Grand Challenge» дает уникальную возможность проверить передовые исследовательские идеи в реальных условиях. В этой работе подробно описана диалоговая система DREAM, и представлены результаты её взаимодействия с реальными пользователями. Диалоговая система DREAM реализована как многофункциональный диалоговый агент с модульной микросервисной архитектурой. Агент DREAM управляет десятком аннотаторов, отвечающих за предварительную обработку текста, и более чем 25 навыками для генерации ответов в контексте разговора на общие темы. Отзывы и оценки пользователей Alexa позволили нам постепенно развивать нашего диалогового агента путем увеличения количества разговорных навыков и улучшения переходов между ними. В результате диалоги стали длиннее на 50%, а средний рейтинг вырос с ~ 3 из 5 на начальном этапе в декабре 2019 года до ~ 3.4 из 5 в последние две недели апреля 2020 года. Финальная версия диалоговой системы DREAM — это гибридная система, сочетающая компоненты на основе правил, глубокого обучения и баз знаний.

Ключевые слова: диалоговая система, чат-бот.

Y. М. Kuratov, I. F. Yusupov, D. R. Baymurzina, D. P. Kuznetsov, D. V. Cherniavskii, A. Dmitrievskiy, E. S. Ermakova, F. S. Ignatov, D. A. Karpov, D. A. Kornev, T.A.Le,

P. Y. Pugin, M. S. Burtsev

Moscow Institute of Physics and Technology

Socialbot DREAM in Alexa Prize Challenge 2019

Building a dialogue system able to talk fluently and meaningfully in an open domain conversation is one of the foundational challenges in the field of AI. Recent progress in NLP driven by the application of the deep neural networks and large language models opens new possibilities to solve many hard problems of the conversational AI. Alexa Prize Socialbot Grand Challenge gives a unique opportunity to test cutting edge research ideas in the real-world setting. In this report, we outline the DREAM socialbot solution and present evaluation results. DREAM socialbot is implemented as a multiskill conversational agent with the modular microservice architecture. DREAM agent orchestrates a dozen text preprocessing annotators and more than 25 conversational skills to generate responses in the context of the open domain conversation. Feedback from Alexa users during the evaluation period allows us to gradually develop our solution by increasing the number of conversational skills and improving the transition between them. As a result, dialogues became 50% longer,

@ Куратов Ю. M., Юсупов И. Ф., Ваймурзина Д. Р., Кузнецов Д. П., Чернявский Д. В., Дмитриевский А., Ермакова Е. С., Игнатов Ф. С., Карпов Д. А., Корнев Д. A., Jle Т. А., Пугин П. Ю., Бурцев М. С., 2021 (с) Федеральное государственное автономное образовательное учреждение высшего образования

«Московский физико-технический институт (национальный исследовательский университет)», 2021

and average rating grows from ~ 3 during the initial stage in December'19 to ~ 3.4 during the last two weeks of April'20. The final version of DREAM socialbot is a hybrid system that combines rule-based, deep learning, and knowledge base driven components.

Key words: dialogue system, socialbot, chat-bot.

1. Введение

Большинство современных чат-ботов и голосовых помощников имеют сложную архитектуру, состоящую из набора разговорных навыков и диалогового менеджера. Навыки представляют из себя сценарные, ранжирующие или генеративные обучаемые модели. Обычно диалоговый менеджер строится на правилах, хотя есть несколько работ с попыткой сделать его обучаемым (например, HCN от Alquist [1], тематические классификаторы от Gunrock [2]). Такой дизайн диалогового агента в целом выглядит разумным, но по ряду причин все же не обеспечивает связного и увлекательного разговора в общем домене. Например, сценарные навыки могут обеспечить согласованный и последовательный ход диалога, но только в узкой области и с низкой языковой вариативностью. Следовательно, только самые популярные темы общего домена, такие как кино или животные, могут быть хотя бы частично покрыты сценариями. Кроме того, шаблонные ответы делают диалог скучным и однообразным. С другой стороны, генеративные модели могут давать забавные и увлекательные реплики, но при этом такие модели страдают от поверхностного понимания контекста, который к тому же сильно ограничен по объему, в результате чего нарушается осмысленность диалога в целом. Ранжирующие модели с высокой вероятностью подбирают подходящую по контексту реплику, но при этом они ограничены предметной областью и глубиной контекста. Все эти недостатки усложняют задачу создания навыков. Соответственно, задачей диалогового менеджера является также сбалансировать связные, но зачастую скучные навыки узких доменов с навыками общего домена. Как итог, ошибки выбора навыков регулярно неожиданным образом меняют направление разговора.

Последние достижения в области обработки естественного языка, такие как предварительное обучение языковых моделей [3-6], архитектуры на основе памяти, и новые наборы диалоговых данных [7-11], дают надежду на дальнейшее устранение большинства сложностей, описанных выше. Языковые модели на основе архитектуры Трансформер можно дообучить практически для любой задачи и, тем самым, продемонстрировать значительный прирост качества в диалоге. Это уже видно на примере таких задач, как распознавание именованных сущностей (named entity recognition, NER), распознавание частей речи, разрешение кореференции, а также для ранжирующих моделей [6, 12, 13], что потенциально может сделать итоговый результат работы диалоговой системы более релевантным.

Основываясь на последних достижениях в области обработки естественного языка, мы предлагаем гибридную архитектуру диалогового агента DREAM [14], которая объединяет современные модели машинного обучения с модульными микросервисными пайплайнами (последовательностями сервисов) в масштабируемую асинхронную архитектуру.

2. Архитектура диалогового агента DREAM

Диалоговый агент DREAM построен на базе систем DeepPavlov Library1 и DeepPavlov Agent2.

Библиотека DeepPavlov [15] позволяет описать пайплайн обработки текста в виде последовательности шагов путем написания конфигурационного файла. DeepPavlov предоставляет ряд предобученных моделей обработки естественного языка, включая новейшие архитектуры Трансформер. Библиотека также содержит набор пайплайнов для наиболее

1https://deeppavlov.ai

2https://github.com/deepmipt/dp-agent

распространенных задач. Любой пайплайн можно легко запустить в режиме REST API, что делает DeepPavlov удобным для модульных систем с микросервисной архитектурой.

DeepPavlov Agent - это фреймворк, предназначенный для разработки масштабируемых и многопользовательских виртуальных ассистентов с несколькими навыками, сложных диалоговых систем и чат-ботов. Ключевые особенности DeepPavlov Agent включают: (1) масштабируемость и надежность при высокой нагрузке благодаря микросервисной архитектуре; (2) простоту добавления и управления разговорными навыками; (3) состояние диалога в разделяемой памяти и аннотации реплик, доступные всем навыкам. DeepPavlov Agent управляет следующими типами сервисов:

• Annotator (аннотатор) - сервис для предварительной обработки реплики. Аннотаторы производят базовую обработку текста, такую как исправление орфографии, распознавание именованных сущностей и другое;

• Skill (навык) - сервис, генерирующий реплику-кандидата для текущего состояния диалога;

• Skill Selector (выборщик навыков) - сервис, который выбирает подмножество доступных навыков, которые могут выдать реплики-кандидаты для текущего состояния диалога;

• Response Selector (выборщик ответа) - сервис, который выбирает лучший ответ из доступных реплик-кандидатов для отправки пользователю;

• Postprocessor (пост-обработчик) - сервис, отвечающий за пост-обработку ответа диалогового агента. Он может выполнять базовые операции, такие как добавление имени пользователя, вставки эмоций и другое;

• Dialogue State (состояние диалога) содержит текущие диалоги между пользователями и диалоговым агентом, а также аннотации и другие метаданные в формате JS0N. Состояние диалога поддерживает совместное использование хранимой информации между различными сервисами.

Детальное описание всех сервисов диалогового агента DREAM представлено в Разделе 7 Приложения.

DeepPavlov Agent позволяет создавать диалоговые системы с гибкими, динамическими и асинхронными пайплайнами. Основные элементы архитектуры диалогового агента DREAM в терминах DP-Agent представлены на рис. 1.

Диалоговый агент DREAM имеет модульную структуру, в которой основные компоненты, такие как Annotators, Skills и Selectors, работают как независимые сервисы. Эти компоненты настраиваются и разворачиваются с использованием контейнеров Docker3. Это добавляет гибкость в использовании сервисов и независимость от среды исполнения. Подробная информация об инфраструктуре и разворачивании представлена в Разделе 8 Приложения.

Разработка и запуск диалогового агента - сложная задача как для академических, так и для индустриальных команд. В индустриальных условиях оценка разговорного опыта конечным пользователем изучается в основном с помощью бета-тестирования и ограниченных лабораторных UX-исследований. Пользовательский рейтинг рассматривается только как один из многих ключевых показателей эффективности, используемых для отслеживания успешности продукта. Специфика участия в конкурсе Alexa Prize Challenge требует создания аналитической инфраструктуры только на основе пользовательских рейтингов. Мы разработали набор инструментов для отслеживания рейтингов диалогов и проведения глубокого анализа поведения системы на каждом этапе разговора. Описание аналитических инструментов представлено в Разделе 9 Приложения.

3https://www.docker.com/

Рис. 1. Архитектура диалогового агента DREAM. Десятки Annotators используются для извлечения информации из реплики пользователя. Skill Selector определяет подмножество активных Skills на основе извлеченной информации и состояния диалога. Выбранные Skills предлагают свои реплики-кандидаты. Наконец, Response Selector выбирает ответ, который будет обработан с помощью Response Annotators и, в конечном итоге, будет отправлен пользователю. Все элементы пайплайна работают асинхронно с двумя точками синхронизации: Skill Selector и Response Selector. Состояние диалога служит общей памятью

3. Результаты оценки диалогового агента DREAM пользователями

В ходе конкурса диалоговый агент подвергся значительным изменениям, которые существенно влияли на среднесуточный рейтинг. Исходя из времени внесения изменений и поведения рейтинга, мы выделили 11 этапов (см. рис. 2), каждый из которых обладает собственной спецификой.

На первом этапе (3-24 декабря) средний рейтинг - 3.01 из 5. На этом этапе количество активных навыков увеличилось с 7 до 13, как показано на рис. 3. Эти навыки включают в себя ранжирующие навыки, такие как базовые TFIDF-retrieval Skill и ConveRT Reddit, а также шаблонные навыки Book Skill (навык о книгах), Weather Skill (навык о погоде) и Christmas Skill (навык о Рождестве). В совокупности они помогли значительно расширить охват обсуждаемых тем, а также повысить средний рейтинг диалогов до 3.19 из 5. Основная цель заключалась в том, чтобы сделать агента более активным. Часть тем была охвачена навыками, основанными на правилах и сценариях, такими как Book Skill и Christmas Skill, в то время как остальные темы были покрыты ранжирующими навыка-

3.19

од совпал с Рождеством и Новым годом, и никаких серьезных изменений не было сделано. Работа над исправлением ошибок предыдущей фазы вместе с актуальным Christmas Skill внесли главный вклад в рост среднего рейтинга (+0.18) по сравнению с предыдущим эта-

Третий этап (10 27 января) характеризуется снижением среднего рейтинга до 2.97 (-0.22). Диалоговый агент DREAM был дважды отключен после серии диалогов с низкими рейтингами. На этом этапе было добавлено еще несколько навыков: ранжирующий TopicalChat ConveRT Retrieval Skill, а также Eliza и News Skill на основе правил. Аннотатор Intent Catcher был значительно улучшен, и был введен новый класс намерения пользователя сменить тему. Еще одна задача заключалась в улучшении аналитических инструментов для улучшения анализа диалогов и рейтингов.

Рис. 2. Среднесуточный рейтинг диалогового агента ВТ1ЕАМ. Ежедневный рейтинг выделен синим цветом. Вертикальные пунктирные линии разделяют разные этапы разработки диалогового агента ББЕАМ. Сплошная красная линия показывает средний рейтинг за этап. Затемненная область соответствует разным официальным этапам соревнования

Рис. 3. Количество разговорных навыков в диалоговой системе DREAM. Большинство навыков было добавлено до четвертьфиналов (Quartorfunals Period), а затем акцент сместился на обеспечение плавного диалога и переключения тем путем улучшения Response Selector, механизма link-to и улучшения существующих навыков

Четвертый этап (27 января 5 февраля) являлся промежуточным между периодом начальной обратной связи от пользователей и периодом четвертьфиналов. Улучшения диалогового агента привели к росту среднего рейтинга до 3.22 (+0.25). Был добавлен новый SuperBowl Skill для обсуждения популярного американского турнира «Super Bowl», а ранжирующий навык TFIDF-retrieval Skill был значительно улучшен за счет добавления в качестве возможных ответов реплик реальных пользователей из предыдущих диалогов.

На пятом этапе (5-10 февраля) средний рейтинг упал до 3.07. Предположительно, причиной могут быть внешние события, такие как распространение информации и рост обеспокоенности населения в связи с пандемией СО VID-19. В течение этого периода была продолжена разработка навыка Activity Discussion Skill. Также были добавлены еще два навыка, в том числе специфический Oscar Skill для обсуждения кинопремии «Oscar», а также Emotion Skill более широкого домена для поддержки пользователей в плохом настроении. Эти навыки, а также продолжающаяся работа над исправлением ошибок привели к увеличению среднего времени диалога в начале следующего этапа.

На следующем этапе (10 февраля 1 марта) произошел рост среднего рейтинга обратно 3.22

Skill, Activity Discussion Skill, а также NER-Skill on Reddit. Добавление Activity Discussion Skill привело к заметному увеличению средней длины диалога, как показано на рис. 4. После более глубокого анализа диалогов команда приняла стратегическое решение сосредоточиться на связывании частей диалога друг с другом для дальнейших) улучшения общего пользовательского опыта. На этом этапе также увеличилось количество негативных реплик пользователей (см. рис. 5), что также можно рассматривать как следствие набирающей обороты пандемии и ухудшения настроения среди населения США. Однако важно отметить, что этот рост негативных настроений не вызвал тенденцию к снижению среднего рейтинга.

-Median duration -90th percentile duration

Рис. 4. Средняя продолжительность разговоров за день. Медиана продолжительности показана синим цветом (ось слева), а продолжительность 90-го перцентиля красным (ось справа). Диалоги с реальными пользователями Alexa начались в период четвертьфиналов. С тех пор 90-й перцентнль продолжительности разговоров увеличился с 300 до 450 секунд за 2.5 месяца

Седьмой этап (2 6 марта) характеризуется очередным падением рейтинга. На этот раз неудачное разворачивание обновлений агента привело к некорректной работе навыка AIML DREAM Chit-Chat Skill. Кроме того, обновленный TopicalChat ConveRT Retrieval Skill имел очень высокий уровень уверенности, что привело к неожиданному росту количества его ответов с низким качеством.

Следующий этап (6 21 марта), являлся переходом от периода четвертьфиналов к периоду полуфиналов. Средняя оценка составила 3.28. Этот этап был посвящен исправлению критических ошибок; в течение этого периода агенту DREAM не были добавлены новые навыки или другие компоненты.

Этап 9 (21 марта 19 апреля) характеризовался высокой изменчивостью среднесуточных оценок и более низким рейтингом 3.24. За это время мы добавили новый Small Talk Skill для сценарных диалогов но большому количеству тем, а также сделали еще один важный стратегический шаг. Мы решили проводить А/В-теетирование, чтобы повысить качество работы диалогового агента. В течение этого периода была проведена серия рискованных экспериментов, которые снизили оценки, однако информация, извлеченная из этих экспериментов, позволила стабилизировать количество положительных и отрицательных реакций пользователя. 9 апреля мы выпустили сценарную версию Movie Skill для обсуждения конкретных фильмов, улучшив ее но сравнению с предыдущей версией, способной только к выражению мнения в рамках одной реплики. С 13 апреля мы начали активно улучшать навыки, основанные на сценариях, и ввели новую функцию link-to (см. Раздел 7.3), чтобы обеспечить плавный переход между навыками во время диалога. Мы связываем эти изменения со значительным ростом положительных отзывов пользователей, что можно увидеть на рис. 5.

На 10-м этапе (19-27 апреля) средний рейтинг вырос до 3.39. В систему добавлен новый сценарный навык Game Skill для обсуждения видеоигр. Рискованные эксперименты были остановлены, были отобраны и запущены лучшие версии диалогового агента за предыдущий период.

Рис. 5. Ежедневная доля реплик пользователей с положительными и отрицательными реакциями. Все реплики пользователей были размечены на три класса: положительные, нейтральные и отрицательные. Доля положительных высказываний показана синим (левая ось), а отрицательных красным (правая ось). До 4 февраля мы использовали другую модель анализа тональности, поэтому этот график отражает только результаты анализа тональности, которые мы собрали после этого изменения

4. Научные и технологические идеи

4.1. Разговорные навыки, интегрирующие здравый смысл

Недостаток здравого смысла одна из самых сложных проблем разговорного искусственного интеллекта на текущий момент. Хорошее впечатление от связных и интересных

частей диалога со сценарными навыками может быть испорчено, если диалоговый агент не сможет ответить на «простой» вопрос, требующий базового понимания человеческого мира. В диалоговом агенте DREAM мы исследовали возможность использования графов знаний для внедрения здравого смысла в разговоры.

Activity Discussion Skill, кратко описанный в подразделе 7.3, эмулирует желание диалогового агента лучше понимать человеческий мир. Для этого навык обращается к пользователю с просьбой объяснить некоторые человеческие занятия. Поэтому, если пользователь выражает желание сменить тему разговора на любую другую, Activity Discussion Skill спрашивает об одном из заранее подготовленных занятий, таких как прыжки с парашютом, география, выпечка. Также занятие в виде пары глагол + существительное может быть извлечено из реплики пользователя или из рассказанной пользователю новости. Если занятие в приведенной выше форме не было найдено, для каждого существительного из высказывания пользователя мы ищем подходящую биграмму (словосочетание из двух слов) в словаре, собранном из англоязычного текста большого объема, и просим объяснить полученное занятие.

Сценарий обсуждения занятий состоит из вступительной фразы, нескольких уточняющих вопросов и запроса мнения пользователя. Вступительная фраза либо выбирается из нескольких написанных вручную предложений для короткого списка интересных занятий, либо может быть шаблонным запросом на объяснение извлеченного занятия из реплики пользователя или хобби из Wikipedia. Если пользователь не отказывается от объяснений, агент DREAM задает несколько уточняющих вопросов.

Уточняющие вопросы составлены с помощью модели СОМеТ Atomic [16]. Модель может генерировать предсказания здравого смысла для следующих аспектов: «xAttr» - что человек чувствует в процессе, «xlntent» - что человек намеревался получить в процессе, «xNeed» - что пользователю необходимо для того или иного занятия/деятельности, «xEffect» - что является результатом деятельности, «xReact» - что человек чувствует в результате, «xWant» - что человек хочет получить в результате деятельности.

Рассмотрим пример. Для занятия «practice yoga» («заниматься йогой») модель генерирует следующие аспекты здравого смысла для «xlntent»: «to be healthy» («быть здоровым»), «to learn yoga» («научиться йоге»), «to relax» («расслабиться»). Следовательно, заполнением слотов в шаблоне мы можем построить вопрос «Is that true that people practice yoga to be healthy?» («Верно ли, что люди практикуют йогу, чтобы быть здоровыми?»). Мы ожидаем, что Activity Discussion Skill как часть диалога может помочь пользователю почувствовать себя увереннее при разговоре с диалоговым агентом, а также быть более лояльным к нему в связи с пониманием его некомпетентности в некоторых темах. Существует также множество других приложений моделей предсказания здравого смысла СОМеТ.*

Навык Personal Event Discussion Skill имитирует беседу о действиях пользователя с точки зрения намерений, чувств и последствий. Этот навык работает в двух режимах.

В первом режиме, если извлекается действие пользователя в форме «I + verb + ... » («Я + глагол + ■■■»), навык случайным образом выбирает шаблон, чтобы задать вопрос или дать комментарий; шаблон также зависит от времени действия пользователя. Затем навык отправляет запрос в модель СОМеТ Atomic для генерации предсказаний аспектов здравого смысла для заполнения шаблона вопроса. Например, пользователь говорит «I will go to the theater next weekend» («Я пойду в театр на следующей неделе»). Если случайно выбран шаблон с аспектом «xNeed», для которого СОМеТ Atomic возвращает предсказание «buy the tickets» («купить билеты»), то может быть составлен вопрос «Did you buy the tickets?» («Ты купил билеты?»). Дальнейший комментарий с использованием предсказанного «happy» («счастливый») для аспекта «oFeel» навык может составить реплику «I feel happy for vou!» («Я счастлив за вас!»). Эта часть Personal Event Discussion Skill предназначена для демонстрации способности диалогового агента отслеживать причинно-следственные связи и устанавливать некоторую эмоциональную связь с пользователем.

Второй режим Personal Event Discussion Skill возвращает шаблонное выражение мнения о заданном объекте, которое зависит от тональности полученного предсказания аспекта здравого смысла. Например, если пользователь запрашивает мнение о cats (кошках), то навык случайным образом выбирает шаблон, основанный на утверждении здравого смысла «SymbolOf», после чего модель СОМеТ ConceptNet [17] генерирует предсказание «¡ove» («любовь»). Навык формирует мнение с использованием предсказания: «I adore cats! For some of us, cats can be seen as a sign of love» («Я обожаю кошек! Для некоторых из нас кошки считаются знаком любви»). Это позволяет диалоговому агенту выражать аргументированное мнение по широкому кругу вопросов за исключением деликатных тем (политика, религия и прочее).

4.2. Обучаемая модель выбора ответа

На протяжении большей части конкурса Response Selector выбирал окончательный ответ с помощью набора правил с использованием вывода Candidate Annotators. Чтобы улучшить качество Response Selector, наша команда разметила 3400 реплик-кандидатов из ~ 400 уникальных диалоговых контекстов на два класса: подходящий по контексту ответ (положительный) и неподходящий ответ (отрицательный). Для каждого контекста диалога несколько кандидатов могут быть отмечены как подходящие. В результате мы получили набор данных с ~ 750 положительны ми и ~ 2650 отрицательными примерами.

Response Selector после фильтрации «плохих» реплик-кандидатов с помощью Toxic Classifier, Dialog Termination и Blacklist Word Detector, выбирает лучший ответ с использованием базовой эвристической модели - взвешенной суммы уверенности навыка и предсказаний от аннотатора Conversation Evaluator. В качестве альтернативного варианта мы также попробовали Grid Search (поиск по сетке) для настройки весов и пороговых значений для размеченных данных (Heuristic Baseline + Grid Search (базовая эвристическая модель + поиск по сетке) в табл. 1).

Таблица 1

Результаты экспериментов с моделью выбора ответа в Response Selector.

Корреляция предсказаний моделей и размеченных вручную меток.

Результаты были получены путем усреднения по 500 стратифицированным разбиениям на обучающую и тестовую выборки

Model Correlation

Heuristic Baseline G.278 ± G.G39

Heuristic Baseline + Grid Search G.293 ± G.G38

Gradient Boosting G.326 ± G.G4G

Gradient Boosting with TE features G.335 ± G.G4G

Мы использовали 17 признаков для обучения LightGBM4 Gradient Boosting модели [18]: уверенность навыков в репликах-кандидатах (1), предсказания CoBot Conversation Evaluator (5), Toxic Classifier (7), Dialog Termination (1) и Blacklist Words Annotator (3). Мы также экспериментировали с моделями логического вывода Textual Entailment (ТЕ), доступными в AllenNLP Demo5, определяющими логическое соотношение между предложением-предпосылкой и предложением-гипотезой. В качестве предпосылки использовались две последние реплики диалога, а в качестве гипотезы - реплика-кандидат. Textual Entailment предсказывает выходные вероятности принадлежности к трем классам: следствие, противоречие и нейтральный. Это позволило нам добавить еще 9 признаков из трех моделей Textual Entailment: Decomposable Attention + ELMo на SNLI (3), RoBERTa на SNLI (3) и RoBERTa на MultiNLI (3).

4https://github.com/microsoft/LightGBM

5https://demo.allennlp.org/textual-entailment

Результаты в табл. 1 показывают, что модели Gradient Boosting превзошли результаты нашей базовой эвристической модели, а предсказания Textual Entailment улучшают качество Response Selector. На момент окончания конкурса, мы не использовали модели Textual Entailment в Response Selector из-за значительной вычислительной стоимости использования модели RoBERTa-Large, не сопоставимой с привносимым ею улучшением качества модели выбора ответа.

4.3. Модели распознавания именованных сущностей и сегментации предложений

Модель, используемая для решения задачи распознавания именованных сущностей (named entity recognition, NER), была улучшена путём добавления использования полезных признаков, включая (1) предварительно обученные векторные представления слов, (2) признаки на уровне символов и (3) контекстные признаки слов. Векторное представление слова создается путем конкатенации (1) предварительно обученных векторов слов GloVe [19], (2) векторных представлений слов из языковой модели ELMo [4] и (3) векторных представлений слов на уровне символов, генерируемых свёрточной нейронной сетью, состоящей из двух последовательных свёрточных слоев, за которыми следует слой глобальной субдискретизации. Затем контекстные признаки слов извлекаются с помощью Bi-LSTM сети. Наконец, Conditional Random Field (слой условного случайного поля) используется для поиска зависимостей между тегами.

Модель была обучена на наборе данных CoNLL2003 [20]. Этот набор данных содержит четыре типа сущностей: имена людей, названия локаций, названия организаций и другие сущности, которые не принадлежат к этим трём группам. Так как диалоговый агент получает все тексты из системы автоматического распознавания речи (automatic speech recognition, ASR) в нижнем регистре, мы использовали набор данных CoNLL2003, также приведенный к нижнему регистру. Описанная модель достигла F1 = 92.27 на тестовой

92.40

моделью на основе Трансформера BERT-base от [6], однако предложенная нами модель требует меньше вычислений.

Модель NER также была адаптирована для задачи сегментации предложений с помощью переформулировки ее в задачу маркировки последовательности. Модель была обучена на двух наборах диалоговых данных, искусственно составленных из Cornell Movie-Dialog [21] и DailvDialog [22]. Поскольку основной целью является сегментация реплики на предложения и извлечение двух типов предложений: (1) утверждения и (2) вопросы, все реплики с тремя и более предложениями были удалены из выборки, и были использованы три типа тегов: (1) BS для обозначения первого слова предложения-утверждения, (2) BQ для обозначения первого слова предложения-вопроса, (3) 0 для обозначения других слов. Модель достигла F1 = 89.99 на наборе данных Cornell Movie-Dialog и F1 = 95.88 на наборе данных DailvDialog. Модель сегментации предложений диалогового домена доступна как часть библиотеки DeepPavlov6.

5. Обсуждение

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

6http: //docs . deeppavlov. ai/en/master/features/models/ner.html#ner-based-model-for-sentence-boundary-detect ion-task

изменения и смена приоритетов, характерные для быстро развивающихся стартапов и даже для некоторых корпоративных гигантов, также делают проблематичным плавное совмещение исследовательских проектов с реальными диалоговыми системами в индустрии. Международный конкурс Alexa Prize Socialbot Grand Challenge7 дает академическим командам возможность работать непосредственно с реальными пользователями, при этом позволяет экспериментировать с новыми идеями и последними научными достижениями. Сам конкурс Alexa Prize позволил нам построить весь процесс разработки на основе оценок пользователей, что дало нам много информации о том, с какими проблемами сталкиваются пользователи во время общения с диалоговым агентом DREAM.

Во время конкурса мы использовали большое количество общедоступных наборов данных для обучения моделей Annotators и Skills. Для Annotators в основном использовались наборы данных для распознавания именованных сущностей, анализа тональности и токсичности. Использование диалоговых наборов данных, таких как Topical Chat [23] и Daily Dialog [22], в значительной степени способствовало разработке и использованию ранжирующих навыков. Мы использовали эти наборы данных для обучения моделей ранжирования, а также как источник хороших ответов. Сайт Reddit также был одним из основных источников разговорных данных, но его излишняя неформальность потребовала тщательной предварительной обработки текстов перед использованием.

В ходе наших экспериментов с обучаемыми моделями мы пришли к трём важным заключениям:

1) Два разговорных навыка Activity Discussion Skill и Personal Event Discussion Skill, интегрирующих здравый смысл в диалог на базе шаблонного подхода и использования моделей предсказания здравого смысла, демонстрируют больше явного здравого смысла по сравнению с навыками общего домена, основанными на правилах. Что касается неявного здравого смысла, в этом эти навыки похожи на навыки ранжирования.

2) Предсказания Dialog Termination представляют из себя важный признак для выбора ответа. В дополнение к этому, извлекаемый сервисом Cobot Evaluator признак «isResponselnterestÂng», а также уверенность навыков вносят значительный вклад в качество выбора ответа.

3) Все рассмотренные генеративные модели плохо проявили себя. И хотя такие модели, как GPT [5], GPT-2 [24] и Меепа [25] продемонстрировали значительный прогресс в развитии, применение генеративных моделей при взаимодействии с реальными пользователями Alexa Prize показало ограниченность их применимости на данный момент.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Также на основе пользовательских рейтингов мы вывели ряд идей о хороших стратегиях общения с пользователями.

Факты не всегда являются увлекательными. Преобразование фактов в разговорную форму с компонентами светской беседы несколько сглаживает упоминание фактов.

Делиться собственным мнением может быть очень полезно. Однако использовать COMET Atomic, COMET ConceptNet и другие графы знаний следует с осторожностью, так как высокая вариативность языка делает генерацию текстов сложной задачей, что приводит к низкому качеству итоговых предсказаний и ответов диалогового агента в целом.

Дать пользователям возможность высказать мнение о различных объектах, также рассказать о себе, является хорошей стратегией. Однако стоит учитывать, что диалоговой системе непросто играть роль хорошего слушателя.

Поведение пользователя сильно различается как для разных пользователей, так и для одного пользователя в разных диалогах. Диалоговый агент должен уметь определять

7https://developer.amazon.com/alexaprize/challenges/

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

Переключение между темами в рамках одной реплики сглаживает беседу, делая переходы между темами менее раздражающими и более естественными.

6. Выводы

Несмотря на повсеместное распространение простых диалоговых систем, разработка увлекательных диалоговых агентов, способных поддерживать любую тему, остается большой исследовательской и инженерной задачей. Чтобы добиться успеха в решении этой задачи, академические и индустриальные группы исследователей и разработчиков должны решить ряд проблем.

Современные генеративные модели, такие как [5, 4, 25], хотя и являются весьма многообещающими для исследовательских целей и публичных демонстраций, работают недостаточно хорошо на реальных пользователях. Необходимы дополнительные исследования, чтобы генерировать ответы, согласованные с контекстами длинных диалогов. Наши эксперименты с генеративными моделями привели к тем же выводам (см. Приложение 7.3).

Доступность больших наборов диалогов с пользовательскими рейтингами имеет решающее значение для развития исследований в области разговорного искусственного интеллекта. Вопрос о том, как генерировать такие данные или автоматически оценивать диалоговые системы, остается открытым. Одним из многообещающих решений здесь являются академические задачи для разговорного искусственного интеллекта [26, 27], которые также активно привлекают добровольцев для общения с исследуемыми диалоговыми системами, что помогает создавать общедоступные диалоговые данные [28, 29] для оценки диалоговых систем.

Создание диалогового агента, способного адаптироваться к пользователю в режиме реального времени, требует сложной комбинации анализа поведения пользователя «на ходу», использования «разговорной стилизации» для придания более человеческого вида высказываниям диалоговой системы и эффективного использования графов знаний.

Диалоговая система с несколькими навыками должна объединять разнообразные разговорные навыки в связный, но при этом плавный диалог. Все это в основном представляет из себя неизученную область исследований по сравнению с другими задачами обработки естественного языка.

Быстрый прогресс в области разговорного искусственного интеллекта зависит не только от научных открытий, но и от инженерных инструментов для быстрого создания прототипов и масштабируемого разворачивания диалоговых агентов. Здесь мы активно вносим свой вклад в развитие библиотек и фреймворков с открытым исходным кодом, таких как DeepPavlov и DeepPavlov Agent. Мы планируем выпустить версию диалоговой системы DREAM с открытым исходным кодом и продвигать экосистему DeepPavlov как платформу для создания и обмена разговорными навыками и моделями.

Команда DREAM глубоко признательна организаторам Alexa Prize за их помощь и советы во время конкурса. Команда DREAM также благодарит всех участников Лаборатории нейронных систем и глубокого обучения Московского физико-технического института (национального исследовательского института) за их поддержку и содействие в конкурсе.

Приложение

7. Компоненты диалоговой системы DREAM

7.1. Аннотаторы

Аннотаторы реплик пользователя

Все аннотаторы, кроме ASR Processor, принимают необработанные тексты от системы ASR, составленные из слов-гипотез с наибольшими вероятностями.

Sentence Segmentation позволяет нам обрабатывать длинные и сложные реплики пользователей путем восстановления знаков препинания и разделения реплик на предложения. Эта модель принимает высказывания пользователя в качестве входных данных и выводит список, состоящий из предложений с добавленной пунктуацией.

Named Entity Recognition (NER) извлекает имена людей, названия локаций и организаций из текста, поданного в нижнем регистре.

Sentence Rewriting переписывает реплики пользователя, заменяя местоимения ранее упомянутыми обозначениями, предоставляя тем самым больше полезной информации следующим компонентам из пайплайна.

Intent Catcher классифицирует реплики пользователя по заранее заданным намерениям, таким, как repeat (запрос повтор), exit (завершение диалога), what_is_your_name (запрос, как зовут бота), what_can_you_do (запрос, что умеет бот), yes (согласие), по (отказ), lets _chat_ about (запрос разговора на определенную тему), donot^understand (непонимание) и другие. Компонента использует множество регулярных выражений и модель-классификатор для разметки на 21 класс. Классификатор основан на последней на момент проведения конкурса8 версии Universal Sentence Encoder [30].

Blacklist Word Annotator находит упомянутые в реплике пользователя слова и фразы из нескольких заранее заданных черных списков: список нецензурной лексики, список неподобающей лексики, список деликатных тем. Если реплика пользователя содержит слова или фразы из одного из таких списков, мы используем «безопасный режим» в Skill Selector.

Automatic Speech Recognition Processor вычисляет итоговую уверенность системы ASR для той или иной реплики и оценивает ее как очень низкую, низкую, среднюю или высокую. Выход этого аннотатора используется Misheard ASR skill для определения необходимости переспрашивания пользователя (см. 7.3).

Toxic Classifier определяет, содержит ли реплика оскорбления, угрозы, нецензурные или неприличные выражения, ненависть или иные проявления токсичности. Модель «conversational BERT», используемая для классификации разговорных текстов9 и являющаяся частью фреймворка DeepPavlov, была дообучена на данных с «Kaggle Toxic Comment Classification Challenge»10.

Sentiment Classifier определяет тональность реплики пользователя, разделяя все реплики на негативные, позитивные и нейтральные. Модель «conversational BERT», используемая для классификации разговорных текстов11, была также дообучена на наборе данных Stanford Sentiment Treebank [31] на пяти классах: очень позитивный, очень негативный, негативный, позитивный, нейтральный. При этом «очень позитивный» класс при предсказании объединяется с «позитивным», а «очень негативный» с «негативным». Модель доступна по ссылке DeepPavlov12.

Emotion Classifier - это классификатор на основе модели BERT, обученный на сочетании двух наборов данных. Первым был набор данных, размеченный шестью эмоциями:

8https://tfhub.dev/google/universal-sentence-encoder/4

9http://docs.deeppavlov.ai/en/master/features/pretrained\_vectors.html\#bert

10https://www.kaggle.com/с/jigsaw-toxic-comment-classification-challenge/overview

11bert_dp_models_link

https://github.com/deepmipt/DeepPavlov/blob/O.9.О/deeppavlov/configs/classifiers/sentiment\ _sst\_conv\_bert.j son

гнев, страх, радость, любовь, печаль и удивление. Источником этих наборов данных являлась Kaggle-страница Erav Yildiz13, но на момент написания работы эти данные уже были убраны из открытого доступа. Чтобы сделать набор данных более сбалансированным, мы дополнили его нейтральными примерами из набора данных ScenarioSA [32] и разделили на тренировочную и тестовую выборки. Итоговый набор данных, на котором обучалась модель, представлен в библиотеке DeepPavlov14. Тренировочная выборка содержит более 390 тысяч примеров, а тестовая часть - 50 тысяч примеров.

CoBot Annotators построены как API-сервисы на основе Amazon Conversational Bot Toolkit (CoBot) [33]. Topic Classifier, Dialog Act Classifier [34] и Offensiveness Classif ier [35] - это модели, предсказывающие тему диалога, диалоговый акт, является ли фраза токсичной и содержатся ли в ней слова из черного списка. Мы классифицируем реплики пользователя по предложениям, чтобы получить разметку в стиле многолейбловой классификации и учесть случаи, когда пользователь выразил разные намерения или затронул несколько тем в одной реплике из нескольких предложений. Мы также используем предоставленный CoBot код для извлечения сущностей из ответа пользователя.

Аннотаторы реплик-кандидатов и финального ответа

Аннотаторы реплик-кандидатов включают в себя Toxic Classifier и Blacklist Words Detector, описанные в 7.1, как и CoBot Conversation Evaluator вместе с оригинальным Dialog Termination.

Dialog Termination аннотатор предсказывает, собирается ли пользователь завершить диалог (например, сказать «Alexa, stop») на следующем шаге. Модель на основе разговорного BERT от DeepPavlov15 была обучена на разговорных данных, собранных за время разговоров диалоговой системы с пользователями Alexa.

CoBot Conversation Evaluator был обучен на данных с предыдущих соревнований Alexa Prize. Он предсказывает, является ли реплика-кандидат интересной, понятной, соответствует ли теме, является ли увлекательной, и является ли ошибочной [36]. CoBot Conversation Evaluator предоставляется участникам, как удаленный сервис.

Как только окончательный ответ выбирается моделью Response Selector, мы обрабатываем его при помощи Sentence Segmentation, NER, и Sentence Rewriting. Финальные аннотации ответа дают нам возможность одинаково работать с выходом различных навыков - шаблонных с пунктуацией, ранжирующих или генеративных с отсутствующей или частичной пунктуацией.

7.2. Выборщик навыков

Skill Selector (Выборщик Навыков) основан на правилах. Он получает контекст диалога с аннотациями из Dialogue State и выбирает навыки, которые попробуют сгенерировать реплики-кандидаты. Если обнаружены намерения, требующие немедленной реакции, то для ответа запрашивается только навык Intent Responder. Если обнаруживается запрос мнения на деликатные темы или какая-либо токсичность в реплике пользователя, активируются только навыки « безопасного режима», включающие в себя CoBotQA и несколько навыков на основе шаблонов. Во всех других случаях окончательный выбор навыков основан на определенной теме, диалоговых актах, длине диалога, а также информации о том, был ли навык активным на предыдущем шаге диалога. Dummy Skill всегда включен как навык, дающий ответы-заглушки.

13https://www.kaggle.com/eraylyildiz

14http://files.deeppavlov.ai/datasets/EmotionDataset.rar

15bert_dp_models_link

7.3. Разговорные навыки Переход между навыками

Чтобы у пользователя складывалось приятное впечатление от диалога, переходы от одного навыка к другому должны быть плавными. Навыки могут добавлять шаблонные триггеры, чтобы на следующем шаге диалога уже другой навык мог включиться на них. Когда активный навык завершает свой сценарий и готов сменить тему, он вызывает функцию link-to с целевым навыком. Механизм link-to добавляет в конец реплики бота вопрос, направляющий диалог в тему, покрытую целевым навыком. Таким образом, Skill Selector запускает целевой навык на следующем шаге, и если он выдаст реплику-кандидата, то при выборе ответа у него будет больший приоритет.

Есть и еще одна эвристика, которая случайным образом добавляет link-to вопрос к выбранной финальной реплике ранжирующих навыков (см. Раздел 7.3) и к некоторым другим навыкам, если их гипотеза не содержит вопроса. Эта эвристика помогает улучшить пользовательский опыт общения с агентом DREAM, поскольку переходы между разговорными навыками обеспечивают хорошо продуманные сценарные беседы на большое количество шагов.

Навыки AIML

Artificial Intelligence Markup Language (AIML) - это XML-диалект для создания диалоговых агентов. AIML представляет из себя хорошо документированный, широко используемый и простой в использовании язык для реализации диалоговых систем. В диалоговой системе DREAM мы используем фреймворк Program Y16.

AIML DREAM Chit-Chat основан на диалоговой системе Template-y17. Мы обновили имеющиеся правила, добавив туда сценарии приветствия, несколько шаблонов разговоров на общие темы, а также шутки. AIML General Chit-Chat содержит более общие шаблоны фраз. AIML Dangerous Topics Conversation Skill реагирует на потенциально опасные ситуации, возникающие из-за оскорбительных или неуместных реплик пользователя. Alice _ диалоговая система, основанная на AIML, с открытым исходным кодом18. Этот бот был особенно полезен в начале соревнования, так как имеет довольно большой набор правил для ведения диалога. Однако ответы бота Alice, хотя и дают широкое покрытие ситуаций, в которых бот отвечает допустимо сематически и стилистически, но во многих контекстах ответы Alice слишком поверхностны и неточны, легко выдавая человеку-собеседнику механистическую природу порождающего эти ответы алгоритма.

Шаблонные навыки

Intent Responder выдает шаблонные ответы на некоторые намерения, детектированные аннотатором Intent Catcher.

Eliza19 - одна из реализаций известной программы обработки естественного языка на Pvthon, вдохновленная классической статьей об искусственном интеллекте [37].

Duirimy Skill - это навык, который может обеспечивать реплики-кандидаты даже в случае, когда другие навыки не могут ответить. Он извлекает реплики, содержащие сущности из реплики пользователя, из более чем 6500 фактов и советов, взятых из подразделов сайта Reddit, и 1800 вопросов из набора данных Topical Chat [7]. Он также возвращает link-to-Bonpoc, который направляет разговор в одну из тем, покрытых сценарными навыками. Этот вопрос выбирается с учетом уже использованных link-to-вопросов, и его также можно добавить к ответам некоторых других навыков в рамках Response Selector.

16https://github.com/keiffster/program-y

https://github.com/keiffster/program-y/wiki/Available-Bots

18https://github.com/sld/convai-bot-1337/tree/master/ALICEChatAPI

19https://github.com/wadetb/eliza

Реплики-кандидаты от Dummy Skill имеют значительно более низкую уверенность по сравнению с другими навыками. Таким образом, если система не может напрямую ответить на высказывание пользователя, навык имитирует «вспоминание» чего-то релевантного контексту (вопросов и фактов на основе упомянутой сущности или темы) или переводит разговор к теме, которую умеет обсуждать один из сценарных навыков.

Dummy Skill Dialog возвращает следующую фразу из набора данных TopicalChat, если ответ пользователя на Dummy Skill похож на соответствующий ответ в исходных данных этого датасета.

Personal Info Skill запрашивает и сохраняет имя пользователя, место рождения и место проживания. Профиль пользователя может в дальнейшем использоваться другими навыками, чтобы добавить имя пользователя как обращение или предложить прогноз погоды там, где пользователь живет.

Emotion Skill возвращает шаблонные ответы на реплики пользователя, содержащие определенные эмоции из Emotion Classification. Если самая вероятная эмоция не является нейтральной, то Emotion Skill соответствующим образом реагирует на эту эмоцию. Он может попросить пользователя успокоиться, рассказать анекдот, поднять настроение или дать совет о том, как лучше справиться с грустью. Навык состоит из нескольких сценарных частей диалога, что позволяет ему поддерживать разговор в течение нескольких фраз.

Movie Skill отвечает за разговоры, связанные с фильмами. Он дает ответы на часто задаваемые вопросы о фильмах, например, «What is your [less] favourite fmovie/actress/movie genre]?» («Какой ваш [наименее] любимый [фильм/актриса/жанр фильма]?»). Также этот навык может определять мнение пользователя и выражать собственное мнение по фильмам, жанрам фильмов и актерам. Отношение навыка к фильмам зависит от их рейтинга, отношение к жанрам фильмов задано вручную, а отношение к актерам зависит от среднего рейтинга фильмов, в которых они принимали участие.

Movie Skill находит ответы пользователя на вопросы о фильмах, включая вопросы, заданные при помощи link-to, а также находит любые утверждения пользователя, которые с точки зрения аннотаторов относятся к теме фильмов. Если этот навык находит фильм, набравший более 10 тысяч голосов на IMDb, то запускается сценарный диалог, основанный на названии этого фильма. Если же упомянутого пользователем названия не нашлось, навык переспрашивает его у пользователя. Сценарный диалог включает в себя выражение и запрос мнения, вопрос о жанре фильма или актерском составе фильма, факты о полученных фильмом наградах, слогане фильма, а в конце делится интересными фактами об этом фильме. Пользователь может управлять течением диалога с помощью вопросов, относящихся к теме фильма. Если пользователь явно просит сменить тему, то навык вызывает метод link-to, чтобы направить link-to вопросом диалог в Book Skill или Short Story Skill.

Book Skill при помощи графа знаний Amazon Evi20 находит названия книг и авторов, упомянутых в реплике пользователя, и обсуждает их. Навык рассказывает пользователю имеющиеся в Evi факты про найденные книги и авторов. Навык также советует книги в зависимости от жанра, основываясь на информации базы данных GoodReads21.

Activity Discussion Skill на протяжении нескольких шагов обсуждает разные аспекты человеческой деятельности. Навык использует модель СОМеТ Atomic [16] для генерации предсказаний аспектов здравого смысла для обсуждения различных человеческих занятий (например, что человек хочет или чувствует, когда занимается определенной деятельностью). Подробнее о реализации этого навыка можно прочитать в разделе 4.1.

Personal Event Discussion Skill использует модель СОМеТ ConceptNet [16] чтобы выразить мнение диалоговой системы, задать вопрос или дать свой комментарий по поводу

20https://www.evi.com/

21https://www.goodreads. com/

действий пользователя, упомянутых в диалоге. Выдаваемое мнение зависит от тональности предсказанных аспектов здравого смысла. Этот навык описан более подробно в разделе 4.1.

Small-talk Skill задает вопросы, используя выписанные вручную сценарии для 25 тем, таких как любовь, спорт, работа, домашние животные, и т.д. Сценарий включается в случае, если пользователь прямо просит говорить на одну из этих тем, а также Small-talk Skill сам предлагает темы для обсуждения, если пользователь хочет сменить тему на любую другую. Все сценарии состоят из 4-10 вопросов с простым ветвлением диалога, основанном на ответах пользователя да/нет.

Event-oriented Skills выдают ответы на часто задаваемые вопросы, факты, и содержат небольшие сценарии для обсуждения Рождества, Нового Года, чемпионата «Super Bowl», кинопремии Оскар и дня Святого Валентина.

Misheard Automatic Speech Recognition Skill использует аннотации от ASR Processor (см. раздел 7.1) для переспрашивания пользователя, если уверенность системы ASR слишком низкая.

Шаблонные навыки с удалёнными сервисами

CoBotQA отвечает на фактоидные вопросы, а также выдает факты об извлеченных сущностях для запросов вида «fact about» («факт о») и «fun fact about» («забавный факт о»). Он реализован на основе удалённого сервиса Cobot Q&A. Этот сервис работает с обычным текстом, мы ограничиваем его реплики одним-двумя предложениями и дополняем небольшими фразами, похожими на выражение своего мнения. Если пользователь спрашивает о мнении по деликатным темам, CoBotQA отказывается выражать мнение и предоставляет факт по указанной теме.

Weather Skill использует сервис OpenWeatherMap 22, чтобы получить прогноз погоды для локации, про которую спрашивает пользователь. Навык включается, когда соответствующее намерение обнаружено аннотатором Intent Catcher.

News Skill представляет популярные последние новости о сущностях или темах с помощью новостного API23 . Навык активируется, либо если пользователь сам запросил новости, либо если к фразе другого навыка метод link-to добавилось предложение узнать срочные новости, и пользователь его принял. Трехшаговый сценарий начинается с представления заголовка новости. Если пользователь соглашается получить более подробную информацию, то навык выдает описание новости и запрашивает мнение пользователя. После этого News Skill дает пользователю выбор между двумя случайно выбранными популярными темами (например, спорт, политика и другие) для продолжения разговора о новостях. На этом этапе пользователь может выбрать предложенную тему или запросить свою. Если аннотатор NER обнаруживает некую сущность на этом шаге, навык начинает сценарий сначала. Когда пользователь больше не хочет говорить о новостях, навык использует параметр link-to, чтобы переключить тему на другую, поддерживаемую другими сценарными навыками.

Game Skill говорит с пользователем о компьютерных играх. Он предлагает статистику по популярным играм за последний год, прошедший месяц и прошлую неделю. Он также может предоставить подробную информацию о конкретной игре на основе базы данных. Этот навык использует базы данных игр, их рейтинги и другую информацию, полученную из RAWG API24.

Coronavirus Skill был создан в связи с начавшейся пандемией коронавируса COVID-19. Он извлекает данные о количестве случаев коронавируса и смертей в разных локациях из источников Центра системных наук и инженерии Университета Джона Хопкинса25. Навык выдает шаблонные реплики, используя эти данные и набор собранных вручную

22https://openweathermap.org/

23https://newsapi.org/

24https: //rawg. io/

25https://github.com/CSSEGISandData/COVID-19

фраз о фактах и рекомендациях CDC (Центры по контролю и профилактике заболеваний). Coronavirus Skill также учитывает аннотации из аннотатора Emotion Classifier.

Short-Story Skill рассказывает пользователю короткие истории трёх категорий : (1) истории на ночь, такие, как басни или нравоучительные истории, (2) страшные и (3) смешные истории. Навык включается на tell_me_a_story намерение от Intent Catcher или может включаться сам по себе при соответствующем контексте.

Генеративные навыки

TransferTransfo26 - это sequence-to-sequence модель вероятностной генерации текста от HuggingFace [38]. Модель была разработана для решения задачи Persona Chat из конкурса ConvAI2. Модель обучена генерировать реплики с учетом описания персоны. Реплики TransferTransfo в диалоговом агенте DREAM иногда повторялись или противоречили предыдущим высказываниям. Чтобы исключить повторы, мы добавили фильтрацию гипотез по пороговому значению количества общих слов с последними высказываниями в контексте диалога. Чтобы выбрать гипотезы, не противоречащие контексту, мы использовали модель, обученную на наборе данных Dialog NLI [39]. Мы также пробовали использовать краткое описание новостной статьи вместо описания персоны, но ответы модели часто содержали информацию, лишь слабо связанную с новостной статьей, и логическая связность ответов ухудшалась. Нам не удалось достичь такого качества модели, который бы позволил исключать противоречивые ответы.

Ранжирующие навыки

ConveRT Reddit Retrieval Skill использует модель ConveRT [40] для получения векторных представлений реплик. Модель ConveRT имеет меньшее число параметров и работает быстрее, чем модели векторных представлений на основе модели BERT, при этом имеет сопоставимое качество векторных представлений. Модель возвращает реплики-кандидаты, ранжируя пары контекст-реплика по косинусной близости соответствующих векторных представлений. Контекст получается конкатенацией реплик из истории диалога. Модель была обучена на большом наборе комментариев с сайта Reddit, что говорит о заложенной разговорной стилистике. Около двух миллионов комментариев были собраны с сайта Reddit и отфильтрованы сервисами CoBot Conversation Evaluation и Toxic Classifier. В результате в окончательном наборе реплик-кандидатов для ранжирования осталось 80 ООО комментариев.

NER-Skill на Reddit для именованной сущности, распознанной с помощью Amazon Evi27 в реплике пользователя, ищет сообщения из набора сообщений Reddit с упоминанием этой сущности. После этого ответ формулируется так, как будто диалоговая система недавно узнала что-то об этой сущности из Reddit. Затем диалог продолжается переходом к разговору о других связанных именованных сущностях (количество ссылок ограничено графом знаний Amazon Evi).

TF-IDF-retrieval извлекает ответ из базы диалогов нашей системы и реальных пользователей с высокой оценкой за последний месяц. В частности, навык использует векторные представления TF-IDF, обученные на наборах TopicalChat [23], PersonaChat [8] и Wizards-of-Wikipedia [41]. Для каждого высказывания пользователя модель ищет ближайшую по косинусному расстоянию фразу пользователя или бота и возвращает следующую фразу с уверенностью, равной косинусному расстоянию, но ограниченной некоторой константой.

TF-IDF-retrieval Skills on Topical Chat - это набор ранжирующих навыков, работающих по аналогии с TF-IDF-retrieval, и покрывающих различные популярные темы: книги, развлечения, мода, фильмы, музыка, политика, технологии, спорт и животные. Набор реплик-кандидатов для этих навыков получен из датасета Topical Chat [23].

26https://github.com/huggingface/transfer-learning-conv-ai

2 7 evi url

Topical Chat ConveRT Retrieval Skill использует ту же модель, что и ConveRT Reddit Retrieval Skill, но возвращает данные из набора данных Topical Chat [23].

7.4. Выборщик ответа

Response Selector (Выборщик Ответа) - это компонент диалогового агента DREAM, который принимает окончательное решение об ответе, который будет возвращен пользователю. Response Selector считывает из Dialogue State реплики-кандидаты, возвращенные вызванными навыками и аннотированные при помощи Response Annotators. Response Selector не ограничивается выбором окончательного ответа только из возможных ответов, но также может составить окончательный ответ как комбинацию реплик-кандидатов.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Текущая реализация Response Selector основана на эвристиках и полученной эмпирическим путем формуле выбора ответа. Планируется, что следующая версия будет использовать обучаемую модель ранжирования (подробности см. в разделе 4.2). Response Selector фильтрует реплики-кандидаты с учетом аннотаций Blacklist Words, Toxic Classifier и Dialog Termination. Если реплика повторяется в контексте диалога, то уверенность у этой реплики-кандидата понижается. На следующем этапе каждому кандидату присваивается взвешенная сумма его уверенности и параметров, выданных моделью CoBot Conversation Evaluator. Наконец, выбирается ответ с наибольшим значением. Затем к ответу могут быть присоединены имя пользователя, если оно известно, или link-to вопросы. Итоговая реплика возвращается пользователю и проходит пост-обработку с помощью Response Annotators.

8. Инфраструктура диалоговой системы DREAM

Мы использовали Docker AWS Cloud Formation28 для начальной настройки кластера CPU Docker Swarm. Чтобы добавить в кластер Docker Swarm машины с графическим процессором, потребовалось некоторая доработка вручную. Для поднятия диалоговой системы DREAM потребовалось шесть экземпляров m5.xlarge без графического процессора и два экземпляра g4dn.xlarge с графическим процессором29 для поддержки нагрузки не менее

пяти запросов в секунду. Для развертывания системы используется docker-compose - это

чп

позволяет значительно упростить запуск диалогового агента локально или запускать в прокси-режиме, когда часть системы поднимается на отдельных серверах, часть локально. Мы использовали отдельный экземпляр ЕС2 с MongoDB для хранения истории диалогов Dialogue State. Схема инфраструктуры диалоговой системы DREAM представлена на рис. 6.

Для мониторинга кластера мы использовали Swarmprom31. Это набор инструментов для мониторинга Docker Swarm с помощью Prometheus, Grafana, cAdvisor, Node Exporter, Alert Manager, а также с использованием Unsee для мониторинга кластера. Swarmprom позволяет отслеживать использование вычислительных мощностей и памяти с помощью автоматических сообщений в Slack. Для управления контейнерами Docker в одном веб-интерфейсе мы использовали Portainer32.

У нас было три отдельные среды инфраструктуры для трех версий диалоговой системы: dev (последняя актуальная версия), Production А и Production В. На этапе подготовки к релизу мы разворачивали нашу последнюю актуальную версию и сами тестировали их вручную. Production А и Production В версии использовались для А/В-тестов. Обычно мы делали один релиз в день. Если после первичного тестирования были обнаружены критические ошибки, то за ним следовали еще один или два срочных релиза с исправлениями.

28https://docs.docker.com/vl8.09/docker-for-aws/

29https://www.ec2instances.info

30требования к оборудованию: машина с 32 ГВ ОЗУ, графический процессор с 16 ГВ памяти (g4dn.2xlarge)

31https://github.com/stefanprodan/swarmprom

32https://www.portainer.io

Рис. 6. Инфраструктура диалоговой системы DREAM. Ядро диалоговой системы DREAM им-плементировано при помощи фреймворка DcepPavlov Agent (DP-Agerit). Он управляет сервисами: Skills, Annotators, Skill Selector и Response Selector и поднят на машинах AW S ЕС2 с Docker Swarm. История Dialogue State хранится на отдельной машине с MorigoDB. Функция AWS Lambda проксирует HTTP-запросы от ASR в диалоговую систему DREAM. Инфраструктура тестирования состоит из Telegram-ботов для взаимодействия со всей dev-версией диалоговой системы или только с отдельными навыками. Инструменты аналитики диалогов и панель инструментов находятся на отдельной машине ЕС2. Также имеется мониторинг кластеров и приложений с настроенными оповещениями на электронную почту и в Slack

Выбор между Production А и Production В для пользователя был определен на стороне AWS Lambda. Обычно мы распределяли пользователей но разным группам в соотношении 50/50.

Поскольку каждый навык представляет собой отдельное приложение и контейнер внутри нашего ренозитория, это позволило нам работать, не беспокоясь о том, что изменения в одном навыке могут повлиять на другие навыки. Кроме того, мы настроили непрерывную интеграцию с Jcnkins^, который запускает статический анализ кода и тесты.

Журналы легирования приложений (dp-agent, аннотаторы, навыки, сервисы) находятся в CloudWateh34. Ошибки в приложениях легируются в Sentry'io. Это платформа для мониторинга приложений, которая позволяет находить проблемы в реальном времени. Она отправляет уведомления но email и в Slack каждый раз, когда любой компонент диалоговой системы возвращает ошибки.

Помимо этого, у нас было два бота в Telegram36, которые позволяли нам тестировать dev-всрсию диалоговой системы без устройств Amazon Echo и вне консоли разработчика Amazon. Первый Telegram-бот был текстовым интерфейсом для всего агента DREAM, тогда как второй позволял разговаривать с каждым навыком но отдельности.

'"https : //www. jenkins. io/

,Mhttps : //aws . amazon.com/cloudwatch/

^"https://sentry.io

,i6https : //telegram, org

9. Аналитические инструменты

В конце каждого разговора платформа Alexa Prize запрашивает у полвзователя рейтинг «по шкале от 1 до 5. насколвко bbi хотели бы иоговоритв с этим ботом еще раз?» [42]. Mbi разработали миогофуикционалвную аналитическую систему для мониторинга статуса диалоговой системы с разнв1х точек зрения, начиная от количества диалогов, среднего рейтинга диалогов и рейтингов навыков при А/В-тестировании, причин окончания диалога, а также последнего наввжа в диалоге. Вся эта информация представлена на веб-панели управления с визуализацией, созданной с помощвю пакета plotly37.

Диалоговая система DREAM - это диалоговый агент с большим количеством навыков, поэтому нам важно пониматв вклад каждого наввжа в рейтинг всего диалога. Однако, посколвку рейтинги доступнв1 толвко для диалога целиком, прямое измерение рейтингов каждого наввжа невозможно. Вместо этого mbi оценивали вклад отделвного наввжа по тому, сколько раз он был использован в диалоге, а также по тому, насколвко близко наввж находится к концу диалога. В предположении, что вклад реплики в рейтинг диалога w экспоненциалвно убвшает с расстоянием от последней реплики, рейтинг каждого наввжа для данного разговора рассчитвшается как:

wt =

С'

I a •

a • Yt + (1 - a) • wt-',

t = 1

t e [2, T]

(1)

где = 1 если ¿-я реплика относится к наввжу и У^ = 0 в противном случае; Т - это полная длина диалога.

Для наввжа л рейтинг за все диалоги Я8 ввшисляется следующим образом:

R* =

Е (wsj • Rj)

3='_

m

Е Wsj

3 = '

(2)

где Rj - рейтииг ^^^го ^^алога, т - общее число диалогов; ^ ^^^ наввжа л в диалоге Пример визуализации рейтинга наввжа для разнвк релизов показан на рис. 7. На панели для визуализации также еств дополнителвнвю графики рейтингов наввжов для коротких диалогов (содержащих 7 полвзователвских реплик или меньше) и длинных диалогов (содержащих болвше 7 полвзователвских реплик).

Рис. 7. Реплики навыков в зависимости от релиза, ЕМА (0.5). Мы наблюдаем, как в процессе разработки и доработки меняются рейтинги различных навыков. У Coronavirus Skill рейтинги флуктуируют, когда у ConveRT Reddit Retrieval рейтинги достаточно стабильны. В этот промежуток времени Coronavirus Skill постоянно дорабатывался, a ConveRT Reddit Retrieval практически не изменялся

37https://plotly.com/

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

Был введен ряд более подробных диаграмм для отслеживания рейтингов навыков за последние диалоги, среднего времени диалога и среднего количества высказываний. Например, диаграмма для отслеживания оценок навыков по последним диалогам была разработана для отслеживания изменений, произошедших в течение дня, чтобы команда могла оперативно реагировать на отзывы пользователей на основе оценок. Диаграмма с распределением оценок на основе версий позволила нам быстро определить причину изменения рейтинга, будь то растущее число высоких (5) или низких (1) оценок. Есть несколько диаграмм, используемых для анализа роли навыков в конечном результате диалога, а также для того, чтобы увидеть, кто инициировал завершение диалога: пользователь, Alexa или сама диалоговая система.

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

Чтобы отслеживать эффективность постоянно обновляемых навыков, а также экспериментальных компонентов платформы DccpPavlov Agent, мы проводили А/В-тестирование. Обычно каждый день запускался один новый А/В-тест. Панель управления предоставляет доступ к отдельной странице со списком всех актуальных А/В-тестов.

Каждая страница с А/В-тестами показывает как высокоуровневую статистику каждой тестируемой версии, так и несколько общих диаграмм, которые позволяют сравнивать эти версии друг с другом во время и после окончания теста. Сюда входят медианные и средние оценки диалогов для диалогов с рейтингом в обеих версиях, медианное и среднее количество высказываний в диалоге, а также общее количество диалогов. Распределение оценок для версий сравнивалось на основе теста Манна-Уитни.

Основное внимание в таблицах А/В-тестов уделяется выявлению различий в производительности навыков между экспериментами. Мы обнаружили, что частота вызовов каждого навыка в каждой версии дает простое и полезное руководство для дальнейших) исследования, пример показан на рис. 8.

А/В tests: 9.3.0/9.1.4-ехр.2: Skills was selected, relative, by version

Рис. 8. А/В-тостированио: выбраииыо в качество финального ответа навыки по версиям, в процентном соотношении. Число ответов от Movie Skill сильно отличается в зависимости от версии в связи с разными базами данных фильмов

9.1. Профилирование диалогов

Несмотря на то, что статистические данные дают общее представление о производительности диалоговой системы DREAM, а также ее отдельных версий в рамках А/В-

тестирования, для более глубокого понимания требуется подробное профилирование диалогов - изучение накопившихся данных либо на уровне каждого отдельного диалога или на уровне каждой отдельной реплики. Для этой задачи мы разработали инструмент профилирования с веб-интерфейсом к базе данных диалогов, проведенных диалоговой системой DREAM.

С помощью инструмента профилирования диалогов разработчики могут искать интересующие разговоры по различным параметрам, таким, как даты, продолжительность разговора, отзывы пользователей, рейтинги, активные навыки, тексты высказываний, пользователей, а также версии системы. Исследователь может выбрать количество разговоров и выкачать выбранные разговоры во внутреннем формате JSON для дальнейшего анализа.

Диалог из базы данных можно открыть на странице профилирования разговора, показанной на рис. 9. Эта страница предоставляет полную информацию о диалоге. У каждой реплики пользователя есть аннотации, и эта страница позволяет подробно изучать детали каждой аннотации каждой реплики. Помимо этого, для каждой реплики человека предоставляются все возможные реплики-кандидаты, выданные навыками, выбранными в ответ на эту реплику (если уверенность реплики-кандидата больше 0).

id: None

user_telegram_id: 1310694361

date_start: 2020-03-09 20:44:14.585000

rating: None

feedback: None

version: None

Human ► hey

program_y ► [0.98] Hello, this is an Alexa Prize Socialbot! How are you?

К [9.21] i am good

annotations: blacklisted_words asr

toxic_classification

sentiment_classification sentseg

emotion_classification cobot_nounphrases

intent_catcher

ner

cobot_dialogact cobot_offensiveness cobot_topics sentrewrite

{'inappropriate': False, 'profanity': False, 'restricted_topics': False} {'asr_confidence': 'undefined'}

{'identity_hate': 0.001391083002090454, 'insult': 0.0009717643260955811, 'obscene': 0.0011026859283447266, 'severe_toxic': 0.000519484281539917, 'sexual_explicit': 0.0011189923388883471, 'threat': 0.0014490284956991673, 'toxic': 0.0031117659527808428} {'text': ['neutral', 0.7067931294441223]} {'punct_sent': 'i am good.', 'segments': ['i am good.']}

{'text': {'anger': 0.26374366879463196, 'fear': 0.24129608273506165, 'joy': 0.36896824836730957, 'love': 0.35394933819770813, 'sadness':

0.22239618003368378, 'surprise': 0.2018464207649231, 'neutral': 0.9992038607597351}} []

{'cant_do': {'confidence': 0.0, 'detected': 0}, 'doing_well': {'confidence': 0.9999911785125732, 'detected': 1}, 'dont_understand': {'confidence': 0.0, 'detected': 0}, 'exit': {'confidence': 0.0, 'detected': 0}, 'lets_chat_about': {'confidence': 0.0, 'detected': 0}, 'no': {'confidence': 0.0, 'detected': 0}, 'opinion_request': {'confidence': 0.0, 'detected': 0}, 'repeat': {'confidence': 0.0, 'detected': 0}, 'stupid': {'confidence': 0.0, 'detected': 0}, 'tell_me_a_story': {'confidence': 0.0, 'detected': 0}, 'tell_me_more': {'confidence': 0.0, 'detected': 0}, 'topic_switching': {'confidence': 0.0, 'detected': 0}, 'weather_forecast_intent': {'confidence': 0.0, 'detected': 0}, 'what_can_you_do': {'confidence': 0.0, 'detected': 0}, 'what_is_your_job': {'confidence': 0.0, 'detected': 0}, 'what_is_your_name': {'confidence': 0.0, 'detected': 0}, 'what_time': {'confidence': 0.0, 'detected': 0}, 'where_are_you_from':

{'confidence': 0.0, 'detected': 0}, 'who_made_you': {'confidence': 0.0, 'detected': 0}, 'yes': {'confidence': 0.0, 'detected': 0}} [[]]

{'intents': ['General_ChatIntent'],'topics': ['Phatic']}

{'text': ['non-toxic'],'confidence': [3.785888e-06],'is_blacklisted': ['not blacklist']} {'text': ['Phatic']}

{'clusters': [], 'modified_sents': ['hey.', 'Hello, this is an Alexa Prize Socialbot! How are you?', 'i am good.']}

hypotheses: dummy_skill

{'text': "Sorry, probably, I didn't get what you meant.", 'confidence': 0.5, 'type': 'dummy'} {'text': 'do you like cardi b?', 'confidence': 0.5, 'type': 'topic_question'} movie_tfidf_retrieval {'text': 'she said it was an emotional time when she realized it was going to be too hard on her body.', 'confidence': 0.5315528782184245}

{'text': " I'M happy for you! WHAT'S your favorite TV Series? ", 'confidence': 0.98, 'ssml_tagged_text':' IYM happy for you! WHATYS your favorite TV Series?'}

cobotqa {'text': "That's good to hear.", 'confidence': 0.95}

► [1.20] I'M happy for you! WHAT'S your favorite TV Series?

program_y

Рис. 9. Страница для профилирования диалогов. Диалог приведен исключительно в иллюстративных целях, это не является диалогом с реальным пользователем

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

Литература

1. Pichl J.j Marek P., Konrad J. [et al.]. Alquist 2.0: Alexa prize socialbot based on subdialogue models // 2nd Proceedings of Alexa Prize (Alexa Prize 2018). 2018.

2. Chen C.-Y., Yu D., Wen W. [et al.}. Gunrock: Building a human-like social bot by leveraging largescale real user data // 2nd Proceedings of Alexa Prize (Alexa Prize 2018). 2018.

3. Dai A.M., Le Q.V. Semi-supervised sequence learning // Advances in neural information processing systems. 2015. P. 3079-3087.

4. Peters M., Neumann M., Iyyer M. [et al.}. Deep contextualized word representations // Proceedingsof the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. V. 1 (Long Papers). 2018. P. 2227-2237.

5. Radford A., Narasimhan K., Salimans T., Sutskever I. Improving language understanding bvgenerative pre-training // URL https://s3-us-west-2. amazonaws. com/openaiassets/rese-arch-covers/languageunsupervised/language understanding paper, pdf. 2018.

6. Devlin J., Chang M.-W., Lee K., Toutanova K. BERT: Pre-training of deep bidirectional transformers for language understanding // Proceedings of the 2019 Conference of theNorth American Chapter of the Association for Computational Linguistics: Human Lan-guage Technologies, Volume 1 (Long and Short Papers). Minneapolis, Minnesota : Association for Computational Linguistics, 2019. Jun. P. 4171-4186. Access mode: https://www.aclweb.org/anthologv/N19-1423.

7. Gopalakrishnan K., Hedayatnia B., Chen Q. [et al.}. Topical-Chat: Towards Knowledge-Grounded Open-Domain Conversations // Proc. Interspeech 2019. 2019. P. 1891-1895. Accessmode: http://dx.doi.org/10.21437/Interspeech.2019-3079.

8. Zhang S., Dinan E., Urbanek J. [et al.}. Personalizing dialogue agents: I have a dog, do you have pets too? // Proceedings of the 56th Annual Meeting of the Association for ComputationalLinguistics. V. 1: Long Papers. Melbourne, Australia : Association for Computa-tional Linguistics, 2018. Jul. P. 2204-2213. Access mode: https://www.aclweb.org/anthologv/P18-1205.

9. Dinan E., Roller S., Shuster K. [et al.}. Wizard of wikipedia: Knowledge-powered conversation alagents // arXiv preprint arXiv:1811.01241. 2018.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

10. Reddy S., Chen D., Manning C.D. Coqa: A conversational question answering challenge // CoRR. 2018. V. abs/1808.07042.—1808.07042.

11. Choi E., He H., Iyyer M. [et al.}. Quae: Question answering in context // CoRR. 2018. V. abs/1808.07036.—1808.07036.

12. MacAvaney S., Yates A., Cohan A., Goharian N. Cedr: Contextualized embeddings for document ranking // Proceedings of the 42nd International ACM SIGIR Conference on Research and Development in Information Retrieval. 2019. P. 1101-1104.

13. Nogueira R., Cho K. Passage re-ranking with bert // arXiv preprint arXiv:1901.04085. 2019.

14. Kuratov Y., Yusupov I., Baym,u,rzina D. [et al.}. Dream technical report for the alexa prize 2019 // Alexa Prize Proceedings. 2020.

15. Burtsev M., Seliverstov A., Airapetyan R. [et al.}. Deeppavlov: Open-source library for dialoguesvstems // Proceedings of ACL 2018, System Demonstrations. 2018. P. 122-127.

16. Bosselut A., Rashkin H., Sap M. [et al.}. COMET: Commonsense transformers for automatic knowledge graph construction // Proceedings of the 57th Annual Meeting of the Associationfor Computational Linguistics. Florence, Italy : Association for Computational Linguistics, 2019. Jul. P. 4762-4779. Access mode: https://www.aclweb.org/anthologv/P19-1470.

17. Speer R., Chin J., Havasi C. Conceptnet 5.5: An open multilingual graph of general knowledge // Thirty-First AAAI Conference on Artificial Intelligence. 2017.

18. Ke G., Meng Q., Finley T. [et al.}. Lightgbm: A highly efficient gradient boosting decision tree // Advances in Neural Information Processing Systems 30 / Ed.

by I. Guvon, U.V. Luxburg, S. Bengio et al. Curran Associates, Inc., 2017. P. 3146-3154. Access mode:http://papers.nips.cc/paper/6907-lightgbm-a-highly-efficient-gradient-boosting-decision-tree.pdf.

19. 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.

20. Sang E.F.T.K., Meulder F.D. Introduction to the conll-2003 shared task: Language-independent named entity recognition // Proceedings of Conference on Computational NaturalLanguage Learning. 2003. P. 142-147.

21. Danescu-Niculescu-Mizil C., Lee L. Chameleons in imagined conversations: A new approachto understanding coordination of linguistic style in dialogs // Proceedings of the Workshopon Cognitive Modeling and Computational Linguistics, ACL 2011. 2011. Access mode:https://www.cs.cornell.edu/ cristian/Cornell_Movie-Dialogs_Corpus.html.

22. Li Y., Su H., Shen X., Li W., Cao Z., Niu Sh. Dailvdialog: A manually labelled multi-turn dialogue dataset // Proceedings of The 8th International Joint Conference on Natural Language Processing (IJCNLP 2017). 2017. Access mode: http://yanran.li/dailvdialog.html.

23. Gopalakrishnan K., Behnam H., Chen Q., Gottardi A., Kwatra S., Venkatesh A., Gabriel R., Hakkani-Tur D. Topical-chat: Towards knowledge-grounded open-domain conversations // Proceedings of Interspeech. 2019.

24. Radford A., Wu J., Child R. [et al.}. Language models are unsupervised multitask learners 11 OpenAI Blog. 2019. V. 1. P. 8.

25. Adiwardana D.D.F., Luong M.-T., So D.R. [et al.}. Towards a human-like open-domain chatbot // ArXiv. 2020. V. abs/2001.09977.

26. Burtsev M., Logacheva V., Malykh V. [et al.}. The first conversational intelligence challenge // The NIPS'17 Competition: Building Intelligent Systems. Springer, Cham, 2018. P. 25-46.

27. Dinan E., Logacheva V., Malykh V. [et al.}. The second conversational intelligence challenge (convai2) 11 The NeurIPS'18 Competition. Springer, Cham, 2020. P. 187-208.

28. Logacheva V., Burtsev M., Malykh V. [et al.}. A dataset of topic-oriented human-to-chat-bot dialogues. 2018.

29. Logacheva V., Malykh V., Litinsky A., Burtsev M. Convai2 dataset of non-goal-oriented human-to-bot dialogues // The NeurIPS'18 Competition. Springer, Cham, 2020. P. 277-294.

30. Cer D. M., Yang Y., yi Kong S. [et al.}. Universal sentence encoder // ArXiv. 2018. V. abs/1803.11175.

31. Socher R., Perelygin A., Wu J. [et al.}. Recursive deep models for semantic compositionalitv overa sentiment treebank // Proceedings of the 2013 conference on empirical methods in natural language processing. 2013. P. 1631-1642.

32. Zhang Y., Song L., Song D., Guo P., Zhang J., Zhang P. Scenariosa: A large scale conversational database for interactive sentiment analysis // arXiv preprint arXiv:1907.05562. 2019.

33. Khatri C., Hedayatnia B., Venkatesh A. [et al.}. Advancing the state of the art in open domain dialog systems through the alexa prize // ArXiv. 2018. V. abs/1812.10757.

34. Khatri C., Goel R., Hedayatnia B. [et al.}. Contextual topic modeling for dialog systems // 2018 IEEE Spoken Language Technology Workshop (SLT). IEEE. 2018. P. 892-899.

35. Khatri C., Hedayatnia B., Goel R. [et al.}. Detecting offensive content in open-domain conversations using two stage semi-supervision // ArXiv. 2018. V. abs/1811.12900.

36. Yi S., Goel R., Khatri C. [et al.}. Towards coherent and engaging spoken dialog response generation using automatic conversation evaluators // Proceedings of the

12th International Conferenceon Natural Language Generation. Tokyo, Japan : Association for Computational Linguistics,2019. Oct. Nov. P. 65-75. Access mode: https: / / www.aclweb.org/anthology/W19-8608.

37. 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.

38. Wolf T., Sanh V., Chaumond J., Delangue C. Transfertransfo: A transfer learning approach forneural network based conversational agents // arXiv preprint arXiv:1901.08149. 2019.

39. Welleck S., Weston J., Szlam A., Cho K. Dialogue natural language inference // Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. Florence, Italy : Association for Computational Linguistics, 2019. Jul. P. 3731-3741. Access mode: https://www.aclweb.org/anthologv/P19-1363.

40. Henderson M., Casanueva I., Mrksic N. [et al.\. Convert: Efficient and accurate conversational representations from transformers // arXiv preprint arXiv: 1911.03688. 2019.

41. Dinan E., Roller S., Shuster K., Fan A., Auli M., Weston J. Wizard of wikipedia: Knowledge-powered conversation agents // Proceedings of ICLR. 2018.

42. Ram A., Prasad R., Khatri C. [et al.\. Conversational ai: The science behind the alexa prize. 2018. 1801.03604.

References

1. Pichl J., Marek P., Konrad J., et al, Alquist 2.0: Alexa prize socialbot based on subdialogue models. 2nd Proceedings of Alexa Prize (Alexa Prize 2018). 2018.

2. Chen C.-Y., YuD., Wen W., et al, Gunrock: Building a human-like social bot by leveraging largescale real user data. 2nd Proceedings of Alexa Prize (Alexa Prize 2018). 2018.

3. Dai A.M., Le Q.V. Semi-supervised sequence learning. Advances in neural information processing systems. 2015. P. 3079-3087.

4. Peters M., Neumann M., Iyyer M., et al, Deep contextualized word representations. Proceedingsof the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. V. 1 (Long Papers). 2018. P. 2227-2237.

5. Radford A., Narasimhan K., Salimans T., Sutskever I. Improving language understanding bvgenerative pre-training. URL https://s3-us-west-2. amazonaws. com/openaiassets/rese-arch-covers/languageunsupervised/language understanding paper, pdf. 2018.

6. Devlin J., Chang M.-W., Lee K., Toutanova K. BERT: Pre-training of deep bidirectional transformers for language understanding. Proceedings of the 2019 Conference of theNorth American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers). Minneapolis, Minnesota : Association for Computational Linguistics, 2019. Jun. P. 4171-4186. Access mode: https://www.aclweb.org/anthologv/N19-1423.

7. Gopalakrishnan K., Hedayatnia B., Chen Q., et al, Topical-Chat: Towards Knowledge-Grounded Open-Domain Conversations. Proc. Interspeech 2019. 2019. P. 1891-1895. Accessmode: http://dx.doi.org/10.21437/Interspeech.2019-3079.

8. Zhang S., Dinan E., Urbanek J., et al.,Personalizing dialogue agents: I have a dog, do you have pets too? Proceedings of the 56th Annual Meeting of the Association for ComputationalLinguistics. V. 1: Long Papers. Melbourne, Australia : Association for Computa-tional Linguistics, 2018. Jul. P. 2204-2213. Access mode: https: //www. aclweb .org / anthologv/P 18-1205.

9. Dinan E., Roller S., Shuster K., et al, Wizard of wikipedia: Knowledge-powered conversation alagents. arXiv preprint arXiv:1811.01241. 2018.

10. Reddy S., Chen D., Manning C.D. Coqa: A conversational question answering challenge. CoRR. 2018. V. abs/1808.07042.—1808.07042.

11. Choi E., He H., Iyyer M., et al, Quae: Question answering in context. CoRR. 2018. V. abs/1808.07036.—1808.07036.

12. MacAvaney S., Yates A., Cohan A., Goharian N. Cedr: Contextualized embeddings for document ranking. Proceedings of the 42nd International ACM SIGIR Conference on Research and Development in Information Retrieval. 2019. P. 1101-1104.

13. Nogueira R., Cho K. Passage re-ranking with bert. arXiv preprint arXiv:1901.04085. 2019.

14. Kuratov Y., Yusupov I., Baym,urzina D., et al, Dream technical report for the alexa prize 2019. Alexa Prize Proceedings. 2020.

15. Burtsev M., Seliverstov A., Airapetyan R., et al, Deeppavlov: Open-source library for dialoguesvstems. Proceedings of ACL 2018, System Demonstrations. 2018. P. 122-127.

16. Bosselut A., Rashkin H., Sap M., et al, COMET: Commonsense transformers for automatic knowledge graph construction. Proceedings of the 57th Annual Meeting of the Associationfor Computational Linguistics. Florence, Italy : Association for Computational Linguistics, 2019. Jul. P. 4762-4779. Access mode: https://www.aclweb.org/anthologv/P19-1470.

17. Speer R., Chin J., Havasi C. Conceptnet 5.5: An open multilingual graph of general knowledge. Thirty-First AAAI Conference on Artificial Intelligence. 2017.

18. Ke G., Meng Q., Finley T., et al., Lightgbm: A highly efficient gradient boosting decision tree. Advances in Neural Information Processing Systems 30. Ed. by I. Guvon, U.V. Luxburg, S. Bengio et al. Curran Associates, Inc., 2017. P. 3146-3154. Access mode:http://papers.nips.cc/paper/6907-lightgbm-a-highlv-efiicient-gradient-boosting-decision-tree.pdf.

19. 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.

20. Sang E.F.T.K., Meulder F.D. Introduction to the conll-2003 shared task: Language-independent named entity recognition. Proceedings of Conference on Computational NaturalLanguage Learning. 2003. P. 142-147.

21. Danescu-Niculescu-Mizil C., Lee L. Chameleons in imagined conversations: A new approachto understanding coordination of linguistic style in dialogs. Proceedings of the Workshopon Cognitive Modeling and Computational Linguistics, ACL 2011. 2011. Access mode:https://www.cs.cornell.edu/ cristian/Cornell_Movie-Dialogs_Corpus.html.

22. Li Y., Su H., Shen X., Li W., Cao Z., Niu Sh. Dailvdialog: A manually labelled multi-turn dialogue dataset. Proceedings of The 8th International Joint Conference on Natural Language Processing (IJCNLP 2017). 2017. Access mode: http://yanran.li/dailvdialog.html.

23. Gopalakrishnan K., Behnam H., Chen Q., Gottardi A., Kwatra S., Venkatesh A., Gabriel R., Hakkani-Tur D. Topical-chat: Towards knowledge-grounded open-domain conversations. Proceedings of Interspeech. 2019.

24. Radford A., Wu J., Child R., et al., Language models are unsupervised multitask learners. OpenAI Blog. 2019. V. 1. P. 8.

25. Adiwardana D.D.F., Luong M.-T., So D.R., et al., Towards a human-like open-domain chatbot. ArXiv. 2020. V. abs/2001.09977.

26. Burtsev M., Logacheva V., Malykh V., et al, The first conversational intelligence challenge. The NIPS'17 Competition: Building Intelligent Systems. Springer, Cham, 2018. P. 25-46.

27. Dinan E., Logacheva V., Malykh V., et al, The second conversational intelligence challenge (convai2). The NeurIPS'18 Competition. Springer, Cham, 2020. P. 187-208.

28. Logacheva V., Burtsev M., Malykh V., et al, A dataset of topic-oriented human-to-chat-bot dialogues. 2018.

29. Logacheva V., Malykh V., Litinsky A., Burtsev M. Convai2 dataset of non-goal-oriented human-to-bot dialogues. The NeurIPS'18 Competition. Springer, Cham, 2020. P. 277-294.

30. Cer D. M., Yang Y., yi Kong S., et al, Universal sentence encoder. ArXiv. 2018. V. abs/1803.11175.

31. Socher R., Perelygin A., Wu J., et al, Recursive deep models for semantic compositionalitv overa sentiment treebank. Proceedings of the 2013 conference on empirical methods in natural language processing. 2013. P. 1631-1642.

32. Zhang Y., Song L., Song D., Guo P., Zhang J., Zhang P. Scenariosa: A large scale conversational database for interactive sentiment analysis. arXiv preprint arXiv:1907.05562. 2019.

33. Khatri C., Hedayatnia B., Venkatesh A., et al, Advancing the state of the art in open domain dialog systems through the alexa prize. ArXiv. 2018. V. abs/1812.10757.

34. Khatri C., Goel R., Hedayatnia B., et al, Contextual topic modeling for dialog systems. 2018 IEEE Spoken Language Technology Workshop (SLT). IEEE. 2018. P. 892-899.

35. Khatri C., Hedayatnia B., Goel R., et al, Detecting offensive content in open-domain conversations using two stage semi-supervision. ArXiv. 2018. V. abs/1811.12900.

36. Yi S., Goel R., Khatri C., et al, Towards coherent and engaging spoken dialog response generation using automatic conversation evaluators. Proceedings of the 12th International Conferenceon Natural Language Generation. Tokyo, Japan : Association for Computational Linguistics,2019. Oct. Nov. P. 65-75. Access mode: https://www.aclweb.org/anthologv/WT19-8608.

37. 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.

38. Wolf T., Sanh V., Chaumond J., Delangue C. Transfertransfo: A transfer learning approach forneural network based conversational agents. arXiv preprint arXiv:1901.08149. 2019.

39. Welleck S., Weston J., Szlam A., Cho K. Dialogue natural language inference. Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. Florence, Italy : Association for Computational Linguistics, 2019. Jul. P. 3731-3741. Access mode: https: //www. aclweb .org / anthologv/P 19-1363.

40. Henderson M., Casanueva I., Mrksic N., et al, Convert: Efficient and accurate conversational representations from transformers. arXiv preprint arXiv:1911.03688. 2019.

41. Dinan E., Roller S., Shuster K., Fan A., Auli M., Weston J. Wizard of wikipedia: Knowledge-powered conversation agents. Proceedings of ICLR. 2018.

42. Ram A., Prasad R., Khatri C., et al, Conversational ai: The science behind the alexa prize. 2018. 1801.03604.

Поступим в редакцию 21.07.2021

i Надоели баннеры? Вы всегда можете отключить рекламу.