00:00:05 Previsione stagionale delle vendite.
00:00:35 Spiegazione dei modelli fondamentali della stagionalità.
00:02:23 Difficoltà nella previsione della stagionalità, durata del prodotto.
00:04:33 Ulteriori problematiche relative alla stagionalità esplorate.
00:06:53 Superare i problemi legati alla mancanza di dati storici.
00:07:16 Soluzione: considerare le collezioni di prodotti per la stagionalità.
00:08:49 Dynamic time warping.
00:09:06 Transizione al deep learning per le previsioni.
00:10:02 Dynamic time warping nella previsione della domanda.
00:12:09 Gestione dei picchi nei dati storici e delle promozioni.
00:13:01 Necessità di dati accurati e machine learning.
00:16:01 La popolarità del deep learning nel machine learning.
00:16:30 Limitazioni dei dati passati per le previsioni future.
00:17:40 La stagionalità nelle vicende umane per la modellazione.
00:19:42 Migliorare le previsioni con il machine learning.
00:21:39 Benefici del machine learning nel tempo.

Riassunto

In un’intervista, Joannes Vermorel discute delle sfide nell’incorporare la stagionalità nella previsione delle vendite. La stagionalità, definita come schemi ciclici di vendita influenzati dal periodo dell’anno, dalla settimana e dal giorno, contribuisce alle fluttuazioni della domanda. Anche le ciclicità secondarie, come il “paycheck effect” e la “quasi stagionalità”, risultano significative. Comprendere la base della domanda, le tendenze e il rumore statistico nei dati sta aiutando a ottenere previsioni accurate. Le sfide includono la brevità della vita di molti prodotti e la variabilità annuale di eventi come il Natale. Vermorel suggerisce l’adozione di una prospettiva collettiva sui prodotti simili per prevedere la performance di nuovi prodotti e l’uso di setup di machine learning per la manutenzione automatica dei bucket stagionali.

Riassunto Esteso

Kieran Chandler sta intervistando Joannes Vermorel sul concetto di stagionalità nella previsione delle vendite e sulle sfide ad essa associate.

La stagionalità è uno dei modelli centrali utilizzati per migliorare l’accuratezza delle previsioni di vendita, ma viene spesso fraintesa e applicata in modo errato. Vermorel identifica la stagionalità come una delle principali ciclicità nei modelli di vendita. Egli suddivide queste ciclicità in tre tipologie chiave: il periodo dell’anno, il giorno della settimana e l’orario, che tutti contribuiscono alle variazioni della domanda dei consumatori.

Vermorel discute anche delle ciclicità secondarie come il “paycheck effect”, ovvero il ciclo mensile in cui le persone ricevono il loro stipendio e il conseguente impatto sul loro comportamento d’acquisto. Inoltre, introduce le “ciclicità minerali” o “quasi stagionalità”, che includono eventi come la Pasqua, il Ramadan e il Capodanno cinese, che si ripetono ogni anno ma non sempre cadono alla stessa data secondo il calendario gregoriano.

Comprendere la base della domanda, le tendenze e il livello di rumore statistico nei dati è un altro aspetto cruciale evidenziato da Vermorel. Riconoscere questi modelli aiuta a distinguere tra rumore casuale e schemi statistici autentici, fondamentale per previsioni efficaci.

Nonostante la apparente semplicità della stagionalità, Vermorel spiega perché le persone spesso ne fanno fatica. La prima sfida è la breve durata di vita della maggior parte dei prodotti sul mercato. Ad esempio, la durata media di un prodotto FMCG (Fast-Moving Consumer Goods) è compresa tra tre e cinque anni. Ciò implica che una gran parte del catalogo dei prodotti potrebbe non esistere nemmeno per un anno intero, complicando l’applicazione della stagionalità.

