AzoftR&DУмные чат-боты для бизнеса: зачем и как разрабатывать ассистента с ИИ

Умные чат-боты для бизнеса: зачем и как разрабатывать ассистента с ИИ

Иван Ожиганов Декабрь 29, 2018

чатботы для бизнеса

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

Казалось бы, Василий задал только пару вопросов. Но за 5 минут он определился, когда Алёна хочет поехать в отпуск и какую сумму готова потратить. За эти же 5 минут умный чат-бот прорекламировал туроператора и помог бизнесу сэкономить на турагенте. Алёна довольна и уже подумывает о новом купальнике. Чат-бот Василий отвечает на вопросы следующего клиента. А владелец турагентства подсчитывает прибыль.

Этой историей никого не удивить. Рынок чат-ботов для бизнеса продолжает активно развиваться. По прогнозам экспертов, к 2021 году доля технологий обработки естественного языка в мировой экономике вырастет до $16 миллиардов. Современные компании видят эти перспективы и используют ботов как новый канал коммуникации с клиентами.

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

Общение с чат-ботом на ноутбуке

Как работает умный чат-бот

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

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

Сегодня чат-боты показывают чудеса понимания:

  • способны задавать вопросы по теме
  • дают точные ответы
  • учитывают контекст разговора

Чтобы чат-бот работал, создателям необходимо выполнить 4 условия:

  • задать темы для беседы
  • подобрать образцы фраз
  • обучить чат-бота
  • поставить чат-боту конкретную задачу

Какому бизнесу нужен чат-бот с ИИ

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

Чем полезен чат-бот для бизнеса

Боты пригодятся для:

    консультаций по продуктам и услугам
  • прямых продаж
  • технической поддержки клиентов
  • опросов и рассылок

Чат-бот позволяет бизнесу:

  • поддерживать связь с клиентами 24/7
  • автоматизировать обработку типовых запросов
  • экономить на ресурсах — операторы колл-центра или консультанты больше не нужны
  • снизить репутационные риски

Как мы создали умный чат-бот для HR-отдела

В Azoft работает около 100 человек, есть социальная программа для сотрудников и календарь корпоративных мероприятий. Корпоративный портал содержит много полезной информации. Но часто бывает так: у Пети возник вопрос, Пете лень искать ответ на портале, Петя пишет в чатик HR-ам “Хочу получить компенсацию за спорт. А гонки на карте относятся к спортивным мероприятиям?”. Таких вопросов может быть до 10 за день, и это только от 1 человека.

Так появилась задача разработать умного чат-бота, который сможет правильно определить, что требуется сотрудникам Azoft, и ответить на их вопросы. Мы провели исследование и создали умного чат-бота для HR-отдела компании. В основе виртуального ассистента HR-ов заложили алгоритм рекуррентной нейронной сети.

Этапы проекта

1. Разработали архитектуру чат-бота, который не задаёт вопросов пользователю.

Перед стартом проекта мы поставили 2 ключевых требования к чат-боту:

  • Чат-бот должен отвечать на запросы клиента.
  • Чат-бот должен вести диалог, наиболее близкий к живой беседе, чтобы создавать у пользователя “эффект присутствия”.

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

  • Перевести фразу пользователя из текстового представления в числовой вектор.
  • Обработать числовой вектор классификатором пользовательского намерения (User Intent Classifier)
  • Выбрать фразу, выполняющую запрос пользователя, из списка заранее заготовленных фраз, которые соотносятся с тем, что хочет пользователь (User Intent — Намерение пользователя).

Простейшая архитектура чат-бота

Простейшая архитектура чат-бота

2. Определили намерения пользователя с помощью дерева решений.

Решили попробовать деревья принятия решений, чтобы определить намерения пользователя. Для обработки фраз потребовалось перевести их в числовой формат.

Когда переводили фразы пользователей в числовые векторы, использовали алгоритм bag-of-words. Bag-of-words позволяет преобразовать фразу пользователя в числовой вектор, где количество чисел равно количеству слов в "словарном запасе" чат-бота. Если какое-нибудь слово (например, "петрушка") появится в предложении два раза (пример: "Хочу купить петрушку, но не знаю где петрушку найти"), то в числовом векторе соответствующее этому слову число будет равно двум (2). Если слово ни разу не появилось (к примеру, "сельдерей"), то соответствующее число будет равно нулю (0).

