00:01 Введение
01:56 Испытание неопределенности M5 - Данные (1/3)
04:52 Испытание неопределенности M5 - Правила (2/3)
08:30 Испытание неопределенности M5 - Результаты (3/3)
11:59 До сих пор
14:56 Что (вероятно) произойдет
15:43 Потеря пинбола - Основа 1/3
20:45 Отрицательное биномиальное распределение - Основа 2/3
24:04 Модель состояния пространства инноваций (ISSM) - Основа 3/3
31:36 Структура продаж - Модель REMT 1/3
37:02 Сборка - Модель REMT 2/3
39:10 Агрегированные уровни - Модель REMT 3/3
43:11 Обучение на одном этапе - Обсуждение 1/4
45:37 Полный образец - Обсуждение 2/4
49:05 Пропущенные образцы - Обсуждение 3/4
53:20 Ограничения M5 - Обсуждение 4/4
56:46 Заключение
59:27 Предстоящая лекция и вопросы аудитории

Описание

В 2020 году команда Lokad заняла 5-е место среди 909 конкурирующих команд на конкурсе прогнозирования M5, который проводится по всему миру. Однако на уровне агрегации SKU эти прогнозы заняли 1-е место. Прогнозирование спроса является первостепенной задачей для цепи поставок. Подход, примененный в этом конкурсе, оказался нетипичным и отличается от других методов, применяемых другими топ-50 участниками. Из этого достижения можно извлечь множество уроков, как предварительную подготовку к решению дальнейших прогностических задач для цепи поставок.

Полный текст

Слайд 1

Добро пожаловать на эту серию лекций по цепи поставок. Я - Жоанн Верморель, и сегодня я представлю “Номер один на уровне SKU в конкурсе прогнозирования M5”. Точный прогноз спроса считается одним из основных принципов оптимизации цепи поставок. Действительно, каждое решение в цепи поставок отражает определенное предвидение будущего. Если мы можем получить более точные представления о будущем, то мы можем принимать решения, которые количественно превосходят наши цели в области цепи поставок. Таким образом, определение моделей, обеспечивающих передовые предсказательные точность, является первостепенной задачей и представляет интерес для оптимизации цепи поставок.

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

Slide 2

M5 был конкурсом прогнозирования, который проходил в 2020 году. Этот конкурс назван в честь Спироса Макридакиса, известного исследователя в области прогнозирования. Это было пятое издание этого конкурса. Эти конкурсы происходят каждые несколько лет и обычно различаются по фокусу в зависимости от типа используемого набора данных. M5 был связан с цепочкой поставок, так как использовался набор данных розничных магазинов, предоставленных Walmart. Конкурс M6, который еще предстоит, будет сосредоточен на финансовом прогнозировании.

Набор данных, используемый для M5, был и остается общедоступным набором данных. Это были агрегированные данные розничных магазинов Walmart на ежедневном уровне. В этом наборе данных было около 30 000 SKU, что является довольно небольшим набором данных для розничной торговли. Действительно, как правило, один супермаркет обычно содержит около 20 000 SKU, а Walmart имеет более 10 000 магазинов. Таким образом, в целом этот набор данных - набор данных M5 - составлял менее 0,1% мирового набора данных Walmart, который был бы актуален с точки зрения цепочки поставок.

Более того, как мы увидим далее, в наборе данных M5 отсутствовали целые классы данных. В результате моя приблизительная оценка состоит в том, что этот набор данных на самом деле ближе к 0,01% от масштаба того, что требуется на уровне Walmart. Тем не менее, этого набора данных достаточно для проведения очень надежного тестирования прогнозных моделей в реальной среде. В реальной среде нам пришлось бы обратить особое внимание на проблемы масштабируемости. Однако с точки зрения конкурса прогнозирования, разумно сделать набор данных достаточно маленьким, чтобы в нем можно было использовать большинство методов, даже неэффективных. Это также гарантирует, что участников не ограничивает количество вычислительных ресурсов, которые они могут использовать в этом конкурсе прогнозирования.

