Продолжая тему прикладного использования искусственного интеллекта в различных бизнес-кейсах, сегодня мы расскажем о том, как устроены чат-боты, при чем здесь большие данные (Big Data) и машинное обучение (Machine Learning), системы распознавания речи и понимания естественного языка.
Какие бывают чат-боты
Все многообразие чат-ботов можно разделить на 2 большие категории [1]:
- работающие по заранее известным командам на основе ограниченного списка ключевых слов. Их гораздо проще создавать, однако практическое применение таких чат-ботов ограничено ключевыми словами, при отсутствии которых в запросе бот не сможет помочь пользователю.
- самообучающиеся на базе алгоритмов Machine Learning и методов понимания естественного языка (NLU, Natural Language Understanding). Создавать такие боты намного сложнее, однако на практике они оказываются намного эффективнее за счет накопления знаний на основе предыдущих взаимодействий с пользователем.
С учетом развития ИТ и повсеместной цифровизации с помощью Big Data и Machine Learning, не сложно предположить, что будущее – за самообучающимися чат-ботами. Не случайно аналитическое агентство Gartner считает их наиболее перспективными технологиями, которые сейчас на пике интереса, наряду с методами обработки естественного языка (NLP, Natural Language Processing), распознавания речи и голосовыми пользовательскими интерфейсами [2].
Как работают чат-боты
Вообще типовой цикл работы любого чат-бота можно представить цепочкой следующих действий [3]:
- получение запроса от клиента;
- разбор запроса – понимание высказывания и определение намерений клиента в контексте его бизнес-кейса;
- выполнение действий согласно заранее определенному сценарию (скрипту) по обработке клиентского кейса;
- генерация ответа на естественном языке;
- сохранение запроса, контекста и параметров диалога для обработки последующих обращений;
- отправка ответа клиенту.
Наиболее сложным этапом работы является разбор клиентского запроса. Как мы уже отметили раньше, самообучающиеся чат-боты на базе Machine Learning используют для этого методы NLU и NLP. Например, для текстовых чат-ботов процесс разбора включает следующие этапы [3]:
- предварительная обработка текста – токенизация (разбиение на слова), исправление опечаток, лемматизация и стемминг (определение нормальной формы слов и частей речи), отбрасывание стоп-слов (артикли, междометия, союзы и пр.), расширение запроса с помощью словарей синонимов, дополнение информацией о значимости отдельных слов, расширение запроса деревом синтаксического разбора и результатами разрешения местоимений, а также определение именованных сущностей.
- классификация запроса на основе примеров фраз и ML-алгоритмов или формальных правил (шаблонов), ранжирование гипотез классификации в соответствии с текущим контекстом беседы;
- извлечение параметров запроса из фразы пользователя.
Примечательно, что примерно до 2015 года при разработке чат-ботов, в основном, использовался подход на основе формальных правил (rule-based), суть которого состоит в выделении семантически значимых элементов фраз и их кодификации. Далее на основе этих результатов создавали сценарии диалогов с помощью скриптовых языков программирования [3], например, Javascript, PHP, Python [1]. Однако, после 2015 года развитие алгоритмов семантической близости текстов, технологий синтеза и распознавания речи, а также Big Data и Machine Learning привело к распространению новых подходов к классификации текстов и обучению NLU-систем [3]. В частности, здесь стоит отметить WikiMatrix и CCMatrix – огромные датасеты для NLP-задач и машинного перевода, основанном на определении семантической близости словосочетаний в разных языках [4]. Таким образом, большинство современных чат-ботов устроены на базе последних достижений в области Data Science: NLU и NLP-техники, методы распознавания речи и обработки текстов с помощью нейросетей и других инструментов искусственного интеллекта.
Как создать своего чат-бота: краткий обзор готовых решений
Как правило, чат-боты имеют следующую архитектуру [1]:
- серверная часть (backend), где собственно и выполняются работы по распознаванию запроса и формированию ответа;
- клиентская часть (frontend), обычно в виде мессенджера (Facebook Messenger, Slack, Telegram и пр.). Как правило, мессенджер предоставляет API и документацию по связи платформы backend’а с чат-интерфейсом бота через HTTP.
Сегодня можно создать собственного чат-бота с нуля, взяв специальные библиотеки или использовать полностью готовый сервис. Например, для любителей разработки подойдут следующие решения [1]:
- BotKit— open-source набор инструментов для создания ботов с подробной документацией;
- Claudia— конструктор чат-ботов для работы в AWS Lambda;
- Bottr– фреймворк на Node.js с готовым приложением для тестирования;
- wit.ai— сервис, который принимает текст или голосовые сообщения и использует NLP-методы для управления ответами на запросы;
- Chatfuel— инструмент для настройки Facebook Messenger или Telegram-ботов без пограммирования;
- motion.ai— сервис для создания чат-ботов;
- api.ai— сервис, использующий NLP-методы для создания ботов и определения возможные сценариев их общения с клиентами;
Отдельно перечислим веб-сервисы для самостоятельной настройки чат-ботов (конструкторы): SendPulse, Flow XO, ManyChat, Chatfuel, MobileMonkey, Chatbots BuilderBotmother, ChatBot.com [5]. В этом е ряду находится онлайн-сервис от Google – бесплатная платформа DialogFlow [6]. Также отметим уже готовые решения для различных отраслей деятельности [1]:
- сервисы и инструменты — Poncho, FindoBot, Trim;
- ритейл — Uber, Bly, TacoBot;
- Развлечения и новости — Digg, CNN, 2048bot;
- сервис обратной связи — Oratio, Troops, Helpbot.
Еще больше готовых решений можно найти в Botlist или Telegram Bot Store [1].
В заключение подчеркнем, что, помимо автоматизации обработки клиентских запросов, сокращения времени и затрат на этот процесс, чат-боты помогут внедрить бизнес-аналитику клиентского сервиса. В частности, анализируя уже обработанные кейсы, можно выявить «узкие места» (бутылочные горлышки) текущих бизнес-процессов, улучшить взаимодействие с клиентами, найти идеи для создания новых продуктов/услуг и оптимизировать деятельность компании.
Как успешно применять чат-ботов и другие технологии больших данных и машинного обучения для цифровизации своего бизнеса, вы узнаете на наших образовательных курсах в лицензированном учебном центре обучения и повышения квалификации руководителей и ИТ-специалистов (менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data) в Москве:
Источники
- https://proglib.io/p/chat-bots-intro/amp/
- https://www.gartner.com/smarterwithgartner/top-trends-on-the-gartner-hype-cycle-for-artificial-intelligence-2019
- https://m.habr.com/ru/company/just_ai/blog/364149/
- https://ai.facebook.com/blog/ccmatrix-a-billion-scale-bitext-data-set-for-training-translation-models/
- https://sendpulse.com/ru/blog/chat-bot-services
- https://habr.com/ru/post/412863/