Введение

В 2020 году к нам обратился за помощью крупный банк. В этом банке было лучшее цифровое обслуживание клиентов в отрасли, ежедневно они могли отвечать на тысячи запросов клиентов в режиме реального времени через чат, WhatsApp и другие каналы. Однако у них была проблема: в конце каждого разговора они спрашивали клиентов, насколько они удовлетворены обслуживанием, но только 15% ответили на вопрос, и с этим они могли принять меры лояльности или продажи.
Всего было 85. % тех, кто не ответил и, следовательно, не мог инициировать конкретные действия.
Из тысяч сохраненных разговоров, в которых был конкретный ответ, мы обучили пользовательские модели обнаружения Deep-Talk.ai прогнозировать удовлетворенность клиентов, используя сотни переменных, сгенерированных во время разговора. .
Наши модели объединяют различные источники данных для прогнозирования. С одной стороны, мы создаем кластеры разговоров, а с другой стороны, мы используем числовые данные, связанные с разговором, такие как время ожидания, продолжительность разговоров. , количество сообщений и т. д.
С помощью API, предоставленного Deep Talk, Банк внедрил в систему своего контакт-центра специальную метрику, прогнозирующую удовлетворенность клиентов в каждом из разговоров, в которых принимал участие t он руководителей, даже если клиент не ответил на опрос.

Набор данных

Клиенты оценивают разговоры по звездной шкале, которая варьируется от одной до пяти или от одной до семи звезд, причем чем больше звездочек, тем выше удовлетворенность. Мы делим разговоры на две группы в зависимости от их звездного рейтинга. Разговоры с 1 или 2 звездами получают целевое значение 0 (разговоры с плохой оценкой), разговоры с 4 или 5 звездами (6 или 7 по 7-звездочной шкале оценок) получают целевое значение 1 (разговоры с хорошей оценкой). , Мы игнорируем разговоры, которым присвоены другие значения скорости.

Мы отфильтровываем разговоры, в которых клиент не ответил на первый ответ исполнителя, так как в этих случаях реального разговора не было.

У нас осталось около 120 000 разговоров, 80% из которых попадают в положительную группу, что делает набор данных довольно несбалансированным. Чтобы построить модель, мы разделили эти разговоры на обучающий, проверочный и тестовый наборы. Здесь мы создаем сбалансированный набор для проверки и тестирования, чтобы мы могли использовать точность прогнозирования в качестве надежной метрики для оценки наших моделей. Когда мы балансируем набор данных, мы выполняем балансировку по тегам, чтобы учитывать происхождение всех разговоров (теги проекта, такие как «Компания x», «восстановление пароля» и т. д.). Следовательно, наш окончательный тестовый набор данных сбалансирован по тегам и в целом.
Дисбаланс набора обучающих данных оставлен в качестве гиперпараметра: во время обучения мы строим модели с разными уровнями дисбаланса, чтобы увидеть, как дисбаланс влияет на производительность модели. .

Для каждого разговора мы рассчитываем различные функции метаданных (такие как среднее время ответа пользователя, продолжительность разговора, количество используемых токенов и т. д.) и используем Google NLP API для дальнейшего сбора настроений разговоров. Эти особенности используются при построении модели в дополнение к чистому тексту разговора. В дальнейшем мы одинаково относимся к функциям тональности и другим функциям метаданных. Следовательно, мы будем просто говорить о функциях метаданных.

Методология

Мы создаем текстовые функции, зависящие от пользователя, то есть мы создаем отдельные функции для текста, поступающего от пользователя или клиента. Чтобы преобразовать текст в числовые характеристики, мы используем статистику tf-idf (частота термина — обратная частота документа), которая пытается отразить важность токена в его контексте. Гиперпараметры для токенизации (диапазон ngram, метод предварительной обработки, метод токенизации и т. д.) изменяются во время обучения и оптимизируются с использованием набора данных проверки.
Мы используем SVD (разложение по сингулярным значениям) для уменьшения размерности полученных функций. Опять же, количество компонентов SVD остается в качестве гиперпараметра, который необходимо установить с набором данных проверки.

Функции метаданных масштабируются в диапазоне [0, 1], но дальнейшая предварительная обработка не применяется. Мы вычисляем медиану для каждой функции, чтобы заменить ею отсутствующие значения. Во время обучения мы используем различные подмножества функций метаданных, чтобы ограничить количество функций и избежать переобучения.

Мы объединяем функции из текста и метаданных в один массив и обучаем на нем окончательный классификатор. Здесь мы сосредоточились на классификаторе логистической регрессии.

Результаты

Окончательная точность, которую мы можем достичь, используя комбинированные метаданные и текстовые функции, составляет 74,9% в сбалансированном наборе тестов. Поскольку мы не используем функции тональности при развертывании (поскольку нам пришлось бы подключаться к Google NLP API), в настоящее время развернута модель, основанная исключительно на текстовых функциях. Эта модель имеет немного более низкую точность набора тестов — 74,2%. Модель создает 200 текстовых функций для каждого типа человека (клиент и пользователь) на основе диапазона (1, 3) ngram.

В целом мы обнаружили, что производные текстовые функции имеют гораздо большее значение для модели, чем функции метаданных. Однако функции метаданных помогают повысить точность примерно на 0,5–1%.

Примеры токенов, которые наиболее полезны модели для принятия решения: «много благодарностей», «нада мас», «соло эсо», «перо нет», «нет тенго», «нет пуедо», », «solo para asistencia», «sucursales», «accepta Cargo».

Метаданные анализа

Несмотря на то, что функции метаданных не оказывают сильного влияния на окончательную точность прогноза удовлетворенности клиентов, важно понимать, как удовлетворенность клиентов коррелирует с ними. Чтобы лучше понять значение функций метаданных, мы выполнили анализ, который количественно определяет, когда беседа в два раза чаще получает отрицательную оценку. Из всех бесед только 20% получили отрицательную оценку. Мы искали регионы в пространстве метаданных, в которых этот показатель увеличивается в два раза по сравнению с его значением. Такой анализ будет очень полезен в будущем, если мы хотим делать прогнозы удовлетворенности клиентов в реальном времени во время разговора. Мы быстро обобщаем здесь наши выводы, перечисляя наиболее важные функции метаданных, которые сильно коррелируют с более высокой вероятностью того, что беседа получит отрицательную оценку.

  • среднее настроение клиента в последней трети разговора
  • длина последнего пользовательского сегмента
  • общее количество сегментов
  • время на сообщение
  • среднее время ответа пользователю
  • количество токенов, используемых клиентом
  • среднее время ответа клиенту

Мы предполагаем, что именно эти функции помогают повысить точность прогноза удовлетворенности клиентов, однако мы еще не проводили детальный анализ этого.

Резюме и перспективы

Мы запустили в производство модель, которая может прогнозировать удовлетворенность клиентов после завершения разговора с точностью 74,2%. Это может помочь банку получить улучшенный отчет об удовлетворенности своих клиентов на основе прошлых разговоров. Лишь около 28% всех разговоров банка получают рейтинг. Эта модель может помочь Банку лучше понять, как их пользователи просматривали остальные 72% своих разговоров. Помимо этого информативного приложения, модель может помочь банку лучше отслеживать удовлетворенность в будущем, потому что они могут получать обратную связь, даже если разговор не оценивается.