Slide 3

Конкурс M5 включал два отдельных испытания, известных как Accuracy и Uncertainty. Правила были простыми: был общедоступный набор данных, к которому каждый участник мог получить доступ, и чтобы принять участие в одном или обоих из этих испытаний, каждый участник должен был создать свой собственный набор данных, который был его прогностическим набором данных, и представить его на платформе Kaggle. Испытание Accuracy заключалось в предоставлении среднего прогноза временных рядов, которые являются наиболее классическим видом формального прогноза. В данной конкретной ситуации речь идет о предоставлении ежедневного среднего прогноза для примерно 40 000 временных рядов. Испытание Uncertainty заключалось в предоставлении квантильных прогнозов. Квантили - это прогнозы с смещением, однако смещение является преднамеренным. В этом и заключается суть наличия квантилей. Эта лекция полностью посвящена испытанию Uncertainty, и причина в том, что в цепочке поставок именно неожиданно высокий спрос создает дефицит товара, а неожиданно низкий спрос приводит к списанию запасов. Затраты в цепочках поставок сосредоточены на крайностях. Нас не интересует среднее значение.

На самом деле, если мы посмотрим на то, что в среднем означает в случае Walmart, то оказывается, что для большинства товаров, в большинстве магазинов, в большинстве дней, средние продажи, которые будут наблюдаться, равны нулю. Таким образом, у большинства товаров есть дробный средний прогноз. Такие средние прогнозы очень неудовлетворительны с точки зрения цепи поставок. Если ваши варианты - либо хранить ноль, либо пополнять одну единицу, средние прогнозы не имеют особого значения. Розничная торговля здесь не находится в уникальном положении; это практически одна и та же ситуация, будь то FMCG, авиация, производство или роскошь - практически любая другая отрасль.

Вернемся к вызову неопределенности M5, здесь было четыре квантиля, которые должны были быть получены, соответственно на 50%, 67%, 95% и 99%. Вы можете рассматривать эти квантили как цели уровня обслуживания. Точность этих квантильных прогнозов оценивалась по метрике, известной как функция потерь пинбола. Я вернусь к этой метрике ошибки позже в этой лекции.

Slide 4

В этом вызове неопределенности участвовало 909 команд со всего мира. Команда из Lokad заняла пятое место в общем зачете, но первое место на уровне SKU. Действительно, хотя SKU составляли около трех четвертей временных рядов в этом вызове, были различные уровни агрегации, начиная от штата (например, Соединенные Штаты - Техас, Калифорния и т. д.) до SKU, и все уровни агрегации были равнозначны в итоговом счете этого соревнования. Таким образом, даже если SKU составляли около трех четвертей временных рядов, они составляли только около 8% от общего веса в итоговом счете соревнования.

Метод, использованный этой командой из Lokad, был опубликован в статье под названием “Метод оценки распределения неопределенности продаж Walmart на основе модели ISSM”. Я размещу ссылку на эту статью в описании к этому видео после завершения лекции. Вы найдете все элементы более подробно. Для ясности и краткости я буду называть модель, представленную в этой статье, моделью BRAMPT, просто по инициалам четырех соавторов.

На экране я перечислил пять лучших результатов для M5, полученных из статьи, которая предоставляет общие представления о результатах этого прогнозного соревнования. Точность ранжирования довольно сильно зависит от выбранной метрики. Это не слишком удивительно. Вызов неопределенности использовал масштабированный вариант функции потерь пинбола. Мы вернемся к этой метрике ошибки через минуту. Хотя вызов неопределенности M5 показал, что у нас нет средств для устранения неопределенности с помощью имеющихся у нас методов прогнозирования, даже близко, это вовсе не удивительный результат. Учитывая, что продажи в розничных магазинах обычно бывают непостоянными и прерывистыми, это подчеркивает важность принятия неопределенности вместо ее полного отрицания. Однако замечательно отметить, что поставщики программного обеспечения для цепи поставок отсутствовали в первых 50 результатах этого прогнозного соревнования, что еще более любопытно, учитывая, что эти поставщики хвастаются своими передовыми технологиями прогнозирования.

