Нейросети для прогнозирования продаж в розничном магазине бесплатное чтение

Скачать книгу

Введение

Это книга для тех, кто устал от бесконечных “дефицитов” и “неликвидов” на полках своего магазина. Для владельцев розничных точек, коммерческих директоров и категорийных менеджеров, чья прибыль напрямую зависит от того, насколько точно они угадают, чего захочет покупатель завтра. Если вы когда-нибудь смотрели на горы нераспроданного товара или, наоборот, на пустую полку, куда выстроилась очередь, и думали: “Должен быть способ лучше”, – эта книга для вас.

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

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

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

Часть 1. От интуиции к алгоритмам: Введение в ИИ для розницы

Почему традиционные методы прогнозирования больше не работают

Давай начистоту: если ты держишь в руках эту книгу, значит, знакомое чувство тоски при взгляде на пустые полки или, наоборот, на горы залежалого товара на складе тебе не понаслышке. Еще вчера казалось, что ты знаешь своего покупателя как облупленного, а сегодня хиты продаж пылятся, а то, что должно было висеть мертвым грузом, улетает со свистом. Знакомая картина? Поздравляю, ты столкнулся с тем, что старые добрые методы прогнозирования дают сбой.

Давай представим типичного владельца магазина, назовем его, скажем, предприниматель Петр. Петр – мужик опытный, лет десять в рознице. Он всегда знал: если на носу Первое сентября, закупай в три раза больше тетрадок и ручек. Если дождь на выходные – зонты и резиновые сапоги пойдут на ура. Петр полагался на свой опыт, интуицию и простую математику. Брал продажи прошлого года, накидывал 10-15% на инфляцию и рост – и жил себе спокойно.

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

Ручной режим управления: вчерашний день

Раньше все было проще. Рынки были стабильнее, ассортимент меньше, а покупатель – предсказуемее. Методы, которыми пользовался Петр, в науке называются традиционными методами прогнозирования. По сути, это либо перенос данных прошлого в будущее с небольшими поправками, либо попытка усмотреть цикличность. Мы все так или иначе это делали. Посмотрели на продажи за прошлый вторник, подумали: «А не случится ли чего завтра?» – и заказали примерно столько же.

Это похоже на вождение автомобиля, глядя только в зеркало заднего вида. Ты видишь, где были ямы и повороты, и надеешься, что дорога впереди будет точно такой же. Но что делать, если впереди – обрыв или новый крутой вираж? Зеркало заднего вида тебе не поможет. Ты можешь быть асом в вождении, но без взгляда вперед ты рано или поздно влетишь в дерево.

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

Мир сошел с ума, или Почему формулы больше не работают

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

Скажи мне, какая формула из учебника по экономике или статистике способна учесть вирусный ролик в соцсетях? Никакая. Математические модели, которые стояли на вооружении у розницы последние полвека, строились на предположении, что мир линеен и предсказуем. Но мир перестал быть таким. Он стал похож на калейдоскоп – чуть повернул, и картинка полностью сменилась.

Мы живем в эру информационного шума и сверхбыстрых изменений. Товар может стать хитом за один день благодаря одному посту в соцсетях и умереть на следующий из-за скандала с поставщиком. Покупатель стал импульсивным и непостоянным. Удержать его внимание и предугадать его желание старыми методами – все равно что пытаться остановить лавину голыми руками.

Три кита, на которых держался старый подход

По сути, традиционные методы прогнозирования всегда опирались на три главных принципа. И все три сегодня дают трещину.

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

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

Третий принцип – ограниченное число факторов. В старых моделях мы учитывали два-три, максимум пять факторов: цена, день недели, праздник, maybe реклама. Сейчас же количество факторов, влияющих на продажи, исчисляется десятками, а то и сотнями. Это и погода, и пробки, и мероприятия в городе, и посты в соцсетях у лидеров мнений, и даже фаза луны, если копнуть глубже. Человеческий мозг просто не в состоянии обработать такой объем информации.

