Proponiamo un metodo innovativo per la codifica delle caratteristiche categoriali, specificamente adattato alle applicazioni di previsione. In sostanza, questo approccio codifica le caratteristiche categoriali modellando l'andamento delle quantità associate a ciascuna categoria. Nei nostri esperimenti, questo approccio mostra sostanziali vantaggi in termini di prestazioni, sia in termini di accuratezza delle previsioni che di bias, in quanto consente ai modelli ensemble ad albero di modellare ed estrapolare meglio le tendenze.
Introduzione
La motivazione di questo lavoro è nata da numerosi progetti di previsione dei clienti di Artefact , in cui i nostri modelli di boosting presentavano elevati bias al momento della previsione. Attraverso una fase diagnostica, abbiamo identificato che una delle principali fonti di distorsione nei modelli di apprendimento collettivo derivava dalle loro difficoltà nel modellare accuratamente le tendenze e i livelli fluttuanti.
Di seguito dimostreremo perché e come abbiamo utilizzato un approccio innovativo per la codifica di caratteristiche categoriali. Sulla base di esperimenti condotti su un progetto di previsione di vendita al dettaglio di un cliente e su vari set di dati pubblici, dimostriamo che questa tecnica è in grado di attenuare efficacemente le distorsioni e di migliorare l'accuratezza.
Boost e tendenze, perché è complesso?
Gli algoritmi di boosting hanno difficoltà ad estrapolare
Gli algoritmi di boosting hanno difficoltà a modellare ed estrapolare le tendenze, poiché non sono in grado di prevedere nuovi valori non presenti nel set di allenamento o assenti dalle foglie. I modelli "Linear Tree" cercano di ovviare a questo problema, ma i nostri test hanno dato risultati inconcludenti con questo metodo.
Le codifiche classiche spingono verso previsioni statiche
I metodi di codifica più comuni impiegati nel boosting promuovono relazioni statiche tra variabili indipendenti e dipendenti, che a loro volta contribuiscono ad aumentare il bias in presenza di trend. Il diagramma seguente illustra questo fenomeno:

