Login Contattaci

Deep Learning per la previsione

La modellazione predittiva in Lokad viene oggi realizzata tramite programmazione differenziabile invece che tramite deep learning. La programmazione differenziabile è una discendente del deep learning, più adatta alle sfide della supply chain. In particolare, si presta meglio al whiteboxing rispetto al deep learning.

Dalla previsione probabilistica al deep learning

Illustrazione del deep learning che scende sotto la superficie dei pattern di domanda

Circa 18 mesi prima di questa quinta generazione, Lokad aveva introdotto la sua quarta generazione di tecnologia di previsione, la prima in grado di offrire vere previsioni probabilistiche. Questo era decisivo perché i costi della supply chain si concentrano sugli estremi statistici, quando la domanda risulta molto più alta o molto più bassa del previsto. Le previsioni tradizionali giornaliere, settimanali o mensili si concentrano su medie o mediane e trascurano in larga misura questi estremi. Di conseguenza, spesso portano a risultati economici insoddisfacenti.

La quinta generazione non ha abbandonato queste basi. Al contrario, ha fatto propria la previsione probabilistica e si è costruita sull’esperienza maturata con la generazione precedente. Il suo disegno si basava su una famiglia allora relativamente recente di machine learning: il deep learning. Nella supply chain, una migliore accuratezza delle previsioni si traduce direttamente in un servizio migliore, un’esecuzione più rapida e meno rischi di stock.

In parte per caso, il deep learning si è rivelato fortemente allineato, per costruzione, con la previsione probabilistica. Questo orientamento non nasceva da problemi di supply chain, ma l’aderenza è notevole. I metodi di deep learning privilegiano prospettive probabilistiche e bayesiane dell’ottimizzazione, utilizzando metriche come la cross-entropy che generano i grandi gradienti richiesti dalla discesa del gradiente stocastica, la spina dorsale algoritmica che ha reso praticabile il deep learning moderno.

Nel caso delle supply chain, i fondamenti matematici del deep learning risultano sorprendentemente allineati con le esigenze reali del business.

Oltre l’hype dell’intelligenza artificiale

L’intelligenza artificiale, guidata in pratica dal deep learning, è stata la grande parola d’ordine del 2017. Le promesse erano ambiziose, coinvolgenti e spesso vaghe. Dal punto di vista di Lokad, la maggior parte delle offerte di IA per le imprese non stava mantenendo le aspettative. Pochissime aziende potevano mettere insieme un team di deep learning di livello mondiale e i finanziamenti necessari per affrontare da zero una sfida di supply chain.

Con questa release, Lokad ha reso accessibile una tecnologia di previsione di livello IA a qualsiasi azienda ragionevolmente digitalizzata. Il sistema continuava a dipendere dai dati storici di supply chain, che dovevano essere messi a disposizione di Lokad, ma non richiedeva alcuna competenza di deep learning da parte del cliente. A differenza di molte offerte di IA enterprise, Lokad non dipendeva da manual feature engineering. Per i clienti che già usavano Lokad, il passaggio dal precedente motore probabilistico al deep learning era pensato per essere trasparente.

Lokad è così diventata uno dei primi fornitori software a offrire una tecnologia di previsione di livello IA chiavi in mano, capace di funzionare sia per piccoli operatori ecommerce sia per grandi reti di supply chain con migliaia di sedi e milioni di SKU.

L’era del GPU computing

Processori grafici che accelerano carichi di previsione su larga scala Il deep learning è rimasto a lungo una nicchia, finché le sue fondamenta software non sono state riprogettate per sfruttare le GPU, o graphic processing units. Le GPU sono molto diverse dalle CPU, i processori centrali che ancora alimentano la maggior parte del software odierno. Storicamente, i videogiochi sono stati tra le poche applicazioni di massa a usare intensamente entrambi i tipi di processore. Con questo motore di previsione di quinta generazione, Lokad ha anche rinnovato la propria infrastruttura di basso livello affinché la piattaforma potesse sfruttare entrambi. Lokad ha iniziato a usare macchine abilitate alle GPU su Microsoft Azure. Grazie a questa enorme potenza di calcolo, le previsioni sono diventate non solo più accurate ma anche sensibilmente più rapide. Su dataset di dimensioni significative, una griglia di GPU forniva tipicamente risultati da tre a sei volte più veloci.

Su dataset molto piccoli, questa quinta generazione poteva invece risultare un po’ più lenta e richiedere qualche minuto in più, cosa irrilevante nella pratica.

Lanci di prodotto e promozioni

