Algoritmo CNN-QR - Amazon Forecast

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Algoritmo CNN-QR

CNN-QR de Amazon Forecast, Red neuronal convolucional (regresión cuantil), es un algoritmo de machine learning patentado que permite pronosticar series temporales escalares (de una dimensión) mediante redes neuronales convolucionales causales (CNN). Este algoritmo de aprendizaje supervisado entrena un modelo global a partir de una gran colección de series temporales y utiliza un decodificador de cuantiles para realizar predicciones probabilísticas.

Introducción a CNN-QR

Puede entrenar un predictor con CNN-QR de dos maneras:

  1. Selección manual del algoritmo CNN-QR.

  2. Selección de AutoML (CNN-QR forma parte de AutoML).

Si no está seguro del algoritmo que debe utilizar, le recomendamos que seleccione AutoML y Forecast seleccionará CNN-QR si es el algoritmo más preciso para sus datos. Para ver si se seleccionó CNN-QR como el modelo más preciso, utilice la API DescribePredictor o elija el nombre del predictor en la consola.

Estos son algunos casos de uso clave de CNN-QR:

  • Forecast con conjuntos de datos grandes y complejos: CNN-QR funciona mejor cuando se entrena con conjuntos de datos grandes y complejos. La red neuronal puede aprender de muchos conjuntos de datos, lo que resulta útil cuando se tienen metadatos de artículos y series temporales relacionadas.

  • Previsión con series temporales relacionadas históricas: CNN-QR no requiere que las series temporales relacionadas contengan puntos de datos dentro del horizonte de previsión. Esta flexibilidad adicional le permite incluir una gama más amplia de series temporales y metadatos de artículos relacionados, como el precio de los artículos, los eventos, las métricas web y las categorías de productos.

Cómo funciona CNN-QR

El CNN-QR es un modelo de secuencia a secuencia (Seq2Seq) para la previsión probabilística que comprueba cuán bien reconstruye una previsión la secuencia de decodificación, condicionada a la secuencia de codificación.

El algoritmo permite distintas características en las secuencias de codificación y decodificación, por lo que se puede utilizar una serie temporal relacionada en el codificador y omitirla del decodificador (y viceversa). De forma predeterminada, las series temporales relacionadas con puntos de datos en el horizonte de previsión se incluirán tanto en el codificador como en el decodificador. Las series temporales relacionadas de puntos de datos en el horizonte de previsión se incluirán solo en el codificador.

CNN-QR realiza una regresión cuantil con una CNN causal jerárquica que sirve como extractor de características que se pueden aprender.

Para facilitar patrones de aprendizaje que dependan del tiempo, como picos durante fines de semana, CNN-QR crea automáticamente series temporales basándose en la granularidad de las series temporales. Por ejemplo, CNN-QR crea dos series temporales de características (día del mes y día del año) a una frecuencia de serie temporal semanal. El algoritmo utiliza estas series temporales de características derivadas junto con la serie temporal de características personalizadas proporcionada durante el entrenamiento y la inferencia. En el siguiente ejemplo se muestra una serie temporal de destino, zi,t, y dos características de la serie temporal derivada: ui,1,t representa la hora del día y ui,2,t el día de la semana.

Imagen: CNN-QR con características derivadas para frecuencias temporales.

CNN-QR incluye automáticamente estas series temporales de características basándose en la frecuencia de los datos y el tamaño de los datos de entrenamiento. En la siguiente tabla se muestran las características que se pueden derivar para cada frecuencia temporal básica admitida.

Frecuencia de la serie temporal Características derivadas
Minuto minuto de la hora, hora del día, día de la semana, día del mes, día del año
Hora hora del día, día de la semana, día del mes, día del año
Día día de la semana, día del mes, día del año
Semana semana del mes, semana del año
Mes mes del año

Durante el entrenamiento, cada serie temporal del conjunto de datos de entrenamiento consta de un par de ventanas adyacentes de contexto y previsión con longitudes predefinidas fijas. Esto se muestra en la siguiente figura, donde la ventana de contexto se representa en verde y la ventana de previsión se representa en azul.

