Кажется, ещё недавно ИИ был прерогативой умудренных опытом специалистов и даже ученых, но сейчас его осваивают и школьники. Уже сегодня они помогают отраслевым гигантам строить прогнозные модели. Глядишь, завтра в детсадах начнут сетки обучать. Мы делали конкурс по ИИ для молодёжи, в котором выделили одной команде наши исторические данные и поставили задачу предсказать срыв поставок. И получилось! Грех было не использовать такую возможность на благо бизнес-процессов, ну мы и не стали грешить. О том, как это было, рассказывает наш аналитик данных в кластере «Корпоративные процессы» Станислав Ноздрин.
Наша задача участникам
Понятно, что срыв поставок товаров или услуг от подрядчиков для нас, как компании-заказчика — это удар по репутации и финансам, а один из главных ущербов — потеря клиентов. Хорошо ещё, если заказчики потребуют только компенсацию за причинённые убытки (хотя и это может существенно ударить по карману), но ведь могут быть и судебные разбирательства, и потеря доли рынка из-за ухода клиентов к конкурентам, и ухудшение качества конечного продукта с потерей лояльности к бренду. Привычные продажи могут упасть, а привлечь новых клиентов с такой репутацией компании будет сложнее.
В таком контексте полезно было бы научиться предсказывать срывы поставок, что позволит заранее принимать меры по сокращению потерь. Благодаря модели прогнозирования, которая предупредит «Северсталь» о надвигающихся проблемах в цепи поставок, можно будет заранее резервировать ресурсы, улучшать коммуникацию с поставщиками и разрабатывать прозрачные системы контроля.
Мы решили, что возможные срывы поставок можно научиться предсказывать на основе исторических данных, отражающих течение соответствующих бизнес-процессов «Северстали».
А заниматься этим будут школьники и студенты до 18 лет, имеющие интерес и навыки для работы по созданию моделей машинного обучения. Именно они участвовали в ежегодном конкурсе AI Challenge, организованный «Сбером» и Альянсом в сфере искусственного интеллекта. В состав участников, среди нескольких технологических лидеров России, входит и «Северсталь». В прошлом году наша команда выступала в роли авторов и экспертов кейса «ИИ в производстве».
В команду вошли:
Станислав Ноздрин, data scientist, аналитик данных из корпоративных процессов;
Соловьев Сергей, ведущий эксперт по прогнозной аналитике;
Анастасия Головина, руководитель группы отчётности.
Первые данные и первая модель
Мы забрали исторические данные о поставках из системы Celonis и каждую неделю обучали модель на новых накопленных данных с помощью CatBoost. Выдавали прогноз в виде рассылок на сомнительные поставки.
Модель получилась хорошей: она была обучена на 225000 ситуаций (строчек данных), имела точность по метрике accuracy 0.85, а F1-score 0.7.
Но время шло — появлялись новые вызовы в общении с поставщиками и поменялся бизнес-процесс поставок. Надо было проверить дополнительные данные о заказе и посмотреть, какие новые инсайты могут быть получены на свежих, обогащённых данных.
Новые данные и датасет
Для составления новых датасетов и обучения прогнозной модели мы предоставили участникам следующий список признаков:
Сумма заказа
Материал заказа
Поставщик
Категорийный менеджер
Операционный менеджер
Завод
Закупочная организация
Балансовая единица
Группа закупок
Группа материалов
Вариант поставки
Количество дней между стадиями согласования
Длительность
Количество обработчиков на разных стадиях
Месяц заказа
День недели заказа
Изменение даты поставки
Количество единиц товара
Стадии согласования заказа
Изменение позиции заказа на закупку: дата поставки
Отмена полного деблокирования заказа на закупку
Изменение позиции заказа на закупку: изменение даты поставки на бумаге
Датасет выглядел вот так:
Работа ИИ-моделей и как оценивалось её качество
На первом этапе соревнования участники создавали модели и делали прогнозы на тестовой выборке, состоящей из публичной и приватной частей. Показатели команд ранжировались в соответствии с уровнем точности модели. Также оценивалось качество решения: воспроизводимость кода, проведённый анализ данных, применение техник подготовки данных и непосредственного машинного обучения. Так отбиралась десятка лучших команд.
На втором этапе участники разрабатывали аналитическую платформу, которая отражает работу моделей, разработанных в прошлом раунде. Платформа также раскрывает обнаруженные инсайты— полезные и важные для тех, кто пользовался бы моделью (например, ответственный закупщик или бизнес-пользователь). Реализовать такую платформу можно было в виде дашборда, чат-бота, веб-сервиса. Оценки за первый и второй этап суммировались, а затем определялись победители.
Результат работы классификатора наглядно демонстрирует матрица ошибок.
Строки матрицы соответствуют действительному значению класса, столбцы — прогнозируемому значению класса:
FP — количество наблюдений класса 0, которые ошибочно отнесены моделью к классу 1;
FN — количество наблюдений класса 1, которые ошибочно отнесены моделью к классу 0;
TP — количество наблюдений класса 1, которые корректно отнесены моделью к классу 1.
Тогда:
N = TN + FP – число наблюдений класса 0,
P = TP + FP – число наблюдений класса 1,
V = P+N – общее число наблюдений.
Какие метрики применяли
• Accuracy — доля наблюдений, отнесённых к корректным классам:
Accuracy =TP + TNTP + FP + FN + TN
• Precision — доля наблюдений, корректно отнесённых к классу «1» среди всех наблюдений, отнесённых к классу «1»:
Precision = TPTP + FP
• Recall — доля наблюдений, корректно отнесённых к классу «1» от числа наблюдений класса «1» (синоним TPR):
Recall = TPTP + FN
• F1-score — точность классификации с учётом дисбаланса классов, являющаяся средним гармоническим двух метрик(Precision и Recall):
F1-score = 2 ∗ Precision ∗ RecallPrecision + Recall
Качество прогнозной модели можно оценить на основании различных метрик, при этом их информативность зависит от конкретной задачи. Прогнозирование срыва поставки было сведено к задаче бинарной классификации:
• Класс «0» — позиции заказов, по которым хотя бы одна поставка состоялась в установленный срок.
• Класс «1» — позиции заказов, по которым ни одна поставка не состоялась в установленный срок.
На обучающей выборке был выявлен дисбаланс классов: доля элементов, принадлежащих к классу «1» составила порядка 25% от её объёма. Таким образом, метрика «точность» (accuracy) — доля элементов выборки, отнесённых к корректному классу — не является достаточно информативной.
Пример: если прогнозная модель будет ставить в соответствие любому объекту класс «0», точность такой модели составит 75%. При этом с практической точки зрения такая модель бесполезна.
Исходя из этого, обучение прогнозной модели предполагалось выполнять путём максимизации метрики «F1» — точности прогнозирования с учётом дисбаланса классов. При этом нужно контролировать значения величин FPR (доля ложно-положительных прогнозов) и TPR (доля верно предсказанных наблюдений класса «1»).
Применительно к решаемой задаче, рекомендуемый объём обучающей выборки — 225 тысяч записей. Объём валидационной выборки установлен равным 25000 записей, что соответствует среднему числу позиций заказов, по которым срок поставки ещё не наступил и не состоялось ни одной поставки.
Участники-лидеры:
1 место, команда f1score(yval, yval);
2 место, команда Unthinkable;
3 место, команда Broke Boys Cartel.
Выводы
Благодаря участникам конкурса мы поняли, какую точность моделей можно получить на новых данных. Мы также определились с тем, какие признаки нам стоит и не стоит учитывать при будущей разработке модели, какие данные стоит собирать в системах.
При создании аналитической платформы команды смогли подсветить интересные инсайты на исторических данных, полезные не только нам, аналитикам и разработчикам, но и бизнес-пользователям. Например, команды составили рекомендательные системы по рискованным поставщикам, группе закупок и материалу. Эта система предлагает замену рискованного поставщика на более пунктуального, который отличился на обучающейся выборке доставкой аналогичного заказа — то, что надо!
Подобные идеи касались и исследования работ конкретных операционных и категориальных менеджеров, этапов согласования. Хочется отметить и созданную некоторыми командами возможность детального просмотра информации о том, почему модель выдала такой прогноз (вероятность срыва поставки), как и какие признаки повлияли на итоговое значения — это важно и полезно для сотрудников, принимающих решения.
Эти наработки позволяют нам идти в будущее. Работая в новых обстоятельствах с изменёнными логистическими цепочками и бизнес-процессами, мы стремимся накопить актуальные, дополнительные данные, отражающие новую действительность. Используя опыт нашей разработки, идеи и наработки участников, мы приступим к новой итерации проработки модели, отвечающей новым вызовам.
Наш кейс оказался самым популярным в прошлом году: за выход в финал боролись более 40 команд, 26 из них смогли представить свои решения, а десятка лучших оказалась в финале. Мы очень благодарны всем командам за отклик, за уделённое время, качественную проработку своих идей, за смелые, а где-то даже дерзкие и оригинальные решения.
«Молодёжь — двигатель прогресса, искусственный интеллект — его безграничный потенциал» (с) by ChatGPT.