00:00 Введение
02:49 Спрос, цена и прибыль
09:35 Конкурентные цены
15:23 Желания против потребностей
20:09 До сих пор
23:36 Направления на сегодня
25:17 Единица потребности
31:03 Автомобили и запчасти (резюме)
33:41 Конкурентная разведка
36:03 Решение выравнивания (1/4)
39:26 Решение выравнивания (2/4)
43:07 Решение выравнивания (3/4)
46:38 Решение выравнивания (4/4)
56:21 Диапазоны продуктов
59:43 Неограниченные запчасти
01:02:44 Контроль маржи
01:06:54 Ранжирование дисплея
01:08:29 Тонкая настройка весов
01:12:45 Тонкая настройка совместимости (1/2)
01:19:14 Тонкая настройка совместимости (2/2)
01:30:41 Контрразведка (1/2)
01:35:25 Контрразведка (2/2)
01:40:49 Избытки и нехватки товаров
01:45:45 Условия доставки
01:47:58 Заключение
01:50:33 6.2 Оптимизация ценообразования для автомобильного рынка послепродажного обслуживания - Вопросы?

Описание

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

Полный текст

Slide 1

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

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

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

Slide 2

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

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

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

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

Slide 3

Однако такая перспектива глубоко ошибочна. Проблема не связана с трудностью количественной оценки эластичности. Мое предложение заключается не в том, что кривая слева неверна; она фундаментально верна. Мое утверждение состоит в том, что переход от кривой слева к кривой справа неверен. Фактически, этот переход настолько удивительно неправильный, что он служит своего рода литмусовым тестом. Любой поставщик программного обеспечения или учебник по ценообразованию, который представляет ценообразование таким образом, демонстрирует опасную степень экономической неграмотности, особенно если они представляют оценку эластичности как центральную проблему, связанную с этой перспективой. Это даже отдаленно не соответствует действительности. Доверять поставщику или эксперту, представляющему реальную цепочку поставок таким образом, приглашает к боли и страданиям. Если есть что-то, чего вашей цепочке поставок не хватает, так это ошибочная интерпретация непонятной микроэкономики в масштабе.

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

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

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

Slide 4

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

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

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

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

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

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

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

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

Ценовая эластичность спроса - это концепция, которая имеет смысл для рынка в целом, но обычно не так сильно для чего-то такого локализованного, как номер детали.

Slide 45

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

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

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

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

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

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

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

Slide 6

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

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

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

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

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

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

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

Slide 7

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

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

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

Slide 8

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

Давайте на мгновение подумаем о том, как клиенты воспринимают цены, предлагаемые Штутгартом. Как мы увидим, кажущееся тонкое различие между ценником и восприятием ценника на самом деле не является тонким вовсе.

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

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

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

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

Штутгарт и его конкуренты тщательно формируют свои ассортименты таким образом, чтобы они могли обслуживать практически все автомобили с долей от доступного количества автозапчастей. В результате на их веб-сайтах обычно перечислено от 100 000 до 200 000 номеров деталей, и только от 10 000 до 20 000 номеров деталей на самом деле находятся в наличии.

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

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

Slide 9

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

В Европе эти наборы данных обычно включают более 100 000 автомобилей, более миллиона запчастей и более 100 миллионов связей, соединяющих автомобили и запчасти. Поддержка этих наборов данных требует значительных трудозатрат, что объясняет, почему существуют специализированные компании, продающие эти наборы данных. Штутгарт, как и его конкуренты, приобретает подписку у одной из этих специализированных компаний, чтобы получать обновленные версии этих наборов данных. Подписки необходимы, потому что, несмотря на то, что автомобильная индустрия зрела, постоянно появляются новые автомобили и запчасти. Чтобы оставаться в тесной связи с автомобильным рынком, эти наборы данных должны обновляться как минимум ежеквартально.

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

Slide 10

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

Во-первых, Штутгарт, как и его конкуренты, хочет быть дружелюбным к роботам. Самые важные боты - это поисковые системы, причем Google, на 2023 год, занимает немного более 90% рынка. Однако это не единственная поисковая система, и хотя, возможно, можно выделить Googlebot, основного краулера Google, сложно сделать то же самое для всех остальных краулеров, которые все еще составляют около 10% трафика.

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

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

Slide 11

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

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