Остановись на минуту и подумай о своем бизнесе или магазине, который ты знаешь. Сколько раз за последний месяц ты сталкивался с тем, что спрос вел себя абсолютно нелогично с точки зрения твоего опыта? Скорее всего, не раз. Это не ты сошел с ума и не твои клиенты. Это просто мир вокруг нас стал сложнее.

От интуиции к чему-то большему

Означает ли это, что опыт Петра и его интуиция теперь ничего не стоят? Вовсе нет. Интуиция опытного розничного продавца или владельца магазина – это бесценная вещь. Но сегодня ее нужно использовать иначе. Раньше она была главным инструментом, а теперь должна стать лишь одной из составляющих. Мы должны перестать полагаться только на нее и научиться давать ей в помощники нечто более мощное.

Представь штурмана на корабле. Раньше он смотрел на звезды, на направление ветра и говорил капитану, куда плыть. Это была чистая интуиция и опыт. А теперь у штурмана есть GPS, радары и карты с прогнозом погоды. Он по-прежнему принимает решение, но его решение основано на тысячах данных, а не только на том, что Большая Медведица находится слева по борту.

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

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

Так что не корите себя, если ваш внутренний Петр последнее время часто ошибается. Просто пришло время сменить инструмент.

Краткий ликбез: что такое нейросети и как они “мыслят”

Итак, с традиционными методами мы разобрались. Мы поняли, что таблички с графиками и здравый смысл – это отлично, но мир ускорился, и полагаться только на них стало рискованно. Пришло время поговорить о том, кто придёт нам на помощь. О нейросетях.

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

Про слона и наездника

Лучшая аналогия, которую я знаю – это обучение ребёнка. Как вы объясните малышу, что такое кошка? Вы же не будете давать ему энциклопедическое определение: “Млекопитающее семейства кошачьих, с четырьмя конечностями…” Нет. Вы просто показываете ему на кошку и говорите: “Смотри, это кошка”. Потом показываете на другую, третью. И вот, через несколько примеров, ребёнок уже сам может отличить кошку от собаки, даже если увидит породу, которую раньше ему не показывали.

Нейросеть работает примерно так же. Это не программирование в классическом смысле, где вы прописываете каждое “если-то”. Это обучение. Вы даёте нейросети множество примеров того, что хотите от неё получить, и она сама выстраивает внутри себя связи, чтобы понять логику.

Давайте представим себе слона и его наездника. Наездник – это тот самый классический программист, который пишет инструкции. Он чётко знает маршрут и говорит слону, куда идти: налево, направо, стоять. Это эффективно, но медленно, и наездник устаёт. Нейросеть же – это слон. Вы не объясняете слону словами, как обходить ямы и где искать воду. Вы просто водите его по саванне, и слон запоминает дорогу. В следующий раз, даже если вы не будете рядом, слон сам приведёт вас к водопою, потому что он “натренирован”. Он не думает словами, у него нет в голове карты с координатами, но он чувствует направление.

Как устроена нейросеть изнутри

Теперь чуть глубже, но всё так же без занудства. Строительный блок любой нейросети – это нейрон. Не пугайтесь биологии, это просто математическая функция. Представьте себе маленькую лампочку, у которой есть несколько входов и один выход. На входы поступают данные, лампочка их обрабатывает и, если “сумма впечатлений” превышает определённый порог, она загорается (передаёт сигнал дальше).

Таких лампочек в сети миллионы. Они соединены между собой, как сложная паутина. Когда вы “скармливаете” нейросети данные, например, историю продаж мороженого за прошлое лето, сигнал пробегает по этой паутине от лампочки к лампочке. Каждая связь между ними имеет свой “вес”. Это как важность сигнала. Если связь важная, то сигнал по ней проходит легко, если нет – затухает.

Изначально все эти веса расставлены случайным образом. Поэтому первая попытка нейросети что-то предсказать будет полной ерундой. Она скажет вам, что в жаркий июльский день продажи мороженого упадут до нуля, потому что у неё просто нет опыта.