Здесь числовой вектор предложения выглядел как массив чисел, где каждая цифра – это число слова, соответствующего ему по индексу в данном предложении. По факту, числовой вектор определяет, с какой частотой появляются слова в предложении, и объединяет эти частоты в общий массив данных.

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

bag-of-words

Пример, как преобразовывали предложение в числовой вектор по принципу bag-of-words

В таком векторе учитываются все слова, которые могут встретиться во фразе пользователя.

Итоговая схема взаимодействия пользователя с чат-ботом на основе дерева решений

Чтобы классифицировать намерения пользователя, использовали DecisionTreeClassifier из библиотеки scikit-learn.

Алгоритм bag-of-words оказался довольно точным и справлялся даже с ситуациями, где встречались незнакомые слова. Вероятно, алгоритм научился привязываться к конкретным словам, чтобы определять, чего хочет пользователь.

Диалог с умным чат-ботом на основе алгоритма bag-of-words

3. Разработали архитектуру чат-бота, который задаёт вопросы и отвечает на запросы пользователя.

Чат-бот на основе bag-of-words свободно отвечал на вопросы, но не создавал иллюзии живого диалога. Он просто не способен сам задавать вопросы пользователю. Поэтому на новом этапе проекта мы решили развивать у чат-бота навык задавать вопросы. И начали менять программную архитектуру бота.

Для начала добавили новую сущность UserIntent (Намерение пользователя). Она хранит информацию о намерении пользователя, наборе фраз, которые могут выражать это намерение, и действия, которые надо выполнить в ответ на запрос пользователя.

Ещё одна сущность — Action (Действие). Она помогает определять, какие действия нужно выполнить чат-боту, чтобы ответить на запрос пользователя. Это изменение позволило не только отвечать пользователю заранее прописанной строкой, но и производить действия, которые помогут создать строку ответа пользователю.

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

Помимо Action и UserIntent, мы добавили сущность DataEntity, отражающую данные, которые необходимо запросить у пользователя на выполнение Action.

Когда чат-бот не знает намерений пользователя, то ждёт входную фразу. Пользователь говорит что-нибудь и чат-бот пытается распознать намерение пользователя из этой фразы. Если ему это удается, то он пытается выполнить действие, чтобы удовлетворить запрос пользователя. Если данных для выполнения действия хватает, то чат-бот просто выполняет его и “забывает” просьбу пользователя, так как считает, что уже её выполнил. Если данных для выполнения действия недостаточно — чат-бот обращается к пользователю с запросом предоставить данные. Так и происходит диалог между пользователем и чат-ботом.

архитектура взаимодействия

Архитектура взаимодействия пользователя и чат-бота

4. Изменили модель в пользу нейронных сетей

Модель дерева решений на основе bag-of-words показала неплохие результаты распознавания письменной речи. Но когда мы увеличили число намерений пользователя, вырос словарь слов, который использует чат-бот. Это повлекло за собой рост элементов в векторах bag-of-words, получаемых при обработке фраз пользователя. В результате мы тратили всё больше времени на обучение чат-бота. И такая перспектива нас не устраивала.

Поэтому вместо алгоритма bag-of-words мы решили обучить нейронную сеть, чтобы определять намерения пользователя.

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

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

Затем мы остановились на модели нейронной сети с двунаправленным LSTM-слоем (Bi-Directional LSTM), потому что уже пробовали ее на других задачах с обработкой естественного языка (NLP).

Архитектура рекуррентной нейронной сети с двунаправленным LSTM-слоем

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

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

Пример диалога с чат-ботом на базе нейросети

5. Результат

Мы разработали умного чат-бота на основе нейросети, которая определяет по фразе пользователя, что он хочет. Наш чат-бот продемонстрировал точность понимания естественного языка в общении с человеком на 99,9%.

Исследование показало, что алгоритм word2vec подходит для получения числовых векторов в отличие от алгоритма bag-of-words, который расширяется прямо пропорционально количеству слов в используемом словаре.

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

Зачем развивать умных чат-ботов

Если ваш бизнес ежедневно работает с клиентами, вам нужен чат-бот. В первую очередь, это относится к B2C компаниям, где поток клиентов большой и регулярный. Но создать простой чат-бот и использовать его в мессенджере или live-чате недостаточно. Всё больше клиентов регулярно обращаются к компаниям через цифровые каналы — сайты, мобильные приложения, мессенджеры. Значит пора автоматизировать процессы взаимодействия с клиентами.

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

Вы тоже можете разработать умного чат-бота для своего бизнеса. Осталось только начать.

Комментарии

комментарии