[Python, Программирование] Аудит чат-ботов

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
30-Ноя-2020 16:32


В настоящее время чат-боты широко распространены в различных сферах бизнеса. Так, например, банки с их помощью могут оптимизировать работу своего контактного центра, мгновенно отвечая на популярные вопросы клиентов и предоставляя им справочную информацию. Для клиентов чат-боты также являются удобным инструментом: гораздо проще написать вопрос в чате, чем ожидать ответа, звоня в контактный центр.
В других сферах чат-боты также хорошо себя зарекомендовали: в медицине они могут провести опрос пациента, передать специалисту симптомы и записать на прием к врачу для установления диагноза. В логистических компаниях чат-боты помогут согласовать дату доставки, сменить адрес и выбрать удобный пункт выдачи. В крупных интернет-магазинах чат-боты частично взяли на себя сопровождение заказов, а в сфере сервисов каршеринга чат-бот выполняют до 90% задач оператора. Однако, претензионную работу чат-боты решать пока не умеют. Негативный фидбек и спорные ситуации по-прежнему ложатся на плечи операторов и специалистов.
Таким образом, большинство растущих бизнесов уже активно используют чат-боты для работы с клиентами. Однако, польза от внедрения чат-бота часто варьируется: в одних компаниях уровень автоматизации достигает 90%, в других компаниях он составляет лишь 30-40%. От чего это зависит? Насколько хорош этот показатель для бизнеса? Есть ли способы повысить уровень автоматизации чат-бота? В данной статье будут рассмотрены вопросы, которые помогут разобраться в этом.
Бенчмаркинг
На сегодняшний день практически в любой сфере бизнеса есть своя конкурентная среда. Многие компании применяют схожие подходы в ведении бизнеса. Поэтому, если конкурирующие компании используют в своей деятельности чат-боты, то вполне целесообразно провести их сравнение. В качестве инструмента для сравнения подойдет бенчмаркинг.
В нашем случае бенчмаркинг чат-ботов будет заключаться в скрытом проведении исследований с целью сопоставления функционала чат-ботов конкурентов с функционалом собственного чат-бота. Рассмотрим кейс на примере банковского чат-бота.
Предположим, банк разработал чат-бот для оптимизации работы контакт-центра и сокращения издержек на его содержание. Для проведения бенчмаркинга необходимо проанализировать другие банки и выявить наиболее функциональные чат-боты своих конкурентов.
Необходимо сформировать список вопросов для проверки (не менее 50 вопросов, разделённых на несколько тематик):
  • Вопросы по банковским услугам, например: «Какие у вас ставки по вкладам?», «Как перевыпустить карту?» и пр.
  • Справочная информация, например: «Какой сейчас курс валют?», «Как получить кредитные каникулы?» и пр.
  • Уровень понимания клиента. (Устойчивость бота к опечаткам, ошибкам восприятие разговорной речи), например: «Я поетря карту, чтро мне делаьь?», «Пополнить мобилу» и пр.
  • Разговор на отвлечённые темы, например: «Расскажи анекдот», «Чем заняться во время самоизоляции?» и пр.

Примечание: данные тематики вопросов приведены в качестве примера и могут быть расширены или изменены.
Эти вопросы следует задать своему чат-боту, а также чат-ботам конкурентов. После написания вопроса возможны 3 варианта результата (в зависимости от результата проставляется соответствующий балл):
  • бот не распознал вопрос клиента (0 баллов);
  • бот распознал вопрос клиента, но только после уточняющих вопросов (0,5 балла);
  • бот распознал вопрос с первой попытки (1 балл).

Если чат-бот перевел клиента на оператора, то вопрос также считается не распознанным (0 баллов).
Далее суммируется количество баллов, набранных каждым чат-ботом, после чего рассчитывается доля корректно распознанных вопросов по каждой тематике (низкая – менее 40%, средняя – от 40 до 80%, высокая – более 80%), и составляется финальный рейтинг. Результаты можно представить в виде таблицы:

