Programmazione differenziabile

power-clouds
La programmazione differenziabile è discendente del deep learning e rappresenta la convergenza di due campi algoritmici: machine learning e ottimizzazione numerica. La programmazione differenziabile sblocca una serie di scenari di supply chain che erano considerati in gran parte inestricabili: ottimizzazione congiunta di prezzi e scorte, ottimizzazione dell’assortimento basata sulla fedeltà, previsione della domanda per prodotti non standard (ad esempio, pietre preziose, opere d’arte), ottimizzazione del flusso multi-echelon su larga scala, ottimizzazione congiunta a molti canali, ottimizzazione delle scorte con valori di magazzino elettronico parzialmente errati, massimizzazione del flusso su larga scala con molte restrizioni, ecc. Per molti altri scenari che erano già affrontabili con metodi alternativi, la programmazione differenziabile offre risultati numerici superiori con solo una frazione degli sforzi dei data scientist e delle risorse computazionali.

Applicazione alle Supply Chain

Al suo nucleo, la Programmazione Differenziabile (DP) offre un percorso per unificare problemi che sono rimasti separati per troppo tempo e risolverli congiuntamente: assortimento, prezzi, previsioni, pianificazione, merchandising. Sebbene tale unificazione possa sembrare ambiziosa in modo irrealistico, la realtà è che le aziende stanno già applicando una quantità incredibile di nastro adesivo ai propri processi per far fronte ai continui problemi generati dal fatto che tali sfide sono state isolati all’interno dell’organizzazione in primo luogo. Ad esempio, i prezzi influenzano ovviamente la domanda eppure la pianificazione e le previsioni vengono quasi sempre effettuate ignorando completamente 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.

Aneddoticamente, cercare la correttezza approssimativa tenendo conto dell’intero business è esattamente ciò che fanno la maggior parte delle organizzazioni basate su fogli di calcolo; e per mancanza di una tecnologia - come DP - in grado di abbracciare una prospettiva di business globale, i fogli di calcolo rimangono l’opzione meno terribile.

Ecommerce

Poter associare il 100% delle unità vendute a clienti conosciuti rappresenta una quantità latente di informazioni sul mercato; tuttavia, quando si tratta di prezzi e ottimizzazione delle scorte, le informazioni sulla fedeltà non vengono generalmente utilizzate. DP offre la possibilità di passare dalla previsione delle serie temporali alla previsione dei grafi temporali in cui ogni singola coppia cliente-prodotto mai osservata conta; portando a decisioni più intelligenti sia per le scorte che per i prezzi.

Marchi di lusso

L’ottimizzazione dei prezzi e degli assortimenti - fino al livello del negozio - è stata a lungo considerata in gran parte inaffrontabile a causa della scarsità dei dati, ovvero del volume di vendite molto basso per articolo per negozio - anche solo una unità venduta per prodotto per negozio all’anno. DP fornisce angoli per fornire classi di soluzioni che funzionano su tali dati ultra-sparse, perché sono progettate per offrire una maggiore efficienza dei dati rispetto ai metodi di deep learning regolari.

Marchi di moda

L’ottimizzazione congiunta delle scorte e dei prezzi è un requisito chiaro - poiché la domanda di molti articoli può essere molto sensibile al prezzo - tuttavia, l’ottimizzazione congiunta degli acquisti e dei prezzi non poteva essere raggiunta a causa della mancanza di un’attrezzatura in grado di comprendere anche questo accoppiamento - ovvero la capacità di acquistare di più a un prezzo più basso genera più domanda (e viceversa). DP fornisce l’espressività per affrontare questa sfida.

Manifatturiero

L’ottimizzazione numerica di reti multi-anello si disgrega quando viene tentata con solutori numerici classici (vedi “Oltre l’ottimizzazione di taglio e ramificazione” di seguito). Infatti, tali solutori diventano in gran parte impraticabili quando si tratta di milioni di variabili o comportamenti stocastici. Sfortunatamente, la produzione presenta entrambi con molte variabili e comportamenti stocastici. DP offre un angolo pratico per far fronte a multi-anello senza tradire la complessità dei veri schemi di flusso all’interno della rete.

MRO (manutenzione, riparazione, revisione)

Se una parte necessaria per la riparazione di un sistema manca, l’intero sistema - che potrebbe essere un aeromobile - rimane fermo. Le previsioni probabilistiche sono il primo passo per affrontare tali modelli di domanda erratici e intermittenti, ma capire i dettagli delle co-occorrenze delle parti richieste e trasformare questa analisi in raccomandazioni di inventario attuabili era troppo complesso per essere di utilità pratica. DP semplifica la risoluzione di tali problemi.

