26 Июл

Машинное обучение в обработке заказов

Как снизить затраты и принципиально увеличить скорость обработки заказов, те продавать больше.

Компания занимается поставкой строительной продукции. Заказчики, как правило, сбрасывают запросы в виде файла Excel, где используют произвольные названия требуемого продукта. Так, например, наименование по прайс-листу «K-flex Трубки ST  13х89» может фигурировать, как:

  • тепловая изоляция K-flex толщиной 13 мм 80 мм
  • тепловая изоляция K-flex толщиной 13 мм д80
  • Изоляция K-flex толщ 13 мм 80 мм
  • Изоляция K-flex толщиной 13 мм Ду 80 мм
  • тепловая изоляция K-flex ST толщ 13 мм ∅80
  • Изоляция K-flex ST толщ 13 мм Dn89 мм
  • Теплоизоляция K-flex ST толщиной 13 мм D80
  • Изоляция толщ 13 мм Dn89 K-flex
  • теплоизоляция st 13/80
  • изоляция st 13×80
  • трубки st 13 мм Dn 89 мм.

Орфография оригинала сохранена. Список можно продолжать долго. В исходном датасете у меня 20 134 вариантов названия данной трубки.

В настоящее время, разбором данных заявок занимаются продавцы. Причем, человек должен понимать, что он подбирает. На подготовку такого специалиста необходимо время. Так же не получается быстро выдать коммерческое предложение заказчику, так как разбор и сопоставление с прайс-листом компании занимает достаточно много времени. А время – деньги, вернее затраты.

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

Обучение системы производилось в облаке Microsoft Azure. Программные средства: классика Python и блокнот Jupyter. Из более редкого – фреймворк Apache SPARK. Все программное обеспечение распространяется с открытым исходным кодом и абсолютно бесплатно.

Изначально, текст необходимо векторизировать, те превратить в вид пригодный для использования в машинном обучении. Для этого использовалась мера tf–idf, которая позволяет снизить значимость мусорных слов. Каждому слову присваивается вес, который пропорционален количеству употребления этого слова в документе, и обратно пропорционален частоте употребления слова в других документах коллекции.

Изначально, применение метода машинного обучения Случайный лес (Random forest) дало среднюю точность распознавания 81,5%. Что уже соответствовало техническому заданию. Но Градиентный бустинг (AnyBoost) показал еще лучший средний результат. Средняя точность распознавания составила 89,9%. Что вполне удовлетворительный показатель. Но интереснее другое. Ниже приведена таблица с точностью распознавания в зависимости от количества элементов в обучающей выборке.

Так, рост количества экземпляров в обучающей выборке положительно влияет на точность распознавания. Если на вход подается больше 4500 экземпляров для обучения, точность составляет более 90%. И при небольшом количестве экземпляров для обучения – снижается до 66%. Это особенность метода градиентного бустинга. Требуемая длина обучающей выборки должна составлять порядка 104-106 (те от 10 000 экземпляров).

Наверняка у некоторых читателей возник вопрос, какие нужны данные (обучающая выборка) для обучения системы? Все очень просто. На вход должны подаваться размеченные данные. Где запросу клиента соответствует название в прайс-листе. Пример таблицы ниже.

Именно отсутствие в настоящее время подобных размеченных данных и помешало полномасштабному внедрению машинного обучения. К сожалению, бесценные результаты прошлых разборов запросов клиентов не сохранялись. И сейчас компании еще предстоит наработать массив для обучения искусственного интеллекта. То, что это внедрение системы произойдет, сомневаться не стоит. Ведь выгоды от внедрения очевидны: существенное снижение стоимости на продавцов и резкое увеличение скорости ответа. Принципиально и полностью отказаться от продавцов не получится. Они будут помогать системе там, где есть сомнения. И эти же данные будут использоваться для до обучения. Так что точность в 99,9% вполне достижима, что даже превзойдет показатели точности для хорошего продавца.

Красиво, но, наверное, дорого? Ну как сказать… стоимость реализации такого решения находится в диапазоне 400-600 тысяч рублей. Что позволяет ее окупить за два-три месяца. Вы сможете не только оптимизировать расходы на оплату труда, поиск сотрудников и тд. Но и однозначно увеличите конверсию за счет более оперативных ответов.

А вы собираете размеченные данные или выбрасываете ценный материал в мусор?

Хотите воспользоваться возможностями цифровой революции в бизнесе? Приходите 15 августа на семинар «Цифровая трансформация в бизнесе«. Разберем подробно этот много других примеров!

Поддержи!Tweet about this on TwitterShare on VKShare on Facebook0Share on LinkedIn0Share on Google+0Email this to someonePrint this page

2 thoughts on “Машинное обучение в обработке заказов

  1. Скажите при векторизации слов вы использовали только tf–idf, или какие-то еще размерности?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.

Андрей Кулинич. Copyright © 2001-2016