Идея устного общения человека с машиной на естественном языке уже давно нашла свое воплощение в научной фантастике (робот C-3PO в «Звездных войнах», компьютер HAL в «Космической одиссее 2001 года» и т. п.). Первые реальные автоматизированные собеседники появились еще в 1960-х [1], но тогда подобные системы было очень сложно программировать даже для узкой области применения — приходилось жестко кодировать массу сложных правил, так как не было другой возможности быстро и надежно понять намерение пользователя по его сообщениям. Со временем эта задача упростилась благодаря повышению мощности оборудования параллельной обработки и развитию технологий понимания естественного языка на основе глубинных нейронных сетей [2] — появился новый конкурентный рынок.

Сегодня Facebook Messenger, Telegram и другие мессенджеры с их минималистичными интерфейсами и функционалом применяются миллионами пользователей для взаимодействия с друзьями, коллегами и компаниями [3]. В поисках новых возможностей создатели мессенджеров начали предлагать различные пути разработки на их основе автоматизированных собеседников, имитирующих действия человека.

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

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

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

Чат-бот

На рисунке показаны типичные компоненты архитектуры чат-бота. После получения вопроса от пользователя (например, «Какая погода в Москве?») компонент понимания языка (language understanding, LU) анализирует его для выяснения намерения и связанных сведений (намерение: «узнать погоду»; сущности: [место: «Москва»]). Когда запрос понят, происходит выполнение действия и извлечение информации (activity execution, information retrieval, AEIR) из источников данных (data source, DS) чат-бота (например, отправка запроса к API метеорологического сайта и получение ответа). После этого модуль создания ответа (response generation, RG) формирует отклик («Сейчас в Москве +23, солнечно»). Компонент управления диалогом поддерживает беседу, обновляет ее контекст (текущее намерение, идентифицированные сущности или отсутствующие сущности, которые нужны для выполнения запроса пользователя), запрашивает недостающие сведения (например, «В каком городе вы хотели бы узнать погоду?»), обрабатывает пользовательские уточнения (скажем, если тот ответил: «А какая погода будет завтра?») и задает вопросы для продолжения беседы («Не желаете ли получить прогноз на всю неделю?»).

Архитектура чат-бота

 

Ограничения

Все компоненты, показанные на рисунке, обычно реализуются с помощью правил или моделей, обученных на готовых наборах данных, однако эти методы автоматизации неэффективны — разные модули показывают низкие результаты в различных ситуациях: LU — при интерпретации пользовательских запросов, ввиду ограниченного по размеру и разнообразию объема учебных данных; DM (Dialogue management) — при запросах недостающей информации, ввиду недоработок в программировании структуры диалога; AEIR, DS — при извлечении запрошенных сведений или выполнении действий (поскольку чат-бот поддерживает лишь ограниченный круг намерений, он переключается на традиционные методы извлечения информации (например, с помощью поисковой системы) и предоставляет пользователю документы, а не факты) RG — демонстрирует неспособность отображения информации в удобной форме, дает неуместные ответы по причине недоработки шаблонов ответов, механизмов сопоставления вопросов и ответов, методов синтеза отклика или учебных данных.

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

Вычисления при участии человека

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

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

Частично автоматизированные чат-боты

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

Человеко-машинные чат-боты

Человеко-машинные чат-боты

 

Назначение и область применения

Чат-боты могут служить следующим целям: информирование (Chorus, Guardian, CRQA, Insurify, SnapTravel, AskWiz, Facebook M) — когда пользователь получает сведения, например, о расписаниях; выполнение транзакций (Guardian, InstructableCrowd, Legion: Mobile, Calendar.help, Nurtz, Insurify, SnapTravel, Facebook M) — когда пользователь меняет состояние другой системы, например, покупает билет на поезд; ведение диалога (Chorus) — когда пользователь взаимодействует с чат-ботом ради самой беседы. Некоторые боты служат нескольким целям (к примеру, Guardian — и информационный, и транзакционный). Области применения можно разграничить следующим образом: чат-боты общего назначения (Chorus, Facebook M), готовые ответить практически на любой запрос; многопрофильные (Guardian, CRQA, AskWiz), способные применяться в нескольких областях; узкопрофильные (InstuctableCrowd, Legion: Mobile, Calendar.help, Nurtz, Insurify, SnapTravel), предназначенные для какой-то конкретной области.

