В соавторстве с Шубха Шедтикере

Введение

Будь то клиенты, которым не хватает времени и которым нужна мгновенная доставка продуктов, или лишенная сна молодая мама, у которой поздно ночью заканчиваются подгузники, или ярые фанаты крикета, которым нужно больше чипсов и кокаина в перерыве между захватывающим матчем IPL, или люди, ищущие большие скидки на большие покупок, Instamart поможет вам во всем. Instamart, служба быстрой доставки продуктов Swiggy, обеспечивает непревзойденное удобство, позволяя заказывать из огромного ассортимента свежие фрукты и овощи, молочные продукты, товары повседневного спроса и аксессуары для вечеринок или праздников практически в любое время дня и ночи. также до поздней ночи (с 6:00 до 15:00) и получить доставку через ~10–15 мин.

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

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

«Если вы не можете что-то измерить, вы не можете это улучшить», — Питер Друкер

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

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

Обзор процесса планирования спроса

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

Прогнозирование спроса.Планирование спроса начинается с прогнозирования спроса, которое оценивает спрос или, другими словами, количество единиц товара, которое будет продано в данной упаковке на данный день. Основываясь на таких факторах, как срок годности товара и время оборота у конкретного поставщика, спрос необходимо прогнозировать на «k» дней вперед, где «k» может составлять от 1 до 7 дней. Модели прогнозирования на основе машинного обучения используются для создания этих прогнозов с использованием различных сигналов, таких как исторические продажи товара из группы, город/зона группы, тенденция и сезонность исторического спроса на товар и т. д.

Генерация заказа на поставку (PO).Модуль прогнозирования спроса обеспечивает оценку количества единиц, которые будут проданы в определенный день, что, по сути, означает, что это количество единиц, которые должны быть доступны в модуле. На основе количества единиц, которые уже доступны в модуле за предыдущие дни, и в течение срока их действия создается заказ на покупку для закупки необходимого количества единиц у поставщиков. Если поставщик может доставить общее количество единиц товара, для которого был подан запрос, то считается, что заполнение составляет 100 %. Как правило, заполняемость составляет менее 100%. Кроме того, сам прогнозируемый спрос будет иметь некоторые присущие ему ошибки. Таким образом, модуль генерации заказа на поставку, который включает в себя модель на основе машинного обучения, оценивает дополнительные единицы, которые необходимо закупить, чтобы учесть ошибки прогнозирования спроса, скорость заполнения и другие проблемы, чтобы обеспечить высокую доступность.

Доставка на склад Обычно в каждом городе 6–7 контейнеров образуют кластер и обслуживаются через склад. Прогнозы спроса из разных модулей объединяются, и товары, закупаемые у поставщиков, доставляются на склад. В случае с фруктами и овощами их также очищают и упаковывают на складе перед отправкой в ​​стручки.

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

Обновление системы управления запасами (IMS):единицы, доставленные со склада, поступают в модули после проверка качества и IMS обновляются, чтобы указать количество единиц, доступных в модуле. С каждой проданной единицей IMS обновляется, чтобы отразить текущий запас.

Доступность против потерь

Основная цель планирования спроса состоит в том, чтобы гарантировать, что продукты доступны покупателям для заказа в течение всего периода работы магазина, при минимизации потерь. Чтобы лучше понять это, давайте рассмотрим приведенную ниже диаграмму, которая показывает почасовые продажи и доступность определенного SKU (единица хранения, которая представляет товар в определенном модуле). Число в поле представляет собой количество единиц, проданных в этот конкретный час. Галочка в зеленом поле означает, что артикул был доступен для заказа в этот конкретный час. Крестик в красной рамке означает, что в этот час артикул отсутствовал на складе (OOS). Модель прогнозирования спроса предсказывает спрос на данную SKU в данный день, который в случае (A) составляет 146 единиц. Для простоты также предположим, что количество единиц, доступных в модуле в любой день, равно прогнозируемому спросу. На практике это может быть не так из-за проблем со скоростью заполнения, повреждений при транспортировке и т. д. Давайте также предположим, что срок годности этого предмета составляет 1 день, что, по сути, означает, что единицы, которые помещаются внутрь контейнера в данный день и то, что не продано к концу дня, не может быть продано на следующий день и, следовательно, равносильно потерям. Аналогичные аргументы можно распространить и на товары с более длительным сроком хранения.