Slide 5

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

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

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

Slide 6

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

Slide 7

Вызов “Неопределенность” в M5 направлен на вычисление квантильных оценок будущих продаж. Квантиль - это точка в одномерном распределении, и по определению, 90-процентный квантиль - это точка, где есть 90-процентный шанс быть ниже этого значения и 10-процентный шанс быть выше него. Медиана, по определению, является 50-процентным квантилем.

Функция потерь pinball - это функция, которая глубоко связана с квантилями. По сути, для любого заданного значения tau между нулем и единицей, tau можно интерпретировать, с точки зрения цепи поставок, как цель уровня обслуживания. Для любого значения tau, связанного с квантилем, минимизируется функция потерь pinball. На экране мы видим простую реализацию функции потерь pinball, написанную на языке Envision, специализированном языке программирования Lokad, предназначенном для оптимизации цепей поставок. Синтаксис напоминает язык Python и должен быть относительно понятен аудитории.

Если мы попытаемся разобрать этот код, у нас есть y, который является реальным значением, y-hat, который является нашей оценкой, и tau, который является нашей целевой квантилью. Опять же, целевая квантиль фундаментально является целевым уровнем обслуживания в терминах цепи поставок. Мы видим, что недооценка имеет вес, равный tau, в то время как переоценка имеет вес, равный единице минус tau. Функция потерь pinball является обобщением абсолютной ошибки. Если мы вернемся к tau, равному 0,5, мы увидим, что функция потерь pinball является просто абсолютной ошибкой. Если у нас есть оценка, которая минимизирует абсолютную ошибку, то мы получаем оценку медианы.

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

Вызов M5 Uncertainty представил серию из четырех квантильных целей на уровнях 50, 67, 95 и 99. Я обычно называю такую серию квантильных целей квантильной сеткой. Квантильная сетка или квантизированные сетки прогнозов не совсем являются вероятностными прогнозами; это близко, но еще не то. С квантильной сеткой мы все еще выбираем наши цели. Например, если мы сказали, что хотим получить квантильный прогноз на 95 процентов, вопрос заключается в том, почему 95, а не 94 или 96? На этот вопрос не дан ответ. Мы рассмотрим это позже в этой главе, но не в этой лекции. Достаточно сказать, что основное преимущество вероятностных прогнозов заключается в том, чтобы полностью устранить этот аспект выборочной выборки из квантильных сеток.

Slide 8

Большинство аудитории, вероятно, знакомо с нормальным распределением, гауссовой колоколообразной кривой, которая часто встречается в природных явлениях. Распределение счетчика - это распределение вероятностей для каждого целого числа. В отличие от непрерывных реальных распределений, таких как нормальное распределение, которое дает вероятность для каждого реального числа, распределения счетчика заботятся только о неотрицательных целых числах. Существует много классов распределений счетчика; однако сегодня наше внимание сосредоточено на отрицательном биномиальном распределении, которое используется моделью REM.

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

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

Slide 9

Давайте перейдем к модели состояния пространства инноваций, или ISSM. Модель состояния пространства инноваций - это длинное и впечатляющее название для того, чтобы сделать нечто довольно простое. Фактически, ISSM - это модель, которая преобразует временной ряд в случайное блуждание. С помощью ISSM вы можете превратить обычный прогноз временного ряда, и когда я говорю “среднее”, я имею в виду прогноз, где для каждого периода у вас будет одно значение, установленное в среднем, в вероятностный прогноз, и не просто квантильный прогноз, а непосредственно вероятностный прогноз. На экране вы можете увидеть полную реализацию ISSM, написанную еще раз на Envision. Мы видим, что это всего лишь дюжина строк кода, и на самом деле большая часть этих строк кода даже не делает многое. ISSM действительно очень прост, и было бы очень просто повторно реализовать этот код на любом другом языке, таком как Python.

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

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