Давайте быстро оценим количество переменных и ограничений. Штутгарт может установить одну цену для каждого номера детали, что означает, что у нас около 100 000 переменных. Количество ограничений немного сложнее. Технически у нас есть около 1 000 типов деталей и около 100 000 моделей автомобилей, что предполагает примерно 100 миллионов ограничений. Однако не все типы деталей присутствуют во всех моделях автомобилей. Реальные измерения показывают, что количество ограничений ближе к 10 миллионам.

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

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

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

Slide 12

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

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

Давайте кратко рассмотрим эти таблицы:

  1. Типы деталей: Как следует из названия, эта таблица перечисляет типы деталей, например, “передние тормозные колодки”. Эти типы используются для определения того, какая деталь может быть использована в качестве замены для другой. Заменяемая деталь должна быть не только совместима с автомобилем, но и иметь тот же тип. В этой таблице примерно тысяча типов деталей.

  2. Модели автомобилей: Эта таблица перечисляет модели автомобилей, например, “Peugeot 3008 Phase 2 diesel”. У каждого автомобиля есть модель, и все автомобили данной модели должны иметь одинаковый набор механических совместимостей. В этой таблице примерно сто тысяч моделей автомобилей.

  3. Номера деталей (PN): В этой таблице перечислены номера деталей, которые находятся на рынке автозапчастей. У каждого номера детали есть один и только один тип детали. В этой таблице примерно миллион номеров деталей.

  4. Совместимость (Compat): Эта таблица представляет собой механические совместимости и собирает все допустимые комбинации номеров деталей и моделей автомобилей. С примерно 100 миллионами строк совместимости, эта таблица является самой большой.

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

  6. Заказы: Эта таблица содержит информацию о прошлых заказах клиентов из Штутгарта за примерно год. Каждая строка заказа включает номер детали и модель автомобиля. Технически возможно приобрести автозапчасть, не указывая модель автомобиля, хотя это редкость. Любые строки заказов без указания модели автомобиля могут быть отфильтрованы. Исходя из размера Штутгарта, должно быть примерно 10 миллионов строк заказов.

Slide 13

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

В первой части скрипта загружаются четыре текстовых файла. С 1 по 5 строку файл ‘path.csv’ предоставляет как номера деталей, так и типы деталей, включая текущие цены, отображаемые в Штутгарте. Поле ’name is active’ указывает, обслуживается ли конкретный номер детали Штутгартом. В этой первой таблице переменная ‘PN’ относится к первичному измерению таблицы, а ‘PN type’ - к вторичному измерению, введенному с помощью ключевого слова ’expect’.

С 7 по 9 строку файл ‘compat.tsv’ предоставляет список совместимости деталей с автомобилями и моделями автомобилей. Это самая большая таблица в скрипте. Строки с 11 по 14 загружают файл ‘competition.tsv’, предоставляя снимок конкурентной информации на день, то есть цены на номера деталей и конкурентов. Файл ‘orders.tsv’, загруженный с 16 по 19 строку, дает нам список приобретаемых номеров деталей и связанных с ними моделей автомобилей, предполагая, что все строки, связанные с неуказанными моделями автомобилей, были отфильтрованы.

Наконец, на строках 21 и 22 таблица ‘part types’ устанавливается в качестве источника данных для двух таблиц ‘compat’ и ‘orders’. Это означает, что для каждой строки в таблице ‘compat’ или ‘orders’ существует только один тип детали, который соответствует. Другими словами, в таблицы ‘compat’ и ‘orders’ было добавлено вторичное измерение ‘PN type’. Этот первый блок скрипта Envision прост и понятен; мы просто загружаем данные из текстовых файлов и восстанавливаем связную структуру данных в процессе.

Slide 14

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

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

Обратите внимание на небольшое предостережение. Ключевое слово ‘join’ пока не поддерживается Envision, но оно есть в нашем техническом плане на будущее. Существуют обходные пути, но для ясности в этой лекции я буду использовать будущий синтаксис Envision.

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

С 26 по 30 строку для каждой детали, указанной в истории заказов клиентов Штутгарта, вычисляется наиболее конкурентоспособное предложение.

На строке 27 мы перебираем каждую строку заказа в таблице заказов с помощью ’each order’.

На строке 28 мы используем ‘join pns’, чтобы привнести полную таблицу номеров деталей для каждой строки заказов.