Архитектура

В большинстве систем люди принимают участие при анализе смысла пользовательских запросов. В Chorus, InstructableCrowd и Legion: Mobile за понимание высказываний полностью отвечают люди, в остальных этот процесс частично автоматизирован, а AskWiz динамически переадресует запросы людям только в том случае, если автоматизированная система не справляется.

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

В Chorus, Legion: Mobile, Nurtz и AskWiz выполнение действий и извлечение информации полностью возложено на людей. Системы, больше полагающиеся на автоматизацию, выполняют следующие действия: отправка вызова API (Guardian), выполнение команд Android (InstructableCrowd), назначение мероприятия в календаре (Calendar.help), покупка страховки (Insurify) и бронирование гостиницы (SnapTravel). Системы, полагающиеся на людей, обеспечивают управление смартфоном пользователя в удаленном режиме (Legion: Mobile) и корректировку текстов (Nurtz). Некоторые системы полагаются и на компьютеры, и на людей. Например, CRQA получает результаты веб-поиска, а новые вопросы готовят люди. Facebook M поддерживает широкий круг действий, выполняемых по-разному: вызов автомобиля Uber происходит автоматически, а обращение в клиентскую поддержку Amazon совершает человек.

Во всех системах люди готовят ответы для пользователей, не считая Nurtz, которая просто отправляет отредактированный текст без комментариев. В Chorus, Guardian, InstructableCrowd и Legion: Mobile, являющихся исследовательскими прототипами, ответы преимущественно составляются людьми. CRQA ранжирует отклики, выбирая лучший с помощью модели, заранее обученной с использованием ответов людей. Люди могут напрямую ответить пользователю чат-бота (например, AskWiz) либо голосуют, выбирая ответ для отправки (как в Chorus и CRQA), а в некоторых случаях составляют только часть ответов, а остальные формируются автоматически (Calendar.help).

У InstructableCrowd, Legion: Mobile и Nurtz отсутствуют внешние источники данных. В некоторых системах внешние источники выбирают только люди (Chorus, CRQA, AskWiz). Другие полагаются на сторонние сервисы, чтобы извлекать информацию для пользователя (Guardian делает это с помощью веб-API, CRQA обращается к сайтам вопросов-ответов, Insurify — к системам страховых компаний, а SnapTravel взаимодействует с турагентствами и отелями). Часть систем используют сторонние сервисы для извлечения информации о самом пользователе (Calendar.help получает такие сведения из пользовательского календаря). О Facebook M известно мало, но, скорее всего, этот чат-бот тоже пользуется всевозможными сторонними API и источниками данных.

Вычисления с участием человека

Во всех исследовательских системах в качестве источника услуг человека используют платформы краудсорсинга: у Calendar.help это проприетарная платформа, а остальные полагаются на краудсорсинговую площадку Amazon Mechanical Turk (MTURK). Отраслевые боты пользуются услугами фрилансеров (Nurtz, Insurify, AskWiz) и штатных сотрудников (SnapTravel, Facebook M).

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

Масштабирование систем, полагающихся на платформы краудсорсинга, ограничено числом доступных работников. У Calendar.help система выполняет последовательную эскалацию запроса: от автоматических алгоритмов (средств прогнозирования на основе машинного обучения) к микрозаданиям (структурированным задачам, к примеру по определению времени или места совещания) для людей, а затем к макрозаданиям (скажем, принять решение о том, как обработать конкретное сообщение электронной почты). Платформы, где используется труд удаленных исполнителей, масштабируются путем найма большего числа фрилансеров. При этом, чтобы уменьшить масштаб, действия не требуются, поскольку люди получают оплату только за выполненные задания. В случае платформ, где используется труд штатных работников (например, сотрудников сall-центра), для увеличения масштаба приходится увеличивать штат, а для уменьшения — увольнять работников или переводить их на другие должности.

