Programmazione Differenziabile come in 'AI' che funziona
Siamo orgogliosi di annunciare la disponibilità immediata della Lokad private beta per differentiable programming destinata all’ottimizzazione del quantitative supply chain. Differentiable programming è il discendente del deep learning e rappresenta la convergenza di due campi algoritmici: machine learning e ottimizzazione numerica.

La differentiable programming sblocca una serie di scenarios di supply chain che erano considerati in gran parte intrattabili: ottimizzazione congiunta di prezzi e scorte, ottimizzazione dell’assortimento guidata dalla fedeltà, previsione della domanda per prodotti non standard (es. pietre preziose, opere d’arte), ottimizzazione di flussi multi-echelon su larga scala, ottimizzazione congiunta su canali multipli, ottimizzazione delle scorte in presenza di valori elettronici delle scorte parzialmente errati, massimizzazione del flusso su larga scala sotto molteplici vincoli, ecc. Per molti altri scenarios che erano già affrontabili con metodi alternativi, la differentiable programming offre risultati numerici superiori con solo una frazione del sovraccarico, sia in termini di impegno degli scienziati dei dati che di risorse computazionali.
Applicazione alle Supply Chains
Alla base, la Differentiable Programming (DP) offre un percorso per unificare problemi che sono rimasti per troppo tempo disconnessi e li risolve congiuntamente: assortimento, prezzi, previsioni, pianificazione, merchandising. Sebbene tale unificazione possa sembrare irrealisticamente ambiziosa, la realtà è che le aziende stanno già applicando una quantità incredibile di nastro adesivo ai propri processi per far fronte ai problemi infiniti generati dal fatto che tali sfide sono state inizialmente isolate all’interno dell’organizzazione . Ad esempio, la determinazione dei prezzi influisce ovviamente sulla domanda, eppure sia la pianificazione che le previsioni vengono quasi sempre effettuate ignorando del tutto i prezzi.
DP sblocca l’enorme opportunità di fornire decisioni approssimativamente corrette da una prospettiva olistica sul business, invece di essere esattamente sbagliate spostando i problemi all’interno dell’organizzazione anziché risolverli. In via aneddotica, cercare una correttezza approssimativa tenendo in considerazione l’intero business è esattamente ciò che caratterizza la maggior parte delle organizzazioni guidate dai fogli di calcolo; e per mancanza di una tecnologia - come DP - in grado di abbracciare una prospettiva dell’intero business, i fogli di calcolo rimangono l’opzione meno terribile.
Ecommerce: Essere in grado di associare il 100% delle unità vendute a clienti noti rappresenta una notevole quantità latente di informazioni sul mercato; tuttavia, quando si tratta di ottimizzazione dei prezzi e delle scorte, le informazioni di fedeltà solitamente non vengono nemmeno utilizzate al giorno d’oggi. DP offre la possibilità di passare dalla previsione time-series a quella temporal graph, dove ogni singola coppia cliente-prodotto mai osservata conta; portando a decisioni più intelligenti sia per le scorte che per i prezzi.
Luxury brands: L’ottimizzazione dei prezzi e degli assortimenti - fino al livello del punto vendita - è da tempo considerata in gran parte intrattabile a causa della scarsità dei dati, ovvero il volume estremamente basso di vendite per articolo per punto vendita - fino a raggiungere anche una sola unità venduta per prodotto per negozio all’anno. DP offre prospettive per fornire soluzioni in grado di operare su dati ultra-sparsi, poiché sono progettate per offrire una data efficiency molto superiore rispetto ai metodi regolari di deep learning.
Fashion brands: L’ottimizzazione congiunta delle scorte e dei prezzi è un requisito evidente - poiché la domanda per molti articoli può essere estremamente sensibile al prezzo - tuttavia, l’ottimizzazione congiunta sia degli acquisti che dei prezzi non poteva essere raggiunta a causa della mancanza di uno strumento in grado anche solo di cogliere questo legame - cioè, la capacità di acquistare di più a un prezzo inferiore genera una domanda maggiore (e viceversa). DP offre l’espressività necessaria per affrontare questa sfida.
Manufacturing: L’ottimizzazione numerica di ampie reti multi-echelon crolla quando viene tentata con i solutori numerici classici (vedi “Oltre l’ottimizzazione branch-and-cut” qui sotto). Infatti, tali solutori diventano in gran parte impraticabili quando si ha a che fare con milioni di variabili o comportamenti stocastici. Purtroppo, il settore manufacturing presenta entrambe le caratteristiche, con numerose variabili e comportamenti stocastici. DP offre un approccio pratico per gestire sistemi multi-echelon senza tradire la complessità dei reali schemi di flusso all’interno della rete.
MRO (maintenance, repair, overhaul): Se una parte necessaria per la riparazione di un sistema manca, allora l’intero sistema - che potrebbe essere un aereo - rimane inattivo. Le previsioni probabilistiche sono il primo passo per gestire pattern di domanda erratici e intermittenti, ma comprendere i dettagli delle co-occorrenze delle parti necessarie e trasformare questa analisi in raccomandazioni d’inventario praticabili era troppo complesso per essere d’uso pratico. DP razionalizza la risoluzione di tali problemi.
Retail networks: Le cannibalizzazioni all’interno delle retail networks - solitamente tra prodotti ma talvolta anche tra punti vendita - sono state riconosciute da tempo come di primaria importanza. Questo problema è amplificato dalle promozioni, concepite appositamente per indirizzare i clienti da un brand all’altro. DP offre la possibilità di affrontare la cannibalizzazione in presenza di promozioni. Invece di limitarsi a “prevedere le promozioni”, DP offre la possibilità di ottimizzare le promozioni per quello che sono: accordi redditizi gestiti congiuntamente sia dal canale distributivo che dal brand.
Oltre l’hype dell’Intelligenza Artificiale
L’Intelligenza Artificiale (AI) è sicuramente stata il termine di moda tecnologico del 2018 e il clamore continua forte anche nel 2019. Tuttavia, mentre Lokad utilizza ampiamente tecniche che solitamente rientrano nel concetto di AI - ad esempio il deep learning - siamo stati riluttanti a dare rilievo alla parte “AI” della tecnologia di Lokad. Infatti, per quanto riguarda l’ottimizzazione quantitativa della supply chain, l’AI confezionata semplicemente non funziona. Le supply chains non sono affatto come, ad esempio, la computer vision: dati, metriche e compiti sono estremamente eterogenei. Di conseguenza, le aziende che hanno acquistato soluzioni AI presumibilmente “chiavi in mano” stanno iniziando a rendersi conto che tali soluzioni semplicemente non funzioneranno mai, se non forse nelle situazioni più semplici in cui sistemi “stupidi” basati su regole avrebbero funzionato comunque alla grande.
Alla base, le supply chains sono sistemi complessi, creati dall’uomo, ed è solitamente irragionevole aspettarsi che il sistema AI - basato esclusivamente sui dati - riscopra autonomamente intuizioni fondamentali sul settore, come ad esempio:
- fare promozioni per un marchio di lusso è assolutamente da evitare.
- gli ordini di vendita negativi nell’ERP sono in realtà resi di prodotto.
- i prodotti alimentari freschi devono essere trasportati entro intervalli di temperatura specificati.
- le varianti di colore potrebbero essere buoni sostituti per l’abbigliamento, ma non le varianti di taglia1.
- la manutenzione degli aeromobili è determinata dalle ore di volo e dai cicli di volo.
- le vendite nel Regno Unito sono in realtà in GBP anche se l’ERP mostra EUR come valuta.
- le persone acquistano ricambi auto per i loro veicoli, non per se stessi.
- ogni diamante è unico, ma i prezzi dipendono principalmente da carati, purezza, colore e taglio.
- ogni parte NOGO mancante da un aereo fa sì che quest’ultimo venga messo a terra.
- molti impianti chimici impiegano settimane per riavviarsi dopo essere stati spenti.
In un futuro lontano, potrebbe arrivare il momento in cui il machine learning riesce a emulare l’intelligenza umana e a ottenere risultati nell’affrontare problemi complessi2, tuttavia, finora, i risultati sono stati ottenuti solo su problemi relativamente ristretti. Le tecnologie di machine learning stanno spingendo costantemente ogni anno i confini di ciò che costituisce un problema “ristretto”, e dopo decenni di sforzi, problemi importanti come la guida autonoma sicura e traduzioni automatizzate decenti sono stati risolti, o molto vicini ad esserlo.
Tuttavia, come illustrato dalla lista sopra, le supply chains rimangono disperatamente troppo eterogenee per una applicazione diretta di algoritmi di machine learning confezionati. Anche se il deep learning offre finora le capacità di generalizzazione più forti, è comunque necessario l’input di un Supply Chain Scientist per inquadrare la sfida in modo sufficientemente ristretto affinché gli algoritmi possano funzionare.
In questo senso, il deep learning ha avuto un successo straordinario perché, contrariamente a molti approcci precedenti nel machine learning, esso è profondamente composizionale: è possibile personalizzare ampiamente la struttura del modello per apprendere meglio in una situazione specifica. Personalizzare la struttura del modello è diverso dal personalizzare l’input del modello - un compito noto come feature engineering - che era tipicamente l’unica opzione disponibile per la maggior parte degli algoritmi di machine learning non basati sul deep learning, come le random forests3.
Tuttavia, poiché i framework di deep learning sono emersi dai “Big Problems” del machine learning, ovvero la computer vision, il riconoscimento vocale, la sintesi vocale, la traduzione automatizzata, tali framework sono stati progettati e ottimizzati in profondità per scenari che sono letteralmente ben diversi dai problemi affrontati nelle supply chains. Pertanto, sebbene sia possibile sfruttare quei framework4 per scopi di ottimizzazione della supply chain, non è stato un compito né facile né leggero.
In conclusione, con i framework di deep learning si può ottenere molto per le supply chains, ma il disallineamento tra le supply chains e i framework di deep learning esistenti è marcato, aumentando i costi, i ritardi e limitando l’applicabilità reale di tali tecnologie.