На строке 29 мы объединяем с ‘others’, но это объединение ограничено двумя вторичными измерениями - моделью и типом детали. Это означает, что для каждой строки в таблице заказов мы выбираем номера деталей, которые соответствуют комбинации модели детали и типа детали, отражая детали, совместимые с единицей потребности, соответствующей заказу клиента.

С 32 по 37 строку мы решаем выравнивание с помощью дифференцируемого программирования, указанного ключевым словом ‘Auto diff’. Блок ‘Auto diff’ объявляется на строке 32, используя таблицу ‘orders’ в качестве таблицы наблюдений. Это означает, что мы неявно взвешиваем ограничения в соответствии с объемом продаж Штутгарта. Строки 33 и 44 выполняют ту же функцию, что и строки 28 и 29; они перебирают таблицу ‘orders’, предоставляя полный доступ к таблице номеров деталей (‘PN’) и срезу совместимых записей.

На строке 35 мы объявляем ‘pns.price’ в качестве параметров, которые будут оптимизироваться с помощью стохастического градиентного спуска. Нет необходимости инициализировать эти параметры, так как мы начинаем с использованных до сих пор цен Штутгарта, что фактически обновляет выравнивание.

На строке 36 мы вычисляем ‘мою цену’, которая является наиболее конкурентоспособным предложением Штутгарта для единицы потребности, связанной с линией заказа. Этот расчет является механизмом, очень похожим на вычисление наименьшей зарегистрированной цены, как это было сделано на строке 24, снова полагаясь на список механических совместимостей. Однако совместимости ограничены номерами деталей, обслуживаемых Штутгартом. Исторически клиенты могли или не могли выбрать наиболее экономически выгодную деталь для своего автомобиля. В любом случае, цель использования клиентских заказов в этом контексте - назначить веса единицам потребности.

На строке 37 мы используем абсолютную разницу между лучшей ценой, предложенной Штутгартом, и лучшей ценой, предложенной конкурентом, чтобы направлять выравнивание. Внутри этого альтернативного блока градиенты применяются ретроспективно к параметрам. Разница, которую мы находим в конце, формирует функцию потерь. Из этой функции потерь градиенты возвращаются к единственному вектору параметров, который у нас здесь есть: ‘pns.price’. Путем постепенной настройки параметров (цен) на каждой итерации (итерация здесь - это линия заказа) скрипт сходится к подходящему приближению желаемого выравнивания цен.

В терминах алгоритмической сложности строка 36 доминирует. Однако, поскольку количество совместимостей для любой заданной модели автомобиля и типа детали ограничено (обычно не более нескольких десятков), каждая итерация ‘Auto diff’ выполняется за то, что можно считать постоянное время. Это постоянное время не очень маленькое, например, 10 тактов ЦП, но это также не будет миллион тактов ЦП. Приблизительно тысяча тактов ЦП звучит разумно для 20 совместимых деталей.

Если мы предположим, что одно ЦП работает на двух гигагерцах и выполняет 100 эпох (одна эпоха - это полное спуск по всей таблице наблюдений), мы ожидаем целевое время выполнения около 10 минут. Решение проблемы с 100 000 переменными и 10 миллионами ограничений за 10 минут на одном ЦП довольно впечатляюще. Фактически, Lokad достигает производительности, примерно соответствующей этим ожиданиям. Однако на практике для таких задач нашим узким местом чаще всего является пропускная способность ввода-вывода, а не ЦП.

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

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

Слайд 15

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

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

Просто объединение всех номеров деталей является наивным. У клиентов нет одинаковой готовности платить за все оригинальные производители оборудования (OEM). Например, клиенты скорее ценят известный бренд, такой как Bosch, по сравнению с малоизвестным китайским OEM в Европе. Чтобы решить эту проблему, Штутгарт, как и его конкуренты, классифицирует OEM в краткий список диапазонов продуктов от самых дорогих до самых дешевых. У нас могут быть, например, диапазон мотоспорта, диапазон для дома, диапазон дистрибьюторского бренда и бюджетный диапазон.

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

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

Slide 16

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

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

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

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

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

Slide 17

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

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

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

Допустим, что ставка валовой маржи Штутгарта прогнозируется на уровне 13%, но Штутгарту требуется ставка валовой маржи на уровне 15% для поддержания себя. Что должен сделать Штутгарт, столкнувшись с такой ситуацией? Один из вариантов заключается в выборе случайной группы “единиц потребности” и повышении их цен на 20%. Типы деталей, предпочитаемые новыми клиентами, например, стеклоочистители, должны быть исключены из этого выбора. Привлечение этих клиентов в первый раз является дорогостоящим и сложным, и Штутгарт не должен рисковать этими первоначальными покупками. Аналогично, для очень дорогих типов деталей, например, форсунок, клиенты, скорее всего, будут много искать. Таким образом, Штутгарт, вероятно, не должен рисковать появлением неконкурентоспособности при покупке этих более крупных товаров.

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

