Riduci il bias di previsione con l'aggregazione gerarchica

Questa pagina spiega cos'è la previsione gerarchica, quali sono i suoi obiettivi, e ti mostra alcune strategie di formazione che puoi adottare per ridurre i bias i modelli di previsione.

Per istruzioni dettagliate su come configurare la previsione gerarchica quando addestrare il modello di previsione utilizzando l'API, vedi Addestra un modello di previsione.

Che cos'è la previsione gerarchica

Le serie temporali sono spesso strutturate in una gerarchia nidificata. Ad esempio, l'intero inventario dei prodotti venduti da un rivenditore può essere suddiviso in categorie di prodotti. Le categorie possono essere ulteriormente suddivise in singole prodotti di big data e machine learning. Quando si prevedono le vendite future, le previsioni per i prodotti di un dovrebbe sommarsi alla previsione per la categoria stessa e così via. la gerarchia.

Una gerarchia di prodotti e categorie.

Analogamente, la dimensione temporale di una singola serie temporale può anche presentare una gerarchia. Ad esempio, le vendite previste per un singolo prodotto a livello giornaliero devono sommarsi alle vendite settimanali previste del prodotto. Le seguenti la figura mostra questa gerarchia temporale e a gruppi sotto forma di matrice:

Una matrice di serie temporali.

La previsione gerarchica ha tre obiettivi:

  • Riduci il bias complessivo per migliorare le metriche in tutte le serie temporali (vendite totali).
  • Riduci la bias temporale per migliorare le metriche sull'orizzonte (vendite stagionali).
  • Riduci il bias a livello di gruppo per migliorare le metriche in un gruppo di serie temporali (vendite di articoli).

In Vertex AI, la previsione gerarchica prende in considerazione struttura gerarchica delle serie temporali, incorporando perdita termini per previsioni aggregate.

Hierarchical loss = (1 x loss) +
                    (temporal total weight x temporal total loss) +
                    (group total weight x group total loss) +
                    (group temporal total weight x group temporal total loss)

Ad esempio, se il gruppo gerarchico è "categoria", le previsioni a livello di "categoria" sono la somma delle previsioni per tutti i "prodotti" nella categoria. Se l'obiettivo del modello è l'errore assoluto medio (MAE), la perdita includerà l'errore assoluto medio per le previsioni sia a livello di "prodotto" sia a livello di "categoria". In questo modo, puoi migliorare la coerenza delle previsioni a diversi livelli della gerarchia e, in alcuni casi, persino migliorare le metriche al livello più basso.

Configurare l'aggregazione gerarchica per l'addestramento del modello

Puoi configurare l'aggregazione gerarchica durante l'addestramento dei modelli di previsione configurando AutoMLForecastingTrainingJob nell'SDK Vertex AI o hierarchyConfig nell'API Vertex AI.

I parametri disponibili per AutoMLForecastingTrainingJob e hierarchyConfig includono:

  • group_columns
  • group_total_weight
  • temporal_total_weight
  • group_temporal_total_weight

I parametri consentono diverse combinazioni di perdite aggregate per gruppo e tempo. Consentono inoltre di assegnare ponderazioni per aumentare la priorità minimizzando la perdita aggregata rispetto alla perdita individuale. Ad esempio, se il peso è impostato su 2.0, sarà ponderato il doppio delle persone o una perdita di dati.

group_columns

Nomi delle colonne nella tabella di input per l'addestramento che identificano il raggruppamento per il livello della gerarchia. Le colonne devono essere time_series_attribute_columns. Se la colonna gruppo non è impostata, tutte le serie temporali verranno trattate come parte dello stesso gruppo e verranno aggregate in tutte le serie temporali.

group_total_weight

Peso della perdita aggregata del gruppo rispetto alla perdita individuale. Disattivato se impostato su 0.0 o se non è impostato.

temporal_total_weight

Peso della perdita aggregata nel tempo rispetto alla perdita individuale. Disattivata se è impostato su 0.0 o non è impostato.

group_temporal_total_weight

Peso della perdita aggregata totale (gruppo x tempo) rispetto al singolo individuo o una perdita di dati. Disattivato se impostato su 0.0 o se non è impostato. Se la colonna del gruppo non è impostata, tutte le serie temporali saranno trattate come parte dello stesso gruppo e verranno aggregate tutte le serie temporali.

Strategie per ridurre il bias

Ti consigliamo di iniziare con un tipo di aggregazione (gruppo o tempo) con un peso di 10.0, quindi dimezzare o raddoppiare il valore in base ai risultati.

Riduci il bias complessivo

Previsioni dettagliate per la distribuzione delle scorte nei vari negozi, in base ai quali vengono utilizzati errori percentuali assoluti (WAPE) a livello di prodotto x negozio x data come è una metrica di previsione, spesso le previsioni sono sottostimate a livelli aggregati. A compensare questo bias complessivo, puoi provare a:

  • Imposta group_total_weight su 10.0.
  • Lascia group_columns non impostato.
  • Lascia gli altri pesi non impostati.

Questo valore viene aggregato in tutte le serie temporali e riduce il pregiudizio complessivo.

Riduci il bias temporale

Nella pianificazione a lungo termine, le previsioni possono essere fatte a un prodotto x una regione x una settimana ma le metriche pertinenti possono essere misurate rispetto ai totali stagionali. Per compensare questo bias temporale, puoi provare a:

  • Imposta temporal_total_weight su 10.0.
  • Lascia group_columns non impostato.
  • Lascia gli altri pesi non impostati.

Questa operazione aggrega tutte le date dell'orizzonte di una serie temporale e riduce pregiudizi temporali.

Ridurre il bias a livello di gruppo

Per le previsioni multiuso nel processo di riassortimento, le previsioni granulari a livello di prodotto x negozio x data o settimana possono essere aggregate fino a livello di prodotto x centro di distribuzione x data per la distribuzione o di categoria di prodotto x data per gli ordini di materiali. Per farlo, segui questi passaggi:

  • Imposta group_total_weight su 10.0.
  • Imposta group_columns, ad esempio ["regione"] o ["regione", "categoria"]. L'impostazione di più colonne di gruppo utilizza il relativo valore combinato per definire il gruppo. Per risultati ottimali, utilizza colonne di gruppo con massimo 100 valori combinati distinti.
  • Lascia gli altri pesi non impostati.

Questo valore viene aggregato in tutte le serie temporali nello stesso gruppo per la stessa data e riduce i pregiudizi a livello di gruppo.

Limiti

  • È supportato un solo livello di aggregazione delle serie temporali. Se più di uno di raggruppamento dei dati, ad esempio "prodotto, negozio", la serie temporale è lo stesso gruppo solo se condividono gli stessi valori di entrambi e "negozio".
  • Ti consigliamo di utilizzare al massimo 100 gruppi.

Passaggi successivi