Oltre l’ottimizzazione branch-and-cut
La maggior parte dei problemi nelle supply chains ha sia un aspetto legato all’apprendimento - dovuto a una conoscenza imperfetta del futuro, a una conoscenza imperfetta dello stato attuale del mercato e talvolta anche a una conoscenza imperfetta del sistema supply chain stesso (ad es. imprecisioni nell’inventario) - sia un aspetto di ottimizzazione numerica. Le decisioni devono essere ottimizzate in funzione dei driver economici, rispettando numerosi vincoli non lineari (ad es. MOQs durante gli acquisti o dimensioni dei lotti durante la produzione).
Sul fronte dell’ottimizzazione numerica, la programmazione intera e le tecniche correlate, come il branch-and-cut, dominano il settore da decenni. Tuttavia, questi algoritmi branch-and-cut e le relative soluzioni software hanno in gran parte fallito5 nel fornire la flessibilità e la scalabilità necessarie per offrire soluzioni operative a molte, se non alla maggior parte, delle sfide della supply chain. La programmazione intera è uno strumento fantastico quando si tratta di risolvere problemi ristretti con poche variabili (ad es. il posizionamento dei componenti all’interno di un dispositivo elettronico di consumo), ma mostra limitazioni drastiche quando si tratta di problemi su larga scala in presenza di elementi casuali (ad es. il riequilibrio delle scorte tra 10 milioni di SKUs in presenza sia di domanda probabilistica che di tempi di trasporto probabilistici).
Uno degli aspetti più sottovalutati del deep learning è che il suo successo è tanto il risultato di innovazioni nel campo dell’apprendimento quanto di quelle nell’ottimizzazione. Questo perché la comunità scientifica ha scoperto che algoritmi estremamente efficienti stanno eseguendo ottimizzazioni su larga scala6.
Non solo questi algoritmi di ottimizzazione “deep learning” - tutti basati sulla discesa del gradiente stocastico - sono di gran lunga più efficienti rispetto alle loro controparti branch-and-cut, ma si adattano molto meglio all’hardware computazionale a nostra disposizione, ovvero CPU SIMD e (GP)GPU, che in pratica garantiscono due o tre ordini di grandezza di ulteriore accelerazione.
Queste innovazioni nella pura ottimizzazione numerica sono di grande rilevanza per le supply chains al fine di ottimizzare le decisioni. Tuttavia, se i framework di deep learning erano già in qualche modo poco adatti ad affrontare i problemi di apprendimento nelle supply chains, lo sono ancor di meno per i problemi di ottimizzazione nelle supply chains. Infatti, questi problemi di ottimizzazione dipendono ancora di più dall’espressività del framework per consentire ai Supply Chain Scientist di implementare i vincoli e le metriche da rispettivamente far valere e ottimizzare.
Verso la Differentiable Programming
In teoria, non c’è differenza tra teoria e pratica. Ma in pratica sì. Walter J. Savitch, Pascal: An Introduction to the Art and Science of Programming (1984)
Differentiable Programming (DP) è la risposta per portare nelle supply chains il meglio di ciò che il deep learning ha da offrire sia nel fronte dell’apprendimento sia in quello dell’ottimizzazione numerica. Attraverso la DP, [Supply Chain Scientist] possono sfruttare al massimo le loro intuizioni umane per creare ricette numeriche allineate - in profondità - con gli obiettivi aziendali.
Non esiste una delimitazione assoluta tra deep learning e differentiable programming: si tratta piuttosto di un continuum dai sistemi più scalabili (deep learning) ai sistemi più espressivi (differentiable programming), con molte costruzioni di programmazione che stanno gradualmente diventando disponibili - a scapito della scalabilità pura - mentre ci si avvicina alla differentiable programming.
Tuttavia, la nostra esperienza in Lokad indica che il passaggio da strumenti prevalentemente progettati per la computer vision a strumenti ingegnerizzati per le sfide delle supply chains fa esattamente la differenza tra un prototipo “interessante” che non arriva mai in produzione e un sistema di livello industriale implementato su larga scala.
Deep Learning | Differentiable Programming | |
---|---|---|
Scopo Primario | Apprendimento | Apprendimento+Ottimizzazione |
Uso tipico | Impara una volta, valuta molte volte | Impara una volta, valuta una volta |
Granularità dell’input | Oggetti pesanti (immagini, sequenze vocali, scansioni lidar, pagine di testo complete) | Oggetti sottili (prodotti, clienti, SKUs, prezzi) |
Varietà di input | Oggetti omogenei (ad esempio immagini con lo stesso rapporto altezza/larghezza) | Oggetti eterogenei (tabelle relazionali, grafici, serie temporali) |
Volume di input | Da megabyte a petabyte | Da kilobyte a decine di gigabyte |
Accelerazione hardware | Eccezionalmente buono | Buono |
Espressività | Grafici statici delle operazioni sui tensori | (Quasi) programmi arbitrari |
Ricette numeriche stocastiche | Integrate | Idem |
La modalità d’uso tipica è un punto sottile ma importante. Dal punto di vista del “Big AI”, il tempo di addestramento può essere (quasi) arbitrariamente lungo: va bene che una rete computazionale venga addestrata per settimane se non mesi. Successivamente, la rete risultante solitamente deve essere valutata in tempo reale (ad esempio, per il riconoscimento di pattern nella guida autonoma). Questo approccio è completamente diverso dalle supply chain, dove i migliori risultati si ottengono riaddestrando la rete ogni volta. Inoltre, dal punto di vista della DP, i parametri addestrati sono frequentemente i veri risultati che cerchiamo di ottenere, rendendo così irrilevante l’intero vincolo della valutazione in tempo reale.
Le aspettative riguardo agli input dei dati, sia in termini di granularità, varietà e volume, sono anch’esse ampiamente diverse. Tipicamente, il punto di vista del “Big AI” enfatizza quantità quasi infinite di training data (ad esempio, tutte le pagine di testo del web), dove la sfida principale è trovare metodi estremamente scalabili in grado di sfruttare efficacemente quei massicci dataset. Al contrario, i problemi delle supply chain devono essere affrontati con una quantità limitata di dati altamente strutturati ma diversificati.
Questo orienta il deep learning verso framework basati su tensori, che possono essere massicciamente accelerati tramite hardware di calcolo dedicato, inizialmente GPUs e ora sempre più TPUs. La Programmazione Differenziabile, essendo basata sullo stochastic gradient descent, mostra anch’essa molte buone proprietà per l’accelerazione hardware, ma in misura minore rispetto ai grafici statici delle operazioni sui tensori.
L’importanza delle ricette numeriche stocastiche è duplice. In primo luogo, esse giocano un ruolo importante dal punto di vista dell’apprendimento. Autoencoder variazionali o dropout sono esempi di tali ricette numeriche. In secondo luogo, esse rivestono un ruolo fondamentale anche dal punto di vista della modellizzazione, per integrare correttamente i comportamenti probabilistici all’interno dei sistemi delle supply chain (ad esempio, tempi di consegna variabili).
Al contrario, esiste un enorme divario tra la programmazione differenziabile e la programmazione a interi misti - l’approccio dominante negli ultimi decenni è stato quello di eseguire ottimizzazioni numeriche complesse.
Programmazione a interi misti | Programmazione Differenziabile | |
---|---|---|
Scopo primario | Ottimizzazione | Apprendimento+Ottimizzazione |
Granularità e varietà degli input | Oggetti sottili, eterogenei | Idem |
Volume di input | Da byte a decine di megabyte | Da kilobyte a decine di gigabyte |
Accelerazione hardware | Scarsa | Buona |
Espressività | Disuguaglianze su forme lineari e quadratiche | (Quasi) programmi arbitrari |
Ricette numeriche stocastiche | Nessuna | Integrate |
In difesa degli strumenti di programmazione a interi misti, tali strumenti - quando riescono ad affrontare un problema - possono talvolta dimostrare - nel senso matematico del termine - di aver ottenuto la soluzione ottimale. Né il deep learning né la programmazione differenziabile forniscono alcuna prova formale in tal senso.
Conclusioni
La Programmazione Differenziabile rappresenta un importante avanzamento per le supply chain. Si basa sul deep learning, che si è rivelato tremendamente efficace nel risolvere molti problemi del “Big AI” come la visione artificiale, ma è stato rielaborato nel profondo per essere adatto alle sfide del mondo reale affrontate dalle supply chain.
Lokad ha sviluppato la sua tecnologia di previsione basata sul deep learning per transitare verso la Programmazione Differenziabile, che rappresenta la prossima generazione della nostra tecnologia predittiva. Tuttavia, la DP è più di una semplice capacità predittiva: unifica ottimizzazione e apprendimento, sbloccando soluzioni per un vasto numero di problemi che prima non avevano soluzioni praticabili.
Interessato a partecipare alla nostra beta privata? Inviaci un’email a contact@lokad.com
-
A livello aneddotico, c’è un segmento in cui le taglie di abbigliamento non contano molto e fungono comunque da buoni sostituti: si tratta dell’abbigliamento per bambini. Infatti, i genitori con budget limitato acquistano frequentemente diverse taglie in anticipo per i loro bambini, anticipando la loro crescita, quando viene offerto uno sconto consistente. ↩︎
-
Molti, se non la maggior parte, dei problemi delle supply chain sono “wicked”, intesi come problemi la cui complessità sociale implica l’assenza di un punto di arresto determinabile. Vedi wicked problem su Wikipedia. ↩︎
-
Le Random Forests offrono alcune, piccole opzioni per una meta-parametrizzazione del modello stesso: profondità massima dell’albero, rapporto di campionamento. Ciò significa che qualunque pattern che la random forest non riesca a catturare deve essere ingegnerizzato mediante feature engineering per mancanza di opzioni migliori. Vedi anche Columnar Random Forests. ↩︎
-
Il fatto che i framework di deep learning funzionino del tutto per scopi di supply chain è una testimonianza del tremendo potere dietro questi progressi, i cui principi scoperti si estendono ben oltre l’ambito di studio originario che li ha fatti nascere. Vedi anche Deep Learning su Lokad. ↩︎
-
Software di ottimizzazione come CPLEX, Gurobi e ora il loro equivalente open-source sono disponibili da oltre 3 decenni. In teoria, ogni situazione d’acquisto che si confronta con le MOQ (quantità minima d’ordine) o con scaglioni di prezzo avrebbe dovuto essere affrontata con software che offrano capacità simili. Tuttavia, mentre ho avuto l’opportunità di confrontarmi con oltre 100 aziende nell’ultimo decennio in molti settori, non ho mai visto alcun reparto acquisti utilizzare questi strumenti. La mia esperienza con tali strumenti indica che pochi problemi rientrano effettivamente in un insieme di disuguaglianze statiche che includono solo forme lineari e quadratiche. ↩︎
-
L’algoritmo Adam (2015) è probabilmente il miglior rappresentante di quegli algoritmi di ottimizzazione, semplici eppure tremendamente efficienti, che hanno fatto un balzo in avanti l’intero campo del machine learning. ↩︎