Vermorel introduce il concetto di “time distortion” nella stagionalità, riferendosi agli spostamenti nei modelli stagionali dovuti a vari fattori. I cambiamenti nei modelli meteorologici possono indurre i consumatori a iniziare lo shopping invernale prima o dopo del solito. Anche il clima politico e il sentiment dei consumatori possono influenzare il timing degli acquisti, come ad esempio lo shopping natalizio. Questi spostamenti possono deformare i modelli stagionali tipici, rendendo le previsioni più complicate.

Successivamente, parla dell’interferenza di ulteriori modelli con la stagionalità. Vermorel sottolinea l’importanza di distinguere tra queste influenze esterne e le vere tendenze stagionali. Analizza come affrontare le sfide causate dalla mancanza di dati storici per una parte significativa di un catalogo. Propone una visione collettiva, identificando i modelli stagionali comuni a una gamma di prodotti simili. Questo schema condiviso può essere applicato ai nuovi prodotti, consentendo la previsione della stagionalità fin dal primo giorno, anche per i prodotti privi di storia delle vendite.

Rispondendo a una domanda sulla previsione in condizioni meteorologiche incerte, Vermorel presenta il concetto di dynamic time warping. Tuttavia, ammette che l’implementazione del dynamic time warping è altamente complessa, portando Lokad, come la comunità del riconoscimento vocale, a passare al deep learning per il loro motore di previsioni.

Per differenziare tra la domanda stagionale e i picchi promozionali, Vermorel propone un approccio di decomposizione parametrica. Tuttavia, riconosce le limitazioni di questo metodo, poiché i dati storici sono solitamente intrecciati, rendendo difficile apprendere i modelli in modo indipendente.

Per affrontare questo problema, Vermorel propone due strategie. In primo luogo, registrare tutti gli eventi che distorcono l’osservazione della domanda, inclusi promozioni, stockouts, e altri fattori che influenzano le vendite. In secondo luogo, utilizzare un setup di machine learning per apprendere insieme tutti questi modelli, invece di cercare di apprenderli separatamente. Egli suggerisce che questo è il motivo per cui il deep learning è diventato popolare nella comunità del machine learning.

Vermorel riconosce la difficoltà di avere piena fiducia nei risultati a causa delle distorsioni dei dati. Tuttavia, sostiene che la maggior parte dei mercati possiede una notevole inerzia e che il passato recente è un’approssimazione ragionevole del prossimo futuro.

Egli sottolinea anche l’importanza della stagionalità nella previsione della domanda, riconoscendone la stabilità ma enfatizzandone la non staticità. Ciò significa che la stagionalità può evolversi di anno in anno, e un buon modello statistico dovrebbe essere

in grado di prevedere questo tasso medio di evoluzione.

Al termine della conversazione, Vermorel raccomanda alle aziende che cercano di migliorare i loro approcci previsionali di passare a setup di machine learning per meglio tenere conto della stagionalità, abbandonando i metodi tradizionali che richiedono la creazione manuale dei profili stagionali. Il machine learning consente la manutenzione automatica dei bucket stagionali, con il risultato di una maggiore accuratezza nel tempo.

Trascrizione Completa

Kieran Chandler: Joannes, spesso parliamo della stagionalità come uno dei modelli fondamentali applicati per migliorare l’accuratezza delle previsioni. Ma cosa intendiamo esattamente con questo? Quali sono i modelli fondamentali?

Joannes Vermorel: La stagionalità è uno dei principali modelli ciclici. Ci sono tre cicli principali, ovvero il periodo dell’anno, il giorno della settimana e l’orario. Questi sono i tre principali. Poi ci sono un paio di cicli secondari come il paycheck effect, che è fondamentalmente un ciclo mensile in cui si verificano effetti dovuti al pagamento degli stipendi o ad accadimenti all’inizio o alla fine del mese. Successivamente, c’è quella che definirei una quasi-stagionalità, come la Pasqua, il Ramadan, il Capodanno cinese. Questi eventi si ripetono ogni anno, ma non esattamente alla stessa stagione, almeno secondo il calendario gregoriano. Abbiamo tutti questi modelli ciclici, e la stagionalità è tra i più importanti. Oltre ai cicli, abbiamo la base della domanda, la tendenza di crescita o contrazione delle cose nel tempo, e infine, la quantità di rumore statistico, che rappresenta anch’esso un modello molto rilevante. È necessario comprendere appieno la variabilità e determinare se ciò che si osserva è rumore o un vero modello statistico.