Slide 18

Ранжирование отображений - еще один важный фактор в онлайн-каталоге Штутгарта. Более конкретно, для каждой “единицы потребности” Штутгарту необходимо ранжировать все подходящие детали. Определение наилучшего способа ранжирования деталей - это проблема, связанная с ценообразованием, которая заслуживает отдельной лекции. Ранжирование отображений, с точки зрения, представленной в этой лекции, ожидается, что будет рассчитываться после решения проблемы выравнивания. Однако также можно представить оптимизацию как ценовых ярлыков, так и ранжирования отображений одновременно. Эта проблема представит около 10 миллионов переменных вместо 100 000 переменных, с которыми мы имели дело до сих пор. Однако это не изменяет существенно масштаб оптимизационной проблемы, так как у нас все равно есть 10 миллионов ограничений, с которыми нужно справиться. Сегодня я не буду рассматривать, какой критерий может быть использован для руководства этой оптимизацией ранжирования отображений, а также как использовать градиентный спуск для дискретной оптимизации. Этот последний вопрос довольно интересен, но будет рассмотрен в следующей лекции.

Slide 19

Относительная важность “единицы потребности” практически полностью определяется существующим автопарком. Штутгарт не может ожидать продать 1 миллион тормозных колодок для модели автомобиля, которая имеет всего 1000 автомобилей в Европе. Можно даже утверждать, что истинными потребителями запчастей являются сами автомобили, а не их владельцы. Хотя автомобили не платят за свои запчасти (владельцы делают это), эта аналогия помогает подчеркнуть важность автопарка.

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

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

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

Slide 20

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

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

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

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

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

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

Более общим образом, факторизация матрицы применима к любой ситуации, связанной с двудольным графом. Факторизация матрицы также полезна за пределами анализа графов. Например, низкоранговая адаптация больших языковых моделей (LLM), техника, которая стала чрезвычайно популярной для настройки LLM, также полагается на трюк факторизации матрицы. Факторизация матрицы показана на экране. Слева у нас есть матрица совместимости, где единицы обозначают совместимость между автомобилем и деталью, а нули обозначают несовместимость между моделью автомобиля и номером детали. Мы хотим заменить эту большую и очень разреженную матрицу произведением двух меньших плотных матриц. Эти две матрицы видны справа. Эти матрицы служат для факторизации большой матрицы. Фактически, мы помещаем каждую модель автомобиля и номер детали в скрытое пространство. Размер этого скрытого пространства обозначен заглавной буквой L на экране. Это скрытое пространство предназначено для захвата механической совместимости, но с гораздо меньшим количеством измерений по сравнению с исходной матрицей. Поддерживая размер этого скрытого пространства достаточно низким, мы стремимся выяснить скрытые правила, управляющие этой механической совместимостью.

Slide 21

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

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

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

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

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

L4 Строки с 12 по 15 вводят две вспомогательные функции с именами sigmoid и log_loss. Функция sigmoid используется для преобразования сырого произведения матриц в вероятности, числа от 0 до 1. Функция log_loss означает логистическую потерю. Логистическая потеря применяет логарифмическую правдоподобность, метрику, используемую для оценки правильности вероятностного прогноза. Здесь она используется для оценки вероятностного прогноза для задачи бинарной классификации. Мы уже сталкивались с логарифмической правдоподобностью в лекции 5.3, посвященной вероятностному прогнозированию времени выполнения. Это более простая вариация той же идеи. Эти две функции помечены ключевым словом autograd, указывающим, что они могут быть автоматически дифференцированы. Малое значение одного из миллиона - это эпсилон, введенный для численной стабильности. Он не имеет никакого отношения к логике в остальном. Со строки 17 по 29 у нас есть сама матричная факторизация. Еще раз мы используем дифференцируемое программирование. Несколько минут назад мы использовали дифференцируемое программирование для приближенного решения задачи удовлетворения ограничений. Здесь мы используем дифференцируемое программирование для решения задачи самообучения.

