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

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

ОБНОВЛЕНИЕ 17 июля 2018: Часть 2 уже вышла, ее можно найти здесь.

Попадание в поток

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

Вот два примера, которые показывают вам другой подход к потоку: Первый - это бот Facebook Messenger по имени Эрвин, который задает маленькие загадки.

Второй - от одного из наших заказчиков, SumUp.

Давайте сначала посмотрим на Эрвина. Написав «Начнем», я предоставил новый запрос. Затем Эрвин попросил свою обученную модель дать ответ. Здесь первый ответ был загадкой.

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

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

Звучит достаточно просто, правда? Но как обученная модель чат-бота принимает решение, что делать дальше?

Обучение модели

В своей таксономии, вопрос третий, я говорил о двух разных типах потоков: на основе правил и динамических.

Первый вариант легко понять.

Для ботов, основанных на правилах, обученная модель определяется человеком в форме операторов «если-то».

Они точно сообщают боту, что делать в каждой конкретной ситуации:

  • Если пользователь пишет «привет», ответьте «как дела?»
  • Если пользователь говорит: «Я хочу забронировать рейс», ответьте: «Сообщите, пожалуйста, город вылета и пункт назначения».

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

Есть несколько компаний, предлагающих визуальные инструменты SaaS для создания ботов на основе правил, такие как Chatfuel, конструктор ботов от recast.ai или flow.ai. Существуют также менее наглядные инструменты, такие как wit.ai (приобретено Facebook) или dialogflow (приобретено Google).

Второй тип модели немного сложнее.

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

Я добавил тренировочные данные на рисунок сверху:

Как это работает? Предположим, у вас есть история чата из 100 000 взаимодействий между сервисным агентом и пользователем. Алгоритм машинного обучения может использовать эти данные обучения, чтобы преобразовать их в сжатую обученную модель, которая вычисляет, какой ответ наиболее вероятен для данного запроса - на основе того, что агенты-люди сказали пользователям. Данные обучения определяют обученную модель.

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

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

Установка бота бесплатно

Википедия определяет машинное обучение как:

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

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

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

Продолжение следует…

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

Если вам все это интересно, подпишитесь на меня, и мы будем уведомлены!
-

ОБНОВЛЕНИЕ: ЧАСТЬ 2 уже доступна.