Blog de Amazon Web Services (AWS)

Open Forecast Engine

Por Marco Morris, Fundador de Morris & Opazo

Desafío y concepto general de solución

El pronóstico de series temporales, posee un amplio campo de aplicaciones en la industria, gobernado por una serie de factores según el contexto. Por ejemplo, en retail existen eventos estacionales, que modelos clásicos no logran explicar de forma precisa debido a la naturaleza no lineal de estos eventos. Otro punto a considerar, es la recolección diaria de grandes volúmenes de información debido al crecimiento y revolución tecnológica, transformando cada dato en un potencial activo para la empresa.

La propuesta de Morris & Opazo, un Socio APN nivel Advanced basado en Chile, con la Competencia de Data & Analytics y SDPs de Amazon DyamoDB, Amazon Kinesis, AWS Lambda, Amazon API Gateway y Amazon Redshift, fue desarrollar y disponer un motor de pronósticos genérico y flexible, basado en aprendizaje automático de modelos probabilísticos. Este entrega información del comportamiento de la variable y de la incertidumbre del fenómeno, estudiando un horizonte de tiempo definido por el usuario. Nuestro motor de forecasting ofrece un acercamiento al mundo de la inteligencia artificial y deep learning de forma simple y concreta.

La idea principal de la solución, es proveer una herramienta de forecasting, para un profesional no necesariamente experto en el área de machine learning, programación o pronósticos, donde la única interacción con nuestro producto es en el proceso de ingreso de datos. El motor detecta y proporciona de forma automática tratamiento para problemas en los registros temporales, para luego buscar la mejor configuración de hiper-parámetros encontrando el mejor modelo que describa la dinámica del negocio analizado. Como resultado, la solución de forecasting entrega pronósticos e intervalos de predicción sobre la variable de interés, agregando información del rendimiento del modelo empleado como predictor, y complementado con un análisis descriptivo de las series a nivel general y semanal.

Características técnicas del producto

Los modelos empleados en la creación del producto son FbProphet y DeepAR. El producto FbProphet es un modelo aditivo generalizado, cuyo fundamento es explicar la variable de interés como una suma de componentes de tendencia, estacionalidad y eventos atípicos. DeepAR es un modelo probabilístico que emplea redes neuronales recurrentes de memoria a largo y corto plazo (LSTM) en el cual se estima la distribución de probabilidad de la variable en un tiempo dado.

La metodología de entrenamiento e inferencia para estos modelos se puede resumir en dos etapas:

– Búsqueda de los mejores hiper-parámetros

– Ajuste final del modelo con los hiper-parámetros seleccionados.

En el caso de las series univariadas, se seleccionan los modelos que tienen un mejor desempeño, realizando una evaluación con métricas calculadas en cada interacción. El siguiente diagrama explica la secuencia de entrenamiento:

Resultado

El pronóstico para el caso univariado se expresa a través de un gráfico interactivo, donde la visualización muestra la parte final de los datos originales y los puntos pronosticados. Además, se añade una banda (celeste) con intervalos de predicción, teniendo como objetivo indicar el rango de la variable con una confianza del 80%.

Para los dos casos se entrega:

  • Estadística descriptiva de target por cada serie y día de la semana
  • Rendimiento de modelo en datos de prueba, indicando valor real del target, valor predicción y el RMSE de cada serie pronosticada
  • Pronóstico de target, con intervalos de predicción del 10% y 90% por cada serie

El motor de forecasting fue desarrollado en el lenguaje Python, utilizando el framework de MXNet, específicamente con la librería GluonTS, creada por cientos de datos de Amazon. Posteriormente, para posicionar el producto en el AWS Marketplace, se empleó la metodología de contenedores. Para ello, se creó una imagen a través de la tecnología de docker, luego se cargó la imagen vía Amazon ECR en la plataforma de AWS. Finalmente, la aplicación que ejecuta y administra esta imagen, es el orquestador de contenedores Amazon ECS.