Reti di vendita al dettaglio

Le cannibalizzazioni all’interno delle reti di vendita al dettaglio - di solito tra prodotti ma talvolta tra negozi - sono state riconosciute come di primaria importanza da molto tempo. Questo problema è amplificato dalle promozioni, intese appositamente per indirizzare i clienti da un marchio all’altro. DP offre la possibilità di affrontare la cannibalizzazione in presenza di promozioni. Invece di semplicemente “prevedere le promozioni”, DP offre la possibilità di ottimizzare le promozioni per quello che sono: offerte redditizie gestite congiuntamente sia dal canale di distribuzione che dal marchio.

Oltre l’hype dell’Intelligenza Artificiale

L’Intelligenza Artificiale (AI) è sicuramente stata la parola di tendenza nel campo della tecnologia nel 2018 e il suo impatto è ancora forte nel 2019. Tuttavia, sebbene Lokad utilizzi ampiamente tecniche che di solito rientrano nella definizione di AI - ad esempio, deep learning - siamo stati restii a mettere l’accento sulla parte “AI” della tecnologia di Lokad. Infatti, per quanto riguarda l’ottimizzazione quantitativa della supply chain, l’AI confezionata semplicemente non funziona. Le supply chain non sono affatto simili, ad esempio, alla visione artificiale: i dati, le metriche e le attività sono estremamente eterogenei. Di conseguenza, le aziende che hanno acquistato soluzioni AI suppostamente “chiavi in mano” stanno iniziando a rendersi conto che tali soluzioni semplicemente non funzioneranno mai, tranne forse nelle situazioni più semplici in cui anche i sistemi “stupidi” basati su regole avrebbero funzionato bene comunque. Al loro nucleo, le supply chain sono sistemi complessi creati dall’uomo e di solito è irragionevole aspettarsi che il sistema AI - basato solo sui dati - riscopra da solo concetti fondamentali sul dominio come:

  • fare promozioni per un marchio di lusso è un grande no-no.
  • gli ordini di vendita negativi nell’ERP sono in realtà resi di prodotti.
  • i prodotti alimentari freschi devono essere trasportati entro specifici intervalli di temperatura.
  • le varianti di colore potrebbero essere buoni sostituti di abbigliamento, ma non le varianti di taglia.
  • la manutenzione degli aeromobili è determinata dalle ore di volo e dai cicli di volo.
  • le vendite nel Regno Unito sono effettivamente in GBP anche se l’ERP visualizza EUR come valuta.
  • le persone acquistano pezzi di ricambio per i loro veicoli, non per se stesse.
  • ogni diamante è unico, ma i prezzi dipendono principalmente dal carato, dalla purezza, dal colore e dal taglio.
  • la mancanza di una parte NOGO su un aeromobile causa l’immobilizzazione dell’aeromobile.
  • molte impianti chimici impiegano settimane per riavviarsi dopo essere stati spenti.
power-clouds In un futuro lontano, potrebbe esserci un momento in cui l'apprendimento automatico riesce a emulare l'intelligenza umana e ottiene risultati di fronte a problemi complessi, tuttavia, finora i risultati sono stati ottenuti solo su problemi relativamente limitati. Le tecnologie di apprendimento automatico stanno costantemente spingendo sempre più avanti i confini di ciò che costituisce un problema "limitato" e, dopo decenni di sforzi, problemi importanti come la guida autonoma sicura e le traduzioni automatiche decenti sono risolti o molto vicini alla soluzione. Tuttavia, come illustrato dall'elenco sopra, le supply chain rimangono disperatamente troppo eterogenee per un'applicazione diretta di algoritmi di apprendimento automatico confezionati. Anche se il deep learning offre le capacità di generalizzazione più forti fino ad oggi, è comunque necessario l'apporto di un Supply Chain Scientist per definire la sfida in modo sufficientemente limitato affinché gli algoritmi possano funzionare.

In questo senso, il deep learning è stato estremamente efficace perché, a differenza di molti approcci precedenti nell’apprendimento automatico, il deep learning è profondamente compositivo: è possibile adattare ampiamente la struttura del modello per apprendere meglio in una situazione specifica. Adattare la struttura del modello è diverso dall’adattare l’input del modello - un compito noto come feature engineering - che era tipicamente l’unica opzione disponibile per la maggior parte degli algoritmi di apprendimento automatico non deep come i random forest.