Puede utilizar un modelo entrenado en un determinado conjunto de entrenamiento para generar predicciones para series temporales en el conjunto de entrenamiento y para otras series temporales. El conjunto de datos de entrenamiento consiste en una serie temporal de destino, que puede estar asociada a una lista de series temporales y metadatos de artículos relacionados.

La siguiente figura muestra este funcionamiento para un elemento de un conjunto de datos de entrenamiento indexado con i. El conjunto de entrenamiento se compone de una serie temporal objetivo zi,t y dos series temporales relacionadas asociadas xi,1,t y xi,2,t. La primera serie temporal relacionada, xi,1,t, es una serie temporal prospectiva y la segunda, xi,2,t, es una serie temporal histórica.

Imagen: CNN-QR con series temporales relacionadas históricas y prospectivas

CNN-QR aprende sobre la serie temporal de destino, zi,t, y las series temporales relacionadas, xi,1,t y xi,2,t, para generar predicciones en el período de previsión, representada por la línea naranja.

Uso de datos relacionados con CNN-QR

CNNQR admite conjuntos de datos de series temporales relacionadas tanto históricos como prospectivos. Si proporciona un conjunto de datos de series temporales relacionadas y prospectivas, cualquier valor que falte se rellenará mediante el método de llenado futuro. Para obtener más información sobre series temporales relacionadas históricas y prospectivas, consulte Uso de conjuntos de datos de series temporales relacionadas.

También puedes usar conjuntos de datos de metadatos de artículos con CNN-QR. Se trata de conjuntos de datos con información estática sobre los artículos de su serie temporal de destino. Los metadatos de artículos son especialmente útiles para los escenarios de previsión incipiente en los que hay pocos o ningún dato histórico. Para obtener más información sobre los metadatos de artículos, consulte Metadatos de artículos.

Hiperparámetros CNN-QR

Amazon Forecast optimiza los modelos CNN-QR en hiperparámetros seleccionados. Al seleccionar CNN-QR manualmente, tiene la opción de transferir los parámetros de entrenamiento para estos hiperparámetros. En la siguiente tabla se muestran los hiperparámetros ajustables para el algoritmo CNN-QR.

Nombre del parámetro Valores Descripción
context_length
Valores válidos

Números enteros positivos

Intervalo válido

De 10 a 500

Valores típicos

De 2 * ForecastHorizon a 12 * ForecastHorizon

HPO ajustable

El número de puntos de tiempo que el modelo lee antes de realizar la predicción. Por lo general, CNN-QR tiene valores más altos para context_length que DeepAR+ porque CNN-QR no utiliza retrasos para analizar más datos históricos.

Si el valor de context_length está fuera de un rango predefinido, CNN-QR establecerá automáticamente el valor predeterminado context_length en un valor adecuado.

use_related_data
Valores válidos

ALL

NONE

HISTORICAL

FORWARD_LOOKING

Valor predeterminado

ALL

HPO ajustable

Determina qué tipos de datos de series temporales relacionadas se deben incluir en el modelo.

Elija una de las cuatro opciones siguientes:

  • ALL: incluya todas las series temporales relacionadas proporcionadas.

  • NONE: excluya todas las series temporales relacionadas proporcionadas.

  • HISTORICAL: incluya solo las series temporales relacionadas que no se extiendan al horizonte de previsión.

  • FORWARD_LOOKING: incluya solo las series temporales relacionadas que se extiendan al horizonte de previsión.

HISTORICAL incluye todas las series temporales relacionadas históricas y FORWARD_LOOKING incluye todas las series temporales relacionadas prospectivas. No puede elegir un subconjunto de series temporales relacionadas HISTORICAL ni FORWARD_LOOKING.

use_item_metadata
Valores válidos

ALL

NONE

Valor predeterminado

ALL