Kieran Chandler: Parliamo allora della stagionalità in sé. Perché è qualcosa con cui le persone hanno difficoltà? Sembrerebbe abbastanza ovvio sapere che a Natale le vendite saliranno alle stelle e che durante le stagioni festive si osserveranno vendite differenti per varie categorie. Quindi, perché è qualcosa con cui le persone hanno difficoltà?

Joannes Vermorel: La stagionalità è difficile da definire correttamente. Esaminiamo le sfide. La prima sfida è che la maggior parte dei prodotti ha una vita breve sul mercato. La durata media di un prodotto FMCG (Fast-Moving Consumer Goods) è compresa tra tre e cinque anni. Ciò implica che, se vendi prodotti che in media durano tre anni sul mercato, metà di essi esistono solamente per un anno e mezzo. Addirittura, un terzo dei tuoi prodotti ha meno di un anno di vita. Quindi, se desideri avere un modello stagionale naïf, un modello statistico in cui dici che le vendite per il prossimo Natale saranno simili a quelle del Natale precedente, ben venga che per un terzo dei tuoi prodotti non c’è stato il Natale scorso. Non hai alcun riferimento. Quindi, la prima sfida è che, a causa della novità dei prodotti sul mercato, ti ritrovi con una parte significativa del catalogo che non ha un anno di esistenza. Prendiamo, ad esempio, i pezzi di ricambio per auto, che tendono ad avere una durata maggiore, circa sei anni; anche in questo caso, un sesto dei tuoi prodotti non dispone nemmeno di un anno di vendite. Quindi, non potrai applicare questa bella stagionalità a una parte consistente del tuo catalogo. Questo è uno dei problemi che affrontiamo con la stagionalità.

Kieran Chandler: Quali sono alcuni degli altri problemi che affrontiamo con la stagionalità?

Joannes Vermorel: Un altro problema è che la stagionalità non è necessariamente esattamente la stessa da un anno all’altro. Sì, il Natale cade il 25 dicembre ogni anno, ma se si passa da un anno all’altro, la stagione natalizia, dal punto di vista del commerciante, Kieran Chandler: Un anno, ha cominciato a fare molto freddo già da ottobre, inducendo le persone a iniziare lo shopping invernale prima del consueto. Al contrario, a volte le temperature rimangono miti più a lungo, facendo sì che le persone comincino ad acquistare più tardi. Talvolta, persino il clima politico influenza le abitudini di acquisto. Ad esempio, se le persone sono molto preoccupate per il futuro, potrebbero decidere di posticipare gli acquisti natalizi all’ultimo minuto. Questi sono solo alcuni dei fattori che possono causare quella che definiamo tipicamente come “time distortion”. Hai ancora il picco natalizio, per esempio, ma l’inizio della stagione natalizia potrebbe variare di qualche settimana da un anno all’altro. Questo tipo di distorsione può verificarsi in tutti i modelli stagionali. Sei d’accordo?

Joannes Vermorel: Assolutamente, e questo è probabilmente il secondo tipo di problemi. Il terzo è che la tua stagionalità, sfortunatamente, è influenzata da altri modelli. Cosa succede, per esempio, se lo scorso settembre hai avuto una promozione massiccia che quest’anno non ripeti? Non dovresti confondere l’impatto di quella promozione con la stagionalità. Devi distinguere la stagionalità dagli altri modelli. E tutte queste variazioni combinate rendono la stagionalità molto più sfuggente rispetto a una situazione naïf in cui hai una stagionalità pura per un prodotto che è di lunga durata, stabile e in cui tutto funziona senza intoppi.