Как видно, 146 единиц товара были проданы в течение 19:00, в результате чего SKU больше не было в наличии. Наличие артикула определяется как процент часов работы магазина, в течение которых артикул был в наличии. В этом примере доступность артикула в данный день составляет 65 %. . Более низкая доступность не только влияет на качество обслуживания клиентов, но и представляет собой упущенную выгоду. С другой стороны, если прогнозируемый спрос был выше, скажем, 200, и если общий объем продаж в течение дня составил около 183, то оставшиеся 17 единиц представляют собой отходы.Потери обычно измеряются с точки зрения GMV количества единиц, которые были помечены как бракованные, на основе истечения срока годности продукта. Как показано выше, повышение доступности за счет увеличения запасов приводит к увеличению потерь, и наоборот. В практической бизнес-среде сложно одновременно улучшить оба этих показателя. Кроме того, влияние недоступности на определенные категории продуктов на качество обслуживания клиентов намного выше, чем на другие, и в худшем случае может привести к падению количества заказов или оттоку клиентов с платформы. Понимая это, бизнес-группа определяет разные целевые показатели доступности и потерь для разных категорий.

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

При применении решений на основе машинного обучения в бизнес-вариантах выбор подходящих метрик модели для оценки модели в автономном режиме (на основе исторических данных/данных обратного тестирования) и выбор модели чрезвычайно важны для перемещения бизнес-метрики в правильном направлении и создания дополнительной ценности для клиентов. . Например, при ранжировании приложений для рекомендательной системы Ads NDCG (Normalized Discounted Cumulative Gain) является преобладающей автономной метрикой. Ожидается, что модель с более высоким NDCG будет способствовать повышению рейтинга кликов (CTR) объявлений на платформе благодаря повышению релевантности показов. Точно так же в типичных приложениях для прогнозирования MAPE (средняя абсолютная ошибка в процентах) или wMAPE (взвешенная средняя абсолютная ошибка в процентах) по отношению к целевому значению используются для измерения точности прогнозирования модели на данных обратного тестирования. Но в таких случаях использования, как наш, у нас есть только данные о продажах, которые представляют «истинный» спрос, когда доступность = 1, но представляют усеченный спрос, когда доступность‹1, и нам нужно прогнозировать спрос, чтобы улучшить доступность SKU и сократить потери. В таких случаях использование wMAPE относительно продаж в качестве цели создает серьезные недостатки в качестве метрики автономной модели для оценки и выбора модели. Мы уточним это ниже.

Пусть наблюдаемые данные для i-го SKU обозначаются как {(Sᵢ(t), Aᵢ (t)) : t ϵ {T₁,…, Tₘ}} где Sᵢ(t) — это количество, проданное в день, t, а Aᵢ(t) — это наблюдаемая доступность соответствующего товара в этом конкретном пакете. в день t. Рассмотрим данные с периодом ретроспективного анализа m дней. Эти данные соответствующим образом разбиваются и используются для обучения и проверки модели прогнозирования спроса, которая будет запущена в производство для ежедневного планирования спроса. Давайте рассмотрим прогнозы, полученные из набора моделей (моделей, полученных с помощью разных методологий моделирования или с разными гиперпараметрами для данной методологии), которые разработаны с использованием вышеуказанных обучающих данных. Обозначим множество прогнозов на тестовых данных как {Pᵢʲ(t): t ϵ {T₁,…, Tₗ }}, j = 1,2,.., k для k -много моделей и i = 1, … ,n для n-много SKU, что рассматривается для тестирования на исторических данных. Теперь wMAPE j-й модели задается следующим образом, где сумма берется по всем временным точкам и SKU в (бэк-)тестовых данных:

  • wMAPE по данным о продажах приводит к недооценке: wMAPE дает меньшую среднюю ошибку, когда модель дает прогноз спроса ближе к соответствующим продажам. Это послужит хорошей метрикой для оценки производительности модели в случае высокой доступности, но приведет к выбору моделей, которые занижают прогноз в случае низкой доступности. Это приведет к дальнейшему снижению доступности SKU при использовании для планирования спроса.
  • wMAPE на усеченных данных (высокой доступности) недостаточно: Учитывая, что измерение производительности модели на данных о продажах с низкой доступностью приведет к выбору модели, которая занижает прогнозы, мы могли бы исключить такие точки данных низкой доступности в тестовом наборе и вычислить wMAPE на частичных данных. Определим wMAPE j-й модели на частичных тестовых данных следующим образом:

где A – некоторое пороговое значение высокой доступности, например 75 % или 80 %, а – это сумма по всем временным точкам и SKU в данных обратного тестирования. Но эта метрика оценивает только прогнозы модели на частичных данных, и во многих случаях большая часть точек данных будет иметь доступность Aᵢ(t) ‹ A. Кроме того, обычно в реальных данных есть SKU с длинным хвостом с очень небольшим количеством дней с наблюдаемой доступностью выше, чем A, например, для недавно представленных SKU (проблема холодного запуска), где точное прогнозирование спроса является более сложной задачей. Но упомянутая выше метрика wMAPE даже не проверяет точность моделей для этих случаев, что часто приводит к тому, что большинство рассмотренных моделей имеют схожую производительность с точки зрения wMAPE.

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

