Previsioni con il deep learning (2018)

Alla base della nostra attività, c'è l'impegno a offrire le previsioni più accurate che la tecnologia possa produrre. Siamo quindi fieri di annunciare che la quinta generazione del nostro motore di previsione è ora disponibile: in termini di accuratezza delle previsioni, si tratta del più grande salto di qualità che siamo riusciti a ottenere con una singola nuova versione del software.


Dalle previsioni probabilistiche al deep learning

Il motore si basa su una branca relativamente nuova del machine learning, il deep learning. Nella logistica, migliorare considerevolmente l'accuratezza delle previsioni può portare a ricavi ugualmente elevati, servendo più clienti più rapidamente e minimizzando i rischi legati all'inventario. Circa un anno e mezzo fa, abbiamo annunciato la quarta generazione della nostra tecnologia di previsione, la prima a fornire realmente previsioni probabilistiche. Le previsioni probabilistiche sono essenziali per la logistica, poiché i costi sono concentrati agli estremi statistici (quando, cioè, la domanda è inaspettatamente elevata o inaspettatamente bassa). I metodi di previsione tradizionali, come le previsioni giornaliere, settimanali o mensili, sono invece ciechi di fronte a questo problema, poiché si concentrano esclusivamente sugli scenari medi o mediani. Non sorprende, quindi, che questo tipo di previsione non dia i risultati sperati dal punto di vista commerciale. La quinta generazione delle nostre previsioni non rinnega certo il nostro passato, ma ne fa anzi tesoro e continua a sfruttare la nostra esperienza con l'approccio probabilistico.

Quasi per caso, si è scoperto che il deep learning è già di per sé fortemente orientato verso le previsioni probabilistiche, per motivi che non hanno nulla a che vedere con la logistica. Gli algoritmi di deep learning, infatti, favoriscono l'ottimizzazione a partire da una prospettiva probabilistica / Bayesiana, attraverso metriche come l'entropia incrociata, che offrono numerosi valori di gradiente particolarmente utili per calcolare la discesa stocastica del gradiente, l'algoritmo "fondamentale" che rende possibile il deep learning.

Nel caso specifico della logistica, i fondamenti del deep learning si rivelano perfettamente in linea con le esigenze aziendali della vita reale.

Intelligenza artificiale, al di là delle mode del momento

L'intelligenza artificiale, che nella pratica è resa possibile dal deep learning, è stata la tendenza più in voga del 2017. Abbiamo sentito dichiarazioni affascinanti, roboanti e... vaghe. Dal nostro punto di vista privilegiato, possiamo dire che gran parte di queste soluzioni di intelligenza artificiale per imprese non si rivelano all'altezza delle aspettative. Sono davvero poche le aziende, come Instacart, che possono permettersi investimenti da circa 500 milioni di euro per ingaggiare un talentuoso team dedicato al deep learning e affrontare con successo le sfide della logistica.

Con questa nuova versione del software, Lokad offre una tecnologia di previsione ad altezza dell'intelligenza artificiale e la rende accessibile a qualsiasi azienda ragionevolmente digitalizzata. Ovviamente, tutta la soluzione si basa ancora sui dati storici, a cui Lokad deve poter accedere, ma la tecnologia non richiede alcuna competenza in materia di deep learning. A differenza delle altre soluzioni di intelligenza artificiale per le imprese, Lokad non si basa sulla gestione manuale di particolari funzionalità. Dal punto di vista dei nostri clienti, l'aggiornamento dalle previsioni probabilistiche al deep learning avverrà in maniera del tutto fluida. Lokad è la prima azienda di software a offrire un'innovativa tecnologia di previsione a livello dell'intelligenza artificiale che sia accessibile per chiunque, dalle microimprese di e-commerce gestite da una sola persona, alle grandi reti logistiche che contano migliaia di posizioni e milioni di codici prodotto.

L'era del GPU computing