Kieran Chandler: Parliamo allora di come superare alcuni di questi problemi. Se non disponi di dati storici per, diciamo, un terzo del tuo catalogo, puoi davvero utilizzare la stagionalità per le previsioni di quei prodotti?

Joannes Vermorel: Sì, ma devi iniziare a considerare i tuoi prodotti come un insieme, anziché esaminarli uno per uno. Cioè, supponiamo che tu abbia stivali invernali. Probabilmente esiste un modello stagionale condiviso per tutti quei prodotti. Puoi ragionevolmente presumere che esista una stagionalità condivisa. Quindi, se riesci a identificarla, non importa se quest’anno vendi stivali invernali differenti rispetto all’anno scorso. Potresti dire: “So che, in aggregate, per gli stivali invernali c’è questo modello.” Così, quando introduco un nuovo prodotto sul mercato, per il quale non ho alcuna storia delle vendite, posso applicare fin dal primo giorno un modello stagionale. Posso riciclare qualcosa che era basato sull’aggregato di tutti gli stivali invernali. L’intuizione chiave è considerare l’ampiezza dei prodotti anziché la profondità della storia.

Kieran Chandler: Se prevedi mesi in anticipo, come sapresti se l’estate sarà prolungata di un mese in più? Come puoi fare previsioni per questo?

Joannes Vermorel: È qui che entriamo nella fase successiva, ovvero come gestire tutte le distorsioni. Ciò può essere fatto in modo analitico, utilizzando una tecnica nota come dynamic time warping. Se le persone sono interessate, possono cercarla su Wikipedia. Implementare il dynamic time warping dal punto di vista software è estremamente complicato. Circa 10 anni fa, la comunità del riconoscimento vocale, che utilizzava il machine learning per il riconoscimento vocale, ha dovuto affrontare il dynamic time warping. L’hanno trovato troppo complicato, hanno rinunciato e sono passati al deep learning. Curiosamente, Lokad ha fatto esattamente lo stesso per la stagionalità. Abbiamo implementato il dynamic time warping nel nostro motore di previsioni, ma alla fine abbiamo sostituito il tutto con il deep learning nell’ultima generazione dei nostri motori di previsioni.

Kieran Chandler: Sembra decisamente fantascienza, il time warping. Puoi darci una panoramica rapida?

Joannes Vermorel: La sintesi è che sai che la tua stagione probabilmente finirà presto, ma non sai esattamente quando. Tuttavia, puoi tenere conto della variabilità.

Kieran Chandler: Abbiamo raggiunto la fine della stagione, quindi so che la domanda continuerà, ma sarà molto più bassa. Tuttavia, come si presenta – un’analisi della stagionalità senza questo tipo di dynamic time warping? Cosa succede se la stagione finisce anticipatamente?

Joannes Vermorel: Quando la stagione finisce in anticipo, hai la tua nuova baseline o livello, e secondo il tuo profilo di stagionalità, la domanda per la prima settimana di dicembre dovrebbe essere pari alla metà di quella dell’ultima settimana di agosto. Quello è il tuo profilo statico e rigido. Ma il problema è che, se l’estate finisce in anticipo e nell’ultima settimana di agosto sei già fuori dalla stagione estiva, non vuoi dividere nuovamente la tua domanda per un fattore 2 nella prima settimana di settembre. Questo perché, dall’ultima settimana di agosto alla prima settimana di settembre, la domanda stava calando, e ti ritrovi in una situazione in cui la domanda è già diminuita.

Dynamic time warping è una tecnica che aiuta ad evitare errori cumulativi quando la stagione inizia in ritardo o in anticipo e applichi il tuo profilo di stagionalità due volte. Finisci per avere un primo calo della domanda e poi riapplichi il tuo pattern stagionale, che sembra indicare un ulteriore calo, oppure il contrario: la domanda è già salita a un nuovo plateau perché la stagione è iniziata in anticipo, e poi riapplichi questo fattore sopra. Il dynamic time-warping non prevede una transizione migliore tra le stagioni, ma ti permette di evitare questi errori cumulativi.