Теперь давайте рассмотрим основу процесса ISSM. Основа начинается с восьмой строки и начинается с цикла из 1000 итераций. Я только что сказал, что процесс ISSM - это процесс генерации случайных блужданий, поэтому здесь мы делаем 1000 итераций, или мы собираемся сделать 1000 случайных блужданий. Мы могли бы иметь больше, мы могли бы иметь меньше; это простой процесс Монте-Карло. Затем в девятой строке мы делаем второй цикл. Это цикл, который итерирует по одному дню за раз для интересующего нас периода. Итак, у нас есть внешний цикл, который в основном означает одну итерацию на случайное блуждание, а затем у нас есть внутренний цикл, который представляет собой одну итерацию, просто переходящую от одного дня к следующему внутри самого случайного блуждания.

В десятой строке у нас есть сохранение уровня. Чтобы сохранить уровень, просто скажем, что этот параметр будет изменяться внутри внутреннего цикла, а не внутри внешнего цикла. Это означает, что уровень - это нечто, что меняется, когда мы переходим от одного дня к следующему, но когда мы переходим от одного случайного блуждания к следующему через цикл Монте-Карло, этот уровень будет сброшен до его начального значения, которое объявлено выше. В строке 11 мы вычисляем среднее. Среднее - это второй параметр, который мы используем для управления отрицательным биномиальным распределением. Итак, у нас есть среднее, у нас есть дисперсия и у нас есть отрицательное биномиальное распределение. В строке 12 мы выбираем отклонение в соответствии с нормальным биномиальным распределением. Выбор отклонения означает, что мы берем случайную выборку из этого распределения счета. Затем в строке 13 мы обновляем этот уровень на основе отклонения, которое мы видели, и процесс обновления - это просто очень простой процесс экспоненциального сглаживания, направляемый параметром альфа. Если мы берем альфа очень большим, равным единице, это означает, что мы полностью полагаемся на последнее наблюдение. Напротив, если бы мы установили альфа равным нулю, это означало бы, что у нас не было бы никакого смещения; мы бы оставались верными исходному временному ряду, определенному в базовом варианте.

Кстати, в Envision, когда написано “.baseline,” то здесь мы видим, что есть таблица, так что это таблица, которая имеет, скажем, NDM5; у которой есть 28 значений, и базовая линия - это просто вектор, который принадлежит этой таблице. В строке 15 мы собираем все отклонения и суммируем их через “someday.q.” Мы отправляем их в переменную с именем “total,” так что в пределах одного случайного блуждания у нас есть общая сумма отклонений, которые были собраны для каждого отдельного дня. Таким образом, у нас есть общая сумма продаж за 28 дней. Наконец, в строке 16 мы фактически собираем и собираем эти образцы в “render.” Render - это конкретный объект в Envision, который по сути является вероятностным распределением относительных целых чисел, положительных и отрицательных.

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

Slide 10

На этом этапе у нас есть все необходимое, чтобы начать сборку модели REMT, которую мы собираемся сделать сейчас.

Модель REMT принимает мультипликативную структуру, которая напоминает модель прогнозирования Хольта-Винтерса. Каждый день получает базовую линию, которая является единственным значением, являющимся произведением пяти календарных эффектов. У нас есть, а именно, месяц года, день недели, день месяца, Рождество и Хэллоуин. Эта логика реализована в виде краткого скрипта Envision.

