00:00:07 Потенциальные применения дифференцируемого программирования в цепях поставок.
00:00:31 Применение дифференцируемого программирования в розничных магазинах и с точки зрения клиентов.
00:02:56 Революционное свойство дифференцируемого программирования в моделировании поведения клиентов.
00:06:05 Влияние дифференцируемого программирования на операции склада и прогнозирование будущего спроса.
00:07:11 Сглаживание кривых отгрузки со склада с помощью дифференцируемого программирования.
00:09:38 Важность своевременного обслуживания клиентов и его влияние на цепочку поставок.
00:10:40 Роль дифференцируемого программирования в моделировании сложных сетей цепей поставок.
00:13:01 Контроль качества и несовершенства в системах производства.
00:14:17 Применение дифференцируемого программирования для моделирования неопределенностей в фармацевтической отрасли.
00:16:00 Дифференцируемое программирование и его преимущества в ситуациях с разреженными данными.
00:17:41 Истечение срока действия патента как пример применения дифференцируемого программирования в фармацевтической отрасли.
00:19:57 Принятие сложности и учет ключевых факторов бизнеса с помощью дифференцируемого программирования.
00:21:59 Балансирование простоты и сложности в моделях на основе бизнес-требований.
00:22:42 Дифференцируемое программирование как эволюция программного подхода Lokad, преимущества и возможности для клиентов.

Резюме

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

Расширенное резюме

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Полный текст

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

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

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

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

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

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

Кирен Чандлер: Как дифференцируемое программирование помогает в аспекте складирования в цепи поставок? Это в основном связано с прогнозированием будущего спроса?

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

Кирен Чандлер: Было ли сложно достичь такого уровня оптимизации с использованием существующих техник?

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

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

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

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

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

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

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

Кирен Чандлер: Итак, это момент, когда возникает идея моделирования тех результатов, которые не являются полностью детерминированными?

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

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

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

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

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

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

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

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

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

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

Жоанн Верморель: Дифференцируемое программирование, действительно, является продолжением этого программного подхода, который долгое время был двигателем Lokad. Теперь это нечто, где этот программный подход проникает в ядро нашей технологии машинного обучения. Ранее он был ядром нашей платформы Big Data с механизмами для обработки больших данных, а также простыми фильтрацией, агрегацией и типичной предварительной обработкой, очисткой данных, и так далее. Это уже было полностью программным, но ядро машинного обучения было немного жестким. С глубоким обучением, мы уже были гораздо более гибкими, чем в предыдущем поколении, но это новый этап. Для наших клиентов я считаю, что это возможность пересмотреть множество проблем и ситуаций, где мы в прошлом использовали много “скотча”. Когда у вас нет чего-то гибкого, вы как бы “скотчите” вещь, используя хитрые трюки, но они не всегда масштабируются так, как мы хотим. Они могут быть немного грубыми и приближенными к бизнес-пониманию неоптимальным образом. Здесь есть возможность пересмотреть это и просто сделать практически то же самое, но более эффективным в плане выполнения и более точным в плане точности, когда мы считаем в евро или долларах ошибки с точки зрения бизнеса.

Кирен Чандлер: Отлично, спасибо за ваше время сегодня. Это все для нашей мини-серии о дифференцируемом программировании. Мы вернемся на следующей неделе с новой серией на новую тему, но до тех пор, спасибо за просмотр. До свидания.