Il deep learning è sempre stato un comparto di nicchia, almeno finché non si è riusciti ad aggiornare il modulo software in modo da poter sfruttare le GPU (graphic processing units). Le GPU sono diverse dalle CPU (central processing units), che sono ancora alla base di gran parte delle app che usiamo oggi (a eccezione dei giochi per PC, che utilizzano ampiamente sia le GPU che le CPU). Per la quinta generazione del nostro software, abbiamo quindi riscritto interamente il nostro motore di previsione, ma anche migliorato notevolmente l'infrastruttura di base di Lokad: per poter servire i nostri clienti, infatti, abbiamo fatto in modo che Lokad sfruttasse sia CPU, sia GPU. A questo scopo, ci serviamo delle macchine a GPU "affittate" da Microsoft Azure, la piattaforma di cloud computing che supporta Lokad. L'enorme potenza di calcolo delle GPU ci consente non solo di ottenere previsioni più accurate, ma anche di ottenerle molto più rapidamente: basti pensare che, con una griglia di GPU, siamo in grado di generare previsioni dalle tre alle sei volte più rapidamente per un set di dati di una certa dimensione (*).

(*) Per i set di dati molto ridotti, la quinta generazione del motore di previsione è in realtà più lenta di qualche minuto, ma la differenza, nella pratica, è impercettibile.

Lanci e promozioni

La quinta generazione del motore di previsione apporta miglioramenti sostanziali nelle situazioni più ostiche da prevedere, come i lanci di nuovi prodotti o le promozioni. Dal nostro punto di vista, i lanci di nuovi prodotti, anche se rappresentano ancora uno scenario molto difficile, si sono rivelati più semplici da prevedere rispetto alle promozioni: la qualità dei dati storici delle promozioni, infatti, è invariabilmente più bassa rispetto ai lanci. I dati delle promozioni, però, tendono a migliorare nel tempo, una volta stabilite le corrette procedure di assicurazione qualità (QA).

Da quanto abbiamo osservato, il deep learning si sta rivelando un'ottima opportunità per i marchi di moda che hanno difficoltà con i lanci, in un settore in cui questi costituiscono il grosso delle vendite, i nuovi prodotti non sono l'eccezione ma la regola, e la varietà di taglie e colori fa lievitare il numero di SKU, complicando ulteriormente la situazione.

Le nostre previsioni: FAQ

Quali modelli di previsione usa Lokad?

Il nostro motore di previsione con il deep learning usa un solo modello, costruito a partire dai principi di base dell'apprendimento profondo. A differenza dei modelli statistici classici, questo offre decine di milioni di parametri "addestrabili", ossia 1000 volte quello che offriva il nostro motore di previsione più recente e complesso, che non sfruttava ancora questo tipo di tecnologia. Il deep learning è di gran lunga più potente rispetto agli approcci basati sul machine learning (foreste casuali, gradient boosting), che pure costituivano già un vero e proprio salto di qualità rispetto ai metodi più classici (Box-Jenkins, ARIMA, Holt-Winters, smorzamento esponenziale, etc.).

Lokad riesce a imparare dagli errori del passato?

Sì. Il processo di apprendimento statistico, che è alla base del modello deep learning, sfrutta tutti i dati storici disponibili in Lokad attraverso un procedimento noto come backtesting. In questo modo, più i dati storici sono numerosi, più opportunità ha il modello per imparare dagli errori commessi in precedenza.

Il motore di previsione riesce a gestire stagionalità, trend, giorni della settimana?

Sì, il motore di previsione gestisce tutti i cicli più comuni e perfino i semicicli, che sono spesso sottovalutati. Per quanto riguarda il codice, il modello deep learning sfrutta un approccio con serie temporali multiple, al fine di analizzare le ciclicità osservate negli altri prodotti e, a partire da queste, migliorare l'accuratezza delle previsioni per un qualsiasi prodotto. Ovviamente, due prodotti possono avere in comune la stessa stagionalità, ma non lo stesso giorno della settimana: il modello è però in grado di gestire anche scenari di questo tipo. Inoltre, uno dei più grandi vantaggi del deep learning è la capacità di riuscire a catturare con esattezza la variabilità della stagionalità. Una stagione, infatti, può iniziare in anticipo o in ritardo per cause esterne, come le condizioni meteo: ebbene, le nostre previsioni sono in grado di individuare e riflettere anche variazioni del genere.