В Envision есть реляционная алгебра, которая предлагает широковещательные отношения между таблицами, что очень практично для этой ситуации. Пять таблиц, которые мы построили, по одной таблице на каждый календарный шаблон, построены как групповые таблицы. Итак, у нас есть таблица даты, и у таблицы даты есть первичный ключ с именем “date.” Когда мы пишем, что мы объявляем новую таблицу с агрегацией “by,” а затем у нас есть дата, мы создаем таблицу, которая имеет прямое широковещательное отношение с таблицей даты.

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

В строке девять, с вектором “de.dot.baseline,” он вычисляется как простое умножение пяти факторов с правой стороны присваивания. Все эти факторы сначала передаются в таблицу даты, а затем мы продолжаем с простым построчным умножением для каждой строки в таблице даты.

Теперь у нас есть модель, которая имеет несколько десятков параметров. Мы можем посчитать эти параметры: у нас есть 12 параметров для месяца года, от 1 до 12; у нас есть семь параметров для дня недели; и у нас есть 31 параметр для дня месяца. Однако в случае NDM5 мы не собираемся узнавать одно значение параметра для всех этих значений для каждого отдельного SKU, так как мы получим огромное количество параметров, которые, скорее всего, сильно переобучат набор данных Walmart. Вместо этого, в NDM5 был использован трюк, известный как совместное использование параметров.

Поделиться параметрами означает, что вместо изучения отдельных параметров для каждого отдельного SKU мы собираемся создать подгруппы и затем изучить эти параметры на уровне подгруппы. Затем мы используем те же значения внутри этих групп для этих параметров. Поделиться параметрами - это очень классическая техника, которая широко используется в глубоком обучении, хотя она предшествует самому глубокому обучению. Во время M5 месяц года и день недели изучались на уровне агрегации магазина отдела. Я вернусь к различным уровням агрегации M5 через секунду. Значение дня месяца на самом деле было жестко закодированными факторами, установленными на уровне штата, и когда я говорю о штате, я имею в виду Соединенные Штаты, такие как Калифорния, Техас и т.д. Во время M5 все эти календарные параметры просто изучались как прямые средние значения по их связанным областям. Это очень прямой способ установить эти параметры: вы просто берете все SKU, принадлежащие к одной области, усредняете все, нормализуете и получаете свой параметр.

Slide 11

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

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

Slide 12

До сих пор мы представили, как модель REMT работает на уровне SKU. Однако в M5 было 12 различных уровней агрегации. Уровень SKU, являющийся наиболее детализированным уровнем, был наиболее важным. SKU, или единица учета запасов, буквально означает один продукт в одном месте. Если у вас есть один и тот же продукт в 10 местах, то у вас есть 10 SKU. Хотя SKU, вероятно, является наиболее значимым уровнем агрегации для цепи поставок, почти все решения, связанные с запасами, такие как пополнение и ассортимент, происходят на уровне SKU. M5 было в первую очередь соревнованием по прогнозированию, и поэтому было много акцентов на других уровнях агрегации.

На экране эти уровни подводят итоги уровней агрегации, которые были присутствовали в наборе данных M5. Вы можете видеть, что у нас есть штаты, такие как Калифорния и Техас. Для работы с более высокими уровнями агрегации команда Lokad использовала две техники: либо суммирование случайных блужданий, что означает, что вы выполняете случайные блуждания на более низком уровне агрегации, суммируете их, а затем получаете случайные блуждания на более высоком уровне агрегации; либо полностью перезапускаете процесс обучения, непосредственно переходя к более высокому уровню агрегации. В соревновании M5 модель REMT была лучшей на уровне SKU, но не была лучшей на других уровнях агрегации, хотя в целом она показала хорошие результаты.

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

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

Slide 13

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

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

Slide 14

Теперь одним из самых удивительных результатов соревнования M5 было то, что ни один статистический шаблон не остался безымянным. У нас было буквально четыре шаблона: простоты, состояние, разброс и дрейф, которых было достаточно для достижения передовой точности прогнозирования в соревновании M5.

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

