Путь к разработке высокопроизводительной модели прогнозирования спроса - Часть 1

TL;DR

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

Чего ожидать от этой серии?

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

В каждой статье этой серии будет рассмотрена проблема, с которой вы можете столкнуться, на которую нет четких ответов в обсуждениях Kaggle:

  • РАДА: 5 вариантов, которые вам нужно сделать, прежде чем начать
  • Составление точных прогнозов во время частых акций
  • Создание инструмента визуализации для оценки вашей модели
  • Прогнозирование продаж продуктов без исторических данных
  • Выполнение автоматизированных проверок качества данных на этапе производства
  • Развертывание вашей модели прогнозирования в разных странах

Фреймворк GLADS

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

  • Правильный выбор детализации данных
  • Правильный выбор длины горизонта
  • Выбор правильного алгоритма прогноза
  • Выбор правильных драйверов продаж
  • Выбор правильных наборов артикулов

В отрывке мы кратко объясним, что, почему и как мы выбрали GLADS.

G: Детализация данных

Что это?

Детализация данных - это то, насколько подробным будет ваше описание продаж. Обычно он бывает двух измерений: элементы и время (частота). Например, вы описываете свои продажи по SKU / категории / BU / стране? Вы записываете свои продажи по часам / дням / неделям / месяцам / годам?

Почему это важно?

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

Как выбрать?

Уровень детализации следует выбирать с учетом двух основных факторов: бизнес-потребностей и самих характеристик данных.

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

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

L: длина горизонта

Что это?

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

Почему это важно?

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

Как выбрать?

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

A: Алгоритм предсказания

Что это?

Подходы к прогнозированию продаж развивались в течение многих лет, отсюда и разнообразие алгоритмов. Хотя наиболее популярными инструментами при прогнозировании продаж являются ARIMA из statsmodel и Prophet, древовидные регрессионные модели также применялись для задач прогнозирования продаж. Между тем, когда применяется машинное обучение, глубокие нейронные сети никогда не выпадали из списка кандидатов.

Почему это важно?

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

Как выбрать?

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

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

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

И ARIMA, и Prophet не могут построить модель для нескольких временных рядов, и ошибка будет складываться по мере увеличения горизонта.

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

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

D: Драйверы продаж

Что это?

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

Почему это важно?

Модели прогнозирования продаж вряд ли смогут достичь удовлетворительных результатов, если они используют только исторические продажи, потому что на поведение клиентов может влиять слишком много факторов. На продажи супермаркета может повлиять погода, а на продажи косметического бренда могут повлиять кампании. Исходя из нашего опыта, влияние различных факторов может быть настолько сильным, что продажи иногда удваиваются во время праздничного сезона, что может привести к огромным ошибкам в прогнозировании модели. Тем не менее, анализ влияния драйверов всегда является интересной темой как для маркетологов, так и для отдела логистики. Какие ключевые факторы определяют продажи? Как изменится объем продаж, если в будущем запланирована большая кампания? А как оптимизировать логистику под разные сценарии?

Как выбрать?

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

Исследование корреляции. Затем нам нужно изучить корреляцию между двумя временными рядами. Мы предлагаем использовать TLCC (кросс-корреляцию с задержкой по времени), поскольку эффект события может проявиться до или после события. Например, кампании обычно вступают в силу через несколько дней после запуска, в то время как люди, как правило, готовят подарок за неделю до фестиваля. В результате смещение может быть положительным или отрицательным, а абсолютные значения должны быть ограничены исходя из опыта ведения бизнеса, иначе было бы слишком сложно объяснить, почему Рождество 2018 года повлияет на сегодняшние продажи.

S: Наборы артикулов

Что это?

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

Почему это важно?

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

Как выбрать?

Исходя из этого предположения, мы предлагаем два разных метода группировки артикулов.

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

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

Заключение

В заключение, вот краткая версия «РАДЫ», которую следует иметь в виду, когда вы делаете выбор прогнозов:

  • G рангулярность данных: выберите его на основе реальной степени детализации данных и посмотрите, нужно ли вам агрегировать на основе дисперсии данных.
  • L деятельность Horizon: согласовывайте с потребностями бизнеса, как долго прогнозировать в будущем, и обращайте внимание на частоту обновления данных.
  • Алгоритм прогнозирования: не существует единой модели, удовлетворяющей все потребности, тщательно выбирайте на основе характеристик ваших данных.
  • D реки продаж: постарайтесь определить как можно больше действительных движущих сил на основе бизнес-аналитики или инструментов анализа данных, это ОЧЕНЬ поможет.
  • С артикулов. Не обучайте модель только для одного артикула, постарайтесь получить хороший набор артикулов, которые имели аналогичные шаблоны в прошлом.

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

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

Авторы статьи:

  • Пэнфэй Чжан, ведущий специалист по данным, Artefact APAC
  • Минмин Ге, специалист по данным, Artefact APAC
  • Лиам Ли, специалист по анализу данных, Artefact APAC
  • Хоуп Лян, специалист по данным, Artefact APAC