Machine Learning и не только: как устроены чат-боты

Автор Категория , , ,
Machine Learning и не только: как устроены чат-боты

Продолжая тему прикладного использования искусственного интеллекта в различных бизнес-кейсах, сегодня мы расскажем о том, как устроены чат-боты, при чем здесь большие данные (Big Data) и машинное обучение (Machine Learning), системы распознавания речи и понимания естественного языка.

Какие бывают чат-боты

Все многообразие чат-ботов можно разделить на 2 большие категории [1]:

  • работающие по заранее известным командам на основе ограниченного списка ключевых слов. Их гораздо проще создавать, однако практическое применение таких чат-ботов ограничено ключевыми словами, при отсутствии которых в запросе бот не сможет помочь пользователю.
  • самообучающиеся на базе алгоритмов Machine Learning и методов понимания естественного языка (NLU, Natural Language Understanding). Создавать такие боты намного сложнее, однако на практике они оказываются намного эффективнее за счет накопления знаний на основе предыдущих взаимодействий с пользователем.

С учетом развития ИТ и повсеместной цифровизации с помощью Big Data и Machine Learning, не сложно предположить, что будущее – за самообучающимися чат-ботами. Не случайно аналитическое агентство Gartner считает их наиболее перспективными технологиями, которые сейчас на пике интереса, наряду с методами обработки естественного языка (NLP, Natural Language Processing), распознавания речи и голосовыми пользовательскими интерфейсами [2].

Как работают чат-боты

Вообще типовой цикл работы любого чат-бота можно представить цепочкой следующих действий [3]:

  1. получение запроса от клиента;
  2. разбор запроса – понимание высказывания и определение намерений клиента в контексте его бизнес-кейса;
  3. выполнение действий согласно заранее определенному сценарию (скрипту) по обработке клиентского кейса;
  4. генерация ответа на естественном языке;
  5. сохранение запроса, контекста и параметров диалога для обработки последующих обращений;
  6. отправка ответа клиенту.

Наиболее сложным этапом работы является разбор клиентского запроса. Как мы уже отметили раньше, самообучающиеся чат-боты на базе 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 MessengerSlackTelegram и пр.). Как правило, мессенджер предоставляет 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]:

Еще больше готовых решений можно найти в Botlist или Telegram Bot Store [1].

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

чат-боты
Чат-бот – это не только автоматизация взаимодействия с клиентом, но и аналитика этого процесса

Как успешно применять чат-ботов и другие технологии больших данных и машинного обучения для цифровизации своего бизнеса, вы узнаете на наших образовательных курсах в лицензированном учебном центре обучения и повышения квалификации руководителей и ИТ-специалистов (менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data) в Москве:

Источники

  1. https://proglib.io/p/chat-bots-intro/amp/
  2. https://www.gartner.com/smarterwithgartner/top-trends-on-the-gartner-hype-cycle-for-artificial-intelligence-2019
  3. https://m.habr.com/ru/company/just_ai/blog/364149/
  4. https://ai.facebook.com/blog/ccmatrix-a-billion-scale-bitext-data-set-for-training-translation-models/
  5. https://sendpulse.com/ru/blog/chat-bot-services
  6. https://habr.com/ru/post/412863/