Kieran Chandler: Quindi, l’idea è che avrai lo stesso tipo di profilo della domanda, ma che esso venga compresso o allungato a seconda della stagione?

Joannes Vermorel: Esattamente.

Kieran Chandler: E poi, l’ultima cosa di cui abbiamo parlato sono stati i picchi storici nei dati, e il non trasferire quei picchi nella stagionalità per quest’anno. Come funziona effettivamente? Come fai a non tenerli in considerazione? Come fai a distinguere ciò che è domanda stagionale da un picco dovuto a una promozione o simile?

Joannes Vermorel: L’approccio classico per le previsioni di serie temporali è una decomposizione parametrica. Hai la storia della domanda e diresti che, da questa domanda, una certa quantità rappresenta fondamentalmente la baseline, un’altra il fattore di stagionalità, un’altra ancora il trend, ecc. Questo approccio è debole nel senso che vorresti poter apprendere tutti i tuoi pattern in modo indipendente, ma la realtà è che nei dati storici tutto è completamente mescolato.

Ci sono almeno due aspetti in questo problema. Innanzitutto, devi registrare correttamente nei tuoi dati storici le promozioni, gli esaurimenti di stock e tutti gli altri eventi che influenzavano non la domanda, ma la sua osservazione, ovvero le vendite. Le vendite non equivalgono alla domanda. Per esempio, quando vuoi fare previsioni, di solito vuoi dire: “Voglio prevedere la domanda al prezzo normale, non quella a un prezzo promozionale super basso”. Ma ciò che hai nella tua storia sono le vendite, e le vendite sono distorte a causa delle promozioni, degli esaurimenti di stock e di altre cose.

Quindi, la prima cosa è che devi registrare tutti i fattori che distorcevano la tua percezione della domanda, il che è più complicato di quanto sembri. Moltissime aziende non dispongono di una registrazione precisa di tutti gli eventi che hanno influenzato le loro vendite. Questi possono includere, ad esempio, se sei un’azienda di e-commerce, ricordare se un prodotto faceva parte della homepage o era in evidenza in una sezione, se un prodotto era incluso in una newsletter, se ci sono stati movimenti di prezzo per i prodotti, e persino, se hai un’intelligence competitiva, ricordare il prezzo dei prodotti dei tuoi concorrenti.

Kieran Chandler: Hai accennato che i concorrenti potrebbero aver causato un calo della domanda, non perché tu abbia avuto un esaurimento di stock, ma perché loro stavano facendo una promozione massiccia e tu non ti sei allineato al loro prezzo. Questo spiegherebbe un calo della domanda.

Joannes Vermorel: Sì, quella è una parte della ricetta. La seconda parte è la necessità di un setup di machine learning in cui poter apprendere congiuntamente tutti questi pattern. Il modern machine learning non tenta di apprendere i pattern statistici in isolamento. Non impari prima la stagionalità, poi il trend, poi l’effetto promozionale. Invece, hai un modello che cerca di catturare tutti questi pattern contemporaneamente. Ciò significa che il modello deve avere la capacità di apprendere un’ampia varietà di pattern. Richiede un modello molto espressivo. Ecco perché molte persone nella community del machine learning hanno adottato il deep learning. È un approccio che può generare un modello capace di catturare una vasta gamma di pattern.

Kieran Chandler: Continuate a menzionare le distorsioni. Sembra che ci siano così tanti modi in cui i dati possano essere distorti, rendendo la stagionalità molto difficile da implementare. Possiamo veramente avere piena fiducia nei risultati dato il potenziale di distorsione dei dati?

Joannes Vermorel: Assolutamente, e la domanda è: quanto il passato ti permette di prevedere il futuro? Questa è l’assunzione fondamentale alla base delle previsioni della domanda statistica. Sfortunatamente, il futuro non può sempre essere previsto dal passato. Tuttavia, questo non è del tutto vero quando parliamo di previsioni a pochi mesi di distanza. La maggior parte dei mercati presenta molta inerzia. Il passato recente è ancora una ragionevole approssimazione del futuro prossimo. È questo che sfruttiamo.

