Riduci i bias di previsione con l'aggregazione gerarchica

Questa pagina spiega cos'è la previsione gerarchica, quali sono i suoi obiettivi e mostra alcune strategie di addestramento che puoi utilizzare per ridurre il bias nei modelli di previsione.

Per istruzioni dettagliate su come configurare la previsione gerarchica durante l'addestramento del modello di previsione utilizzando l'API, consulta Addestramento di 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 divise in singoli prodotti. Quando si prevedono vendite future, le previsioni per i prodotti di una categoria devono sommarsi a quella per la categoria stessa e così via nella gerarchia.

Una gerarchia di prodotti e categorie.

Analogamente, anche la dimensione temporale di una singola serie temporale può presentare una gerarchia. Ad esempio, la somma delle vendite previste a livello di giorno per un singolo prodotto dovrebbe sommarsi alle vendite settimanali previste per il prodotto. La figura seguente mostra questo gruppo e la gerarchia temporale come 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 il bias temporale per migliorare le metriche sul futuro (vendite stagionali).
  • Riduci il bias a livello di gruppo per migliorare le metriche in un gruppo di serie temporali (vendite articoli).

In Vertex AI, la previsione gerarchica prende in considerazione la struttura gerarchica delle serie temporali incorporando termini aggiuntivi di perdita per le 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" corrispondono alla somma delle previsioni per tutti i "prodotti" della categoria. Se l'obiettivo del modello è l'errore assoluto medio (MAE), la perdita includerà il MAE per le previsioni sia a livello di "prodotto" che di "categoria". Ciò consente di migliorare la coerenza delle previsioni a diversi livelli della gerarchia e, in alcuni casi, di migliorare le metriche al livello più basso.

Configurare l'aggregazione gerarchica per l'addestramento dei modelli

Puoi configurare l'aggregazione gerarchica durante l'addestramento dei modelli di previsione configurando AutoMLForecastingTrainingJob nell'SDK Vertex AI o configurando 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 in base al gruppo e al tempo. Consentono inoltre di assegnare ponderazioni per aumentare la priorità di ridurre al minimo la perdita aggregata rispetto alla perdita individuale. Ad esempio, se il peso è impostato su 2.0, sarà ponderato il doppio della perdita individuale.

group_columns

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

group_total_weight

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

temporal_total_weight

Peso della perdita aggregata del 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) in relazione alla perdita individuale. Disabilitata se viene impostata su 0.0 o non è impostata. Se la colonna del gruppo non è impostata, tutte le serie temporali verranno trattate come parte dello stesso gruppo e saranno aggregate in tutte le serie temporali.

Strategie per ridurre i bias

Valuta la possibilità di iniziare con un tipo di aggregazione (gruppo o ora) con una ponderazione di 10.0, quindi dimezza o raddoppia il valore in base ai risultati.

Riduci il bias complessivo

Nelle previsioni dettagliate per la distribuzione delle azioni 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 a livello aggregato. Per compensare questo bias complessivo, puoi provare quanto segue:

  • Imposta group_total_weight su 10.0.
  • Non impostare group_columns.
  • Non impostare altri pesi.

I dati aggregati vengono aggregati per tutte le serie temporali e riduce il bias complessivo.

Riduci il bias temporale

Nella pianificazione a lungo termine, le previsioni possono essere effettuate a livello di prodotto x regione x settimana, ma le metriche pertinenti possono essere misurate rispetto ai totali stagionali. Per compensare questo bias temporale, puoi provare quanto segue:

  • Imposta temporal_total_weight su 10.0.
  • Non impostare group_columns.
  • Non impostare altri pesi.

Questa operazione aggrega le date nell'orizzonte di una serie temporale e riduce il bias temporale.

Riduci il bias a livello di gruppo

Per le previsioni multifunzionali nel processo di rifornimento, previsioni granulari a livello di prodotto x negozio x data o settimana possono essere aggregate fino a prodotto x centro di distribuzione x livelli di data per distribuzione o categoria di prodotto x livelli di data per gli ordini di materiali. A questo scopo, segui questi passaggi:

  • Imposta group_total_weight su 10.0.
  • Imposta group_columns, ad esempio ["region"] o ["region", "category"]. L'impostazione di più colonne del gruppo utilizza il relativo valore combinato per definire il gruppo. Per ottenere risultati ottimali, utilizza colonne di gruppo con un massimo di 100 valori combinati distinti.
  • Non impostare altri pesi.

I dati vengono aggregati per tutte le serie temporali dello stesso gruppo per la stessa data e riduce i bias a livello di gruppo.

Limiti

  • È supportato un solo livello di aggregazione delle serie temporali. Se viene specificata più di una colonna di raggruppamento, ad esempio "product, store", la serie temporale è nello stesso gruppo solo se condividono gli stessi valori sia di "product" che di "store".
  • Ti consigliamo di utilizzare massimo 100 gruppi.

Passaggi successivi