Применение машинного обучения в ИТ аутсорсинге
- Внедрение стандартной модели от 50000 ₽
- Кастомизация модели 2500 ₽\ч
- Разработка индивидуального решения от 100000 ₽
Задача оператора Help desk
Почему понадобилось машинное обучение
Какое решение придумали мы
Как мы отлаживали продукт
Направления развития продукта
Так как мы являемся аутсорсинговой компанией, нам приходится ежедневно сталкиваться с задачами по учету и обработке обращений клиентов. За долгие годы работы у нас накопилось большое количество задокументированных решений, и мы задумались, как можно использовать этот объем знаний. Мы пытались составлять базу знаний, использовать встроенный в Service Desk поиск, но все эти методики требовали больших усилий и ресурсов. В итоге наши сотрудники чаще пользовались интернет-поисковиками, чем собственными решениями, что мы, естественно, не могли так оставить. И нам на выручку пришли технологии, которых 5-10 лет назад ещё не было, однако сейчас они имеют достаточное распространение. Речь пойдет о том, как мы применяем машинное обучение для устранения проблем клиентов. Мы использовали алгоритмы machine learning в задаче поиска похожих, уже возникавших ранее инцидентов, для применения их решений к новым инцидентам.
Задача оператора Help desk
Help desk (Service Desk) — система учета и обработки обращений пользователей, в которых содержатся описания неисправностей технического характера. Работа оператора Help desk заключается в обработке таких обращений: он дает инструкции по устранению неполадок или же устраняет их лично, через удаленный доступ. Однако рецепт устранения проблемы сперва нужно составить. При этом, оператор может:
- Воспользоваться базой знаний.
- Использовать встроенный в Service desk поиск.
- Составить решение самостоятельно, исходя из своего опыта.
- Использовать сетевой поисковик (Google, Yandex и др.).
Почему понадобилось машинное обучение
Какие наиболее развитые программные продукты мы можем применить:
- Service Desk на платформе 1С: Предприятие. Существует только ручной режим поиска: по ключевым словам, или с использованием полнотекстового поиска. Есть словари синонимов, возможность замены букв в словах и даже использование логических операторов. Однако, эти механизмы практически бесполезны при таком объеме данных, как у нас — результатов, удовлетворяющих запроса много, а эффективной сортировки по релевантности нет. Есть база знаний, на поддержку которой нужно тратить дополнительные усилия, а поиск в ней осложнен интерфейсным неудобством и необходимостью понимать её каталогизацию.
- JIRA от Atlassian. Наиболее известная западная Service desk - система с передовым, по сравнению с конкурентами, поиском. Существуют пользовательские расширения, интегрирующие функцию ранжирования результатов поиска BM25, которую использовали Google в своем поисковике до 2007 года. Подход BM25 основан на оценке “важности” слов в обращениях исходя из частоты их встречаемости. Чем реже совпадающее слово, тем сильнее оно влияет на сортировку результатов. Это позволяет несколько улучшить качество поиска при большом объеме обращений, однако система не адаптирована для обработки русского языка и, в целом, результат неудовлетворителен.
- Интернет поисковики. Сам поиск решений занимает в среднем от 5 до 15 минут, при этом качество ответов не гарантировано, как и их наличие. Бывает, что длинное обсуждение на форуме содержит несколько длинных инструкций, и ни одна из них не подходит, а на проверку уходит целый день (в итоге может уйти много времени при отсутствии гарантии результата).
Какое решение придумали мы
Если выразить просто, то задача поиска звучит так: для нового входящего обращения требуется найти наиболее похожие по смыслу и содержанию обращения из архива, и выдать закрепленные за ними решения. Встает вопрос — как научить систему понимать общий смысл обращения? Ответ — компьютерный семантический анализ. Инструменты машинного обучения позволяют построить семантическую модель архива обращений, извлекая из текстовых описаний семантику отдельных слов и целых обращений. Это позволяет численно оценивать меру близости между заявками и отбирать наиболее близкие совпадения.
Семантика позволяет учитывать значение слова в зависимости от его контекста. Это дает возможность понимать синонимы, снимать многозначность слов.Однако, перед тем как применять машинное обучение, тексты следует предварительно обработать. Для этого мы построили цепочку алгоритмов, позволяющую получить лексическую основу содержания каждого обращения.
Обработка состоит из очистки содержания обращений от лишних слов и символов и разбиения содержания на отдельные лексемы — токены. Так как обращения приходят в виде e-mail, то отдельной задачей является очистка почтовых форм, которые отличаются от письма к письму. Для этого мы разработали собственный алгоритм фильтрации. После его применения, у нас остается текстовое содержания письма без вводных слов, приветствий и подписей. Затем, из текста удаляются знаки пунктуации, а даты и цифры заменяются специальными тегами. Этот обобщающий прием повышает качество извлечения семантических связей между токенами. После этого, слова проходят лемматизацию – процесс приведения слов к нормальной форме, что также повышает качество за счет обобщения. Затем отсеиваются части речи с низкой смысловой нагрузкой: предлоги, междометия, частицы и т. п. После этого, все буквенные токены фильтруются по словарям (национальный корпус русского языка). Для точечной фильтрации, используются словари IT-терминов и сленга.
Примеры результатов обработки:
Исходный текст обращения | Лексическая основа обращения |
---|---|
Добрый день!
Часто возникают проблемы в работе программы vxis.exe(электронный документооборот) на всех компьютерах.
ООО “*****” Skype: ***** www.*****.com -- mailto:***** |
программа электронный документооборот компьютер |
Нет доступа в интернет № 345212 | доступ интернет |
Проблема с chrome. Каждый раз (после включения компьютера) при входе в хром появляется ошибка “не удается получить настройки...” | chrome включение компьютер вход хром появляться ошибка удаваться получать наcтройка |
В качестве инструмента машинного обучения, мы используем Paragraph Vector (word2vec) – технология семантического анализа естественных языков, которая основана на распределенном векторном представлении слов. Разработана Mikolov et al совместно с Google в 2014 году. Принцип работы основывается на предположении, что слова, встречающиеся в схожих контекстах, являются близкими по смыслу. К примеру, слова «интернет» и «подключение» часто встречаются в схожих контекстах, например «Пропал интернет на сервере 1С» или «Пропало подключение на сервере 1С». Paragraph Vector анализирует текстовые данные предложений и делает вывод, что слова «интернет» и «подключение» являются семантически близкими. Адекватность подобных выводов тем выше, чем больше текстовых данных будет использовать алгоритм.
Если углубиться в детали:
На основе обработанных содержаний, для каждого обращения составляется “мешки слов”. Мешок слов – это таблица, отражающая частоту встречаемости каждого слова в каждом обращении. В строках находятся номера документов, а в столбцах- номера слов. На пересечении стоят цифры, показывающие сколько раз встретилось в документе слово.
Приведем пример:
- пропадать интернет сервер 1С
- пропадать подключение сервер 1С
- падать сервер 1С
А так выглядит мешок слов:
№ | пропадать | интернет | подключение | сервер | 1с | падать |
---|---|---|---|---|---|---|
1 | 1 | 1 | 0 | 1 | 1 | 0 |
2 | 1 | 0 | 1 | 1 | 1 | 0 |
3 | 1 | 0 | 0 | 1 | 1 | 1 |
С помощью скользящего окна определяется контекст каждого слова в обращении (его ближайшие соседи слева и справа) и составляется обучающая выборка. На ее основе, искусственная нейронная сеть учится предсказывать слова в обращении, в зависимости от их контекста. Извлеченные из обращений семантические признаки формируют многомерные вектора. В ходе обучения, вектора разворачиваются в пространстве таким образом, что их положение отражает семантические отношения (близкие по смыслу находятся рядом). Когда сеть удовлетворительно решает задачу предсказания, можно сказать, что она удачно извлекла семантический смысл заявок. Векторные представления позволяют вычислять угол и расстояние между ними, что помогает численно оценивать меру их близости.
Как мы отлаживали продукт
Поскольку, существует большое множество вариантов обучения искусственных нейронных сетей, встала задача поиска оптимальных значений параметров обучения. То есть таких, при которых модель будет наиболее точно определять одинаковые технические проблемы, описанные разными словами. Из-за того, что точность работы алгоритма сложно оценить автоматически, мы создали отладочный интерфейс для ручной оценки качества и инструментарий для анализа:
Для анализа качества обучения мы также использовали визуализации семантических связей с помощью T-SNE — алгоритма уменьшения размерности (основан на машинном обучении). Он позволяет отобразить многомерные вектора на плоскости таким образом, что дистанция между точками-обращениями отражает их семантическую близость. В примерах будут представлены 2000 обращений.
Ниже представлен пример хорошего обучения модели. Можно заметить, что часть обращений группируется в кластеры, которые отражают их общую тематику:
Качество следующей модели куда ниже, чем предыдущей. Модель недообучена. Равномерное распределение указывает на то, что детали семантических отношений были усвоены лишь в общих чертах, что было выявлено уже при ручной оценке качества:
Напоследок, демонстрация графика переобучения модели. Хотя и есть разделение на темы, модель имеет очень низкое качество.
Эффект от внедрения машинного обучения
Благодаря использованию технологий машинного обучения и собственных алгоритмов очистки текста, мы получили:
- Дополнение для стандартной отраслевой информационной системы, которое позволило существенно экономить время на поиск решений ежедневных задач service desk.
- Снизилась зависимость от человеческого фактора. Максимально быстро заявку сможет решить не только тот, кто её уже решал ранее, но и тот, кто с проблемой вообще не знаком.
- Клиент получает более качественный сервис, если ранее решение незнакомой инженеру задачи занимало от 15 минут, то теперь до 15 минут, если ранее эту задачу уже кто-то решал.
- Понимание, что можно повысить качество обслуживания расширяя и улучшая базу описаний и решений проблем. Наша модель постоянно дообучается по мере поступления новых данных, а значит ее качество и количество готовых решений растет.
- Наши сотрудники могут влиять на свойства модели, постоянно участвуя в оценке качество поиска и решений, что позволяет оптимизировать её в непрерывном режиме.
- Инструмент, который можно усложнять и развивать для извлечения большей пользы из имеющейся информации. Далее мы планируем привлекать к партнерству других аутсорсеров и модифицировать решение для решения похожих задач у наших клиентов.
Примеры поиска похожих обращений (орфография и пунктуация авторов сохранена):
Входящее обращение | Наиболее похожее обращение из архива | % похожести |
---|---|---|
“Re:Диагностика ПК ПК 12471 уходит в ребут после подключения флеш накопителя. Проверить логи. Диагностировать, понять в чем проблема.” | “перезагружается пк, при подключении флешки пк ребутается. пк 37214 Проверить в чем проблема. Пк на гарантии.” | 61.5 |
“Тертнальный сервер после отключения питания не загружается. BSOD” | “После перезагрузки сервера, сервер не загружается пищит” | 68.6 |
“Не работает камера” | “ Камеры не работают” | 78.3 |
“RE:The Bat Не отправляются письма, пишет переполнена папка. | Re: не принимается почта Переполнение папки в THE Bat! папка более 2 ГБ | 68.14 |
“Ошибка при запуске 1С - Невозможно получить сертификат сервера лицензирования. Скрин прикладываю. (компьютер 21363)” | Не запускается 1С CRM, на пк 2131 и 2386 не запускается 1С, ошибка след.: Невозможно получить сертификат сервера лицензирования. Не удалось найти сервер лицензирования в режиме автоматического поиска.” | 64.7 |
Изначально решение архитектурно планировалось следующим образом:
Программное решение полностью написано на языке Python 3. Библиотека, реализующая методы машинного обучения частично написана на c/c++, что позволяет использовать оптимизированные версии методов, дающие ускорение порядка 70 раз, по сравнению с чистыми Python-имплементациями. На данный момент, архитектура решения выглядит следующим образом:
Были дополнительно разработаны и интегрированы система анализа качества и оптимизации параметров обучения моделей. Также был разработан интерфейс обратной связи с оператором, позволяющий ему оценивать качество подбора каждого решения.
Данное решение можно применять для большого количества задач, связанных текстом, будь то:
- Семантический поиск документов (по содержанию документа или ключевым словам).
- Анализ тональности комментариев (выявление в текстах эмоционально окрашенной лексики и эмоциональной оценки мнений по отношению к объектам, речь о которых идёт в тексте).
- Извлечение краткого содержания текстов.
- Построение рекомендаций (Collaborative Filtering).
Решение легко интегрируется с системами документооборота, так как для его работы требуется только база данных с текстами.
Будем рады внедрить технологии machine learning коллегам по ИТ сфере и клиентам из других отраслей, свяжитесь с нами, если заинтересовались продуктом.
Направления развития продукта
Решение находится в стадии альфа-тестирования и активно развивается в следующих направлениях:
- Создание облачного сервиса
- Обогащение модели на основе решений технической поддержки в открытом доступе и в сотрудничестве с другими аутсорсинговыми компаниями
- Создание распределенной архитектуры решения (данные остаются у заказчика, а создание модели и обработка запросов происходит на нашем сервере)
- Расширение модели под другие предметные области (медицина, юриспруденция, обслуживание техники и проч.)
Менеджеры компании с радостью ответят на ваши вопросы, произведут расчет стоимости услуг и подготовят коммерческое предложение.
|
Заказать проект
|