И тут начинается магия обучения. Вы говорите ей: “Ошибка, дорогая. Всё не так”. И нейросеть начинает перенастраивать веса. Она ослабляет те связи, которые привели к неверному ответу, и усиливает те, которые, возможно, были правы. Это происходит миллионы раз, с миллионами примеров. Этот процесс называется обратным распространением ошибки, но для нас важно другое: постепенно, как тот самый слон в саванне, нейросеть начинает “чувствовать” закономерности.

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

Магия внутри “черного ящика”

Самое интересное, что даже создатели нейросети часто не могут точно сказать, почему она приняла то или иное решение. Мы видим, что пришло на вход (история продаж, погода, праздники) и что получилось на выходе (прогноз на завтра). А что творится в этой огромной паутине из лампочек и весов – загадка. Это и есть тот самый “чёрный ящик”, о котором вы наверняка слышали.

Но для нас, розничных продавцов, это не так уж и важно. Нам не нужно знать, по каким законам физики летит самолёт, чтобы долететь из Москвы до Владивостока. Нам важно, чтобы он долетел быстро и безопасно. Так и здесь: нам не нужно понимать каждый изгиб математической функции внутри нейросети. Нам нужен точный прогноз, который позволит не упустить прибыль и не завалить склад неликвидами.

И вот тут мы подходим к самому главному. Нейросеть не “думает” в человеческом смысле этого слова. У неё нет интуиции или предчувствий. Она просто проделывает колоссальную работу по перебору и взвешиванию миллионов вариантов, на которую у человека ушла бы целая жизнь. Она находит связи, которые наш мозг упускает из-за своей ограниченности. Например, она может заметить, что продажи синей детской коляски в спальном районе зависят от фазы луны… Шучу, конечно. Но неочевидные, но статистически значимые закономерности она вылавливает прекрасно. О том, как именно она это делает и какие неочевидные связи находит, мы подробно поговорим в одной из следующих глав.

Пока же просто запомните главную мысль: нейросеть – это не разумный монстр, а мощнейший инструмент для распознавания сложных закономерностей. Это ваш личный слон, который, один раз пройдя с вами по саванне ваших продаж, запомнит все тропинки и приведёт к самым сочным плодам.

Оглянитесь вокруг. В вашем магазине наверняка есть продавец, который работает двадцать лет. Он уже на глаз определяет, сколько батонов нужно поставить в пятницу вечером, и никогда не ошибается. Вы спрашиваете его: “Как ты это делаешь?”, а он пожимает плечами: “Чуйка”. По сути, мозг этого продавца – это и есть биологическая нейросеть, которая за двадцать лет бессознательно обучилась на тысячах примеров. То, что мы делаем сейчас – просто пытаемся оцифровать эту “чуйку” и поставить её на службу всему магазину, а не одному гениальному сотруднику.

Первые шаги: какие данные нужны для обучения модели

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

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

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

Данные для обучения: еда для мозга нейросети

Когда мы говорим про данные для обучения, мы не имеем в виду просто «файлик Exсel с продажами». Обучение модели – это как готовка сложного блюда. Просто взять кусок мяса и бросить его на сковороду – это одно. А приготовить стейк в винном соусе с трюфелями – это совсем другое. Тут важен и маринад, и гарнир, и соус.

Нейросеть – это гурман. Ей нужны не просто цифры, а контекст. Какие же ингредиенты нам понадобятся?

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

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

Второй слой – это данные о самом товаре. Не ограничивайтесь артикулом и названием. Нейросети будет полезно знать, что это за зверь. К какой категории он относится? Какой у него бренд? Это товар повседневного спроса или сезонный? Какой у него срок годности? Есть ли у него заменяющие товары-аналоги на полке? Вся эта информация помогает модели не просто слепо повторять цифры, а понимать логику спроса.

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

Обучение модели: от студента до профессора

Итак, ингредиенты собраны. Что теперь? Теперь начинается самое интересное – процесс обучения модели. Это не похоже на то, как вы включаете новый пылесос. Это больше похоже на то, как вы учите студента-первокурсника разбираться в вашем ассортименте.

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

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

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

