Как в Альфа-Банке создали чат-бот, который понимает и отвечает, словно человек
Это был абсолютный тупик. Осенью 2021 года команда чат-бота пыталась найти решение: уже третий месяц автоматизация запросов клиентов в приложении Альфа-Банка и в мобильном банке Альфа-Онлайн плавала между 38-40% и никак не хотела повышаться. Вдобавок другие банки заняли весь пьедестал рейтинга Markswebb Chatbot Rank, в то время как наш чат-бот независимые эксперты поставили только на 7-е место. Всего за год игру удалось перевернуть: получить 55% автоматизации и абсолютное лидерство в рейтинге. Команды чат-бота и продвинутой аналитики рассказывают по шагам, как решали эту задачу.
1. Заменили иностранный движок на российский
До 2021 года движком чат-бота Альфа-Помощник был Google Dialogflow. У нас не было задачи создавать собственную модель искусственного интеллекта для анализа и обработки естественного языка, поэтому мы использовали проверенное решение. Алгоритмы Google Dialogflow умели работать с русским языком и речью, а политика кибербезопасности позволяла использовать облачные сервисы, вокруг которых надстроили микросервисную архитектуру. Это решение позволило поднять автоматизацию обработки запросов в чате до 38-40% при точности распознавания 90%.
Но для дальнейшего роста автоматизации пришлось искать другое решение. В конце 2021 мы провели исследование и выбрали компанию Just AI из Санкт-Петербурга. Альфа-Помощника перенесли на их решение JAICP, внутри которого есть свой NLP-движок (natural language processing — обработка естественного языка). Можно сказать, мы предвидели будущее: уже тогда использовали российское решение, хотя в тот момент никто и не думал об импортозамещении.
Параллельно мы развивали внутренние компетенции в Data Science и разработали несколько моделей для обработки информации и вывода ответов в чат-боте. В итоге в 2022 году автоматизацию удалось довести до 55%.
2. Улучшили понимание запросов пользователей
Обычно люди формулируют вопросы и намерения в виде реплик естественной, разговорной речи. Вот пример типичного звонка в контакт-центр: «Здравствуйте, подскажите, пожалуйста, я могу вот по телефону узнать сумму задолженности. Я так примерно знаю, но вот… Хотела… Не знаю там. Просто с сентября мы не платим и… ааа… считать сумму, которая мне приходит на ну в вот почтовый ящик или там какие-то проценты ещё бывают, не знаю».
Понять, о чём тут речь, довольно сложно. Можно выделить ряд ключевых слов: «сумма», «задолженность», «не платим», «проценты». И уже на их основе предположить, что нужна информация о просроченной задолженности по кредиту и начисленным процентам. Задача, которую пользователь формулирует в конкретной реплике, называется интент: «Я хочу узнать текущую сумму задолженности по кредиту с учётом просроченной выплаты и начисленных процентов». Чтобы обучить бот распознавать запросы, необходимо чётко сформулировать различия между интентами. Дата-сайентисты используют для этого кластеризацию запросов.
Ещё более простой и работающий подход — сформировать группу из специалистов контакт-центра и спросить, по каким вопросам чаще всего пишут люди. По сути это вариант анкетирования экспертов. Мы сделали и то, и другое.
3. Собрали команду асессоров и улучшили методологию разметки данных
Одни и те же данные всегда должны размечать несколько человек. Если это будет делать только один асессор, группы интентов окажутся очень «зашумленными» (это естественное следствие индивидуальных когнитивных искажений каждого человека), и алгоритмы будут их путать. Когда образец данных размечают несколько асессоров, точность разметки превышает 80%. Поэтому для разметки данных мы создали целое подразделение разметчиков, или асессоров.
Чтобы уменьшить число ошибок асессоров при разметке данных, команда дата-сайентистов решила проводить разметку иначе. При стандартном подходе разметчик должен ответить «Да» или «Нет» на вопрос: «Подходит ли интент к определённому классу?». Известно, что асессоры статистически чаще выбирают вариант «Да». В результате при обучении на таких данных алгоритм не сможет установить: «А не существует ли ещё более подходящий класс для такого интента?» Если вместо простого «да/нет» предложить асессорам выбрать «один вариант из нескольких альтернатив», то точность разметки повышается на 20-30%.
Кроме того, для упрощения процесса разметки дата-сайентисты внедрили нативную иерархию классов, которую уже используют в банке. Теперь любой вопрос пользователя можно связать либо с каким-то банковским продуктом (кредит, вклад, счёт и так далее), либо с каналом взаимодействия с банком (офис, мобильное приложение, прочее).
Также дата-сайентисты отказались от традиционных вариантов разметки в Excel и перевели весь процесс на open source решение Label Studio. Аналитики отбирают примеры, которые нужно разметить, и загружают туда задания для асессоров.Обучающая выборка бота состоит из 200 000 размеченных образцов данных — конкретных вопросов пользователей с установленным интентом. А количество интентов, которые алгоритмы чат-бота способны определить в реальном диалоге, выросло с 15 до 270, в ближайшее время их будет уже 350. Тогда как, например, в исследовании Markswebb задействовано только 50 наиболее популярных.
Раньше в тренировочных наборах данных для алгоритма было много простых примеров и мало сложных. Это приводило к тому, что на практике Альфа-Помощник мог ответить только на лёгкие вопросы. Теперь он понимает большинство запросов пользователей — даже многосоставных, включающих по две темы сразу. При этом точность распознавания запросов превышает 93%. То есть в 93 случаях из 100 алгоритм точно определяет суть запроса без дополнительных уточнений.
4. Стали использовать несколько моделей одновременно
Первая модель, которую мы задействуем в обработке запроса пользователей — стандартный классификатор. Он определяет по реплике ведущий интент. Вторая модель отвечает за подсказки (suggest): вы начинаете вводить запрос, а алгоритм предлагает одно или несколько возможных завершений фразы. Третья отвечает за «чипсы» — виджеты с типовыми запросами, которые появляются под репликой в чате, например: «Когда придёт кэшбэк» или «Пролонгация вклада».
Важно, что анализ контекстных интентов позволяет поддерживать сценарий диалога и не прерывать сессию, даже если человек отвлёкся и вышел из чата. Раньше взаимодействие всегда начиналось заново, что, конечно, раздражало людей, и они требовали сотрудника контакт-центра.
5. Предоставили полный сервис прямо внутри чат-бота
Альфа-Помощник больше не отправляет людей «гулять» по мобильному приложению, а решает все вопросы внутри диалога прямо в чате.
6. Стали внимательнее слушать людей
Последний, но не менее важный момент — мы активно используем обратную связь. Нет никакой другой количественной метрики для оценки эффективности чат-бота, кроме процента автоматизации запросов. Но также важно оценивать и реакции людей на общение с ботом, получать от них обратную связь и использовать эти данные для дальнейшего роста и развития. Отзывы и оценки помогают выделять дополнительные сложные интенты в запросах дорабатывать сценарии диалогов.
Чек-лист: как создать лучший в России чат-бот
Человеку неважно, кто дал ему информацию — чат-бот, голосовой помощник или специалист контакт-центра. Конечно, если полученный ответ правильный и полезный. Чтобы этого достичь, важно соблюдать следующие условия:
- Предоставлять всю информацию в точке касания с пользователем.
- Минимизировать действия по формированию запроса с помощью подсказок, виджетов или выбора вариантов.
- Поддерживать непрерывность сессии.
- Создавать позитивный клиентский опыт.
не начисляют деньги по программе "Деньги Вам и Друзьям", вы мне должны 500р за то, что я карту забрал, и 1000р за привод друга
Здравствуйте, Марат!
Если условия выполнили, то деньги всегда начисляем во время.
Напишите нам в личные сообщения ваши ФИО и дату рождения, всё проверим.