От чат-ботов к разговорному ИИ: разработка умных ассистентов для бизнеса

Инструменты и особенности создания голосовых ассистентов.

Материал подготовлен при поддержке Aimylogic

Весной 2018 года «Яндекс» открыл бизнесу доступ к «умному» ассистенту «Алиса». Клиенты теперь могут обращаться к компаниям через «Алису» со смартфона или «Яндекс.Станции». В конце июля «Google Ассистент» стал доступен на русском языке. Российские компании теперь могут разрабатывать свои приложения для общения с клиентами через помощника от Google.

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

«Алиса» помогает клиентам компаний «Утконос», «Папа Джонс», McDonald’s, S7 Airlines получать необходимую информацию и заказывать услуги. Чтобы научить голосового ассистента ориентироваться в услугах бизнеса, нужны специальные разговорные навыки, которые создают разработчики. Каждый навык — «умный» разговорный бот, которого используют в качестве службы поддержки, отдела бронирования или интерактивного магазина.

Разговоры с S7 Airlines, «Макдоналдс», «Папа Джонс» в «Алисе»
Разговоры с S7 Airlines, «Макдоналдс», «Папа Джонс» в «Алисе»

Рынок чат-ботов после стадии пиара и экспериментов перешёл в стадию гонки технологий и измерения эффективности инструмента. Понятие «чат-бота» заменяется более масштабным и полноценным. Теперь это разговорный искусственный интеллект, Conversational AI. Компании применяют его для общения с клиентами на сайтах, в мессенджерах, мобильных приложениях и умных устройствах.

За «разговорностью» стоят технологии распознавания и синтеза речи, технология понимания естественного языка, алгоритмы машинного обучения. Компания Just AI разрабатывает конструктор разговорных ботов Aimylogic. В нём можно собрать «умного» ассистента, который понимает живой язык и использует алгоритмы машинного обучения.

Иллюзия понимания

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

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

Понимание — субъективная «величина», которую сложно измерить. Microsoft проводила исследование эффективности системы распознавания речи и системы ответов на вопросы по заданному набору тестов — в 2017-2018 годах обе оказались эффективнее людей, пройдя тест с минимумом ошибок. Это хорошие новости для разработчиков интеллектуальных систем.

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

Чат-боты учатся как дети

Обучение чат-бота похоже на обучение человека. Люди с детства умеют отделять важное от шума, учитывать контекст разговора, понимать разное произношение одних и тех же фраз. К примеру, родители понимают, что «мама, молись и кайся» на самом деле «Мама, “Малыш и Карлсон”». А продавец в магазине понимает, что фраза «такое же, но с перламутровыми пуговицами» означает желание сменить товар. Но чат-бот — машина, его сначала нужно научить такому пониманию с помощью технологий.

«Умный» ассистент должен верно преобразовывать звуки в слова, понимать смысл вопроса, учитывать контекст беседы и отвечать адекватно контексту. Все это — комплекс речевых технологий и технологий понимания естественного языка (NLU). Обучение делится на несколько этапов.

1. Обучение пониманию речи и текста

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

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

Чат-бот использует языковую и акустическую модели. Они предварительно обучаются на огромном объёме данных, накапливают опыт.

Акустическая модель в реальном времени переводит звук в цифровой формат, нарезает на множество микро-отрезков и относит каждый отрезок к определённой части слова. Таких соотношений много: языковая модель выстраивает последовательность, не путая похожие по звучанию части слов и целые слова. Она учитывает, с какой частотой соседствуют звуки.

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

2. Работа со смыслом: технология Natural Language Understanding

Фраза пользователя переведена в текст, но её смысл и желание клиента не определены. «Умный» ассистент начинает действовать как человек — соотносит фразу с образцами, на которых учился, и находит наиболее подходящие по смыслу. Он мыслит классами, соотнося новый запрос с одним из них. А классы формируются в зависимости от сферы применения бота: банковские услуги, оформление заказов, консультации по грузоперевозкам.

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

3. Работа с контекстом

Технология внутри чат-бота должна учитывать контекст беседы. К примеру, вопрос «как будет “забронировать номер” по-английски?» можно распознать и как бронирование номера, и как запрос к переводчику.

Какие технологии нужны разговорным ботам

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