И вот наступает момент, когда мы говорим: «Стоп, достаточно. Ты научилась». Это значит, что на тестовых данных (тех самых вторых полугодиях) модель показывает приемлемую ошибку. Она больше не пытается угадать каждый чих, а поймала основные тренды и закономерности. Теперь её можно выпускать в свободное плавание и давать ей реальные данные для прогноза на завтра или на следующую неделю.

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

А сейчас просто запомните главное: качество прогноза на 80% зависит от того, что вы положили на вход. Поэтому, прежде чем бросаться в объятия искусственного интеллекта, наведите порядок в своих данных. Оглянитесь на свой магазин, на свои Excel-таблицы. Есть ли там все, что нужно? Не прячутся ли там скелеты в шкафу в виде неучтенных списаний или праздничных дней, отмеченных как «обычная среда»? Подумайте об этом.

Очистка данных: как превратить хаос в золото

Представьте, что вы решили испечь идеальный яблочный пирог. У вас есть роскошная духовка, дорогой миксер и самый лучший рецепт от известного шеф-повара. Но вместо отборных яблок, муки высшего сорта и свежих яиц, в вашем холодильнике лежат гнилые фрукты, прогорклая мука и яйца с истекшим сроком годности. Испортит ли это пирог? Ещё как. Он будет не просто невкусным, его, скорее всего, даже в рот не захочется взять.

Точно так же работают и нейросети, о которых мы с вами говорили в прошлой главе. Мы можем подобрать самую совершенную архитектуру нейросети, потратить часы на её настройку, но если на вход мы подадим некачественные данные, то на выходе получим ту самую гнилую выпечку. В мире аналитики это называется GIGO – «Garbage In, Garbage Out». И сегодня мы научимся отделять зерна от плевел, а точнее, превращать тот самый хаос, который творится в данных любого магазина, в чистое золото.

Тишина в эфире или почему тишина это плохо

Когда мы говорим о данных из розничного магазина, мы часто представляем себе идеальные таблицы: аккуратные колонки с датами, ровные строчки с продажами, никаких ошибок. Но те, кто хоть раз выгружал отчет из кассовой системы или 1С, знают, что реальность далека от идеала. Данные – это живой, дышащий организм, и у него, как у человека, есть свои болезни. Одна из самых распространенных болезней – пропуски.

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

Поэтому наша задача – найти эти «островки тишины» и восстановить справедливость. Как? Например, можно заполнить пропуск средним значением между вторником и четвергом. Или, если мы знаем, что в прошлые среды продажи были примерно на одном уровне, взять среднее арифметическое за предыдущие периоды. Важно не просто замазать дыру, а понять, откуда она взялась, и принять осознанное решение. Иногда пропуск – это не ошибка, а действительно выходной. В таком случае нейросеть нужно будет отдельно обучить учитывать такие дни.

Духи и селедка или когда соседи мешают жить

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

Приведу пример из жизни. Представьте отдел парфюмерии в крупном супермаркете. Рядом с ним расположен отдел кулинарии, где продают селедку. В базе данных мы видим, что в пятницу вечером продажи дорогого французского одеколона взлетели до небес. Нейросеть, не будь дура, проанализирует это и скажет: «Ого! По пятницам одеколон продается в три раза лучше! Надо заказывать больше к следующей пятнице». Но если бы наш анализ данных был более тщательным, мы бы поняли, что продажи одеколона выросли не потому, что все вдруг решили стать французскими денди, а потому, что кассирша по ошибке пробила чек за селедку на кассе парфюмерного отдела. Это и есть шум – данные, которые вводят нашу модель в заблуждение.

Таких аномалий может быть масса. Например, возвраты товара. Если покупатель сдал обратно утюг, система покажет отрицательную продажу. Для нейросети это сигнал, что в этот день кто-то «купил» минус один утюг. Чтобы такого не происходило, нам нужно отфильтровывать возвраты или обрабатывать их отдельно, не смешивая с обычными продажами. Или, скажем, разовая крупная оптовая закупка соседнего кафе в вашем маленьком магазинчике у дома. Она выбьется из общего графика жирной точкой, создав иллюзию ажиотажного спроса, хотя на самом деле это просто случайность. Такие выбросы тоже нужно аккуратно «приземлять», чтобы они не искажали общую картину.