Итоги

Приведем общий обзор ландшафта человеко-машинных чат-ботов.

Назначение и область применения

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

Архитектура

По цветовой разметке на рисунке видно, что исследовательские прототипы активно полагаются на краудсорсинг — они не рассчитаны на использование одновременно миллионами пользователей. Операторы отраслевых решений делают попытки контролировать расходы, отдавая предпочтение средствам сравнения с шаблоном, машинного обучения и обращаясь к услугам людей только в тех случаях, когда автоматические системы не справляются. Единственная отраслевая система, которая полагается преимущественно на людей, — AskWiz, но это часть бизнес-модели: каждый запрос к специалистам по технической поддержке оплачивается пользователем. CRQA — единственный пример, где люди и автоматизированные средства выполняют работу поровну.

Вычисления с участием человека

Источник исполнителей обычно соответствует уровню развития системы: для исследовательских прототипов предпочтительна площадка MTURK, для стартапов — фрилансеры, для крупных компаний вроде Facebook — штатные сотрудники. Основные факторы здесь — качество и приватность: Facebook и Microsoft не могут позволить себе низкокачественное выполнение работы, поэтому в последней пользуются услугами проверенных исполнителей, с которыми заключается договор о неразглашении сведений, а в Facebook полагаются на собственных штатных работников.

Распространенный принцип обеспечения выдачи ответов в режиме реального времени — постоянное ожидание исполнителями поступления заданий, для чего им либо отдельно платят, либо организуют посменную работу. В Chorus и InstructableCrowd применяется принцип избыточности, он увеличивает вероятность того, что кто-то быстро выполнит задание, но не гарантирует этого. На сегодня неясно, как добиться гарантии работы в реальном времени в случае сильных скачков числа запросов.

Системы на базе краудсорсинговых платформ легко масштабируются до определенных пределов, а системы, в которых используется труд фрилансеров, масштабируются с некоторой задержкой, обусловленной затратами времени на поиск новых исполнителей. Наибольшие затруднения с масштабированием — у чат-ботов, которые полагаются на штатных сотрудников. Именно поэтому Facebook M пока доступен только в отдельных регионах.

Нерешенные вопросы

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

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

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

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

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

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

Масштабируемость и работа в реальном времени. Человеко-машинные боты уже способны обслуживать тысячи пользователей (как, например, Facebook M). Для увеличения этого показателя до миллионов нужно добиться того, чтобы с ростом численности пользователей затраты на труд человека росли лишь ограниченно, и обеспечить выполнение заданий человека почти в реальном времени даже в условиях огромного их количества и ограниченного числа исполнителей.

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

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

Литература

  1. B. F. Green Jr., A. K. Wolf, C. Chomsky, K. Laughery. Baseball: An automatic question-answerer. In IRE-AIEE-ACM '61. — 1961. — P. 545–549.
  2. R. Socher, C. C. — Y. Lin, Y. N. Andrew, D. M. Christopher. Parsing natural scenes and natural language with recursive neural networks. In Proc. 28th Int. Conf. Mach. Learn. — 2011. — P. 129–136.
  3. Business Insider Intelligence, Messaging apps are now bigger than social networks. Business Insider, 2015. URL: http://www.businessinsider.com/the-messaging-appreport-2015-11 (дата обращения: 07.03.2019).

Павел Кучербаев (p.kucherbaev@tudelft.nl) — научный сотрудник; Алессандро Боззон  (a.bozzon@tudelft.nl) — доцент; Геерт-Ян Хубен, профессор, Делфтский технический университет.

Pavel Kucherbaev, Alessandro Bozzon, Geert-Jan Houben, Human-Aided Bots. IEEE Internet Computing, November/December 2018, IEEE Computer Society. All rights reserved. Reprinted with permission.