I pattern stagionali sono relativamente forti. Si osservano in tutte le attività umane. Tutto segue questo ciclo annuale, ed è probabilmente così da migliaia di anni. Gli esseri umani sono creature di abitudine, e queste forti abitudini si riflettono in quasi tutte le serie temporali che rappresentano le attività umane.

Ad esempio, il numero di passeggeri degli aerei seguirà una curva annuale. La quantità di latte acquistata in un determinato giorno dell’anno presenterà una curva stagionale. Lo stesso vale per l’acquisto di videogiochi, il consumo di elettricità e così via.

Questi pattern sono stati molto stabili e possono essere sfruttati. Ma c’è sempre un certo grado di incertezza irreducibile riguardo al futuro.

Kieran Chandler: Abbiamo discusso l’approccio probabilistico in supply chain optimization. Da quanto capisco, questo approccio può gestire anche la stagionalità. Puoi spiegare come affronta i cambiamenti nei pattern stagionali da un anno all’altro?

Joannes Vermorel: Certamente. Il nostro modello statistico è progettato per adattarsi a una stagionalità in evoluzione. Sebbene non possiamo prevedere cambiamenti precisi, possiamo prevedere il tasso medio di evoluzione. Questo ci consente di introdurre la giusta quantità di incertezza nelle nostre previsioni. È importante ricordare che queste previsioni sono distribuzioni di probabilità che incorporano il pattern stagionale. Tuttavia, questa non è una rappresentazione perfetta. Esiste un certo grado di imprecisione in termini di ampiezza. Consideriamo quanto aumento ci sarà durante le stagioni di picco, così come la tempistica di tali picchi. È davvero una combinazione di questi due fattori.

Kieran Chandler: Ha molto senso. Mentre concludiamo, potresti dirci quali passi le aziende possono intraprendere per migliorare il loro approccio alle previsioni, specialmente per quanto riguarda la stagionalità?

Joannes Vermorel: Beh, la prima cosa che mi viene in mente è che dovrebbero mettersi in contatto con noi a Lokad! Scherzi a parte, penso che il passo più significativo sarebbe il passaggio a setup di machine learning. L’approccio tradizionale per gestire la stagionalità comporta la creazione manuale di profili stagionali. In sostanza, raggruppi i prodotti in bucket basati sulla stagionalità condivisa. Questo metodo, tuttavia, si basa pesantemente sull’intervento umano ed è difficile da mantenere nel tempo.

Kieran Chandler: Potresti approfondire i problemi di questo approccio tradizionale?

Joannes Vermorel: Certo. Il problema principale non è necessariamente che le supposizioni dell’esperto siano errate. Un esperto di supply chain potrebbe effettivamente valutare con precisione che un gruppo di prodotti condivide la stessa stagionalità. Il problema è che col tempo, mantenere questo sistema diventa un incubo. Ogni volta che lanci un nuovo prodotto, devi assicurarti che rientri nel bucket giusto. Anche se il raggruppamento iniziale potrebbe essere valido, tende a degenerare e diventare inefficiente col tempo.

Kieran Chandler: Quindi, come aiuta il passaggio al machine learning in questo contesto?

Joannes Vermorel: Con un setup di machine learning, puoi mantenere automaticamente i tuoi bucket stagionali. Questo migliorerà significativamente la precisione perché i tuoi bucket, anche se non perfetti, non degenereranno col tempo. Vengono rigenerati ogni volta che ne hai bisogno.

Kieran Chandler: Questo è molto perspicace. Purtroppo, dobbiamo concludere per oggi. Grazie per il tuo tempo, Joannes.

Joannes Vermorel: Prego, è stato un piacere.

Kieran Chandler: Questo è tutto per questa settimana. Torneremo di nuovo la prossima settimana con un altro episodio. Fino ad allora, grazie a tutti per aver guardato.