Привет! Меня зовут Катя, и я отвечаю за PR проектного офиса big data в Tele2. Не спешите переключаться после этих слов: я постаралась разобраться в том, как коллеги разработали инструмент для анализа обратной связи от абонентов. В компании есть показатель NPS bottom Up. В рамках исследования мы задаем пользователю вопросы конкретно по точке контакта, например, о мобильном интернете. Упрощенно методика исследования такая: человек отвечает на закрытые вопросы об услуге и может заполнить поле “свободный комментарий”. В последнем пункте и содержится всё самое интересное, но неподъемное для анализа ручками.

Кейс со стороны customer experience management

Юлиан Ван

Старший менеджер по аналитике показателей клиентского опыта. Контролирует и анализирует целевой показатель клиентского опыта NPS. Отвечает за исследование удовлетворённости клиентов в ключевых точках контакта

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

Мы привыкли думать, что у нас несколько категорий, например, показатели качества мобильного интернета, тарифы и сопутствующие категории. В итоге мы пришли к тому, что, собирая обратную связь по заранее сформулированным критериям, мы подталкиваем клиента к ответу, который не полностью совпадает с его оценкой. Он может видеть свой запрос иначе. Мы пришли к тому, что обращения в свободной форме пора кластеризовать и оценить: соответствует наше понимание категорий и тех вопросов, что мы задаем, реальному сообщению клиента. С этим запросом мы пришли в big data.

Стартовые позиции
Стартовые позиции

Решение со стороны BDO

Андрей Лаврентьев

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

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

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

1 шаг: я посмотрел на данные, очистил их. Где-то были одинаково названы классы. Например, “мобильный интернет” и “Мобильный интернет” — разница в одной заглавной букве, но модель читала бы их по-разному. Все слова во время чистки приводятся к нижнему регистру, все глаголы в форму инфинитива: гулял → гулять. Смысловое значение для человека понятно и не меняется от формы слова, а для анализа данных нужно единообразие.

2 шаг: мы тестировали модели KNN (метод k-ближайших соседей), SGD (стохастический градиентный спуск), модель логистической регрессии. Также испробовали разные варианты предобработки текста. Это стемминг (нахождение основы слова), лемматизация (процесс приведения словоформы к лемме — её нормальной форме) и несколько вариантов создания признаков: генерация эмбеддингов (числовых векторов) с помощью fastText, а также алгоритма TF-IDF (TF — term frequency, IDF — inverse document frequency). Он оценивает важность слова в контексте документа, который входит в часть коллекции документов или корпуса. 

3 шаг: при создании признаков остановились на варианте алгоритма TF-IDF: он присваивает число словам в зависимости от значимости смысловой нагрузки: “или” встречается в каждом тексте, но не имеет содержания. Алгоритм TF-IDF формировал признаки принадлежности к кластеру, анализируя не только слова, но и пары из слов, которые шли друг за дружкой.

4 шаг: получилось около 30 тысяч признаков. К ним я добавил еще некоторое количество от себя, длину обращения, также NPS, который ставил клиент в значении от 1 до 10. В итоге получился большой пул признаков.

5 шаг: полный пул я подал в линейную модель логистической регрессии. Она проставляет каждому из 30 тыс. признаков определенный коэффициент, а потом все 30 тыс. на них умножает, складывает их и берёт от всего этого логистическую функцию. В зависимости от получившегося числа модель выдает вероятность того, к какому классу какое обращение отнести. Качество покрытия — первый класс, мобильный интернет — второй класс…

6 шаг: дальше я разбил 12 основных классов на “микроклассы” по той обратной связи, что дали коллеги из CEM, для глубины итогового анализа. Для этого я построил отдельные модели для каждого из кластеров обращений. В итоговой версии они разбиты на более узкие категории, например, абонентская служба: вежливость, работа персонала, салоны, дозвон на 611/636.

И что дальше?

Теперь мы видим не только динамику NPS — модель от big data формирует дашборд, где свободные комментарии сгруппированы по категориям. Коллеги из CEM могут выбрать одну из них и прочитать, что именно сказали клиенты, проанализировать, какими были комментарии в прошлом году. Коллеги выделяют и анализируют поведенческие паттерны в рамках периода на конкретной территории. Следом коллеги работают с соответствующим подразделением, чтобы развить мысль, найти решение, которое поможет закрыть потребность клиентов.

