Differenzierbares Programmieren
Differentiable programming ist der Nachfolger des Deep Learnings und repräsentiert den Zusammenfluss zweier algorithmischer Bereiche: maschinelles Lernen und numerische Optimierung. Differentiable programming erschließt eine Reihe von supply chain Szenarien, die bisher als weitgehend unlösbar galten: gemeinsame Optimierung von Preisen und Beständen, loyalitätsgetriebene Sortimentsoptimierung, Prognose der Nachfrage nach nicht standardmäßigen Produkten (z.B. Edelsteine, Kunstwerke), groß angelegte, mehrstufige Flussoptimierung, Multichannel-Gemeinschaftsoptimierung, Bestandsoptimierung bei teils fehlerhaften elektronischen Lagerbeständen, groß angelegte Flussmaximierung unter zahlreichen Nebenbedingungen usw. Für viele weitere Szenarien, die mit alternativen Methoden bereits angegangen werden konnten, liefert Differentiable programming überlegene numerische Ergebnisse bei nur einem Bruchteil des Aufwands – sowohl in Bezug auf den Einsatz der Data Scientists als auch auf die benötigten Rechnerressourcen.
Application to Supply Chains
Im Kern bietet Differentiable Programming (DP) einen Weg, Probleme, die zu lange getrennt blieben, gemeinsam zu lösen: Sortimentsgestaltung, Preisgestaltung, Prognose, Planung, Warenpräsentation. Während eine solche Vereinheitlichung unrealistisch ehrgeizig erscheinen mag, ist die Realität, dass Unternehmen bereits eine enorme Menge an provisorischen Lösungen in ihre Prozesse einbauen, um mit den endlosen Problemen umzugehen, die dadurch entstehen, dass diese Herausforderungen ursprünglich in der Organisation isoliert wurden. Zum Beispiel beeinflusst die Preisgestaltung offensichtlich die Nachfrage, und dennoch werden sowohl Planung als auch Prognose nahezu immer durchgeführt, ohne Preise zu berücksichtigen.
DP erschließt die enorme Möglichkeit, annähernd richtige Entscheidungen aus einer ganzheitlichen Perspektive auf das Unternehmen zu treffen, anstatt exakt falsch zu liegen, indem Probleme innerhalb der Organisation verlagert werden, statt sie zu lösen.
Anekdotisch betrachtet verfolgen die meisten tabellengetriebenen Organisationen den Ansatz, eine annähernde Korrektheit zu erreichen, während das Unternehmen als Ganzes berücksichtigt wird; und mangels einer Technologie – wie DP –, die eine unternehmensweite Perspektive integrieren kann, bleiben Tabellenkalkulationen die am wenigsten schreckliche Option.
Ecommerce
Clients 100% der verkauften Einheiten bekannten Kunden zuordnen zu können, stellt eine enorme, bislang ungenutzte Informationsquelle über den Markt dar; dennoch wird die Loyalitätsinformation bei der Preis- und Bestandsoptimierung heutzutage in der Regel kaum genutzt. DP bietet die Möglichkeit, von der Zeitreihenprognose zur temporalen Graphprognose überzugehen, bei der jedes jemals beobachtete Kunden-Produkt-Paar zählt – was zu intelligenteren Entscheidungen sowohl bei Beständen als auch bei Preisen führt.
Luxury brands
Die Optimierung von Preisen und Sortimentszusammenstellungen – bis hinunter zur Filialebene – wurde lange Zeit als weitgehend unlösbar angesehen, bedingt durch die Knappheit der Daten, also das extrem geringe Verkaufsvolumen pro Artikel und Filiale – teilweise nur eine verkaufte Einheit pro Produkt und Filiale pro Jahr. DP bietet Ansätze, um Lösungsklassen zu liefern, die auch bei solch ultra-dünn besetzten Daten funktionieren, da sie darauf ausgelegt sind, eine wesentlich höhere Dateneffizienz zu erreichen als herkömmliche Deep-Learning-Methoden.
Fashion brands
Die gemeinsame Optimierung von Beständen und Preisen ist eine klare Notwendigkeit – da die Nachfrage nach vielen Artikeln hochpreissensitiv sein kann –, doch konnte bisher weder die Beschaffung noch die Preisgestaltung gemeinsam optimiert werden, weil es an einem Werkzeug mangelte, das diese Kopplung vollständig erfassen konnte – sprich: die Möglichkeit, bei niedrigeren Preisen mehr einzukaufen, was wiederum zu einer höheren Nachfrage führt (und umgekehrt). DP bietet die Ausdrucksstärke, um diese Herausforderung zu bewältigen.
Manufacturing
Die numerische Optimierung umfangreicher, mehrstufiger Netzwerke versagt, wenn klassische numerische Solver zum Einsatz kommen (siehe „Beyond branch-and-cut optimization“ unten). Tatsächlich erweisen sich diese Solver als weitgehend unpraktikabel, wenn es entweder um Millionen von Variablen oder um stochastische Prozesse geht. Leider weist die Fertigung beides auf – zahlreiche Variablen und stochastische Verhaltensweisen. DP bietet einen praxisnahen Ansatz, um mit mehrstufigen Systemen umzugehen, ohne die Komplexität der tatsächlichen Flussmuster innerhalb des Netzwerks zu vernachlässigen.
MRO (maintenance, repair, overhaul)
Fehlt ein Teil, das für die Reparatur eines Systems benötigt wird – wie beispielsweise bei einem Flugzeug –, bleibt das gesamte System außer Betrieb. Probabilistische Prognosen sind der erste Schritt, um mit solch unregelmäßigen und intermittierenden Nachfragemustern umzugehen, aber die Details der gleichzeitigen Vorkommen der benötigten Teile zu ermitteln und diese Analyse in umsetzbare Inventarempfehlungen zu übersetzen, war zu komplex, um praktisch nutzbar zu sein. DP vereinfacht die Lösung solcher Probleme.
Retail networks
Kannibalisierung innerhalb von Einzelhandelsnetzwerken – meist zwischen Produkten, aber manchmal auch zwischen Filialen – wird seit langem als von primärer Bedeutung erkannt. Dieses Problem wird durch Werbeaktionen, die gezielt darauf abzielen, Kunden von einer Marke zur anderen zu lenken, noch verstärkt. DP bietet die Möglichkeit, Kannibalisierung auch angesichts von Promotionen zu adressieren. Anstatt lediglich „Promotionen vorherzusagen“, ermöglicht DP es, Promotionen für das zu optimieren, was sie sind: rentable Angebote, die von sowohl dem Vertriebskanal als auch der Marke gemeinsam betrieben werden.
Beyond the Artificial Intelligence hype
Künstliche Intelligenz (KI) war sicherlich 2018 das Tech-Buzzword, und der Hype hält auch 2019 an. Während Lokad jedoch Techniken einsetzt, die in der Regel durchaus unter das KI-Buzzword fallen – z.B. Deep Learning –, haben wir uns davor gescheut, den „KI“-Aspekt von Lokads Technologie zu betonen. Tatsächlich funktioniert verpackte KI im Bereich der quantitativen supply chain Optimierung schlichtweg nicht. Supply chains sind ganz und gar nicht wie beispielsweise Computer Vision: Daten, Kennzahlen und Aufgaben sind allesamt extrem heterogen. Folglich müssen Unternehmen, die vermeintlich schlüsselfertige KI-Lösungen erworben haben, zunehmend erkennen, dass diese Lösungen einfach nicht funktionieren – außer vielleicht in den einfachsten Fällen, in denen auch „dumme“ regelbasierte Systeme zufriedenstellend gewesen wären. Im Kern sind supply chains komplexe, von Menschen geschaffene Systeme, und es ist in der Regel unrealistisch zu erwarten, dass ein KI-System – basierend allein auf Daten – von selbst grundlegende Einsichten über das Fachgebiet wiederentdeckt, wie zum Beispiel:
- Für eine Luxusmarke Promotionen durchzuführen, ist ein absolutes Tabu.
- Negative Verkaufsaufträge im ERP stellen tatsächlich Produktretouren dar.
- Frische Lebensmittel müssen innerhalb definierter Temperaturbereiche transportiert werden.
- Farbvarianten mögen als Kleidungsalternativen geeignet sein, jedoch nicht Varianten in den Größen.
- Die Wartung von Flugzeugen wird durch Flugstunden und Flugzyklen bestimmt.
- Die Verkäufe in Großbritannien erfolgen tatsächlich in GBP, auch wenn das ERP EUR als Währung anzeigt.
- Menschen kaufen Autoteile für ihre Fahrzeuge, nicht für sich selbst.
- Jeder Diamant ist einzigartig, aber die Preise hängen hauptsächlich von Karat, Klarheit, Farbe und Schliff ab.
- Fehlt in einem Flugzeug ein NOGO-Teil, wird das Flugzeug stillgelegt.
- Viele Chemieanlagen benötigen Wochen, um nach einer Abschaltung wieder in Betrieb zu gehen.
In dieser Hinsicht war Deep Learning enorm erfolgreich, denn im Gegensatz zu vielen früheren Ansätzen im Machine Learning ist es zutiefst kompositional: Es ist möglich, die Modellstruktur umfassend anzupassen, um in einer spezifischen Situation besser zu lernen. Das Anpassen der Modellstruktur unterscheidet sich vom Anpassen des Modelleingangs – eine Aufgabe, die als Feature Engineering bekannt ist –, welche typischerweise die einzige Option für die meisten nicht-deep Machine-Learning-Algorithmen wie Random Forests darstellte.
Allerdings wurden Deep-Learning-Frameworks, die aus den „Big Problems“ des Machine Learning hervorgingen – nämlich Computer Vision, Spracherkennung, Sprachsynthese, automatisierte Übersetzung – intensiv für Szenarien optimiert und abgestimmt, die buchstäblich nichts mit den in supply chains auftretenden Problemen zu tun haben. Somit ist es zwar möglich, diese Frameworks für Optimierungszwecke in supply chains zu nutzen, aber es war weder einfach noch wenig aufwendig. Zusammenfassend lässt sich sagen, dass mit Deep-Learning-Frameworks für supply chains zwar viel erreicht werden kann, jedoch das Missverhältnis zwischen supply chains und bestehenden Deep-Learning-Frameworks groß ist – was zu höheren Kosten, Verzögerungen und einer eingeschränkten praktischen Anwendbarkeit dieser Technologien führt.
Beyond branch-and-cut optimization
Die meisten Probleme in supply chains haben sowohl einen Lernaspekt – verursacht durch unvollständiges Wissen über die Zukunft, den aktuellen Zustand des Marktes und manchmal sogar über das supply chain System selbst (z.B. Inventarungenauigkeiten) – als auch einen numerischen Optimierungsaspekt. Entscheidungen müssen im Hinblick auf wirtschaftliche Treiber optimiert werden, während gleichzeitig zahlreiche nichtlineare Nebenbedingungen eingehalten werden (z.B. Mindestbestellmengen beim Einkauf oder Losgrößen bei der Produktion).
Im Bereich der numerischen Optimierung dominieren seit Jahrzehnten die Ganzzahl-Programmierung und verwandte Techniken wie Branch-and-Cut. Allerdings haben diese Branch-and-Cut-Algorithmen und ihre zugehörigen Softwarelösungen meist nicht die Flexibilität und Skalierbarkeit erbracht, die erforderlich ist, um operationelle Lösungen für viele, wenn nicht die meisten supply chain Herausforderungen bereitzustellen. Die Ganzzahl-Programmierung ist ein äußerst leistungsfähiges Werkzeug bei der Lösung straffer Probleme mit wenigen Variablen (z.B. bei der Komponentenplatzierung in einem Unterhaltungselektronikgerät), zeigt jedoch drastische Einschränkungen bei großskaligen Problemen, bei denen Zufälligkeit eine Rolle spielt (z.B. das Ausbalancieren von Beständen zwischen 10 Millionen SKUs angesichts probabilistischer Nachfrage und probabilistischer Transportzeiten).
Einer der am wenigsten beachteten Aspekte von Deep Learning ist, dass sein Erfolg gleichermaßen auf Durchbrüchen im Lernbereich wie im Optimierungsbereich beruht. Die wissenschaftliche Gemeinschaft hat entdeckt, dass unglaublich effiziente Algorithmen groß angelegte Optimierungen durchführen. Diese „Deep-Learning“-Optimierungsalgorithmen – die alle auf dem stochastischen Gradientenabstieg basieren – sind nicht nur weitaus effizienter als ihre Branch-and-Cut-Pendants, sondern passen auch wesentlich besser zur vorhandenen Rechenhardware, nämlich SIMD-CPUs und (GP)GPUs, was in der Praxis zu zwei- bis dreistelliger Geschwindigkeitssteigerung führt. Diese Fortschritte in der reinen numerischen Optimierung sind von hoher Relevanz für supply chains, um Entscheidungen zu optimieren. Wenn die Deep-Learning-Frameworks jedoch bereits etwas ungeeignet waren, um Lernprobleme in supply chains anzugehen, dann sind sie umso weniger geeignet, die Optimierungsprobleme in supply chains zu lösen. Tatsächlich hängt die Lösung dieser Optimierungsprobleme noch stärker von der Ausdruckskraft des Frameworks ab, um es den supply chain scientists zu ermöglichen, die einzuhaltenden bzw. zu optimierenden Nebenbedingungen und Kennzahlen umzusetzen.
Toward Differentiable Programming
Theoretisch gibt es keinen Unterschied zwischen Theorie und Praxis. Aber in der Praxis gibt es einen. Walter J. Savitch, Pascal: An Introduction to the Art and Science of Programming (1984)
Differentiable Programming (DP) ist die Antwort, um den supply chains das Beste dessen zu bieten, was Deep Learning sowohl im Bereich des Lernens als auch der numerischen Optimierung zu offerieren hat. Durch DP können Supply Chain Scientists ihre menschlichen Einsichten bestmöglich nutzen, um numerische Rezepte zu entwickeln, die in der Tiefe auf die Geschäftsziele abgestimmt sind. Es gibt keine absolute Abgrenzung zwischen Deep Learning und Differentiable Programming: Es handelt sich vielmehr um ein Kontinuum von den am besten skalierbaren Systemen (Deep Learning) bis zu den ausdrucksstärksten Systemen (Differentiable Programming), bei dem viele Programmierkonstrukte allmählich verfügbar werden – zulasten der reinen Skalierbarkeit – wenn man sich Differentiable Programming zuwendet. Dennoch zeigt unsere Erfahrung bei Lokad, dass der Übergang von überwiegend für Computer Vision entwickelten Tools zu solchen, die für supply chain Herausforderungen konzipiert wurden, genau den Unterschied ausmacht zwischen einem „interessanten“ Prototyp, der nie in Produktion geht, und einem industrietauglichen System, das in großem Maßstab eingesetzt wird.
| Deep Learning | Differentiable Programming | |
|---|---|---|
| Hauptzweck | Lernen | Lernen+Optimierung |
| Typische Anwendung | Einmal lernen, häufig auswerten | Einmal lernen, einmal auswerten |
| Granularität der Eingabe | Umfangreiche Objekte (Bilder, Sprachsequenzen, Lidar-Scans, komplette Textseiten) | Schmale Objekte (Produkte, Kunden, SKUs, Preise) |
| Vielfalt der Eingaben | Homogene Objekte (z. B. Bilder, die alle dasselbe Höhen/Breiten-Verhältnis haben) | Heterogene Objekte (relationale Tabellen, Graphen, Zeitreihen) |
| Eingabevolumen | Von Megabytes bis Petabytes | Von Kilobytes bis zu Zehnergigabytes |
| Hardware-Beschleunigung | Hardware acceleration | Gut |
| Ausdruckskraft | Statische Graphen von Tensoroperationen | (Fast) beliebige Programme |
| Stochastische numerische Rezepte | Eingebaut | Idem |
Die typische Anwendung ist ein subtiler, aber wichtiger Punkt. Aus der „Big AI“-Perspektive kann die Trainingszeit (fast) beliebig lang sein: Es ist in Ordnung, wenn ein Berechnungsnetzwerk wochen-, wenn nicht monatelang trainiert wird. Später muss das resultierende Berechnungsnetzwerk in der Regel in Echtzeit ausgewertet werden (z. B. Mustererkennung für autonomes Fahren). Dieser Ansatz unterscheidet sich völlig von supply chains, bei denen die besten Ergebnisse dadurch erzielt werden, dass das Netzwerk jedes Mal neu trainiert wird. Darüber hinaus sind aus DP-Sicht die trainierten Parameter häufig genau die Ergebnisse, die wir zu erhalten suchen – wodurch die gesamte Einschränkung der Echtzeitauswertung hinfällig wird. Die Erwartungen an die Dateninputs hinsichtlich Granularität, Vielfalt und Volumen sind zudem ganz anders. Typischerweise betont die „Big AI“-Perspektive nahezu unendliche Mengen an Trainingsdaten (z. B. alle Textseiten des Webs), wobei die Hauptherausforderung darin besteht, enorm skalierbare Methoden zu finden, die diese massiven Datensätze effektiv nutzen können. Im Gegensatz dazu müssen supply chain Probleme mit einer begrenzten Menge hochstrukturierter, aber vielfältiger Daten angegangen werden. Dies lenkt Deep Learning in Richtung tensorbasierter Frameworks, die durch dedizierte Rechenhardware – zunächst GPUs und mittlerweile zunehmend TPUs – massiv beschleunigt werden können. Differentiable Programming, das auf stochastischem Gradientenabstieg basiert, weist ebenfalls viele gute Eigenschaften für Hardware-Beschleunigung auf, wenn auch in geringerem Maße im Vergleich zu statischen Graphen von Tensoroperationen. Die Bedeutung der stochastischen numerischen Rezepte ist zweifach. Zum einen spielen diese Rezepte aus Lernsicht eine wichtige Rolle. Variational Auto-Encoder oder Dropouts sind Beispiele für solche numerischen Rezepte. Zum anderen spielen sie auch aus Modellierungssicht eine wichtige Rolle, um probabilistische Verhaltensweisen innerhalb der supply chain Systeme (z. B. variierende Lieferzeiten) angemessen zu berücksichtigen. Im Gegensatz dazu besteht eine gewaltige Lücke zwischen Differentiable Programming und Mixed Integer Programming – der vorherrschende Ansatz der letzten Jahrzehnte bestand darin, komplexe numerische Optimierungen durchzuführen.
| Mixed integer Programming | Differentiable Programming | |
|---|---|---|
| Hauptzweck | Optimierung | Lernen+Optimierung |
| Granularität und Vielfalt der Eingabe | Schmale Objekte, heterogen | Idem |
| Eingabevolumen | Von Bytes bis zu Zehnermegabytes | Von Kilobytes bis zu Zehnergigabytes |
| Hardware-Beschleunigung | Schlecht | Gut |
| Ausdruckskraft | Ungleichungen über lineare und quadratische Formen | (Fast) beliebige Programme |
| Stochastische numerische Rezepte | Keine | Eingebaut |
Zur Verteidigung der Mixed Integer Programming Tools: Diese Tools können, sofern sie ein Problem erfolgreich bewältigen, manchmal mathematisch beweisen, dass sie die optimale Lösung erreicht haben. Weder Deep Learning noch Differentiable Programming liefern in dieser Hinsicht einen formalen Beweis.
Schlussfolgerungen
Differentiable Programming ist ein bedeutender Durchbruch für supply chains. Es basiert auf Deep Learning, das sich bei der Lösung vieler „Big AI“-Probleme wie der Computer Vision als außerordentlich erfolgreich erwiesen hat, jedoch grundlegend umgestaltet wurde, um den Herausforderungen der realen Welt – wie sie supply chains begegnen – gerecht zu werden. Lokad baut auf seiner Deep Learning Forecasting Technologie auf, um den Übergang zu Differentiable Programming einzuleiten, der die nächste Generation unserer prädiktiven Technologie darstellt. Doch DP ist mehr als nur voraussagend: Es vereint Optimierung und Lernen und eröffnet Lösungen für eine Vielzahl von Problemen, für die es bisher keine praktikablen Ansätze gab.