В строках 18 и 19 мы объявляем параметры, которые должны быть изучены. Эти параметры связаны с двумя маленькими матрицами pnl и car_L. Ключевое слово ‘auto’ указывает, что эти параметры инициализируются случайным образом как случайные отклонения от гауссовского распределения с центром в нуле и стандартным отклонением 0.1.

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

В строках с 22 по 24 мы загружаем вложения. В строке 22 у нас есть вложение для одной части с именем px. В строке 23 у нас есть вложение для одной модели автомобиля с именем mx. Пара px и mx будет нашим положительным ребром, совместимостью, считаемой истинной. В строке 24 у нас есть вложение для другой модели автомобиля с именем mx2. Пара px и mx2 будет нашим отрицательным ребром, совместимостью, считаемой ложной. Действительно, mx2 был случайным образом выбран при перемешивании, которое происходит в строке шесть. Все три вложения px, mx и mx2 имеют ровно 24 измерения, так как они принадлежат скрытому пространству, представленному таблицей L в этом скрипте.

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

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

К сожалению, я не могу представить эмпирические результаты, связанные с этими техниками, так как соответствующие наборы данных совместимости являются собственностью. Однако мои результаты, подтвержденные несколькими участниками этого рынка, указывают на то, что эти техники факторизации матриц могут использоваться для сокращения количества ложноположительных и ложноотрицательных значений на порядок. В терминах производительности, я смог достичь удовлетворительной сходимости с помощью набора инструментов глубокого обучения, который я использовал, CNTK - набор инструментов глубокого обучения от Microsoft в 2017 году, за примерно две недели вычислений, а с помощью текущей версии Envision - примерно за час. Ранние наборы инструментов глубокого обучения действительно предлагали дифференцируемое программирование в определенном смысле; однако эти решения были сильно оптимизированы для больших произведений матриц и больших сверток. Более новые наборы инструментов, такие как Jax от Google, я подозреваю, могут обеспечить производительность, сравнимую с производительностью Envision.

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

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

Slide 22

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

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

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

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

Вместо попыток запретить доступ к HTML-страницам, что является проигрышной стратегией, мы решили избирательно вмешиваться в сами веб-скрейперы. Команда Lokad не знала всех деталей проектирования этих веб-скрейперов. Учитывая DHTML-структуру определенного интернет-магазина, несложно сделать обоснованное предположение о том, как компания, управляющая веб-скрейперами, будет действовать. Например, если каждая HTML-страница веб-сайта StuttArt имеет удобный CSS-класс с названием ‘unit price’, который выделяет цену товара посередине страницы, разумно предположить, что практически все роботы будут использовать этот удобный CSS-класс для выделения цены в HTML-коде. Действительно, если веб-сайт StuttArt не предлагает еще более удобный способ получения цен, например, открытый API, который можно свободно запросить, то этот CSS-класс является очевидным путем для извлечения цен.

Однако, поскольку логика веб-скрапинга очевидна, также очевидно, как избирательно вмешиваться в эту логику. Например, StuttArt может решить выбрать несколько хорошо целевых продуктов и ‘отравить’ HTML. В данном примере на экране оба HTML-страницы визуально будут отображаться для людей как ценник в 65 евро и 50 центов. Однако вторая версия HTML-страницы будет интерпретироваться роботами как 95 евро вместо 65 евро. Цифра ‘9’ повернута с помощью CSS так, чтобы выглядеть как ‘6’. Обычный веб-скрапер, который полагается на разметку HTML, не заметит этого.

Slide 23

Десять лет спустя даже сложная модель большого языка, такая как GPT-4, которая тогда еще не существовала, все равно поддается этому простому CSS-трюку. На экране мы видим, что GPT-4 не извлекает цену в 65 евро, как должно было быть, а вместо этого отвечает 95 евро. Визуально существует десятки способов создать HTML-код, который предлагает очевидный ценник для робота, отличающийся от того, который читал бы человек на веб-сайте. Поворот ‘9’ в ‘6’ - это только один из самых простых трюков из множества подобных трюков.

Противодействие этой технике состоит в рендеринге страницы, создании полного битмапа и последующем применении оптического распознавания символов (OCR) к этому битмапу. Однако это довольно дорого. Компании по конкурентной разведке должны повторно проверять десятки миллионов веб-страниц ежедневно. Как правило, запуск процесса рендеринга веб-страницы, за которым следует OCR, увеличивает стоимость обработки как минимум в 100 раз, а скорее всего в 1000 раз.