Просматривая общие продажи за пять лет для M5, отображенные на экране, агрегация явно показывает умеренный восходящий тренд. Тем не менее, модель REMT работает без него и не имеет никаких последствий в терминах точности. Производительность модели REMT вызывает вопрос: есть ли еще какой-то шаблон, который нужно учесть, и мы упустили какие-то шаблоны?

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

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

Slide 15

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

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

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

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

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

Slide 16

Однако ограничения M5 соревнования не связаны только с набором данных. С точки зрения цепи поставок, есть фундаментальные проблемы с правилами, используемыми для проведения M5 соревнования.

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

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

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

Slide 17

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

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

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

Slide 18

Вопрос: Почему отрицательные биномиальные распределения? Каково обоснование при выборе этого?

Это очень хороший вопрос. Оказывается, если существует мировой бестиарий счетных распределений, то, вероятно, существует около 20 широко известных счетных распределений. В Lokad мы протестировали десяток для наших собственных внутренних нужд. Оказалось, что Пуассон, который является очень упрощенным счетным распределением с одним параметром, работает довольно хорошо, когда данные очень разрежены. Так что Пуассон довольно хорош, но на самом деле набор данных M5 был немного более богатым. В случае набора данных Walmart мы пробовали счетные распределения, которые имели несколько больше параметров, и это, казалось, работало. У нас нет доказательств того, что это действительно лучший вариант; возможно, есть лучшие варианты. У отрицательного биномиального распределения есть несколько ключевых преимуществ: реализация очень проста, и это широко изученное счетное распределение. Таким образом, у вас есть очень известный алгоритм, не только для вычисления вероятностей, но и для генерации выборки, получения среднего значения или кумулятивного распределения. Все инструменты, которые вы можете ожидать от счетного распределения, присутствуют, что не является случаем для всех счетных распределений.

В этом выборе есть степень прагматизма, но также есть и логика. У Пуассона есть одна степень свободы; у отрицательного биномиального распределения две. Затем вы можете использовать такие трюки, как отрицательное биномиальное распределение с нулевым включением, которое дает вам своего рода два с половиной степени свободы и т.д. Я бы не сказал, что этому счетному распределению присуще какое-то конкретное определенное значение.

Вопрос: В M5 были и другие поставщики программного обеспечения для оптимизации цепей поставок, но никто не использовал модели, которые масштабировались хорошо в производстве. Что же использует большинство, сложные модели машинного обучения?

Во-первых, я бы сказал, что нам нужно различать и уточнить, что M5 был проведен на платформе Kaggle, платформе для науки о данных. На Kaggle у вас есть огромное стимулирование использовать наиболее сложные механизмы. Набор данных небольшой, у вас много времени, и чтобы занять первое место, вам просто нужно быть на 0,1% точнее, чем другой парень. Это все, что имеет значение. Таким образом, на практике в каждом соревновании на Kaggle вы увидите, что лидирующие места занимают люди, которые делали очень сложные вещи, чтобы получить дополнительные 0,1% точности. Таким образом, сама природа соревнования по прогнозированию дает вам сильное стимулирование попробовать все, включая самые сложные модели, которые вы можете найти.

Если спросить, действительно ли люди используют эти сложные модели машинного обучения в производстве, то мое собственное наблюдение говорит об обратном. Это на самом деле крайне редко. Как генеральный директор Lokad, поставщика программного обеспечения для цепей поставок, я говорил с сотнями директоров цепей поставок. Буквально 90% и более крупных цепей поставок работают через Excel. Я никогда не видел ни одной крупномасштабной цепи поставок, работающей с помощью градиентного бустинга или нейронных сетей глубокого обучения. Если мы отложим в сторону Amazon, Amazon, вероятно, является уникальным случаем. Есть, может быть, полдюжины компаний, таких как Amazon, Alibaba, JD.com и еще несколько – очень крупных электронных коммерческих супергигантов – которые фактически используют эту технологию. Но они являются исключением в этом отношении. Ваша основная крупная компания FMCG или крупная компания розничной торговли не использует подобные вещи в производстве.