Rappresentazione visiva semplificata che evidenzia la natura statica della codifica delle caratteristiche categoriali impiegata negli algoritmi di boosting
Riconosciamo che la rappresentazione di cui sopra è una semplificazione eccessiva, poiché gli alberi decisionali sono più complessi e in grado di identificare relazioni non lineari basate su più fattori. Infatti, la condizione "il colore è nero" potrebbe essere associata a "il mese è giugno". In questo caso, il colore nero non avrebbe lo stesso impatto in ogni momento. Ma guardiamo al quadro generale:
Il nostro approccio innovativo: Codifica dinamica di caratteristiche categoriali
Base della codifica dinamica (v1 senza livello dell'articolo)
In una frase, il nostro metodo di codifica delle caratteristiche categoriali potrebbe essere descritto come: modelliamo la componente di tendenza di ogni categoria e usiamo questi valori di tendenza per codificare la caratteristica categoriale.
Il diagramma seguente illustra la differenza tra una codifica media statica e una codifica basata sulle tendenze per due categorie di colori: nero e oro.

Illustrazione che mostra il principio della codifica dinamica, che prevede la modellazione delle tendenze per ogni categoria.
Nei nostri esperimenti, abbiamo scelto di utilizzare Prophet per estrarre la componente di trend. Naturalmente, è possibile considerare anche altri modelli di previsione delle serie temporali.
Si noti che la codifica media statica implica che le vendite di articoli neri sono ad un livello medio di 100 unità/mese in qualsiasi momento. La codifica dinamica, invece, consente di tenere conto della tendenza all'aumento degli articoli neri e di estrapolarla in futuro. Un'affermazione simile può essere fatta per gli oggetti in oro. Pertanto, il nostro approccio sarà particolarmente utile nei set di dati in cui la variabile target da prevedere segue tendenze ripide tra le varie categorie disponibili.
Il nostro obiettivo principale è quello di consentire al modello di adattarsi più facilmente alle relazioni mutevoli tra le variabili indipendenti e la variabile dipendente da prevedere. Pertanto, questo metodo di codifica dinamica potrebbe essere applicato anche alle caratteristiche numeriche. Consideriamo l'esempio del prezzo. Sebbene il prezzo sia numerico e il modello possa costruire direttamente regole basate su di esso, le preferenze delle persone per articoli economici o costosi possono comunque evolvere nel tempo e seguire una specifica tendenza di vendita. Nel contesto di una crisi economica, ad esempio, i prodotti economici potrebbero seguire un trend di vendita crescente, mentre quelli costosi potrebbero seguire un trend decrescente. Considerando "conveniente" come una categoria e "costoso" come un'altra, potremmo proporre una codifica dinamica per la caratteristica del prezzo, proprio come abbiamo fatto per i colori.
È importante notare che per le caratteristiche numeriche, sia le variabili di base che quelle codificate dinamicamente possono essere utilizzate nel modello, poiché forniranno diversi tipi di informazioni.
Dare maggiore importanza alle caratteristiche dinamiche (v2 con livello di item)
Sebbene questo nuovo metodo di codifica rappresenti un miglioramento, spesso l'importanza delle caratteristiche categoriali non è sufficientemente elevata da avere un impatto significativo sulle previsioni quando si esamina l'importanza delle caratteristiche. Per dare maggiore importanza alle caratteristiche dinamiche e quindi promuovere una migliore modellazione ed estrapolazione delle tendenze, adattiamo i valori di codifica a ciascuna serie temporale/voce individualmente.

Formula che rappresenta le due componenti della codifica dinamica: livello della categoria e livello dell'elemento
Tornando all'esempio del colore, con due articoli neri diversi, la codifica dinamica della categoria "nero" per ogni articolo può essere diversa in base alle vendite passate.

Tabella che illustra il calcolo della codifica dinamica attraverso un semplice esempio
Esperimenti e risultati
Set di dati del cliente
Abbiamo utilizzato il nostro approccio per prevedere le vendite di uno dei nostri clienti nel settore della vendita al dettaglio. Abbiamo validato a fondo il nostro metodo su un'ampia gamma di ambiti per garantirne l'efficacia. Ecco alcuni dati relativi al contesto sperimentale:

Nel complesso, il metodo si è rivelato molto efficiente, con una riduzione media assoluta del bias del 9,82% e un aumento medio assoluto dell'accuratezza delle previsioni del 6,29% per i 9 ambiti di prodotto e le 5 pieghe di convalida incrociata.
La sezione successiva convalida la pertinenza del nostro metodo testandolo su un set di dati pubblici.
Set di dati sulle vendite nei negozi pubblici
In questo caso di studio semplificato, utilizziamo il dataset di Kaggle Store Sales - Time Series Forecasting. Questo set di dati presenta una tendenza ripida quando si esamina la serie temporale media delle vendite, rendendo il nostro metodo particolarmente rilevante. Inoltre, l'orizzonte di previsione scelto è di tre mesi, una distanza sufficiente per beneficiare delle capacità di estrapolazione della codifica dinamica. A scopo dimostrativo, limitiamo il dataset al 31 marzo 2016, poco prima che si verificasse un terremoto che ha causato l'appiattimento della curva delle vendite.
Prima di qualsiasi codifica, il nostro set di dati iniziale comprende circa il 75% di caratteristiche numeriche, tra cui lag, medie variabili, caratteristiche del calendario ed eventi di vacanza. Il restante 25% è costituito da attributi categorici come la famiglia di prodotti, il numero di negozio, la città e altri.
Vengono addestrati due modelli distinti: uno utilizza le caratteristiche categoriali codificate dinamicamente con il nostro metodo personalizzato, mentre l'altro utilizza la gestione nativa di LightGBM delle caratteristiche categoriali.
Confrontando le loro prestazioni, si osserva un miglioramento significativo nell'approccio di codifica dinamica. La tabella seguente fornisce un riepilogo dei risultati:

Confronto tra RMSE, FA e %Bias tra il metodo di codifica LightGBM e la codifica dinamica

Vendite medie settimanali + previsioni a 3 mesi (codifica dinamica vs metodo di codifica LightGBM)
Come illustrato nel grafico precedente, il modello che incorpora le codifiche dinamiche cattura efficacemente la tendenza e la estrapola, mentre il modello alternativo fatica a raggiungere questo obiettivo.
Utilizzo e limiti
Il nostro metodo si rivela particolarmente valido negli scenari in cui le serie temporali mostrano tendenze pronunciate e l'orizzonte di previsione è sufficientemente lontano per beneficiare dell'estrapolazione delle tendenze. Inoltre, man mano che codifichiamo dinamicamente e incorporiamo nel modello un maggior numero di caratteristiche categoriali con un significativo potere predittivo, l'effetto ottenuto dal nostro approccio sulle previsioni aumenta. Tuttavia, è importante riconoscere che altri metodi di codifica hanno i loro vantaggi e possono essere più vantaggiosi in contesti diversi. Inoltre, esiste la possibilità di combinare entrambi i tipi di codifica per ottenere risultati potenzialmente migliori.
Conclusione
Abbiamo in programma di pubblicare un documento nei prossimi mesi, che includerà tutti i dettagli del nostro approccio e della nostra implementazione. Restate sintonizzati per ulteriori aggiornamenti!