Il motore di quinta generazione ha portato miglioramenti sostanziali in alcune delle situazioni previsionali più difficili, in particolare i lanci di prodotto e le promozioni. Dal punto di vista di Lokad, i lanci di prodotto, pur essendo difficili, restavano leggermente più semplici delle promozioni. La differenza deriva soprattutto dalla qualità dei dati: i dati promozionali tendono a essere più rumorosi e meno affidabili rispetto ai dati di lancio, almeno finché non sono presenti processi di qualità solidi.

Per i brand della moda, il deep learning era particolarmente promettente, perché i lanci dominano le vendite e le varianti di colore e taglia fanno esplodere il numero di SKU da prevedere.

FAQ sulla previsione

Quali modelli di previsione utilizzate?

Il nostro motore deep di previsione si basava su un unico modello costruito secondo i principi del deep learning. A differenza dei modelli statistici classici, disponeva di decine di milioni di parametri addestrabili, circa 1.000 volte più del nostro precedente modello non deep più complesso. Il deep learning superava nettamente approcci più vecchi come random forests e gradient-boosted trees. Questi metodi erano già superiori ai classici delle serie temporali come Box-Jenkins, ARIMA, Holt-Winters o smoothing esponenziale.

Imparate dai vostri errori di previsione?

Sì. Il processo di addestramento statistico che produce il modello di deep learning sfrutta tutti i dati storici disponibili per Lokad. Questo storico viene utilizzato tramite backtesting. Più storico è disponibile, più opportunità ha il modello di imparare dai propri errori.

Il vostro motore gestisce stagionalità, trend ed effetti del giorno della settimana?

Sì. Il motore gestisce le ciclicità comuni così come le quasi-ciclicità, la cui importanza di business viene spesso sottovalutata. Il modello di deep learning utilizza un approccio multi-serie temporali per catturare le ciclicità osservate tra prodotti correlati e, allo stesso tempo, adattare la previsione al singolo articolo. Due prodotti possono condividere la stessa stagionalità e avere comunque pattern diversi per giorno della settimana; il modello è in grado di cogliere queste differenze. Il deep learning aiuta anche a rappresentare la variabilità della stagionalità stessa, ad esempio quando una stagione inizia prima o dopo a causa del meteo.

Di quali dati avete bisogno?

Come minimo, il motore ha bisogno di una storia giornaliera della domanda. Una storia ordini disaggregata è ancora meglio. Come regola generale, più lunga è la storia, migliori sono i risultati. Con meno di due anni di storico è difficile rilevare la stagionalità; tre anni sono buoni e cinque eccellenti. Per prevedere i lead time, il motore richiede in genere ordini di acquisto con data ordine e data consegna. Gli attributi di prodotto o SKU affinano molto le previsioni. Anche i livelli di stock sono utili, perché consentono a Lokad di produrre una prima analisi significativa dello stock.

Potete prevedere il mio foglio Excel?

Come regola pratica, se tutti i dati stanno in un solo foglio Excel, di solito né Lokad né chiunque altro può fare molto di utile. I dati nei fogli di calcolo sono spesso aggregati per settimana o per mese, e così si perde troppo segnale. Inoltre, spesso mancano le categorie e le gerarchie necessarie per comprendere correttamente il comportamento dei prodotti. Il motore di Lokad trae vantaggio dall’intera ricchezza dei dati disponibili, e un campione minuscolo raramente produce risultati significativi.

E riguardo a stock-out e promozioni?

Sia gli stock-out sia le promozioni introducono un bias nelle vendite storiche. Poiché l’obiettivo è prevedere la domanda e non le vendite, questo bias deve essere gestito esplicitamente. Un approccio frequente ma difettoso consiste nel riscrivere la storia riempiendo i buchi e tagliando i picchi. Evitiamo questo approccio perché equivale a reiniettare previsioni nel motore di previsione, con un forte rischio di overfitting. Al contrario, Lokad supporta indicatori nativi per segnalare quando la domanda è stata censurata o gonfiata.

Prevedete i nuovi prodotti?

Sì. Per prevedere nuovi prodotti, il motore ha bisogno delle date di lancio di prodotti precedenti comparabili e della loro domanda storica al momento del lancio. Anche categorie e gerarchie di prodotto sono utili. Il motore identifica i prodotti precedenti comparabili ai nuovi. Poiché non è ancora stata osservata domanda per i nuovi articoli, le prime previsioni si basano interamente sugli attributi associati.

Utilizzate dati esterni per affinare le previsioni?

Sì, quando questi dati sono disponibili e affidabili. Ad esempio, Lokad può utilizzare dati sui prezzi dei concorrenti raccolti da terze parti specializzate e dati di traffico web. In pratica, il principale collo di bottiglia non è il motore di previsione in sé, ma lo sforzo necessario per costruire e mantenere una pipeline dati di alta qualità intorno a queste fonti esterne.

Ask Lokad