Когда дата хочет быть красивой

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

Вспомните, как в вашей учетной системе называется, скажем, молоко. «Молоко 3,2% Простоквашино 1л», «Простоквашино молоко 3.2% литр», «Молоко Простоквашино 3.2 пакет 1 л». Для вас, как для человека, понятно, что это один и тот же товар. Но для нейросети это три абсолютно разных продукта, потому что она видит просто набор символов. Она начнет прогнозировать продажи для «Молоко 3,2% Простоквашино 1л» отдельно, для «Простоквашино молоко 3.2% литр» отдельно и так далее. В итоге прогноз будет смазанным и неточным, потому что данные раздроблены.

Нам нужно объединить это в единый, чистый и понятный идентификатор. То же самое касается дат и времени. Где-то дата записана как «2024-03-15», где-то как «15.03.24», а где-то и вовсе как «15 марта 2024». Мы должны привести все к одному стандарту. Чаще всего используют формат ГГГГ-ММ-ДД, так как он позволяет легко сортировать данные по датам. И не забывайте про время! Если ваш магазин работает круглосуточно, важно понимать, где заканчиваются продажи одного дня и начинаются другого.

Главный секрет золотоискателя

Очистка данных – это занятие, которое на первый взгляд кажется скучной рутиной. Многие новички пренебрегают этим этапом, им хочется поскорее запустить крутую нейросеть и получить магический прогноз. И это самая распространенная и дорогостоящая ошибка. Можно потратить недели на настройку алгоритмов и не получить никакого результата только потому, что на вход подали «грязную» картошку.

Поэтому запомните главный секрет: в мире анализа данных 80% времени занимает именно подготовка и очистка, и только 20% – построение моделей и их настройка. И это нормально. Это не скучная работа, а самая настоящая алхимия, где вы из груды мусора, ошибок и несостыковок выплавляете чистое золото, которое и станет основой для прибыли вашего магазина. Так что в следующий раз, когда будете смотреть на скучную таблицу в Excel, вспомните этот разговор. Не ругайте её за хаос. Улыбнитесь и скажите: «Ну что, красавица, давай-ка я причешу тебя, и ты покажешь, на что способна». Поверьте, нейросеть скажет вам за это спасибо, а ваш склад перестанет задыхаться от излишков или пустовать в самый неподходящий момент.

Выбираем инструмент: обзор доступных нейросетей и платформ

Итак, мы разобрались с тем, что нейросети – это не магия, а вполне рабочий инструмент. Мы даже выяснили, какие данные нужно подготовить и как их отмыть до блеска, чтобы алгоритм не запутался. Но перед нами встает новый, вполне практический вопрос: а что, собственно, брать в руки? Какие бывают эти нейросети и где их достать?

Если вы ждали момента, когда я начну сыпать сложными названиями библиотек и языков программирования, то вынужден вас разочаровать. Мы пойдем другим путём. Представьте, что вы решили испечь сложный многоярусный торт. У вас есть два пути: первый – пойти на курсы кондитеров, выучиться на шеф-повара, построить дома профессиональную кухню, закупить тонны ингредиентов и несколько месяцев тренироваться. Второй – зайти в хороший кулинарный магазин и купить готовую смесь для торта, где всё уже смешано в нужных пропорциях, и просто добавить яйца и масло. Оба пути ведут к торту. Вопрос только в ваших целях, ресурсах и желании возиться.

В мире искусственного интеллекта ситуация ровно та же. Инструменты ИИ и платформы нейросетей – это и есть те самые “готовые смеси” и “профессиональные кухни”. Для розничного магазина, который хочет прогнозировать продажи и оптимизировать закупки, совсем не обязательно нанимать команду data scientist’ов и писать свой нейросетевой движок с нуля. Это примерно как изобретать колесо каждый раз, когда нужно доехать до соседнего квартала.