Tuttavia, mentre i framework di deep learning sono emersi dai “Grandi Problemi” dell’apprendimento automatico, ovvero visione artificiale, riconoscimento vocale, sintesi vocale, traduzione automatica. Questi framework sono stati progettati e ottimizzati in modo approfondito per scenari che sono letteralmente nulla come i problemi affrontati nelle supply chain. Pertanto, sebbene sia possibile sfruttare questi framework per scopi di ottimizzazione delle supply chain, non è stato un compito facile né leggero. In conclusione, con i framework di deep learning, si possono ottenere molti risultati per le supply chain, ma la discrepanza di impedenza tra le supply chain e i framework di deep learning esistenti è forte; aumentando i costi, i ritardi e limitando l’applicabilità nel mondo reale di queste tecnologie.

Oltre l’ottimizzazione branch-and-cut

La maggior parte dei problemi nelle supply chain ha sia un aspetto di apprendimento - causato da una conoscenza imperfetta del futuro, una conoscenza imperfetta dello stato attuale del mercato e talvolta anche una conoscenza imperfetta del sistema di supply chain stesso (ad esempio, inesattezze dell’inventario) - ma anche un aspetto di ottimizzazione numerica. Le decisioni devono essere ottimizzate in base ai driver economici, soddisfacendo contemporaneamente molti vincoli non lineari (ad esempio, MOQ durante l’acquisto o dimensioni del lotto durante la produzione).

Sul fronte dell’ottimizzazione numerica, la programmazione intera e le sue tecniche correlate come il branch-and-cut hanno dominato il campo per decenni. Tuttavia, questi algoritmi di branch-and-cut e le relative soluzioni software hanno per lo più fallito nel fornire la flessibilità e la scalabilità necessarie per fornire soluzioni operative per molte, se non la maggior parte, delle sfide delle supply chain. La programmazione intera è uno strumento incredibilmente capace quando si tratta di risolvere problemi complessi con poche variabili (ad esempio, posizionamento dei componenti all’interno di un dispositivo elettronico per consumatori), ma mostra limitazioni drastiche quando si tratta di problemi su larga scala in presenza di casualità (ad esempio, riequilibrare le scorte tra 10 milioni di SKU quando si affrontano sia la domanda probabilistica che i tempi di trasporto probabilistici).

Uno degli aspetti più sottovalutati del deep learning è che il suo successo è il risultato sia delle scoperte sul lato dell’apprendimento, sia delle scoperte sul lato dell’ottimizzazione. È perché la comunità scientifica ha scoperto che gli algoritmi di ottimizzazione estremamente efficienti stanno eseguendo ottimizzazioni su larga scala. Non solo questi algoritmi di ottimizzazione “deep learning” - tutti basati sul gradiente stocastico - sono molto più efficienti dei loro omologhi di branch-and-cut, ma si adattano molto meglio all’hardware di calcolo che abbiamo, ovvero CPU SIMD e (GP)GPU che nella pratica offrono un aumento di velocità di due o tre ordini di grandezza. Queste scoperte nell’ottimizzazione numerica pura sono di grande rilevanza per le supply chain al fine di ottimizzare le decisioni. Tuttavia, se i framework di deep learning erano già in qualche modo inadatti per affrontare problemi di apprendimento nelle supply chain, sono ancora meno adatti per affrontare i problemi di ottimizzazione nelle supply chain. Infatti, questi problemi di ottimizzazione dipendono ancora di più dall’espressività del framework per consentire agli scienziati delle supply chain di implementare i vincoli e le metriche da rispettivamente applicare e ottimizzare.

Verso la programmazione differenziabile

In teoria, non c’è differenza tra teoria e pratica. Ma, in pratica, c’è. Walter J. Savitch, Pascal: Introduzione all’arte e alla scienza della programmazione (1984)

La Programmazione Differenziabile (DP) è la risposta per portare alle supply chain il meglio di ciò che il deep learning ha da offrire sia sul fronte dell’apprendimento che sul fronte dell’ottimizzazione numerica. Attraverso la DP, gli scienziati delle supply chain possono sfruttare al massimo le loro intuizioni umane per creare ricette numeriche allineate - in profondità - con gli obiettivi aziendali. Non c’è una delimitazione assoluta tra deep learning e programmazione differenziabile: è più un continuum dai sistemi più scalabili (deep learning) ai sistemi più espressivi (programmazione differenziabile) con molti costrutti di programmazione che diventano gradualmente disponibili - a scapito della scalabilità grezza - quando si passa alla programmazione differenziabile. Tuttavia, la nostra esperienza presso Lokad indica che il passaggio da strumenti prevalentemente progettati per la visione artificiale a strumenti progettati per le sfide delle supply chain fa esattamente la differenza tra un prototipo “interessante” che non arriva mai alla produzione e un sistema industriale di grado superiore implementato su larga scala.