Вопрос: Странно, что вы упоминаете много математических и статистических терминов, но игнорируете характеристики розничных продаж и основные факторы, влияющие на них.

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

Что касается характера розничных продаж и множества влияющих факторов, я перечислил использованные шаблоны, и, используя эти четыре шаблона, модель REMT оказалась на первом месте на уровне SKU по точности. Если вы считаете, что существуют намного более важные шаблоны, то бремя доказательства лежит на вас. Мое собственное подозрение заключается в том, что если среди более чем 900 команд эти шаблоны не были замечены, то, вероятно, их там не было, или захватить эти шаблоны находится за пределами того, что мы можем сделать с помощью технологии, которой мы располагаем, поэтому, пока что, с практической точки зрения можно сказать, что эти шаблоны не существуют.

Вопрос: Применяли ли конкуренты в M5 идеи, которые, хотя и не превзошли Lokad, были бы ценными для внедрения, особенно для общих приложений? Упоминание?

Я уделял много внимания своим конкурентам, и я довольно уверен, что они также обращают внимание на Lokad. Я этого не видел. Модель REMT была действительно уникальной, полностью отличающейся от того, что делали практически все остальные топ-50 участников какого-либо из заданий. Другие участники использовали вещи, которые были гораздо более классическими в кругах машинного обучения.

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

Вопрос: Вы оценивали более высокие уровни, агрегируя уровни SKU или вычисляя их заново для более высоких уровней? Если оба варианта, как они сравнивались?

Проблема с сетками квантилей заключается в том, что модели обычно оптимизируются отдельно для каждого целевого уровня. С сетками квантилей может возникнуть пересечение квантилей, что означает, что из-за численных неустойчивостей ваш 99-й квантиль окажется ниже вашего 97-го квантиля. Это неважно; обычно вы просто переупорядочиваете значения. В основном, это тот вид проблемы, на который я ссылался, говоря о том, что сетки квантилей не являются совсем вероятностными прогнозами. У вас есть множество мелких деталей, которые нужно решить, но на самом деле они неважны в общей схеме вещей. Когда вы переходите к вероятностным прогнозам, эти проблемы даже не существуют.

Вопрос: Если бы вы разрабатывали еще одно соревнование для поставщиков программного обеспечения, как бы оно выглядело?

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

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

Вопрос: Можно ли использовать эту методологию в ситуациях, где у вас мало данных?

Я бы сказал, что абсолютно можно. Такой структурированное моделирование, как показано здесь с моделью REMT, ярко сияет в ситуациях, где у вас очень мало данных. Причина проста: вы можете внедрить много человеческих знаний в саму структуру модели. Структура модели - это нечто, что было выдумано из воздуха; это буквально следствие понимания команды Lokad проблемы. Например, когда мы смотрим на календарные шаблоны, такие как день недели, месяц года и т. д., мы не пытались открыть эти шаблоны; команда Lokad знала с самого начала, что эти шаблоны уже существуют. Единственная неопределенность заключалась в относительной распространенности шаблона дня месяца, который во многих ситуациях склонен быть слабым. В случае настройки Walmart это происходит только из-за того, что в США есть программы скидок, благодаря чему этот шаблон дня месяца такой сильный.

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

Следующая лекция состоится 2 февраля, это будет среда, в то же время, в 15:00 по парижскому времени. Увидимся тогда!

Ссылки

  • Методика ISSM с использованием белого ящика для оценки распределений неопределенности продаж Walmart, Рафаэль де Резенде, Катарина Эгерт, Игнасио Марин, Гильерме Томпсон, декабрь 2021 (ссылка)
  • Конкурс неопределенности M5: результаты, выводы и заключения, Спирос Макридакис, Евангелос Спилиотис, Василис Ассимакопулос, Чжи Чен, ноябрь 2020 (ссылка)