HPO ajustable

Determina si el modelo incluye metadatos de artículo.

Elija una de estas dos opciones:

  • ALL: incluye todos los metadatos de artículos proporcionados.

  • NONE: excluye todos los metadatos de artículos proporcionados.

use_item_metadata incluye todos los metadatos de artículos proporcionados o ninguno. No puede elegir un subconjunto de metadatos de artículos.

epochs
Valores válidos

Números enteros positivos

Valores típicos

10 a 1000

Valor predeterminado

100

HPO ajustable

No

El número máximo de pasadas completas en los datos de capacitación. Los conjuntos de datos más pequeños requieren más épocas.

Para valores grandes de ForecastHorizon y context_length, considere reducir las épocas para mejorar el tiempo de entrenamiento.

Optimización de hiperparámetros (HPO)

La optimización de hiperparámetros (HPO) es la tarea de elegir los valores de hiperparámetros óptimos para alcanzar un objetivo de aprendizaje específico. Con Forecast, puede automatizar este proceso de dos maneras:

  1. Eligiendo AutoML, para que HPO se ejecute automáticamente para CNN-QR.

  2. Realizando la selección manual de CNN-QR y estableciéndola en PerformHPO = TRUE.

Los metadatos de artículos y las series temporales relacionadas adicionales no siempre mejoran la precisión del modelo CNN-QR. Cuando ejecuta AutoML o habilita HPO, CNN-QR comprueba la precisión de su modelo con y sin las series temporales relacionadas y los metadatos de los artículos proporcionados, y selecciona el modelo con la mayor precisión.

Amazon Forecast optimiza automáticamente los tres hiperparámetros siguientes durante la HPO y le proporciona los valores finales entrenados:

  • longitud_contexto: determina cuán lejos puede ver la red en el pasado. El proceso de HPO establece automáticamente un valor context_length que maximiza la precisión del modelo y, al mismo tiempo, tiene en cuenta el tiempo de entrenamiento.

  • usar_datos_relacionados: determina qué tipos de datos de series temporales relacionadas se deben incluir en el modelo. El proceso de HPO comprueba automáticamente si los datos de series temporales relacionadas mejoran el modelo y selecciona la configuración óptima.

  • usar_metadatos_artículos: determina si se deben incluir los metadatos de artículos en el modelo. El proceso de HPO comprueba automáticamente si los metadatos de artículos mejoran el modelo y selecciona la configuración óptima.

nota

Si use_related_data se establece como NONE o HISTORICAL cuando se selecciona la característica complementaria Holiday, esto significa que incluir datos de festivos no mejora la precisión del modelo.

Puede establecer la configuración de HPO para el hiperparámetro context_length si establece PerformHPO = TRUE durante la selección manual. Sin embargo, no puede modificar ningún aspecto de la configuración de HPO si elige AutoML. Para obtener más información sobre la configuración de HPO, consulte la API de IntergerParameterRange.

Consejos y prácticas recomendadas

Evitar valores grandes para ForecastHorizon: utilizar valores superiores a 100 para el ForecastHorizon aumentará el tiempo de entrenamiento y puede reducir la precisión del modelo. Si desea realizar previsiones en el futuro, considere agregar a una frecuencia superior. Por ejemplo, utilice 5min en lugar de 1min.

Las CNN permiten una longitud de contexto mayor: con CNN-QR, puede establecer la context_length ligeramente superior a la de DeepAR+, ya que las CNN suelen ser más eficientes que las RNN.

Ingeniería de características de datos relacionados: experimente con diferentes combinaciones de series temporales y metadatos de artículos relacionados al entrenar su modelo y evalúe si la información adicional mejora la precisión. Las distintas combinaciones y transformaciones de series temporales y metadatos de artículos relacionados arrojarán resultados diferentes.

CNN-QR no prevé en el cuantil medio: si establece ForecastTypes en mean con la API de CreateForecast, las previsiones se generarán en el cuantil medio (0.5 o P50).