Готовые платформы для бизнеса: ИИ как услуга

Самый простой и быстрый способ подружиться с нейросетями – это воспользоваться готовыми облачными платформами. Это такие огромные интернет-магазины ИИ-решений. Крупные игроки вроде Yandex DataSphere, SberCloud или западные аналоги вроде AWS и Google Cloud уже давно всё придумали за нас. Они предоставляют инструменты, где нейросеть можно обучить буквально в несколько кликов.

В чём тут суть? Вы загружаете на платформу свои очищенные данные по продажам, выбираете тип задачи (нам нужно прогнозирование временных рядов), и платформа сама предлагает оптимальные алгоритмы. Она перебирает десятки вариантов нейросетей, подбирает настройки и выдает готовую модель. Вам остаётся только получить результат в виде прогноза на завтра или на месяц. Это как заказать такси: вы не думаете, как работает двигатель и по какому маршруту лучше ехать, вы просто садитесь и едете.

Такие платформы хороши тем, что они уже заточены под бизнес-задачи. В них часто встроены модули для работы с табличными данными, они понимают, что такое “продажи” и “остатки”. Плюс, они берут на себя всю техническую кухню: сервера, обновления, безопасность. Минус – это стоит денег. Но, как показывает практика, аренда такого решения часто обходится дешевле, чем зарплата целой команды разработчиков.

Библиотеки для программистов: конструктор для гиков

Если у вас в штате есть свой программист или вы сами не боитесь кода, то можно пойти по второму пути – использовать библиотеки машинного обучения. Самые популярные в мире – это TensorFlow от Google и PyTorch от Facebook (теперь Meta). Это такие огромные наборы готовых кирпичиков, из которых можно собрать нейросеть любой сложности.

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

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

Специализированные решения для ритейла

А есть и третий, золотой путь. Существуют компании, которые создают ИИ-решения, заточенные строго под задачи розничной торговли. Они уже взяли TensorFlow, обучили его на данных тысяч магазинов, учли сезонность, праздники, влияние акций и завернули всё это в красивую и понятную программу.

Такие инструменты ИИ часто интегрируются прямо в 1С или другие системы учёта. Вы просто нажимаете кнопку “Сформировать прогноз”, и программа выдает вам: “Завтра купят 20 буханок хлеба и 5 упаковок сосисок”. Всё. Вам не нужно быть программистом или математиком. Нужно просто уметь читать цифры.

Это как заказать индивидуальный торт у профессионального кондитера. Вы приходите, говорите: “Хочу торт с малиной и фисташками на день рождения”, и через день получаете готовый шедевр. Вам не важно, как он пекся, какие там были химические реакции – вы просто наслаждаетесь результатом.

Что выбрать новичку?

Если вы только начинаете свой путь и у вас нет команды программистов, мой вам совет: не геройствуйте. Не лезьте сразу в TensorFlow с головой. Начните с готовых платформ или специализированных ритейл-решений. Ваша цель – не стать гуру глубокого обучения, а наладить закупки и увеличить прибыль. Инструмент должен работать на вас, а не вы на него.

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

Кстати, вспомните свой первый рабочий день в магазине. Помните этот хаос? Где что лежит, как пробивать, как общаться с покупателями? А теперь вы уже эксперт. Так и здесь: поначалу кажется, что выбор инструмента – это что-то невероятно сложное. Но как только вы начнёте пробовать, страх уйдёт, и придёт понимание. И тогда нейросети из страшного зверя превратятся в вашего самого лучшего помощника, который никогда не спит, не просит прибавки к зарплате и всегда готов подсказать, сколько пачек гречки нужно заказать на завтра.

Часть 2. Погружение в данные: Анализ прошлого, чтобы видеть будущее

Сегментация товаров: от бананов до запасных батареек

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