Предположим, по результатам бенчмаркинга чат-бот банка занял второе место. Какие выводы можно сделать? Результат не самый лучший, но и не худший. Опираясь на таблицу, можно сказать о его не самых сильных сторонах: во-первых, требуется доработка алгоритмов для корректного распознания вопросов клиента (чат-бот не всегда понимает вопросы клиента, содержащие ошибки и опечатки), а также не всегда поддерживает диалог на отвлеченные темы. Более детальную разницу можно увидеть при сравнении с чат-ботом, занявший первое место.
Чат-бот, занявший третье место, проявил себя хуже: во-первых, требуется серьёзная доработка базы знаний по вопросам банковских услуг и справочной информации, во-вторых, он слабо обучен для диалога с клиентом на отвлеченные темы. Очевидно, что уровень автоматизации такого чат-бота находится на более низком уровне по сравнению с конкурентами, занявшие I и II места.
Таким образом, по результатам проведения бенчмаркинга были выявлены сильные и слабые стороны в работе чат-ботов, а также проведено сравнение конкурирующих чат-ботов между собой. Следующим шагом является выявление этих проблемных мест. Как этого достичь? Рассмотрим некоторые подходы, основанные на анализе данных: AutoML, Process-mining, DE-подход.
AutoML
В настоящее время искусственный интеллект уже проник и продолжает проникать по многие сферы бизнеса, что неминуемо влечет за собой повышенный спрос на компетенции в области DataScience. Однако, спрос на таких специалистов растет быстрее, чем уровень их квалификации. Дело в том, что разработка моделей машинного обучения занимает много ресурсов и требует не только большого объема знаний от специалиста, но и значительных временных затрат на построение моделей и их сравнение. Чтобы сократить давление, создаваемое дефицитом, а также сократить время на разработку моделей, многие компании начали создавать алгоритмы, способные автоматизировать процесс работы DataScientist’ов. Такие алгоритмы получили название AutoML.
AutoML, который также имеет название «автоматизированное машинное обучение», помогает DataScientist’у автоматизировать трудоемкие и многократно повторяющиеся задачи разработки моделей машинного обучения, при этом сохраняя их качество. Несмотря на то, что модели AutoML позволяют сэкономить время, они будут эффективны только тогда, когда проблема, которую они решают, является постоянной и повторяющейся. В этих условиях модели AutoML работают хорошо и показывают приемлемые результаты.
Теперь применим AutoML для решения нашей задачи: выявить проблемные места в работе чат-ботов. Как уже было сказано выше, чат-бот – это робот, или специализированная программа. Она умеет выделять из сообщения ключевые слова и искать подходящий ответ в своей базе данных. Одно дело искать правильный ответ, другое – поддерживать логичный диалог, имитируя общение с реальным человеком. Этот процесс зависит от того, насколько хорошо написаны сценарии для чат-бота.
Представим ситуацию, когда у клиента возникает вопрос, а чат-бот отвечает ему странно, не логично, или вообще по другой теме. Как следствие, клиент не удовлетворен таким ответом, и в лучшем случае пишет о своем непонимании ответа, в худшем –негативные сообщения в сторону чат-бота. Поэтому задачей AutoML будет являться выявление негативных диалогов из общего числа (на основе выгруженных логов чат-бота из базы данных), после чего необходимо выявить, к каким сценариям относятся эти диалоги. Полученный результат и будет являться основанием для доработки этих сценариев.
Для начала произведем разметку диалогов клиента с чат-ботом. В каждом диалоге оставляем только сообщения от клиентов. Если в сообщении клиента прослеживается негатив в сторону чат-бота, или не понимание его ответов, ставим flag = 1, в остальных случаях = 0:

Разметка сообщений от клиентов
Далее объявляем модель AutoML, обучаем её на размеченных данных и сохраняем (все необходимые параметры модели также передаются, но в примере ниже они не приводятся).
automl = saa.AutoML
res_df, feat_imp = automl.train('test.csv', 'test_preds.csv', 'classification', cache_dir = 'tmp_dir', use_ids = False)
automl.save('prec')

Загружаем полученную модель, после чего производим предсказание целевой переменной для тестового файла:
automl = saa.AutoML
automl.load('text_model.pkl')
preds_df, score, res_df = automl.predict('test.csv', 'test_preds.csv', cache_dir = 'tmp_dir')
preds_df.to_csv('preds.csv', sep=',', index=False)

Далее производим оценку полученной модели:
test_df = pd.read_csv('test.csv')
threshold = 0.5
am_test = preds_df['prediction'].copy()
am_test.loc[am_test>=threshold] = 1
am_test.loc[am_test<threshold] = 0
clear_output()
print_result(test_df[target_col], am_test.apply(int))

Полученная матрица ошибок:

В процессе создания модели мы стремились минимизировать ошибку 1-го рода (отнесение хорошего диалога к плохому), поэтому для полученного классификатора остановились на f1-мере, равной 0,66. С помощью обученной модели удалось выявить 65 тыс. «плохих» сессий, что, в свою очередь, позволило выявить на 7 недостаточно эффективных сценариев.
Process Mining
Для выявления проблемных сценариев также применим инструменты, основанные на Process Mining — общее название ряда методов и подходов, предназначенных для анализа и усовершенствования процессов в информационных системах или бизнес-процессов на основании изучения журналов событий.
С помощью этого метода удалось выявить 7 сценариев, которые участвуют в длительных и нерезультативных диалогах:

18% диалогов имеют более 4-х сообщений от чат-бота
Каждый элемент в приведенном графе — это сценарий. Как видно из рисунка, сценарии имеют зацикливание, а жирные стрелки зацикливания говорят о достаточно длительном диалоге между клиентом и чат-ботом.
Далее, для поиска плохих сценариев мы подготовили отдельный набор данных, и на его основе построили граф. Для этого оставили только те диалоги, в которых отсутствует выход на оператора, после чего отфильтровали диалоги с нерешенными вопросами. В итоге мы выявили 5 сценариев для доработки, в которых чат-бот не решает вопрос клиента.

Выявленные сценарии фигурируют примерно в 15% всех диалогов
DE (Data Engineering) подход
Также был применен несложный аналитический подход для поиска проблемных сценариев: были выявлены диалоги, оценка обратной связи в которых (со стороны клиентов) составляла от 1 до 7 баллов, затем отобраны наиболее часто встречающиеся сценарии в этой выборке.
Так, комплексно применяя подходы, основанные на AutoML, Process Mining и DE были выявлены проблемные места в работе чат-бота компании, требующие доработки.

Теперь чат-бот станет лучше!
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_python, #_programmirovanie (Программирование), #_automl, #_data_engineering, #_process_mining, #_benchmarking (бенчмаркинг), #_python, #_programmirovanie (
Программирование
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 12:10
Часовой пояс: UTC + 5