Адаптивное выравнивание показателей: расчетная доступность и потери

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

Чтобы уточнить детали, напомним, что наблюдение в данных обратного тестирования: (Sᵢ(t), Aᵢ(t)) для i-й SKU и дня t. и прогноз для той же даты и SKU: Pᵢʲ(t). Наш простой вопрос для определения метрик Estimated Availability and Wastag: «Какие были бы доступность и потери, если бы Pᵢʲ(t) использовалось при планировании спроса для i-го Артикул и день t?» Поскольку Pᵢʲ(t) исходит из новой экспериментальной модели для данных обратного тестирования, фактический ответ на поставленный выше вопрос неизвестен. Следовательно, мы предлагаем оценить ответ на основе имеющихся данных и некоторых простых предположений. Например, одним из самых упрощенных подходов было бы предположение, что доступность увеличивается равномерно по отношению к продажам. То есть, если наблюдаемые продажи Sᵢ(t) имеют наблюдаемую доступность Aᵢ(t), то если прогноз Pᵢʲ(t) была бы использована для создания запасов на день t, оценочная доступность(называемая EA)может быть рассчитана как,

Обратите внимание, что приведенное выше определение расчетной доступности основано на сильном предположении, что продажи и доступность увеличиваются пропорционально, что часто не так для многих SKU. Например, для молочных продуктов часто продажи выше в утренние и вечерние часы. Но без знания почасовых моделей продаж приведенное выше определение является разумным показателем ответа на вышеупомянутый вопрос, поскольку это определение обеспечивает монотонность прогнозов. Под этим мы подразумеваем, что если есть два прогноза Pᵢ¹(t) и Pᵢ²(t), полученные из двух независимо построенных моделей, то

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

Теперь для Instamart у нас есть почасовые данные о продажах (обозначаемые как Sᵢ(h; t) для hᵗʰ часа), доступные для многих SKU, и, следовательно, при оценке «было бы «была» (оценочная) доступность, мы предлагаем другое определение EA, которое может быть более точным. Мы определяем это как,

где Hᵢʲ — расчетное количество часов, начиная с открытия магазина, прогнозируемое количество «было бы» доступно (называемое расчетными часами доступности), а T — общее количество часов работы магазина. Чтобы оценить доступные часы, мы разделим сценарий на два случая, как показано в уравнении ниже:

где H* — час, до которого SKU был доступен в день t, Q2(Sᵢ(h; t)) — среднее почасовое значение. продаж за день. Обратите внимание, что в первом случае предполагаемая доступность очень точна, поскольку она точно оценивает час, к которому предсказанные единицы были бы распроданы. В последнем случае мы используем медиану почасовых продаж за этот день, чтобы экстраполировать количество часов, до которых прогнозируемая единица товара была бы доступна. Эту оценку можно выполнить и многими другими способами. Например, модель почасовых продаж можно смоделировать в виде сплайна, а затем экстраполировать для оценки количества часов доступности.

Точно так же расчетные потери (называемые EW) можно определить следующим образом:

Онлайн-проверка предлагаемой метрики

Обратите внимание, что предложенные выше метрики (EA и EW) являются метриками обратного тестирования, т. Е. Эти метрики можно использовать для оценки нескольких экспериментальных моделей или подходов, чтобы найти лучшую, а затем поместить ее в рабочую среду. Но как мы можем подтвердить, что оценка бэк-тестинга, проведенная с использованием двух вышеупомянутых показателей, будет воспроизведена также в рабочей/онлайн-системе?