Deep Learning Programmazione Differenziabile
Scopo principale Apprendimento Apprendimento+Ottimizzazione
Uso tipico Apprendi una volta, Valuta molte volte Apprendi una volta, Valuta una volta
Granularità dell’input Oggetti pesanti (immagini, sequenze vocali, scansioni lidar, pagine di testo complete) Oggetti sottili (prodotti, clienti, SKU, prezzi)
Variazione dell’input Oggetti omogenei (ad esempio, immagini con lo stesso rapporto altezza/larghezza) Oggetti eterogenei (tabelle relazionali, grafi, serie temporali)
Volume dell’input Da megabyte a petabyte Da kilobyte a decine di gigabyte
Accelerazione hardware Accelerazione hardware Buona
Espressività Grafi statici di operazioni tensoriali Programmi (quasi) arbitrari
Ricette numeriche stocastiche Incorporate Idem

L’uso tipico è un punto sottile ma importante. Dal punto di vista dell’“AI Big”, il tempo di addestramento può essere (quasi) arbitrariamente lungo: va bene avere una rete computazionale in fase di addestramento per settimane se non mesi. Successivamente, la rete computazionale risultante di solito deve essere valutata in tempo reale (ad esempio, riconoscimento di pattern per la guida autonoma). Questo punto di vista è 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 spesso i risultati stessi che cerchiamo di ottenere; rendendo irrilevante il vincolo di valutazione in tempo reale. Le aspettative relative agli input di dati, sia in termini di granularità, varietà e volume, sono anche molto diverse. Tipicamente, il punto di vista dell’“AI Big” enfatizza quantità di dati di addestramento quasi infinite (ad esempio, tutte le pagine di testo del web) dove la sfida principale è trovare metodi estremamente scalabili che possano sfruttare efficacemente questi enormi dataset. Al contrario, i problemi delle supply chain devono essere affrontati con una quantità limitata di dati altamente strutturati ma diversi. Questo orienta il deep learning verso framework basati su tensori, che possono essere massicciamente accelerati attraverso hardware di calcolo dedicato, inizialmente GPU e ora sempre più TPU. La Programmazione Differenziabile, essendo basata sulla discesa del gradiente stocastico, presenta anche molte buone proprietà per l’accelerazione hardware, ma in misura ridotta rispetto ai grafi statici delle operazioni tensoriali. L’importanza delle ricette numeriche stocastiche è duplice. In primo luogo, queste ricette svolgono un ruolo importante dal punto di vista dell’apprendimento. Gli autoencoder variazionali o i dropout sono esempi di tali ricette numeriche. In secondo luogo, queste ricette svolgono anche un ruolo importante dal punto di vista della modellazione al fine di adeguare correttamente i comportamenti probabilistici all’interno dei sistemi di supply chain (ad esempio, tempi di consegna variabili). Al contrario, c’è un’enorme differenza tra la programmazione differenziabile e la programmazione intera mista - l’approccio dominante negli ultimi decenni è stato quello di eseguire complesse ottimizzazioni numeriche.

Programmazione Intera Mista Programmazione Differenziabile
Scopo principale Ottimizzazione Apprendimento+Ottimizzazione
Granularità e varietà dell’input Oggetti sottili, eterogenei Idem
Volume dell’input Da byte a decine di megabyte Da kilobyte a decine di gigabyte
Accelerazione hardware Scarsa Buona
Espressività Disuguaglianze su forme lineari e quadratiche Programmi (quasi) arbitrari
Ricette numeriche stocastiche Nessuna Incorporate

In difesa degli strumenti di programmazione intera mista, questi strumenti - quando riescono a affrontare un problema - possono talvolta dimostrare - nel senso matematico - di aver ottenuto la soluzione ottimale. Né l’apprendimento profondo né la programmazione differenziabile forniscono alcuna prova formale in tal senso.

Conclusioni

La programmazione differenziabile è una svolta importante per le supply chain. È costruita sopra l’apprendimento profondo, che si è dimostrato estremamente efficace nella risoluzione di molti problemi di “Big AI” come la visione artificiale, ma è stata riprogettata nel suo nucleo per essere adatta alle sfide del mondo reale affrontate dalle supply chain del mondo reale. Lokad ha sviluppato la propria tecnologia di previsione basata sull’apprendimento profondo per passare alla programmazione differenziabile, che è la prossima generazione della nostra tecnologia predittiva. Tuttavia, la PD è più di una semplice previsione, unifica ottimizzazione e apprendimento sbloccando soluzioni per una vasta quantità di problemi che prima non avevano soluzioni praticabili.