Share This
Связаться со мной
Крути в низ
Categories
//«Отличается умом и сообразительностью». Как правильно выбрать архитектуру чат-бота

«Отличается умом и сообразительностью». Как правильно выбрать архитектуру чат-бота

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

otlichaetsja umom i soobrazitelnostju kak pravilno vybrat arhitekturu chat bota f630fb0 - «Отличается умом и сообразительностью». Как правильно выбрать архитектуру чат-бота

Чат-боты сейчас на подъёме. Компании стремятся сократить рутину, чтобы работникам не приходилось повторять однообразный набор процедур. Программы с этим справляются куда эффективнее. Благодаря IoT боты работают не только на сайтах, но и в ресторанах, банках, торговых центрах. Мы уже и не замечаем, как алгоритмы принимают наши заказы, бронируют отели и рейсы, оказывают техническую поддержку. Конечно, если они делают это правильно.

Для чего вам нужен бот?

otlichaetsja umom i soobrazitelnostju kak pravilno vybrat arhitekturu chat bota e42680c - «Отличается умом и сообразительностью». Как правильно выбрать архитектуру чат-бота

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

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

Разговоры с бизнес-ботами обычно занимают не более 15 минут и имеют определенную цель. Тревел-чат-боты предоставляет информацию о рейсах, отелях и турах, помогают найти и сделать заказ в соответствии с критериями пользователя. Google Assistant находит информацию, Uber bot принимает заказы на перевозку.

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

1. Намерение – контекст

otlichaetsja umom i soobrazitelnostju kak pravilno vybrat arhitekturu chat bota f4e405a - «Отличается умом и сообразительностью». Как правильно выбрать архитектуру чат-бота

При разработке бота сначала нужно определиться с намерениями пользователя, которые бот будет обрабатывать. Намерение (англ. intent) – это то, что хочет сделать пользователь. Выражение (англ. entity) – запрос, которым пользователь описывает намерение.

Пусть нужно создать чат-бота, c функцией будильника. Назовем класс для обработки этого намерения ALARM_SET. Пользователь может выразить намерение различными выражениями:

  • «Установить будильник на 10 утра»
  • «Разбуди меня в 10 утра»
  • «Включить напоминание, когда будет 10 утра»

Когда пользователь создает запрос, подпадающий под категорию, срабатывает ALARM_SET и чат-бот генерирует ответ.

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

  • Подробнее о намерениях (англ.)
  • Подробнее о выражениях (англ.)

2. Подход, основанный на шаблонах

otlichaetsja umom i soobrazitelnostju kak pravilno vybrat arhitekturu chat bota e2add12 - «Отличается умом и сообразительностью». Как правильно выбрать архитектуру чат-бота

Самый простой способ создания бота – использование шаблонов, подход rule-based чат-ботов. Его суть – указать возможный входящий вопрос пользователя и связанный с ним ответ.

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

Пример шаблона на AIML. Тегом pattern обозначен запрос пользователя, тегом template – ответ бота.

         <context>    <pattern>Какое у тебя имя?</pattern>    <template>Мое имя $(‘QUERY_RESULT’)</template> </context>      

Эвристика выбора правильного ответа может быть спроектирована различными способами – как классическим if-else, так и по модели машинного обучения.

Для ответов, построенных по шаблонам, часто используют опенсорсный движок ChatScript. Его удобно встраивать в пайплайн обработки естественного языка с речевыми тегами и синонимами, что повышает точность при сопоставлении шаблонов и пользовательского ввода. Библиотека не использует алгоритмы машинного обучения и сторонние API, но это можно настроить. Узнать об основных концепциях ChatScript и посмотреть пример построения чат-бота на ChatScript и JavaScript можно в этой статье (англ.).

  • Создание rule-based чат-бота на Python (англ.)
  • Туториалы по AIML (англ.)

3. Классификация интентов

otlichaetsja umom i soobrazitelnostju kak pravilno vybrat arhitekturu chat bota a1e515e - «Отличается умом и сообразительностью». Как правильно выбрать архитектуру чат-бота

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

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

Машинное обучение применяется совместно с алгоритмом классификации для поиска интентов в естественном языке. Такой алгоритм может быть построен с использованием библиотек машинного обучения, например scikit-learn, Keras (англ.), Tensorflow или PyTorch. Другой вариант – использовать один из облачных API: wit.ai, api.ai или Microsoft LUIS. Облачные API платные, но предоставляют готовый функционал, поэтому разработка будет быстрее и проще. Самостоятельная разработка сложнее и займет больше времени, но результат будет проще кастомизировать и расширять.

  • Сравнение облачных API для разработки чат-ботов (англ.)

Способы создания ответа

otlichaetsja umom i soobrazitelnostju kak pravilno vybrat arhitekturu chat bota ecae306 - «Отличается умом и сообразительностью». Как правильно выбрать архитектуру чат-бота

Сопоставление шаблонов, классификация намерений и извлечение контекста помогают понять сообщение пользователя. Теперь возникает вопрос: «Как сгенерировать ответ?»

Простейший способ – поместить некоторые значения в переменную, а потом обратиться в БД или к стороннему API.

         В: Сколько лет Илону Маску? О: Возраст $(‘Entity’) составляет $(‘Query result’)      

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

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

  1. Генеративное моделирование.
  2. Моделирование на основе поиска.

otlichaetsja umom i soobrazitelnostju kak pravilno vybrat arhitekturu chat bota 143035c - «Отличается умом и сообразительностью». Как правильно выбрать архитектуру чат-бота

Как работает бот при использовании моделирования на основе поиска

Моделирование на основе поиска проще строить, оно обеспечивает более предсказуемые результаты. При таком моделировании чат-бот использует интенты и контекст разговора для выбора наилучшего ответа из предопределенного статического списка сообщений. Такого бота можно создать с помощью библиотек TensorFlow (англ.) или NLTK (англ.).

  • Сравнение retrieval-based и generative архитектур
  • Использование глубокого обучения в создании чат-ботов

Заключение

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

Если вам интересны чат-боты, обратите внимание на другие наши публикации:

  • Чат-боты: введение от разработчика
  • Создаём чат-ботов для Slack: от простых до обученных ИИ

  • 0 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Свежие комментарии

    Рубрики

    About Author 01.

    Roman Spiridonov
    Roman Spiridonov

    Привет ! Мне 38 лет, я работаю в области информационных технологий более 4 лет. Тут собрано самое интересное.

    Our Instagram 04.

    Categories 05.

    © Speccy 2020 / All rights reserved

    Связаться со мной
    Close