Чтобы ответить на этот вопрос, мы использовали две экспериментальные установки следующим образом. В качестве первого подхода проверки мы выбрали период времени, в течение которого две модели, скажем, модели M1 и M2, работали в производстве для двух случайно выбранных наборов модулей, скажем, набора A и набора B. Это означает, что прогнозы модели M1 верны. используется для планирования спроса в модулях в наборе A и то же самое для модели M2 в наборе B. Теперь, хотя прогнозы модели M1 используются только в магазинах набора A и модели M2 в наборе B, в бэкэнде мы сохранили прогнозы моделей M1 и M2 по всем модулям за все дни периода эксперимента. Чтобы оценить влияние предлагаемой структуры, мы вычисляем EA и EW модели M1, используя прогнозы, созданные для набора B, и то же самое для модели M2, используя прогнозы для набора A, т. е. расчетные показатели доступности и потерь моделей M1. и M2 вычисляются из хранилищ, где их прогнозы не используются для планирования. Это предотвращает утечку данных, поскольку предполагаемая доступность и количество брака моделей M1 и M2 никак не зависят от того, какая модель используется для планирования. Теперь мы также наблюдали доступность и потери для моделей M1 и M2 на основе запасов наборов A и B соответственно, что является истинными значениями доступности и потерь моделей M1 и M2. На рис. 3 ниже мы нанесли ежедневный тренд EA (из прогнозов перекрестного набора) и фактической доступности (из прогнозов фактического набора) для обеих моделей M1 и M2. Как мы видим, исходя из EA, модель M1 будет иметь лучшую доступность по сравнению с моделью M2, и то же самое произошло в реальных тенденциях доступности! Это доказывает, что оценочные показатели доступности и потерь могут правильно ранжировать модели даже без учета данных онлайн-экспериментов. Кроме того, обратите внимание, что тренд расчетной доступности для обеих моделей M1 и M2 хорошо согласуется с трендом фактической доступности. В частности, предполагаемая доступность модели M2 (синяя пунктирная линия) способна предсказать внезапное падение доступности (синяя сплошная линия) на правом конце кривой тренда.

Можем ли мы предсказывать будущее?

В приведенной выше настройке проверки мы продемонстрировали, как предлагаемые оценочные показатели могут правильно отражать изменения в онлайн-доступности и потери в эксперименте A/B. Поскольку мы планируем использовать эти метрики для выбора лучшей модели на основе данных обратного тестирования, нам также необходимо проверить, будет ли вывод, который мы делаем на основе оценочных показателей в данных обратного тестирования, будет воспроизведен в онлайн-метриках, когда мы начнем использовать модель в рабочей среде. для планирования спроса. Чтобы проверить это, мы используем данные ретроспективного тестирования до момента времени T1 и вычисляем предполагаемую доступность (в %) и потери (среднее ежедневное количество единиц) для двух экспериментальных моделей M1 и M2. Как видно из приведенной ниже таблицы (столбец «Оценка»), по сравнению с моделью M1, модель M2 имеет на 2,4 % более высокую расчетную доступность с относительным снижением расчетных потерь на 2 %.

Затем мы случайным образом делим магазины Instamart на 50–50 сегментов и используем M1 и M2 в качестве моделей прогнозирования в производстве для планирования спроса соответственно. Мы проводим этот эксперимент в течение определенного периода времени, а затем вычисляем фактические бизнес-показатели, т. е. доступность и потери. В столбце «Факт» в приведенной выше таблице мы представляем увеличение доступности и снижение потерь для модели M2 по сравнению с моделью M1. Очевидно, что с помощью предлагаемой структуры тестирования на исторических данных рост доступности оценивается очень хорошо. На показатель онлайн-потери влияют несколько других факторов, таких как поздняя маркировка, проблемы со скоростью заполнения, неистекшие потери, потери в пути и т. д., и, следовательно, сокращение потерь за счет онлайн и оценочные вычисления не могут быть напрямую сопоставимы. Но обратите внимание, что ориентировочно предполагаемые потери указывали с использованием данных обратного тестирования на то, что модель M2 будет иметь меньшие потери по сравнению с M1, что также наблюдалось в производстве.

Заключение

В этой первой части серии блогов, посвященной прогнозированию спроса на Instamart, мы обсудили проблемы, с которыми мы столкнулись при использовании традиционного wMAPE в качестве метрики оценки автономной модели, а также потребность в новой системе оценки. Мы ввели систему оценки, основанную на оценочной доступности и потери, которая пытается воспроизвести бизнес-показатели на данных обратного тестирования, чтобы обеспечить лучшую направленную проверку экспериментов модели ML. Наконец, мы обеспечили проверку этой структуры с помощью реальных данных и результатов в производстве. Эта структура оценки позволила нам сравнить несколько экспериментов по моделированию в режиме обратного тестирования и развернуть лучший из них в рабочей среде. Это экономит много времени и усилий по сравнению с развертыванием каждой из экспериментальных моделей в режиме A/B в производстве и необходимостью ждать, пока в экспериментах будет достаточно точек данных, чтобы быть окончательными.

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

Рекомендации

  1. wMAPE: https://en.wikipedia.org/wiki/Mean_absolute_percentage_error
  2. Хуанг, К., Чжай, С., Талботт, В., Мартин, М.Б., Сун, С., Гестрин, К., Сасскинд, Дж. (2019). Устранение несоответствия показателей потерь с помощью адаптивного выравнивания потерь. Материалы 36-й Международной конференции по машинному обучению, Proceedings of Machine Learning Research 97:2891–2900. Доступно по адресу https://proceedings.mlr.press/v97/huang19f.html.