Представьте себе обычный розничный магазин. Ну, например, небольшой супермаркет у дома. Что там лежит на полках? Десятки видов хлеба, молоко разной жирности, крупы, макароны, чипсы, пиво, средства для мытья посуды, лампочки, батарейки, корм для животных и, конечно, бананы. А теперь вопрос: можно ли ко всем этим товарам относиться одинаково, когда мы пытаемся спрогнозировать, сколько их продастся завтра? Спойлер: нет, нельзя. И дело тут даже не в том, что бананы портятся быстрее лампочек, хотя и это тоже важно.

Проблема в том, что каждый товар живёт своей жизнью. У бананов спрос зависит от дня недели (в выходные берут больше) и цены. У пива – от погоды и футбольных матчей. У лампочек – от того, сколько их перегорело у людей в квартирах. Если мы попытаемся скормить нейросети все эти товары в одной куче, она просто запутается. Это всё равно что попросить человека одновременно слушать рок, классику и детские песенки через одни наушники. В голове будет каша. Чтобы этого избежать, мы и придумали сегментацию.

Что такое сегментация и зачем делить бананы с батарейками

Если говорить простым языком, сегментация товаров – это разделение всего вашего ассортимента на группы по схожим признакам. Но не просто по признаку “молочка” или “бакалея”, а по признакам, важным для прогнозирования и закупок. Это как в зоопарке: всех животных кормят по-разному. Львам дают мясо, обезьянам – бананы, а пингвинам – рыбу. Если перепутать, будет беда. В нашем магазине то же самое.

Зачем нам это нужно? Во-первых, чтобы нейросеть не сходила с ума. Обучая модель на однородных товарах, мы повышаем точность прогноза. Во-вторых, чтобы автоматизировать закупки. Для одной группы товаров мы можем доверить заказы роботу, а для другой – оставить контроль за человеком. В-третьих, чтобы эффективно управлять остатками. Для скоропортящихся товаров страховой запас – это зло, а для товаров повседневного спроса с долгим сроком хранения – необходимость.

Давайте вернёмся к нашему супермаркету. Возьмём два товара: бананы и запасные батарейки. Бананы – это классический пример товара с коротким жизненным циклом. Они быстро портятся, их покупают часто, но понемногу. Спрос на них может резко вырасти перед праздниками или, наоборот, упасть в жару, потому что все едят мороженое. Батарейки – история совсем иная. Они не портятся, их покупают редко и обычно в моменте, когда сели в пульте. Спрос на них более-менее стабилен, но может резко подскочить перед Новым годом, когда дарят много игрушек.

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

Как делить: основные принципы разделения

Теперь давайте подумаем, по каким же критериям мы будем делить наш ассортимент. Тут нет одного волшебного правила, но есть несколько проверенных способов. Обычно я предлагаю представить, что вы объясняете новому стажёру, как заказывать товары. Вы же не будете ему говорить: “Слушай, тут всё сложно, просто заказывай по чуть-чуть всего”. Скорее всего, вы начнёте инструктаж с фраз: “Вот эти продукты портятся, их надо заказывать каждый день и понемногу, а вот эти могут лежать месяцами, их можно заказывать раз в неделю ящиками”. Поздравляю, вы только что провели сегментацию.

Первый и самый очевидный критерий – это срок годности и условия хранения. Всё, что портится быстро, требует к себе повышенного внимания. Это молоко, мясо, овощи, фрукты, свежая выпечка. Для таких товаров нужен максимально точный краткосрочный прогноз, буквально на день-два вперёд. Ошибка здесь приводит к списаниям. Второй критерий – стабильность спроса. Есть товары, которые покупают всегда: хлеб, сахар, соль, туалетная бумага. Их называют товарами повседневного спроса. А есть товары с импульсным спросом: те же батарейки, лампочки, зонты, сезонные товары. Прогнозировать их сложнее, потому что они зависят от внешних факторов, а не от привычки.