Che tipo di dati bisogna fornire?

Per prevedere la domanda, come accadeva per le precedenti versioni del nostro software, il motore di previsione necessita di accedere quantomeno ai dati storici della domanda (fornire una cronologia disaggregata degli ordini è ancora meglio). Quanto alla lunghezza della cronologia, più si riesce ad andare indietro nel tempo e meglio è: non è possibile determinare la stagionalità di un prodotto con meno di 2 anni di dati; 3 anni sono sufficienti a una buona previsione, 5 anni a una previsione eccellente. Per prevedere i lead time, il motore di previsione deve poter accedere agli ordini di acquisto, comprensivi di date degli ordini e date delle consegne. Specificare gli attributi del prodotto o della SKU aiuta inoltre a rifinire la previsione. In più, è possibile ottenere una prima, significativa analisi delle scorte a partire dalla quantità di scorte esistenti.

È possibile eseguire una previsione da un foglio Excel?

In linea di massima, se tutti i dati entrano in un foglio Excel, non possiamo fare molto per te, né noi né, a essere sinceri, qualcun altro. I fogli di calcolo solitamente aggregano i dati per settimana o per mese, per cui gran parte delle informazioni storiche vanno perse. Inoltre, in questi casi, i fogli di calcolo non contengono quasi mai informazioni sulle categorie o sulle gerarchie applicabili al prodotto. Il nostro motore di previsione sfrutta un numero molto maggiore di dati e fare un test su un piccolo campione non serve a dare risultati soddisfacenti.

Come vengono gestite rotture di stock e promozioni?

Sia le rotture di stock che le promozioni rappresentano un errore sistematico nelle vendite storiche. Poiché il nostro obiettivo è quello di prevedere la domanda, e non le vendite, questi errori sistematici devono essere presi in considerazione. Un modo piuttosto frequente, ma sbagliato, di gestire tali situazioni consiste nel riscrivere la cronologia, riempiendo i "buchi" e troncando i picchi. Questo non è il nostro metodo preferito, poiché, in sostanza, si tratta di fornire previsioni al motore di previsione, il che può tradursi in seri problemi di overfitting. Al contrario, il motore di previsione supporta delle "bandiere" che indicano i punti in cui la domanda è stata sottoposta a variazioni.

Sono possibili previsioni per nuovi prodotti?

Sì, certo. Per prevedere il comportamento dei nuovi prodotti, però, è necessario fornire al motore di previsione le date di lancio di altri prodotti meno recenti, nonché la domanda storica di tali prodotti al momento del lancio. È consigliabile anche ricorrere a categorie di prodotti e gerarchie di prodotti: il motore esegue infatti le previsioni per i nuovi prodotti individuando automaticamente i prodotti "più vecchi" a esso assimilabili. Poiché, però, per i nuovi prodotti non è stata ancora osservata alcuna domanda, le previsioni si baseranno completamente sugli attributi associati ai prodotti.

Vengono usati dati esterni per rifinire le previsioni?

Possiamo usare dati sui prezzi delle aziende concorrenti, di solito ottenuti attraverso società terze specializzate ad esempio in web scraping. È anche possibile usare, e possibilmente acquistare, dati sul traffico web, per arricchire i dati storici e ottenere così previsioni più accurate. Quando si utilizzano dati provenienti da fonti esterne, l'ostacolo non è il motore di previsione Lokad (che è piuttosto capace), ma configurare e mantenere una serie di procedure per far sì che questi dati siano di qualità elevata.