А что это для клиента?

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

  • Знаем, что беспокоит и вызывает вопросы у разных поколений абонентов

  • Инструмент делает наш контакт с клиентом более качественным, на основе анализа видны инсайты

Комментарии (11)


  1. TVExpert
    26.08.2022 16:32
    +8

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

    Похоже что после оптимизации/реорганизации (или что там у вас произошло за последнее время?), компания "забила" на необходимость наличия живых сотрудников для общения с клиентами.

    И примерно из того же направления - зачем запускать предложение/сервис по "фильтрации нежелательных звонков" (спам/мошенники и т.п.), если он не работает? И нет реально рабочей БД.

    А вот у конкурентов по рынку есть, и работает довольно таки неплохо (сужу по служебному тлф. с таким подключенным сервисом).

    P.S.
    Жаль, что вас не миновала участь "оптимизации", и из довольно таки толковой компании (в регионе Мск+М.О. точно), вы "ударными темпами" становитесь бякой (?)


    1. pvsur
      26.08.2022 22:52

      Угу, настолько хорошо работает, что наши клиенты, переадресованные на мобильники менеджеров, попадают на антиспам-ботов. Сдали ТТ оператору - четвертый день ждём, пока "на сети сопряженного оператора ведутся работы по устранению" :(


      1. TVExpert
        29.08.2022 09:50

        А вот давно "зудит" мысль/вопрос - в связи с "модой" на мусорные/спам звонки, понятно что кто-то продвинутый использует подмену номеров, кто-то левую SIM карту (выбросить не жалко).
        Но ведь БД по тлф. номерам с запятнанной репутацией растёт...

        Что именно делают операторы, с целью исключить ситуацию, что покупает условное физ.лицо (или организация) некую SIMку, а никто по привязанному к ней номеру не может прозвониться, ибо такую комбинацию цифр использовали "специализдыСБ*банка".


  1. AnGord
    26.08.2022 16:37
    +5

    Да, я заметил качество общения вашей ТП - никакой разницы между ботом и живым сотрудником, одинаково бесполезны и те и эти.


  1. WondeRu
    26.08.2022 17:07
    +1

    Все мои диалоги в чатах поддержки последние пару лет:

    -здравствуйте, чем вам помочь?

    -оператор, специалист, живой человек

    * к вам подключается оператор


    1. TVExpert
      29.08.2022 09:52

      По моей статистике, примерно 50/50, точнее есть времена, когда до живого сотрудника не пробиться никак.
      А может повезти (редко) что с первого раза.

      В общем почти как в анекдоте про статистику встречи с динозавром :)


  1. sunsexsurf
    26.08.2022 17:17
    +1

    Давайте немного по сути. В качестве модели вы выбрали логрег. Вопрос: что будете делать с мультиклассовыми запросами? TF-IDF ничего не скажет о семантике вопроса, что будете делать с этим?

    Вообще, подход для такой компании в 2022 году крайне странный. Ощущение, что вам стоит написать новую модель на БЕРТе, это даст огромный прирост в «понимаемости» запроса пользователя.


    1. sshmakov
      27.08.2022 17:52

      Вы же понимаете, что задаёте вопрос боту Кате, отвечающей за PR?


      1. rinachistyakova Автор
        29.08.2022 09:30
        +1

        Почему же, я попробую получить ответы от коллег).


  1. ruslaniv
    27.08.2022 09:40

    Я так понял у вас явно древовидная иерархическая структура лейблов, зачем в таком случае предсказывать лэйблы 1-го уровня, если можно сразу предсказать лист не важно какого уровня в котором уже будет содержаться информация о пути от корня до данного листа?

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

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


  1. edyanakov
    27.08.2022 11:11

    Обязательно попробуйте берт - всё таки сейчас sota в nlp.
    При иерархической структуре лейблов попробуйте специальный лосс - https://github.com/Ugenteraan/Deep_Hierarchical_Classification.

    С каким качество работает логрег?