Третий критерий – стоимость и маржинальность. Дорогие товары, такие как элитный алкоголь или бытовая техника (если ваш магазин их продаёт), требуют более осторожного подхода к закупкам. Ошибка с заказом дорогого товара может серьёзно ударить по оборотным средствам. А дешёвые товары с низкой маржой можно заказывать с небольшим запасом, чтобы не потерять продажу из-за отсутствия копеечной позиции. Часто бывает, что человек пришёл за дешёвым товаром, не нашёл его и ушёл в другой магазин, где купил всё остальное.

И последний важный критерий – это роль товара в ассортименте. Есть товары-локомотивы, на которые идут люди (молоко, хлеб). Есть товары-компаньоны, которые покупают вместе с локомотивами (печенье к чаю). А есть товары-заменители, которые покупают, если основного товара нет в наличии. Всё это нужно учитывать. Нейросеть, конечно, может со временем сама найти эти связи, но если мы сразу разложим товары по правильным полочкам, процесс пойдёт гораздо быстрее и эффективнее.

Погружаемся глубже: от простого к сложному

Когда вы только начинаете, можно ограничиться самым простым делением: скоропорт, товары повседневного спроса, импульсные товары и сезонные товары. Но чем дальше вы будете погружаться в аналитику, тем тоньше будут становиться ваши настройки. Например, внутри группы молочных продуктов можно выделить отдельную подгруппу – ультрапастеризованное молоко. Оно хранится дольше обычного, значит, к нему уже другой подход.

Внутри каждой такой группы можно проводить ABC-анализ. Это когда мы делим товары на три категории по их вкладу в выручку или прибыль. Товары А – это золотой фонд, 20% ассортимента, которые дают 80% прибыли. К ним нужно относиться с максимальным вниманием, прогноз для них должен быть самым точным. Товары С – это всякая мелочёвка, которая есть в ассортименте “для галочки”, чтобы было. Там можно позволить себе чуть больше ошибок в прогнозе.

А теперь представьте, что вы наложили эту схему на наше деление по срокам годности. Что получится? Получается очень интересная картина. Например, скоропортящийся товар из категории А (свежее мясо) – это предмет самой высокой важности. Мы должны прогнозировать его с ювелирной точностью и, возможно, вообще не держать на него страховой запас, чтобы не списывать. А скоропортящийся товар из категории С (зелень, петрушка) – это товар, за которым мы просто следим, чтобы он был в наличии, но не тратим на него свои главные аналитические ресурсы.

Вот так, комбинируя разные подходы, мы и строим стройную систему. В этой системе каждый товар знает своё место. Бананы попадают в группу “Скоропорт, категория А”, и мы понимаем, что для них нужно подключить внешние факторы, например, следить за праздниками. А запасные батарейки уходят в группу “Импульсный спрос, категория В”, и для них мы просто строим обычный прогноз на основе временных рядов, но с возможностью ручной корректировки перед Новым годом.

Оглянитесь вокруг себя. Даже в вашем холодильнике дома, скорее всего, есть негласная сегментация. Йогурты, которые нужно съесть завтра, лежат на видном месте, а замороженные пельмени могут ждать своего часа месяцами. Вы же не относитесь к ним одинаково? Вот и нейросеть учится у нас. Наша задача – помочь ей увидеть эти негласные правила и превратить их в математические алгоритмы. Чем лучше мы проведём сегментацию в самом начале, тем меньше ошибок нейросеть совершит в будущем. И тем спокойнее мы будем спать, зная, что бананы не сгниют на складе, а батарейки всегда будут под рукой у покупателя, который внезапно решил переключить канал.

Влияние внешних факторов: погода, праздники и городские события

Представьте, что вы – штурман огромного корабля под названием «Розничный магазин». Вы уже разобрались с картами (данными о прошлых продажах), научились чистить компас (очистили данные) и даже выбрали себе в помощники самого современного лоцмана (нейросеть). Казалось бы, плыви себе спокойно по намеченному курсу. Но тут из ниоткуда налетает шквал, и ваш идеальный маршрут летит в тартарары. Что это за шквал? Это те самые внешние факторы, о которых мы поговорим в этой главе.

Скачать книгу