Обзор

Контакт-центры сегодня являются многоканальными. Каналы электронной почты и чата очень распространены. Предоставление агентам возможности решать проблемы клиентов имеет первостепенное значение для повышения качества обслуживания клиентов. Когда агент получает новое электронное письмо для обслуживания, если мы можем представить аналогичные электронные письма (с аналогичной семантикой), на которые уже были даны ответы (другими агентами), это поможет ему получить более качественные ответы. Недавние разработки в области глубокого обучения могут помочь в этом.

Это потенциально может быть решено различными способами.

Подход, основанный на функциях

Мы можем следовать очень простому подходу с набором слов с оценками TF-IDF, чтобы найти косинусное сходство между электронными письмами, и самые верхние из них, которые ближе всего к неотвеченному письму, могут быть перечислены Агенту. Мы построили очень простую модель с этим подходом (с множеством других функций, таких как точное количество слов) для проверки концепции, и во многих случаях это прекрасно работает.

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

Подход к глубокому обучению

Трансферное обучение / предварительное обучение — это благо в машинном обучении, особенно в глубоком обучении. Это помогает применить «обучение» (прочитанную матрицу весов) из другого набора данных в аналогичной области к новой проблеме в той же или связанной области.

Мы были вдохновлены проблемой сходства вопросов Quora (конкурс kaggle) и хотели применить некоторые из методов для решения нашего варианта использования. Для построения наших моделей мы использовали встраивание GloVe, Tensorflow и Keras.

Word Embedding фиксирует очень важные семантические отношения в текстовых данных. Мы хотели использовать уже обученные модели GloVe/Word2Vec. Основная идея состоит в том, чтобы сначала преобразовать текст электронной почты во встраивание слов, а затем поверх него — глубокие слои свертки / RNN (LSTM) с полностью связанными слоями и, наконец, слой softmax для классификации. Это похоже на другие традиционные архитектуры глубокой сети, за исключением того, что обучение будет отключено для уровня внедрения. В Keras это так же просто, как установить trainable=false для слоя внедрения.

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

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

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

Дальнейшая работа

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

У нас все еще есть проблема масштабирования этого, хотя мы можем иметь перед собой модель кластеризации и проводить сравнение только с элементами из кластера.

Мы только начинаем в этой области, любые отзывы/предложения приветствуются!