Questa pagina spiega la previsione gerarchica, i suoi obiettivi e mostra le strategie di addestramento che puoi utilizzare per ridurre il bias nei modelli di previsione.
Per istruzioni dettagliate su come configurare la previsione gerarchica quando addestri il modello di previsione utilizzando l'API, consulta 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 di prodotti di un rivenditore può essere suddiviso in categorie di prodotti. Le categorie possono essere ulteriormente suddivise in singoli prodotti. Quando si prevedono le vendite future, le previsioni per i prodotti di una categoria devono corrispondere alla previsione per la categoria stessa e così via nella gerarchia.
Allo stesso modo, la dimensione temporale di una singola serie temporale può anche mostrare una gerarchia. Ad esempio, le vendite previste per un singolo prodotto a livello giornaliero devono corrispondere alle vendite settimanali previste del prodotto. La figura seguente mostra questa gerarchia di gruppo e temporale come una matrice:
La previsione gerarchica ha tre obiettivi:
- Ridurre il bias complessivo per migliorare le metriche in tutte le serie temporali (vendite totali).
- Ridurre il bias temporale per migliorare le metriche sull'orizzonte (vendite stagionali).
- Ridurre il bias a livello di gruppo per migliorare le metriche in un gruppo di serie temporali (vendite di articoli).
In Gemini Enterprise Agent Platform, la previsione gerarchica tiene conto della struttura gerarchica delle serie temporali incorporando termini di perdita aggiuntivi per le inferenze 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 inferenze a livello di "categoria" sono la somma delle inferenze per tutti i "prodotti" della categoria. Se l'obiettivo del modello è l'errore medio assoluto (MAE), la perdita include il MAE per le inferenze sia a livello di "prodotto" sia di "categoria". Ciò contribuisce a migliorare la coerenza delle previsioni a diversi livelli della gerarchia e, in alcuni casi, potrebbe persino migliorare le metriche al livello più basso.
Configurare l'aggregazione gerarchica per l'addestramento del modello
Configura l'aggregazione gerarchica durante l'addestramento dei modelli di previsione configurando
configurando
AutoMLForecastingTrainingJob
nell'
SDK di Agent Platform
o configurando
configurando hierarchyConfig nell'API di Agent Platform.
I parametri disponibili per AutoMLForecastingTrainingJob e hierarchyConfig includono:
group_columnsgroup_total_weighttemporal_total_weightgroup_temporal_total_weight
I parametri consentono diverse combinazioni di perdite aggregate di gruppo e tempo. Ti consentono anche di assegnare ponderazioni per aumentare la priorità di ridurre al minimo la perdita aggregata rispetto alla perdita individuale. Ad esempio, se la ponderazione è 2.0, viene ponderata il doppio rispetto alla perdita individuale.
group_columns
I nomi delle colonne nella tabella di input di addestramento identificano il raggruppamento per il livello di gerarchia. Le colonne devono essere time_series_attribute_columns. Se non imposti la colonna del gruppo, tutte le serie temporali vengono trattate come parte dello stesso gruppo e aggregate in tutte le serie temporali.
group_total_weight
Ponderazione della perdita aggregata del gruppo rispetto alla perdita individuale. Disabilitata se impostata su 0.0 o non impostata.
temporal_total_weight
Ponderazione della perdita aggregata nel tempo rispetto alla perdita individuale. Disabilitata se impostata su 0.0 o non impostata.
group_temporal_total_weight
Ponderazione della perdita aggregata totale (gruppo x tempo) rispetto alla perdita individuale. Disabilitata se impostata su 0.0 o non impostata. Se non imposti la colonna del gruppo, tutte le serie temporali vengono trattate come parte dello stesso gruppo e aggregate in tutte le serie temporali.
Strategie per ridurre il bias
Inizia con un tipo di aggregazione (gruppo o tempo) con una ponderazione di 10.0, quindi dimezza o raddoppia il valore in base ai risultati.
Ridurre il bias complessivo
Nelle previsioni granulari per la distribuzione delle scorte nei negozi in cui l'errore percentuale assoluto ponderato (WAPE) a livello di prodotto x negozio x data viene utilizzato come metrica di previsione, le previsioni spesso sottostimano i livelli aggregati. Per compensare questo bias complessivo, prova quanto segue:
- Imposta
group_total_weightsu10.0. - Lascia
group_columnsnon impostato. - Lascia le altre ponderazioni non impostate.
Questo aggrega tutte le serie temporali e riduce il bias complessivo.
Ridurre il bias temporale
Nella pianificazione a lungo termine, le previsioni potrebbero essere effettuate a livello di prodotto x regione x settimana, ma le metriche pertinenti potrebbero essere misurate rispetto ai totali stagionali. Per compensare questo bias temporale, prova quanto segue:
- Imposta
temporal_total_weightsu10.0. - Lascia
group_columnsnon impostato. - Lascia le altre ponderazioni non impostate.
Questo aggrega tutte le date nell'orizzonte di una serie temporale e riduce il bias temporale.
Ridurre il bias a livello di gruppo
Per le previsioni multiuso nel processo di rifornimento, le previsioni granulari a livello di prodotto x negozio x data o settimana potrebbero essere aggregate fino a livelli 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:
- Imposta
group_total_weightsu10.0. - Imposta
group_columns, ad esempio ["region"] o ["region", "category"]. L'impostazione di più colonne di gruppo utilizza il valore combinato per definire il gruppo. Per risultati ottimali, utilizza colonne di gruppo con 100 o meno valori combinati distinti. - Lascia le altre ponderazioni non impostate.
Questo aggrega tutte le serie temporali nello stesso gruppo per la stessa data e riduce il bias a livello di gruppo.
Limiti
- È supportato un solo livello di aggregazione delle serie temporali. Se specifichi più colonne di raggruppamento, ad esempio "prodotto, negozio", le serie temporali si trovano nello stesso gruppo solo se condividono gli stessi valori di "prodotto" e "negozio".
- Ti consigliamo di utilizzare 100 o meno gruppi.