00:01 Introduzione
01:56 La sfida dell’incertezza M5 - Dati (1/3)
04:52 La sfida dell’incertezza M5 - Regole (2/3)
08:30 La sfida dell’incertezza M5 - Risultati (3/3)
11:59 La storia fino ad ora
14:56 Quello che (probabilmente) sta per accadere
15:43 Perdita pinball - Fondazione 1/3
20:45 Binomiale negativa - Fondazione 2/3
24:04 Innovation Space State Model (ISSM) - Fondazione 3/3
31:36 Struttura delle vendite - Il modello REMT 1/3
37:02 Unendo tutto - Il modello REMT 2/3
39:10 Livelli aggregati - Il modello REMT 3/3
43:11 Apprendimento a stadio singolo - Discussione 1/4
45:37 Pattern completo - Discussione 2/4
49:05 Pattern mancanti - Discussione 3/4
53:20 Limiti del M5 - Discussione 4/4
56:46 Conclusione
59:27 Prossima lezione e domande del pubblico
Descrizione
Nel 2020, un team di Lokad ha ottenuto il 5° posto su 909 squadre concorrenti al M5, una competizione mondiale di previsioni. Tuttavia, a livello di aggregazione SKU, queste previsioni si sono classificate al 1°. La previsione della domanda è di primaria importanza per supply chain. L’approccio adottato in questa competizione si è dimostrato atipico e a differenza degli altri metodi adottati dai restanti 50 concorrenti di vertice. Ci sono molte lezioni da apprendere da questo risultato come preludio per affrontare ulteriori sfide predittive per supply chain.
Trascrizione completa
Benvenuti a questa serie di lezioni su supply chain. Sono Joannes Vermorel e oggi presenterò «Numero Uno a livello SKU nella Competizione M5 di previsioni». Una previsione accurata della domanda è considerata uno dei pilastri dell’ottimizzazione della supply chain. Infatti, ogni singola decisione di supply chain riflette una certa anticipazione del futuro. Se riuscissimo a raccogliere intuizioni superiori sul futuro, allora potremmo derivare decisioni quantitativamente superiori per i nostri scopi di supply chain. Pertanto, identificare modelli che forniscano accuratezza predittiva all’avanguardia è di primaria importanza e interesse per l’ottimizzazione della supply chain.
Oggi presenterò un semplice modello di previsione delle vendite che, nonostante la sua semplicità, si è classificato al primo posto a livello SKU in una competizione mondiale di previsioni nota come il M5, basato su un dataset fornito da Walmart. Questa lezione avrà due obiettivi. Il primo obiettivo sarà capire cosa serve per ottenere un’accuratezza predittiva delle vendite all’avanguardia. Questa comprensione sarà di interesse fondamentale per i successivi sforzi nella modellazione predittiva. Il secondo obiettivo sarà impostare la giusta prospettiva quando si tratta di modellazione predittiva per supply chain. Tale prospettiva sarà utilizzata anche per guidare il nostro successivo progresso in quest’area del predictive modeling per supply chain.
Il M5 è stata una competizione di previsioni che si è svolta nel 2020. Questa competizione prende il nome da Spyros Makridakis, un noto ricercatore nel campo delle previsioni. Questa è stata la quinta edizione di tale competizione. Queste competizioni si tengono ogni paio d’anni e tendono a variare in termini di focus a seconda del tipo di dataset utilizzato. Il M5 è stata una sfida legata a supply chain, poiché il dataset utilizzato era costituito dai dati dei negozi al dettaglio forniti da Walmart. La sfida M6, che deve ancora svolgersi, sarà incentrata sulle previsioni finanziarie.
Il dataset utilizzato per il M5 era e rimane un dataset pubblico. Si trattava dei dati dei negozi al dettaglio di Walmart aggregati a livello giornaliero. Questo dataset includeva circa 30.000 SKU, che, nel settore retail, è un dataset piuttosto piccolo. Infatti, per regola generale, un singolo supermercato contiene tipicamente circa 20.000 SKU, e Walmart gestisce oltre 10.000 negozi. Pertanto, complessivamente, questo dataset – il dataset M5 – rappresentava meno dello 0,1% del dataset su scala mondiale di Walmart che sarebbe rilevante dal punto di vista della supply chain.
Inoltre, come vedremo di seguito, intere classi di dati erano assenti dal dataset M5. Di conseguenza, la mia stima approssimativa è che questo dataset sia in realtà più vicino allo 0,01% della scala che sarebbe necessaria a livello di Walmart. Tuttavia, questo dataset è più che sufficiente per effettuare un benchmark molto solido dei modelli di previsioni in un contesto reale. In un contesto reale, dovremmo prestare molta attenzione alle problematiche di scalabilità. Tuttavia, dal punto di vista di una competizione di previsioni, è giusto rendere il dataset sufficientemente piccolo in modo che la maggior parte dei metodi, anche quelli ampiamente inefficienti, possano essere utilizzati nella competizione di previsioni. Inoltre, ciò garantisce che i partecipanti non siano limitati dalla quantità di risorse informatiche che possono effettivamente impiegare per questa competizione di previsioni.
La competizione M5 includeva due sfide distinte note come Accuratezza e Incertezza. Le regole erano semplici: esisteva un dataset pubblico a cui ogni partecipante poteva accedere e, per partecipare a una o entrambe queste sfide, ogni partecipante doveva produrre un proprio dataset, che era il suo dataset di previsioni, e sottometterlo alla piattaforma Kaggle. La sfida di Accuratezza riguardava la fornitura di una previsione media per serie temporali, che è il tipo più classico di previsione formale. In questa situazione specifica, si trattava di fornire una previsione media giornaliera per circa 40.000 serie temporali. La sfida di Incertezza riguardava la fornitura di previsioni quantili. I quantili sono previsioni con un bias; tuttavia, il bias è intenzionale. Questo è il punto fondamentale dei quantili. Questa lezione si concentra esclusivamente sulla sfida di Incertezza, e il motivo è che in supply chain, è la domanda inaspettatamente elevata a creare stockouts, e è la domanda inaspettatamente bassa a creare svalutazioni di inventario. I costi nelle supply chain sono concentrati agli estremi. Non è la media a interessarci.
Infatti, se osserviamo cosa significhi la media nell’ambito di Walmart, risulta che per la maggior parte dei prodotti, nella maggior parte dei negozi, per la maggior parte dei giorni, le vendite medie osservate sono pari a zero. Di conseguenza, la maggior parte dei prodotti presenta una previsione media frazionaria. Tali previsioni medie sono deludenti per quanto riguarda supply chain. Se le opzioni sono immagazzinare zero unità o rifornire una unità, le previsioni medie hanno scarsa rilevanza. Il settore retail non è in una posizione unica; la situazione è molto simile sia che si tratti di FMCG, aviazione, manifattura o lusso – praticamente ogni altro settore.
Tornando alla sfida di Incertezza del M5, dovevano essere prodotti quattro quantili, rispettivamente al 50%, 67%, 95% e 99%. Potete considerare tali obiettivi quantili come obiettivi di livello di servizio. L’accuratezza di queste previsioni quantili è stata valutata mediante una metrica nota come pinball loss function. Tornerò su questa metrica dell’errore più avanti in questa lezione.
Al 909 squadre che gareggiavano in tutto il mondo in questa sfida di Incertezza, un team di Lokad si è classificato quinto in assoluto, ma primo a livello SKU. Infatti, mentre gli SKU rappresentavano circa tre quarti delle serie temporali in questa sfida, esistevano vari livelli di aggregazione, dallo stato (come negli Stati Uniti – Texas, California, ecc.) fino all’SKU, e tutti i livelli di aggregazione avevano lo stesso peso nel punteggio finale di questa competizione. Pertanto, anche se gli SKU costituivano circa tre quarti delle serie temporali, rappresentavano solo circa l'8% del peso totale nel punteggio finale della competizione.
Il metodo utilizzato da questo team di Lokad è stato pubblicato in un articolo intitolato “A White Box ISSM Approach to Estimate Uncertainty Distribution of Walmart’s Sales.” Inserirò un link a questo articolo nella descrizione di questo video dopo il termine di questa lezione. Troverete tutti gli elementi in maggiore dettaglio. Per ragioni di chiarezza e concisione, mi riferirò al modello presentato in questo articolo come il modello BRAMPT, semplicemente denominato così in base alle iniziali dei quattro co-autori.
Sullo schermo, ho elencato i primi cinque risultati del M5, ottenuti da un articolo che fornisce approfondimenti generali sull’esito di questa competizione di previsioni. La sottile formulazione del ranking dipende in gran parte dalla metrica scelta. Ciò non sorprende particolarmente. La sfida di Incertezza ha utilizzato una versione scalata della funzione di perdita pinball. Torneremo su questa metrica dell’errore fra un attimo. Sebbene la sfida di Incertezza del M5 abbia dimostrato che non disponiamo dei mezzi per eliminare l’incertezza con i metodi di forecasting che abbiamo, neanche lontanamente, questo non è un risultato sorprendente. Considerando che le vendite dei negozi al dettaglio tendono ad essere erratiche e intermittenti, ciò sottolinea l’importanza di abbracciare l’incertezza invece di respingerla del tutto. Tuttavia, è notevole notare che i software vendors della supply chain erano completamente assenti dalla top 50 di questa competizione di previsioni, il che è ancor più intrigante se si considera che tali fornitori vantano una tecnologia di forecasting all’avanguardia, presumibilmente superiore.
Ora, questa lezione fa parte di una serie di lezioni su supply chain. La presente lezione è la prima di quello che sarà il mio quinto capitolo in questa serie. Questo quinto capitolo sarà dedicato alla modellazione predittiva. Infatti, raccogliere intuizioni quantitative è necessario per ottimizzare una supply chain. Ogni volta che viene presa una decisione di supply chain – che si tratti di decidere di acquistare materiali, produrre un determinato prodotto, spostare scorte da un luogo all’altro o aumentare o diminuire il prezzo di qualcosa che vendi – questa decisione comporta una certa anticipazione della domanda futura. In effetti, ogni singola decisione di supply chain viene accompagnata da un’aspettativa implicita sul futuro. Tuttavia, se vogliamo migliorare la qualità della nostra aspettativa sul futuro, dobbiamo reificare tale aspettativa, cosa che viene tipicamente realizzata tramite una previsione, anche se non deve necessariamente essere una previsione di serie temporali.
Il quinto e attuale capitolo è intitolato “Predictive Modeling” anziché “Forecasting” per due ragioni. In primo luogo, il forecasting è quasi invariabilmente associato alle previsioni di serie temporali. Tuttavia, come vedremo in questo capitolo, esistono molte situazioni in supply chain che non si prestano davvero alla prospettiva delle previsioni di serie temporali. In tal senso, il predictive modeling è un termine più neutro. In secondo luogo, è la modellazione che contiene la vera intuizione, non i modelli. Cerchiamo tecniche di modellazione, ed è attraverso queste tecniche che possiamo sperare di far fronte alla pura diversità delle situazioni riscontrate nelle supply chain reali.
La presente lezione funge da prologo per il nostro capitolo di modellazione predittiva, per stabilire che il predictive modeling non è una sorta di pensiero illusorio sulle previsioni, ma che si qualifica come una tecnica di forecasting all’avanguardia. Questo si aggiunge a tutti gli altri benefici che diventeranno gradualmente chiari man mano che procederò in questo capitolo.
Il resto di questa lezione sarà organizzato in tre parti. In primo luogo, rivedremo una serie di ingredienti matematici, che sono essenzialmente i mattoni del modello BRAMPT. In secondo luogo, assembleremo tali ingredienti per costruire il modello BRAMPT, proprio come è avvenuto durante la competizione M5. In terzo luogo, discuteremo cosa si può fare per migliorare il modello BRAMPT e anche per vedere cosa si potrebbe fare per migliorare la sfida di previsioni stessa, così come è stata presentata nella competizione M5.
La sfida di Incertezza del M5 mira a calcolare stime quantili delle vendite future. Un quantile è un punto in una distribuzione unidimensionale e, per definizione, un quantile al 90% è il punto in cui vi è una probabilità del 90% di essere al di sotto di questo valore e del 10% di essere al di sopra di esso. La mediana è, per definizione, il quantile al 50%.
La funzione di perdita pinball è una funzione strettamente legata ai quantili. In sostanza, per ogni valore tau compreso tra zero e uno, tau può essere interpretato, dal punto di vista della supply chain, come un obiettivo di livello di servizio. Per ogni valore di tau, il quantile associato a tau risulta essere il valore all’interno della distribuzione di probabilità che minimizza la funzione di perdita pinball. Sullo schermo, vediamo una implementazione semplice della funzione di perdita pinball, scritta in Envision, il linguaggio di programmazione specifico di dominio di Lokad dedicato alle ottimizzazioni della supply chain. La sintassi è abbastanza simile a Python e dovrebbe essere relativamente trasparente per il pubblico.
Se cerchiamo di analizzare questo codice, abbiamo y, che rappresenta il valore reale, y-hat, che è la nostra stima, e tau, che è il nostro obiettivo quantile. Ancora una volta, l’obiettivo quantile è fondamentalmente l’obiettivo di livello di servizio in termini di supply chain. Notiamo che il sottostima viene ponderato con un peso pari a tau, mentre il sovrastima viene ponderato con un peso pari a uno meno tau. La funzione di perdita pinball è una generalizzazione dell’errore assoluto. Se torniamo a tau uguale a 0,5, possiamo vedere che la funzione di perdita pinball equivale semplicemente all’errore assoluto. Se abbiamo una stima che minimizza l’errore assoluto, ciò che otteniamo è una stima della mediana.
Sullo schermo, puoi vedere un grafico della funzione di perdita a pallina. Questa funzione di perdita è asimmetrica, e attraverso una funzione di perdita asimmetrica possiamo ottenere non la previsione media o la mediana, ma una previsione con un bias controllato, che è esattamente ciò che desideriamo per una stima quantile. La bellezza della funzione di perdita a pallina è la sua semplicità. Se hai una stima che minimizza la funzione di perdita a pallina, allora per costruzione ottieni una previsione quantile. Quindi, se possiedi un modello con dei parametri e indirizzi l’ottimizzazione di tali parametri attraverso le lenti della funzione di perdita a pallina, ciò che otterrai dal tuo modello è essenzialmente un modello di previsione quantile.
La sfida di incertezza dell’M5 ha presentato una serie di quattro target quantili al 50, 67, 95 e 99. Di solito mi riferisco a questa serie di target quantili come una griglia quantile. Una griglia quantile, o previsioni a griglia quantizzata, non sono proprio previsioni probabilistiche; è vicino, ma non esattamente. Con una griglia quantile stiamo ancora selezionando a mano i nostri target. Ad esempio, se dicessimo che vogliamo produrre una previsione quantile per il 95 percento, la domanda diventa: perché il 95 e non il 94 o il 96? Questa domanda rimane senza risposta. Ne parleremo più approfonditamente più avanti in questo capitolo, ma non in questa lezione. Basti dire che il principale vantaggio delle previsioni probabilistiche è l’eliminazione completa di questo aspetto di scelta manuale dei target nelle griglie quantili.
La maggior parte del pubblico conosce probabilmente la distribuzione normale, la curva a campana gaussiana che si verifica molto frequentemente nei fenomeni naturali. Una distribuzione di conteggi è una distribuzione di probabilità su ogni intero. A differenza delle distribuzioni continue, come la distribuzione normale che fornisce una probabilità per ogni singolo intero reale, le distribuzioni di conteggi si interessano solo degli interi non negativi. Esistono molte classi di distribuzioni di conteggi; tuttavia, oggi il nostro interesse si concentra sulla distribuzione binomiale negativa, che viene utilizzata dal modello REM.
La distribuzione binomiale negativa presenta due parametri, proprio come la distribuzione normale, che controllano efficacemente la media e la varianza della distribuzione. Se scegliamo la media e la varianza di una distribuzione binomiale negativa in modo che la maggior parte della massa della distribuzione di probabilità sia lontana dallo zero, otteniamo un comportamento della distribuzione binomiale negativa che, asintoticamente, converge al comportamento di una distribuzione normale se si raggruppano tutti i valori di probabilità verso gli interi più vicini. Tuttavia, se osserviamo distribuzioni in cui la media è bassa, specialmente rispetto alla varianza, vedremo che la distribuzione binomiale negativa inizia a divergere significativamente in termini di comportamento rispetto a una distribuzione normale. In particolare, se osserviamo distribuzioni binomiale negativa con media ridotta, noteremo che queste distribuzioni diventano altamente asimmetriche, a differenza della distribuzione normale, che rimane completamente simmetrica indipendentemente dai valori di media e varianza scelti.
Sullo schermo, viene tracciata una distribuzione binomiale negativa attraverso Envision. La riga di codice utilizzata per produrre questo grafico è mostrata qui sotto. La funzione accetta due argomenti, come previsto dato che questa distribuzione ha due parametri, e il risultato è semplicemente una variabile casuale che viene visualizzata come un istogramma. Non mi addentrerò nei minimi dettagli della distribuzione binomiale negativa in questa lezione. Si tratta di una teoria della probabilità elementare. Abbiamo formule analitiche esplicite in forma chiusa per la moda, la mediana, la funzione di distribuzione cumulata, la asimmetria, la curtosi, ecc. La pagina di Wikipedia offre un riassunto abbastanza decente di tutte queste formule, quindi invito il pubblico a consultarla se desidera saperne di più su questo specifico tipo di distribuzione di conteggi.
Passiamo ora al Modello di Stato dello Spazio di Innovazione, o ISSM. Il modello di stato dello spazio di innovazione è un nome lungo e imponente per fare qualcosa di abbastanza semplice. Infatti, l’ISSM è un modello che trasforma una serie temporale in una passeggiata aleatoria. Con l’ISSM puoi trasformare una semplice previsione di serie storica in stile “plain vanilla” – e quando dico media intendo una previsione in cui, per ogni periodo, hai un valore impostato alla media – in una previsione probabilistica, e non solo in una previsione quantile, ma direttamente in una previsione probabilistica. Sullo schermo, puoi vedere un’implementazione completa dell’ISSM scritta nuovamente in Envision. Possiamo notare che si tratta di appena una dozzina di righe di codice, e in realtà, la maggior parte di queste righe non fa nemmeno molto. L’ISSM è letteralmente molto semplice, e sarebbe molto facile re-implementare questo pezzo di codice in qualsiasi altro linguaggio, come Python.
Diamo un’occhiata più da vicino ai dettagli di queste righe di codice. Nella riga uno, specifico l’intervallo dei periodi in cui avverrà la passeggiata aleatoria. Dal punto di vista dell’M5, vogliamo una passeggiata aleatoria per un periodo di 28 giorni, quindi abbiamo 28 punti, uno per giorno. Nelle righe tre, quattro e cinque, introduciamo una serie di parametri che controlleranno la passeggiata aleatoria stessa. Il primo parametro è la dispersione, che verrà usato come argomento per controllare la forma delle binomiali negative che si verificano all’interno del processo ISSM. Poi abbiamo alpha, che è essenzialmente il fattore che controlla il processo di smoothing esponenziale che avviene anch’esso all’interno dell’ISSM. Nella riga cinque, abbiamo il livello, che è semplicemente lo stato iniziale della passeggiata aleatoria. Infine, nella riga sei, introduciamo una serie di fattori che sono tipicamente pensati per catturare tutti i pattern calendariali che desideriamo incorporare nel nostro modello di previsione.
Ora, i valori dalle righe tre a sei sono solo un’inizializzazione fittizia. Per brevità, arriverò a spiegare fra poco come questi valori vengono effettivamente ottimizzati, ma qui tutte le inizializzazioni che vedi sono solo valori simulati. Sto semplicemente assegnando valori casuali per la baseline. Vedremo come, in realtà, se vuoi utilizzare questo modello, dovrai inizializzare correttamente quei valori, cosa che faremo più avanti in questa lezione.
Adesso diamo un’occhiata al nucleo del processo ISSM. Il nucleo inizia alla riga otto ed inizia con un ciclo di 1000 iterazioni. Ho appena detto che il processo ISSM genera passeggiate aleatorie, quindi qui stiamo eseguendo 1000 iterazioni, o stiamo per fare 1000 passeggiate aleatorie. Potremmo farne di più, potremmo farne di meno; si tratta di un semplice processo Monte Carlo. Poi, alla riga nove, eseguiamo un secondo ciclo. Questo è il ciclo che itera un giorno alla volta per il periodo di interesse. Quindi, abbiamo il ciclo esterno, che corrisponde essenzialmente a un’iterazione per ogni passeggiata aleatoria, e poi il ciclo interno, che è un’iterazione che sposta da un giorno al successivo all’interno della stessa passeggiata aleatoria.
Alla riga 10, manteniamo il livello. Per mantenere il livello, diciamo semplicemente che questo parametro verrà modificato nel ciclo interno e non in quello esterno. Ciò significa che il livello varia passando da un giorno all’altro, ma quando si passa da una passeggiata aleatoria all’altra tramite il ciclo Monte Carlo, questo livello verrà ripristinato al suo valore iniziale dichiarato sopra. Alla riga 11, calcoliamo la media. La media è il secondo parametro che usiamo per controllare la distribuzione binomiale negativa. Quindi, abbiamo la media, la dispersione e, di conseguenza, una distribuzione binomiale negativa. Alla riga 12, estraiamo una devianza secondo la distribuzione binomiale normale. Estrarre una devianza significa semplicemente prelevare un campione casuale da questa distribuzione di conteggi. Poi, alla riga 13, aggiorniamo questo livello in base alla devianza osservata, e il processo di aggiornamento è semplicemente un processo di smoothing esponenziale molto semplice, guidato dal parametro alpha. Se imposti alpha a un valore molto alto, pari a uno, significa che attribuisci tutto il peso all’ultima osservazione. Al contrario, se imposti alpha a zero, significherebbe che non c’è alcuna deriva; rimarremmo fedeli alla serie temporale originale definita nella baseline.
A proposito, in Envision, quando viene scritto “.baseline”, quello che vediamo è che esiste una tabella, diciamo NDM5; che contiene 28 valori, e baseline è semplicemente un vettore che appartiene a questa tabella. Alla riga 15, raccogliamo tutte le devianze e le sommiamo attraverso “someday.q”. Le inviamo in una variabile chiamata “total”, così che, all’interno di una passeggiata aleatoria, otteniamo il totale delle devianze raccolte per ogni singolo giorno. In questo modo, abbiamo il totale delle vendite per 28 giorni. Infine, alla riga 16, raccogliamo essenzialmente quei campioni in un “render”. Un render è un oggetto specifico in Envision, che rappresenta sostanzialmente una distribuzione di probabilità di interi relativi, sia positivi che negativi.
In sintesi, ciò che abbiamo è l’ISSM come generatore casuale di passeggiate aleatorie unidimensionali. Nel contesto della previsione delle vendite, puoi considerare queste passeggiate aleatorie come possibili osservazioni future delle vendite stesse. È interessante perché non consideriamo la previsione come la media o la mediana; pensiamo letteralmente alla nostra previsione come a una possibile istanza del futuro.
A questo punto, abbiamo raccolto tutto ciò di cui abbiamo bisogno per iniziare ad assemblare il modello REMT, cosa che faremo ora.
Il modello REMT adotta una struttura moltiplicativa, che ricorda il modello di previsione Holt-Winters. Ogni giorno ottiene una baseline, che è un valore singolo che risulta essere il prodotto di cinque effetti calendariali. Abbiamo, in particolare, il mese dell’anno, il giorno della settimana, il giorno del mese, gli effetti di Natale e di Halloween. Questa logica è implementata come uno script conciso in Envision.
Envision dispone di un’algebra relazionale che offre relazioni di broadcast tra tabelle, molto pratiche in questa situazione. Le cinque tabelle che abbiamo costruito, una per ciascun pattern calendariale, sono strutturate come tabelle raggruppate. Quindi, abbiamo la tabella delle date, e la tabella delle date ha una chiave primaria chiamata “date”. Quando dichiariamo una nuova tabella con un’aggregazione “by” e poi indichiamo la data, stiamo costruendo una tabella che ha una relazione di broadcast diretta con la tabella delle date.
Se osserviamo nello specifico la tabella del giorno della settimana alla riga quattro, vedremo che stiamo creando una tabella che avrà esattamente sette righe. Ogni riga della tabella sarà associata a una e una sola riga relativa al giorno della settimana. Quindi, se inseriamo dei valori in questa tabella del giorno della settimana, possiamo trasmettere quei valori in modo del tutto naturale, perché ogni riga sul lato destinatario, nella tabella delle date, avrà una riga corrispondente in questa tabella del giorno della settimana.
Alla riga nove, con il vettore “de.dot.baseline”, viene calcolato come la semplice moltiplicazione dei cinque fattori sul lato destro dell’assegnazione. Tutti questi fattori vengono prima trasmessi alla tabella delle date, e successivamente si procede con una semplice moltiplicazione riga per riga per ogni singola riga della tabella delle date.
Ora, abbiamo un modello che presenta alcune decine di parametri. Possiamo contare questi parametri: abbiamo 12 parametri per il mese dell’anno, da 1 a 12; 7 parametri per il giorno della settimana; e 31 parametri per il giorno del mese. Tuttavia, nel caso di NDM5, non impareremo un valore di parametro distinto per ciascun SKU, altrimenti si otterrebbe un numero massaicvamente elevato di parametri che probabilmente provocherebbero un eccessivo overfitting del dataset Walmart. Invece, in NDM5, si è fatto ricorso a un trucco noto come parameter sharing.
Il parameter sharing significa che, invece di apprendere parametri distinti per ogni singolo SKU, si stabiliscono dei sottogruppi e poi si apprendono quei parametri a livello di sottogruppo. Successivamente, si utilizzano gli stessi valori all’interno di quei gruppi per quei parametri. Il parameter sharing è una tecnica molto classica, ampiamente utilizzata nel deep learning, sebbene sia antecedente al deep learning stesso. Durante l’M5, il mese dell’anno e il giorno della settimana sono stati appresi a livello di aggregazione per dipartimento del negozio. Tornerò a parlare dei vari livelli di aggregazione dell’M5 tra un attimo. Il valore del giorno del mese era in realtà fissato tramite fattori codificati a livello statale, e per “stato” intendo gli Stati Uniti, come la California, il Texas, ecc. Durante l’M5, tutti quei parametri calendariali sono stati semplicemente appresi come medie dirette sui rispettivi ambiti. È un modo molto diretto per impostare quei parametri: si prendono tutti gli SKU appartenenti allo stesso ambito, si calcola la media, si normalizza, e voilà, ecco il parametro.
Ora, a questo punto, abbiamo raccolto tutto il necessario per assemblare il modello REMT. Abbiamo visto come costruire la baseline giornaliera, che incorpora tutti i pattern calendariali. I pattern calendariali sono stati appresi tramite medie dirette su un determinato ambito, un meccanismo di apprendimento crudo ma efficace. Abbiamo anche visto che l’ISSM trasforma una serie temporale in una passeggiata aleatoria. Ci rimane solo da stabilire i valori appropriati per i parametri dell’ISSM, vale a dire alpha (il parametro utilizzato per il processo di smoothing esponenziale che si applica all’interno dell’SSM), la dispersione (un parametro usato per controllare la distribuzione binomiale negativa) e il valore iniziale per il livello, che viene usato per inizializzare la nostra passeggiata aleatoria.
Durante la competizione M5, il team di Lokad ha sfruttato una semplice ottimizzazione tramite grid search per apprendere quei tre parametri rimanenti. Il grid search significa essenzialmente iterare su tutte le possibili combinazioni di quei valori, procedendo con piccoli incrementi alla volta. La grid search è stata guidata utilizzando la funzione di perdita a pallina, che ho descritto in precedenza, per indirizzare l’ottimizzazione di quei tre parametri. Per ogni SKU, il grid search è probabilmente una delle forme più inefficienti di ottimizzazione matematica. Tuttavia, considerando che abbiamo soli tre parametri, che è necessaria una sola ottimizzazione per serie temporale e che il dataset M5 è relativamente piccolo, il metodo si è rivelato adatto per la competizione.
Finora, abbiamo presentato come funziona il modello REMT a livello di SKU. Tuttavia, nell’M5, c’erano 12 livelli distinti di aggregazione. Il livello SKU, essendo il più disaggregato, era il più importante. Uno SKU, o unità di gestione dello stock, è letteralmente un prodotto in una località. Se hai lo stesso prodotto in 10 località, allora hai 10 SKU. Sebbene lo SKU sia probabilmente il livello di aggregazione più rilevante per una supply chain, quasi tutte le decisioni relative all’inventario, come replenishment e l’assortimento, avvengono a livello di SKU. L’M5 era fondamentalmente una competizione di previsione, e quindi vi era molta enfasi sugli altri livelli di aggregazione.
Sullo schermo, questi livelli riassumono i livelli di aggregazione presenti nel dataset M5. Puoi notare che sono presenti gli stati, come la California e il Texas. Per affrontare i livelli di aggregazione superiori, il team di Lokad ha utilizzato due tecniche: oppure sommare le camminate casuali, ovvero eseguirle a un livello di aggregazione inferiore, sommerle, e poi ottenere camminate casuali a un livello di aggregazione superiore; oppure riavviare completamente il processo di apprendimento, saltando direttamente al livello di aggregazione superiore. Nella sfida di incertezza dell’M5, il modello REMT era il migliore a livello di SKU, ma non lo era per gli altri livelli di aggregazione, sebbene complessivamente si comportasse bene.
La mia ipotesi operativa sul motivo per cui il modello REMT non fosse il migliore a tutti i livelli è la seguente (si prega di notare che si tratta di un’ipotesi e non l’abbiamo effettivamente testata): la distribuzione binomiale negativa offre due gradi di libertà attraverso i suoi due parametri. Quando si analizzano dati piuttosto scarsi, come quelli riscontrati a livello di SKU, due gradi di libertà rappresentano il giusto equilibrio tra underfitting e overfitting. Tuttavia, man mano che ci spostiamo verso livelli di aggregazione superiori, i dati diventano più densi e ricchi, quindi il trade-off probabilmente si orienta verso qualcosa di più adatto a catturare in modo più preciso la forma della distribuzione. Avremmo bisogno di qualche grado di libertà in più – probabilmente solo uno o due parametri extra – per ottenere questo.
Sospetto che aumentare il grado di parametrizzazione della distribuzione di conteggio utilizzata nel cuore del modello REMT avrebbe contribuito notevolmente a ottenere qualcosa di molto vicino, se non direttamente all’avanguardia, per i livelli di aggregazione superiori. Tuttavia, non abbiamo avuto il tempo per farlo, e potremmo rivedere il caso in un futuro. Questo conclude quanto realizzato dal team di Lokad durante la competizione M5.
Discutiamo di ciò che avrebbe potuto essere fatto in modo diverso o migliore. Anche se il modello REMT è un modello parametrico a bassa dimensionalità con una struttura moltiplicativa semplice, il processo utilizzato per ottenere i valori dei parametri durante l’M5 si è rivelato in qualche modo accidentalmente complicato. È stato un processo articolato in più fasi, in cui ogni pattern di calendario ha ricevuto un trattamento speciale ad hoc, terminando con una grid search su misura per completare il modello REMT. L’intero processo è stato piuttosto dispendioso in termini di tempo per i data scientists, e sospetto che sarebbe risultato piuttosto inaffidabile in ambienti di produzione a causa della massa di codice ad hoc coinvolto.
In particolare, a mio avviso possiamo e dobbiamo unificare il processo di apprendimento di tutti i parametri in un’unica fase oppure, almeno, uniformare il processo in modo che venga usato ripetutamente lo stesso metodo. Oggi, Lokad utilizza il differentiable programming per fare esattamente questo. Il differentiable programming elimina la necessità di aggregazioni ad hoc per quanto riguarda i pattern di calendario. Risolve anche il problema dell’ordinamento preciso nell’estrazione dei pattern, estraendoli tutti in una volta sola. Infine, poiché il differentiable programming è un processo di ottimizzazione a sé stante, sostituisce la grid search con una logica di ottimizzazione molto più efficiente. Esamineremo in dettaglio come il differentiable programming possa essere utilizzato per il predictive modeling nel contesto di applicazioni supply chain in lezioni successive di questo capitolo.
Ora, uno dei risultati più sorprendenti della competizione M5 è stato che nessun pattern statistico è rimasto senza nome. Avevamo letteralmente quattro pattern: simplicities, state, spread e drift, che sono stati sufficienti per raggiungere un’accuratezza previsionale allo stato dell’arte nella competizione M5.
I pattern “simplicities” sono tutti basati sul calendario e nessuno di essi è minimamente sorprendente. Lo “state” può essere rappresentato con un singolo numero che indica il livello raggiunto dallo SKU in un determinato momento. Lo “spread” può essere rappresentato con un singolo numero, ovvero la dispersione utilizzata per parametrizzare la distribuzione binomiale negativa, e il “drift” può essere rappresentato con un singolo numero associato al processo di exponential smoothing verificatosi all’interno dello SSM. Non è stato nemmeno necessario includere il trend, che risultava troppo debole per un orizzonte di 28 giorni.
Mentre osserviamo i cinque anni totali di vendite aggregate per l’M5 come mostrato sullo schermo, l’aggregazione evidenzia chiaramente un modesto trend ascendente. Tuttavia, il modello REMT opera senza di esso e ciò non ha avuto alcuna conseguenza in termini di accuratezza. La performance del modello REMT solleva la domanda: esiste un altro pattern da catturare, o abbiamo trascurato qualche pattern?
Almeno, la performance del modello REMT dimostra che nessuno dei modelli più sofisticati impiegati in questa competizione, come gli alberi di gradient boosting o i metodi di deep learning, ha catturato nulla oltre quei quattro pattern. Infatti, se uno di quei modelli fosse riuscito a catturare qualcosa in maniera sostanziale, avrebbe superato di gran lunga il modello REMT a livello di SKU, cosa che non è avvenuta. Lo stesso discorso vale per tutti i metodi statistici più sofisticati, come ARIMA. Anche quei modelli non sono riusciti a catturare nulla al di là di ciò che questo modello parametrico moltiplicativo molto semplice ha catturato.
Il principio del rasoio di Occam ci dice che, a meno che non si trovi una valida ragione per cui un pattern sfugga alla nostra attenzione o una ragione valida per qualche proprietà particolarmente interessante che superi la semplicità di questo modello, non abbiamo motivo di utilizzare altro che un modello che sia almeno semplice quanto il modello REMT.
Tuttavia, una serie di pattern è risultata assente dalla competizione M5 a causa del design stesso del dataset M5. Questi pattern sono importanti, e in pratica, qualsiasi modello che li ignori funzionerà male in un ambiente retail reale. Basto dire che questa affermazione si basa sulla mia esperienza personale.
Innanzitutto, ci sono i lanci di prodotto. La competizione M5 includeva solo prodotti che avevano almeno cinque anni di storico di vendite. Questo è un presupposto irragionevole dal punto di vista della supply chain. Infatti, i prodotti FMCG tipicamente hanno una vita di solo un paio d’anni, e dunque in un negozio reale, una parte significativa dell’assortimento ha meno di un anno di storico di vendite. Inoltre, considerando i prodotti con lunghi lead times, numerose decisioni in ambito supply chain devono essere prese anche prima che il prodotto abbia la possibilità di essere venduto almeno una volta.
Il secondo pattern di importanza critica sono i stockout. I stockout si verificano nel retail, e il dataset della competizione M5 li ha ignorati completamente. Tuttavia, i stockout limitano le vendite. Se un prodotto è esaurito nel negozio, non verrà venduto quel giorno e, pertanto, i stockout introducono un notevole bias nelle vendite osservate. Il problema, nel caso di Walmart e dei negozi di merchandise generale, è ancora più complicato perché i registri elettronici che catturano i valori dello stock disponibile non possono essere considerati totalmente affidabili. Esistono numerose imprecisioni nell’inventario, e ciò va preso in considerazione.
Terzo, abbiamo le promotions. La competizione M5 includeva dati storici sui prezzi; tuttavia, i dati relativi al prezzo non sono stati forniti per il periodo da prevedere. Di conseguenza, sembrerebbe che nessun concorrente in questa competizione sia riuscito a sfruttare le informazioni relative ai prezzi per migliorare l’accuratezza delle previsioni. Il modello REMT non utilizza affatto informazioni sui prezzi. Oltre al fatto che ci mancavano le informazioni sul prezzo per il periodo di previsione, le promozioni non riguardano solo il prezzo. Un prodotto può essere promosso grazie a una posizione di rilievo in negozio, il che può incrementare significativamente la domanda, indipendentemente dall’abbassamento del prezzo. Inoltre, con le promozioni, bisogna considerare gli effetti di cannibalizzazione e sostituzione.
In generale, il dataset M5, dal punto di vista della supply chain, può essere considerato un dataset giocattolo. Sebbene rimanga probabilmente il miglior dataset pubblico esistente per condurre benchmark in ambito supply chain, è tutt’altro che qualcosa che possa essere veramente paragonabile a un ambiente di produzione reale anche in una catena retail di dimensioni modeste.
Tuttavia, le limitazioni della competizione M5 non sono dovute esclusivamente al dataset. Dal punto di vista della supply chain, esistono problemi fondamentali legati alle regole utilizzate per condurre la competizione M5.
Il primo problema fondamentale è non confondere le vendite con la domanda. Abbiamo già affrontato questo aspetto con i stockout. Dal punto di vista della supply chain, l’interesse reale sta nell’anticipare la domanda, non le vendite. Tuttavia, il problema va più in profondità. La stima adeguata della domanda è fondamentalmente un problema di apprendimento non supervisionato. Non è perché siano state fatte scelte arbitrarie riguardo all’assortimento applicabile in un negozio che la domanda per un prodotto non debba essere stimata. Dobbiamo stimare la domanda per i prodotti, indipendentemente dal fatto che facciano parte dell’assortimento di un determinato negozio.
Il secondo aspetto è che le previsioni per quantili sono meno utili rispetto a quelle probabilistiche. Selezionare a piacimento i livelli di servizio lascia delle lacune nel quadro, e le previsioni per quantili risultano relativamente deboli in termini di utilizzo nella supply chain. Una previsione probabilistica offre una visione molto più completa perché fornisce l’intera distribuzione di probabilità, eliminando questa categoria di problemi. L’unico svantaggio chiave delle previsioni probabilistiche è che richiedono più strumenti, specialmente quando si tratta di fare qualcosa con la previsione una volta che è stata prodotta. A proposito, il modello REMT fornisce in realtà qualcosa che si qualifica come previsione probabilistica perché, grazie al processo Monte Carlo, è possibile generare un’intera distribuzione di probabilità. Basta regolare il numero di iterazioni Monte Carlo.
Nel retail, i clienti non sono particolarmente interessati alla prospettiva SKU o al livello di servizio che può essere raggiunto su un determinato SKU. La percezione dei clienti in un negozio di merchandise generale come Walmart è guidata dal carrello della spesa. In genere, i clienti entrano in un negozio Walmart con in mente un’intera lista della spesa, non solo un prodotto. Inoltre, nel negozio sono disponibili numerose alternative. Il problema di utilizzare una singola metrica SKU per valutare la qualità del servizio è che essa ignora completamente ciò che i clienti percepiscono come qualità del servizio nel negozio.
In conclusione, come benchmark per la previsione di serie temporali, la competizione M5 è solida in termini di dataset e metodologia. Tuttavia, la prospettiva delle serie temporali in sé risulta carente in ambito supply chain. Le serie temporali non riflettono i dati come si presentano nelle supply chain, né i problemi come si manifestano in esse. Durante la competizione M5, sono stati utilizzati molti metodi molto più sofisticati tra i migliori classificati. Tuttavia, a mio avviso, quei modelli sono, in effetti, delle strade senza uscita. Sono già troppo complicati per un utilizzo in produzione, e abbracciano la prospettiva delle serie temporali a tal punto da non lasciare spazio operativo per evolversi nella nuova prospettiva necessaria per adattare quei modelli alle nostre esigenze di supply chain.
Al contrario, come punto di partenza, il modello REMT è il meglio che si possa ottenere. È una combinazione molto semplice di ingredienti che, presi singolarmente, sono estremamente semplici. Inoltre, non ci vuole molta immaginazione per rendersi conto che esistono innumerevoli modi per utilizzare e combinare questi elementi oltre la combinazione specifica elaborata per la competizione M5. Il posizionamento raggiunto dal modello REMT nella competizione M5 dimostra che, finché non si dimostrerà il contrario, dovremmo affidarci a un modello molto semplice, poiché non abbiamo alcun motivo convincente per optare per modelli troppo complicati, quasi certamente più difficili da debuggare, più complicati da utilizzare in produzione e che consumeranno molte più risorse di calcolo.
Nelle lezioni a venire in questo quinto capitolo, vedremo come utilizzare gli ingredienti che facevano parte del modello REMT, insieme a molti altri, per affrontare l’ampia varietà di sfide predittive presenti nelle supply chain. La cosa fondamentale da ricordare è che il modello non è importante; è la modellizzazione che conta.
Domanda: Perché le binomiali negative? Qual è stato il ragionamento alla base della scelta?
È una domanda molto buona. Si scopre che, se esistesse un bestiario mondiale delle distribuzioni di conteggio, probabilmente ne esisterebbero una ventina di quelle più note. In Lokad, ne abbiamo testate a dozzina per le nostre esigenze interne. Risulta che la distribuzione di Poisson, che è una distribuzione di conteggio molto semplicistica con un solo parametro, funziona abbastanza bene quando i dati sono molto scarsi. Quindi la Poisson è abbastanza valida, ma in realtà il dataset M5 era un po’ più ricco. Nel caso del dataset di Walmart, abbiamo provato distribuzioni di conteggio con qualche parametro in più, e sembravano funzionare. Non abbiamo la prova che sia effettivamente la migliore; probabilmente esistono opzioni migliori. La binomiale negativa presenta alcuni vantaggi chiave: l’implementazione è molto semplice, ed è una distribuzione di conteggio ampiamente studiata. Quindi, si dispone di un algoritmo ben noto, non solo per calcolare le probabilità, ma anche per campionare una deviazione, ottenere la media o la distribuzione cumulativa. Tutti gli strumenti che ci si aspetta in termini di distribuzioni di conteggio sono presenti, cosa che non vale per tutte le distribuzioni di conteggio.
C’è un grado di pragmatismo che ha guidato questa scelta, ma anche un pizzico di logica. Con Poisson, hai un grado di libertà; il binomiale negativo ne ha due. Poi puoi usare trucchi come il binomiale negativo zero-inflated, che ti dà all’incirca due e mezzo gradi di libertà, ecc. Non direi che esista un valore definitivo specifico per questa distribuzione dei conteggi.
Domanda: C’erano altri fornitori di software per l’ottimizzazione della supply chain in M5, ma nessuno usava modelli live che scalassero bene in produzione. Cosa usa la maggioranza, modelli di machine learning pesanti?
Innanzitutto, direi che dobbiamo distinguere e chiarire che l’M5 è stato realizzato su Kaggle, una piattaforma per data science. Su Kaggle, hai un enorme incentivo ad utilizzare la macchina più complicata possibile. Il dataset è piccolo, hai molto tempo, e per arrivare in cima devi essere semplicemente più preciso dello 0,1% rispetto all’altro concorrente. Questo è tutto ciò che conta. Così, in praticamente ogni competizione su Kaggle, noterai che le posizioni di vertice sono occupate da persone che hanno fatto cose molto complicate solo per ottenere un extra 0,1% di accuratezza. Quindi, la natura stessa di una competizione di forecasting ti dà un forte incentivo a sperimentare ogni cosa, compresi i modelli più pesanti che puoi trovare.
Se ci chiediamo se le persone stiano effettivamente utilizzando questi modelli di machine learning pesanti in produzione, la mia osservazione informale è decisamente negativa. In realtà è estremamente raro. In qualità di CEO di Lokad, un fornitore di software per la supply chain, ho parlato con centinaia di direttori di supply chain. Letteralmente, oltre il 90% delle grandi supply chain sono gestite tramite Excel. Non ho mai visto alcuna grande supply chain gestita con gradient-boosted trees o reti neurali profonde. Se mettiamo da parte Amazon, Amazon è probabilmente unica nel suo genere. Forse ci sono una mezza dozzina di aziende, come Amazon, Alibaba, JD.com e qualche altra – i veri giganti dell’e-commerce – che stanno effettivamente usando questo tipo di tecnologia. Ma sono eccezionali in questo senso. Le grandi aziende FMCG mainstream o le grandi catene retail fisiche non usano questo tipo di approcci in produzione.
Domanda: È strano che tu menzioni tanti termini matematici e statistici, ma ignori la natura delle vendite al dettaglio e i principali fattori influenti.
Direi, sì, questo è più un commento, ma la mia domanda per te sarebbe: cosa porti in tavola? È proprio quello che stavo dicendo quando i fornitori di supply chain che vantavano una tecnologia di forecasting superiore erano completamente assenti. Perché, se hai una tecnologia di forecasting assolutamente superiore, ti risulta di essere assente ogni volta che esiste un benchmark pubblico? L’altra spiegazione è che le persone bluffano.
Per quanto riguarda la natura delle vendite al dettaglio e i numerosi fattori influenti, ho elencato i pattern che sono stati usati e, utilizzando quei quattro pattern, il modello REMT si è classificato al primo posto a livello di SKU in termini di accuratezza. Se proponi che esistano pattern infinitamente più importanti, l’onere della prova ricade su di te. Il mio sospetto è che se, tra oltre 900 team, quei pattern non sono stati osservati, probabilmente non esistevano, o catturare tali pattern è così al di fuori del campo delle possibilità offerte dalla tecnologia che abbiamo che, per ora, è come se quei pattern non esistessero da un punto di vista pratico.
Domanda: Qualche concorrente in M5 ha applicato idee che, pur non battendo Lokad, sarebbero state preziose da integrare, specialmente per applicazioni generiche? Menzione d’onore?
Ho prestato molta attenzione ai miei concorrenti, e sono abbastanza sicuro che anche loro stiano facendo attenzione a Lokad. Non ho visto altro. Il modello REMT era davvero unico nel suo genere, completamente diverso da quanto realizzato da praticamente quasi tutti gli altri 50 migliori contendenti per ciascun compito. Gli altri partecipanti utilizzavano approcci molto più classici nel mondo del machine learning.
Durante la competizione sono stati dimostrati alcuni trucchi davvero intelligenti di data science. Ad esempio, alcune persone hanno usato stratagemmi molto ingegnosi per fare data augmentation sul dataset Walmart, rendendolo molto più grande di quanto fosse, per guadagnare qualche punto percentuale in più di accuratezza. Questo è stato fatto dal concorrente che si è classificato al primo posto nella sfida di incertezza. Data augmentation, non data inflation, è il termine corretto. La data augmentation è comunemente usata nelle tecniche di deep learning, ma qui è stata impiegata con gradient-boosted trees in modi alquanto inusuali. Sono stati messi in mostra trucchi di data science eleganti e molto intelligenti durante questa competizione. Non sono del tutto sicuro che questi trucchi si generalizzino bene alla supply chain, ma probabilmente ne menzionerò un paio nel resto di questo capitolo se ne si presenterà l’opportunità.
Domanda: Hai stimato livelli superiori aggregando i tuoi livelli SKU o calcolando ex novo un approccio middle-out per livelli superiori? Se entrambi, come si sono confrontati?
Il problema delle griglie di quantili è che si tende a ottimizzare i modelli separatamente per ogni livello target. Quello che può accadere con le griglie di quantili è il cosiddetto quantile crossing, ovvero, a causa di instabilità numeriche, il tuo 99° quantile finisce per essere inferiore al tuo 97° quantile. Questo è irrilevante; solitamente basta riordinare i valori. Fondamentalmente, questo è il tipo di problema a cui mi riferivo quando dicevo che le griglie di quantili non sono proprio previsioni probabilistiche. Ci sono un sacco di dettagli minuti da risolvere, ma in realtà sono irrilevanti nel quadro generale. Quando si passa alle previsioni probabilistiche, tali problemi non esistono più.
Domanda: Se dovessi progettare un’altra competizione per fornitori di software, come sarebbe?
Francamente, non lo so, ed è una domanda molto difficile. Credo che, nonostante tutte le mie forti critiche, per quanto riguarda i benchmark delle previsioni, l’M5 sia il migliore che abbiamo. Ora, in termini di benchmark per la supply chain, il problema è che non sono nemmeno completamente convinto che sia addirittura possibile. Quando ho accennato al fatto che alcuni problemi richiedono in realtà l’apprendimento non supervisionato, la questione si complica. Quando entri nel regno dell’apprendimento non supervisionato, devi rinunciare ad avere metriche, e l’intero ambito del machine learning avanzato sta ancora lottando come comunità per capire cosa significhi operare strumenti di apprendimento automatizzati e superiori in un contesto non supervisionato. Come si fa a stabilire benchmark per questo tipo di cose?
Per il pubblico che non era presente alla mia lezione sul machine learning, in contesti supervisionati cerchi fondamentalmente di portare a termine un compito dove hai input-output e una metrica per valutare la qualità dei tuoi risultati. In modalità non supervisionata, significa che non hai etichette, non hai nulla a cui confrontarti, e le cose si fanno molto più difficili. Inoltre, vorrei sottolineare che nella supply chain ci sono molte realtà in cui non è nemmeno possibile effettuare il back-testing. Oltre all’aspetto non supervisionato, c’è anche la prospettiva del back-testing che non è del tutto soddisfacente. Ad esempio, prevedere la domanda genererà determinati tipi di decisioni, come quelle di pricing. Se decidi di adeguare il prezzo al rialzo o al ribasso, quella decisione che hai preso influenzerà per sempre il futuro. Quindi, non puoi tornare indietro nel tempo per dire: “Ok, ora farò una previsione della domanda diversa e prenderò una decisione di pricing differente, e poi lascerò che la storia si ripeta, tranne per il fatto che questa volta ho un prezzo diverso.” Ci sono innumerevoli aspetti per i quali anche l’idea del back-testing non funziona. È per questo che credo che una competizione sia qualcosa di molto interessante dal punto di vista del forecasting. È utile come punto di partenza per scopi di supply chain, ma dobbiamo fare meglio e in modo diverso se vogliamo arrivare a qualcosa che sia veramente soddisfacente per le esigenze della supply chain. In questo capitolo sulla modellazione predittiva, mostrerò perché la modellazione merita un’attenzione così particolare.
Domanda: Questa metodologia può essere utilizzata in situazioni in cui hai pochi dati?
Direi assolutamente. Questo tipo di modellazione strutturata, come dimostrato qui con il modello REMT, risplende in situazioni in cui i dati sono molto scarsi. Il motivo è semplice: puoi incorporare molta conoscenza umana nella struttura stessa del modello. La struttura del modello non è qualcosa tirato fuori dal nulla; è letteralmente la conseguenza della comprensione del problema da parte del team di Lokad. Ad esempio, quando osserviamo pattern di calendario come il giorno della settimana, il mese dell’anno, ecc., non abbiamo cercato di scoprirli; il team di Lokad sapeva fin dall’inizio che quei pattern erano già presenti. L’unica incertezza riguardava la rispettiva prevalenza del pattern del giorno del mese, che tende a essere debole in molte situazioni. Nel caso dell’impostazione di Walmart, ciò era dovuto semplicemente al fatto che negli Stati Uniti esiste un programma di timbri che rende quel pattern del giorno del mese così forte.
Se hai pochi dati, questo approccio funziona estremamente bene perché qualunque meccanismo di apprendimento tu stia cercando di utilizzare sfrutterà ampiamente la struttura che hai imposto. Quindi sì, sorge il quesito: cosa succede se la struttura è sbagliata? Ma è proprio per questo che il pensiero e la comprensione della supply chain sono davvero importanti, in modo da poter prendere le decisioni giuste. Alla fine, hai modi per valutare se le tue decisioni arbitrarie siano state buone o cattive, ma fondamentalmente ciò avviene molto tardi nel processo. Più avanti in questo capitolo sulla modellazione predittiva, illustreremo come la modellazione strutturata possa essere usata efficacemente su dataset incredibilmente scarsi, come quelli dell’aviazione, del lusso durevole e di ogni tipo di gemma. In queste situazioni, i modelli strutturati brillano davvero.
La prossima lezione si terrà il 2 febbraio, che è un mercoledì, alla stessa ora del giorno, alle 15:00 ora di Parigi. A presto!
Riferimenti
- A white-boxed ISSM approach to estimate uncertainty distributions of Walmart sales, Rafael de Rezende, Katharina Egert, Ignacio Marin, Guilherme Thompson, dicembre 2021 (link)
- The M5 Uncertainty competition: Results, findings and conclusions, Spyros Makridakis, Evangelos Spiliotis, Vassilis Assimakopoulos, Zhi Chen, novembre 2020 (link)