К ним относится подход к обработке (rule-based, статистический, гибридный), технологии распознавания и синтеза речи, технологии внедрения чат-бота в бизнес-процессы компании (облачные или локальные). Это огромный и очень перспективный рынок, которому эксперты прогнозируют рост до $16 млрд к 2021 году.

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

Зачем чат-боту нужны лингвисты

Лингвисты формулируют правила, по которым чат-бот учится понимать смысл сказанного, а не просто ищет «ключи» в тексте. Эти специалисты умеют программировать и пишут сценарий поведения бота на специальном языке. В компании Just AI, которая занимается разработкой «умных» ботов, позиция программиста ботов называется «лингвист-разработчик». Такие специалисты учат ботов понимать числительные, написанные текстом, распознавать смысл фразы с опечатками, сленгом или неточным порядком слов.

Пример: лингвист учит чат-бота понимать местоимения, синонимы, числительные, описывая правила на языке Just AI DSL
Пример: лингвист учит чат-бота понимать местоимения, синонимы, числительные, описывая правила на языке Just AI DSL

Почему чат-боты несовершенны

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

Шутки на тему «понимания» смысла чат-ботами никогда не закончатся
Шутки на тему «понимания» смысла чат-ботами никогда не закончатся

Чат-бот на 80% состоит из готовых ответов, которыми его наполнили. Без примеров ни одна нейросеть не сможет полноценно понимать запросы, а хорошо написанный программный код не способен продать клиенту товар или оформить возврат в магазин. Всё решает полезный контент. Чем лучше компания знает своих клиентов, чем больше информации сможет предоставить об их запросах, тем умнее будет бот.

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

Разговорного чат-бота можно создать в конструкторе Aimylogic

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

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

23 комментария

Если вы имеете большой опыт работы с Алисой то проконсультируйте плз - правильно я понимаю что если вы вызвали один навык, то вы в нем и остаетесь?
Т.е. для того чтобы воспользоваться другим навыком нужно закрыть один и вызвать другой?
Нельзя пользоваться одновременно разными навыками, верно?

2

Да, все так. Когда Алиса слышит фразу "Активируй навык такой-то", она переключается на бота, который запрограммирован на сценарий соответствующего навыка соответствующей компании или разработчика. И для того, чтобы запустить другой навык или просто поболтать с Алисой, нужно из текущего навыка выйти (и разработчик должен обязательно в сценарии предусмотреть этот момент - как пользователь может закончить выполнение сценария навыка).

1. Присоединяюсь к вопросу
2. Еще хотел спросить, почему чат боты взяли на себя ровно то, что и так отлично было реализовано на веб-сайтах - нажал на кнопку - заполнил форму - получил некий промежуточный результат, тогда как все остальное приходится пробивать точно также, как на телефоне, обычное меню с ожиданием:
Вы хотите 1) На елку влезть 2) На сосну влезть 3) Заплатить еще денег ...
Ну давить 0 ... 0 ... 0 ... 0 ... переключение на оператора ... наконец оператор отвечает - и ты ему стесняясь и запинаясь спрашиваешь как бы лучше избавиться от иголок ели и смолы сосны в труднодоступных местах.
А оператор сообщает что это входит в условие ранее заключенного контракта, и приятное покалывание с прилипанием ко всем стульям/креслам - это не баг, а фича, после использования их продукта.
3. Так вот, чат бот рассматриваю только как возможность продолбать стандартную стену отчуждения (проект типовой, высота стены 10 метров, ширина 2 метра, возможны осадки в виде кипящего масла и обстрел лучниками и баллистами) - и все же добраться до живого человека - но только в чате.

Комментарий удалён модератором

Именно. Давайте упростим так, чтобы усложнить.
1. Как здорово,что можно позвонить и все спросить! Или приехать и все спросить!
2. Мне надоело общаться, я хочу все находить в Internet
3. Мне надоело разбираться, я хочу чтобы мне помогали онлайн ..
4. Мне надоело читать и вникать, отмечать опции ..
5. Я буду все рассказывать компьютеру, а он спотыкаясь и переспрашивая будет направлять меня в магазин, где я снова смогу окунуться в рай 1996 года, где продавцы-консультанты расскажут мне про ассортимент!

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

Круто! Но в конструкторе у вас вижу лишь "добавить фразу"... как у того же DialogFlow и прочих аналогов... можете показать это самое самообучение?

У нас вебинар будет 7 августа. Приходите, все покажем и расскажем: https://events.webinar.ru/JustAI/1368901