Применение ИИ 15 лет назад
2006 год, зима.
Работаю в ООО «Топ-книга» то-ли менеджером распределительной логистики (распределяли товар по нашим магазинам), толь начальником этого отдела, уж не помню.
Направление: открытки, игрушки и т.п.
Вся ИТ система :) работала в «Шопсах», это такие Excel файлы с перечнем товаров, приходом и расходом. Все увязано формулами и макросами. Из-за ограничения тогдашнего экселя в 256 столбцов, файлы приходилось часто менять, заводить новые.
И соответственно с тем уровнем аналитики и ИТ, формирование заявок в магазины конечно базировалось на их продажах/остатках, но в общем все делалось на глаз.
Пример:
«Продалось за месяц 5 красных мишек (осталось 2), давай закинем 3 красных и 4 желтых (красные кончились)… вроде хорошо пошли, а желтые это почти красные.»
(На светофоре моргающий желтый, это почти зеленый J.)
Или
«Мало что-то видов открыток «С днем рождения бабушке»... накинем еще щепотку»
Небольшое отступление.
Такое тыканье пальцем в небо меня то же не устраивало и в результате была сделана EPR система на базе тех же Excel файлов…
Да… да! EPR система (автоматическое формирование заявок в магазины + заявок на склад от поставщиков) была сделана в Экселе с макросами.
Но попозже напишу как там все было.
Вот и смотря на всю эту пестроту перед глазами.
Возник в голове вопрос…?
Когда менеджер делает заявку со склада в магазин новых позиций, то хотелось бы знать, как они будут продаваться.
Но!
Когда менеджер по закупу, заказывает у производителя товар, то хотелось бы +- знать, как он будет продаваться.
И это даже важнее!
И знать, как будет продаваться товар, нужно в виде цифры!
Т.е. предполагать, Как будет продаваться товар, до его закупа у поставщика.
Без экспертной оценки человеком.
Не слабое такое желание :)
В ту пору ввели такое понятие как коэффициент оборачиваемости. Т.е. отношение продаж в неделю к запасам в неделях.
К= «Продажи в неделю»/ «Запас в неделях»
Сам он показывал фактически товарный запас, а его динамика о «продаваемости» и о перекосах поставок/продаж конечно.
Товарный запас, насколько помню, устанавливался не более 12-16 недель.
(Если подумать с сегодняшнего времени, это дикость. Но логистика доставки тогда была такая логистика + видимо на верху было видней.)
«К» считался в штуках, а не в рублях.
Возникла гипотеза.
Клиент ходит по магазину, ищет товар…
Наш товар «цепляет только за глаз».
Да, тебе нужна открытка или игрушка +- известного вида-содержания, но купишь то, что тебе понравилось.
Стало быть, надо как то понять, что нравится людям.
Поскольку под рукой была база данных об истории продаж около 50.000 или 80.000 позиций + их фото. Возникла мысль как то все это обработать и посмотреть.
Копаясь в интернете, опять наткнулся на нейронные сети.
Нашел простенькую программу NeuroPro 0.25, от какого-то института Российского.
Покрутил ее, покопался...
Возникло два вопроса.
1. На что смотреть в картинках товара?
2. В каком виде представить коэфф. оборачиваемости?
Да я решил, что нейросеть должна выдавать прогноз по коэфф. оборачиваемости.
Поехали.
«На что смотреть в картинках?»
Решил разбить картинку на 9 квадратов.
В каждом квадрате усредняется цвет, попиксельно складываются его цифровые значения и делятся на кол-во пикселей. В итоге получается изображение из квадратов в оттенках серого.
Т.е. на одну позицию товара получаем список из 9и значений цвета (цифры условные).
1691528224
4131431941
5113243236
0406324136
.. и т.д.
«В каком виде представить коэфф. оборачиваемости?»
С помощью функции рациональная сигмоида F(x)=x/([x]+a) значения коэфф. оборачиваемости были засунуты в интервал 0…1.
Обработка картинки велась в макросе в Excel… ну не программист я :).
В чем разобрался, то и пользовал. Да в то время, в общем то многое работало так или иначе в Excel.
По итогу получил базу, как сейчас говорят датасет из 50.000 или 80.000 (за давностью лет не помню) соответствий.
«Девять чисел характеризующих картинку»
и
«Числа в пределах 0…1 характеризующих как хорошо эта позиция продается»
В программе NeuroPro была создана трехслойная нейросеть в 9-ю входами и одним выходом.
Некоторое время я ее крутил всяко разно, изменяя коэффициенты, веса нейронов, количество в слоях и т.д.
В итоге, было взято около 10.000 обучающих примеров и сеть была на этом наборе обучена.
Из запаса взяты несколько тысяч проверочных примеров. Сеть выдала прогноз по оборачиваемости товара, я его сравнил с фактом и получил достоверность прогноза 76%, для допуска +-0,1.
Т.е. мог предсказывать «продаваемость» товара по дробной шкале от 0 до 1
(0- плохие продажи, 1-это супер продажи).
На прогноз (да и на обучающие данные) накладывались конечно ошибки.
Запас не всегда поддерживался в нужном объеме.
+
Качество картинок порой было не оч. хорошее.
+
В идеале конечно, надо было брать данные по конкретному региону/магазину (предпочтения могут быть разными).
Все это делалось после работы и заняло коло двух месяцев. К сожалению, далее экспериментальных проб дело не пошло, начальство не поняло, что это дает.
Обращался и в сами издательства, но и там не поняли.
Да... надо было конечно с генеральным говорить, благо все в одном здании и довольно все демократично было.
А может было еще не время?