В качестве ориентира, на май 2023 года, Microsoft Azure берет один доллар за тысячу операций OCR. Учитывая, что ежедневно конкурентные разведывательные специалисты в Европе должны контролировать более 10 миллионов страниц, это означает бюджет в $10,000 в день только на OCR. И Microsoft Azure, кстати, довольно конкурентоспособен в этой области.

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

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

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

Slide 24

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

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

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

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

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

Slide 25

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

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

Slide 26

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

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

Slide 27

Прежде чем мы перейдем к вопросам, я хотел бы объявить, что следующая лекция состоится в первую неделю июля. Как обычно, это будет среда в то же время - 15:00 по парижскому времени. Я вернусь к первой главе с более детальным рассмотрением того, что экономика, история и теория систем говорят нам о цепочке поставок и планировании цепочки поставок.

Теперь давайте рассмотрим вопросы.

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

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

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

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

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

Вопрос: Для технически совместимых ссылок на единицу потребности существуют воспринимаемые различия в качестве, активности, серебре, золоте и т. д. Как вы учитываете это при сопоставлении цен конкурентов?

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

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

StuttArt должен иметь представление обо всех деталях рынка. Это не так сложно, как может показаться, потому что большинство производителей предоставляют информацию о предполагаемом качестве своих деталей. Эти вещи довольно кодифицированы самими производителями оригинального оборудования (OEM). Мы получаем выгоду от того, что автомобильный рынок - это невероятно устоявшийся, очень зрелый рынок, который существует уже более столетия. Компании, которые продают эти наборы совместимости, наборы данных для автомобилей и совместимости деталей, также предоставляют множество атрибутов для деталей и моделей автомобилей. Речь идет о сотнях атрибутов. Эти наборы данных обширны и богаты. Изначально эти наборы данных использовались людьми в ремонтных центрах для определения способов проведения ремонтных работ. Они даже идут с приложениями PDF и технической документацией. Это очень богато; у вас есть десятки гигабайт данных, включая изображения и фотографии. Я только немного касался рыночной стоимости этих наборов данных.

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

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

Что касается оптимизации ценообразования, регулирования не столько препятствовали, сколько откладывали появление онлайн-дилеров автозапчастей. Например, в Европе 20 лет назад была юридическая борьба. Пионеры, такие как StuttArt, которые были первыми компаниями, продававшими автозапчасти онлайн, столкнулись с юридическими противоречиями. Они продавали автозапчасти и заявляли на своем веб-сайте, что они идентичны тем, которые продаются оригинальными производителями автомобилей.

Компании, подобные StuttArt, говорили: “Я не продаю вам какую-либо автозапчасть, я продаю вам ту же самую автозапчасть, которую использовал бы производитель автомобиля”. Они могли делать такое заявление, потому что покупали точно такую же запчасть на том же заводе. Если запчасть поставляется, скажем, от Valeo и устанавливается на автомобиль Peugeot, то существует известная связь. Что было решено около двадцати лет назад, несколько судов в Европе решили, что веб-сайт имеет право заявлять, что продает точно такую же запчасть, как те, которые соответствуют оригинальным запчастям автомобиля. Эта юридическая неопределенность задержала появление продажи автозапчастей онлайн, вероятно, на примерно пять лет. Пионеры вели судебные тяжбы с автопроизводителями за право продавать автозапчасти онлайн, утверждая, что они являются оригинальными запчастями для автомобиля. Когда это было прояснено, они могли делать это, при условии, что они были честными и действительно покупали точно такую же автозапчасть от Valeo или Bosch, точно такую же, как запчасть, установленная на автомобиль.

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

В Азии одна проблема, которую я здесь не обсуждал, - это подделки. Работа с подделками в Европе сильно отличается от Азии. Подделки существуют в Европе, но рынок зрелый и катализированный. OEM-производители и автопроизводители очень хорошо знают друг друга. Хотя подделки существуют, это очень минимальная проблема. В странах, таких как Азия, особенно Индия и Китай, все еще существуют проблемы с подделками. Это не проблема регулирования, так как подделки так же незаконны в Китае, как и в Европе. Проблема заключается в применении закона, при этом степень применения закона в Азии намного ниже, чем в Европе.

Вопрос: Мы пытаемся оптимизировать цену в целом или относительно конкурентов?

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

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

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

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

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

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

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

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

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

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

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

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