O blog da AWS

Open Forecast Engine

Por Marco Morris, Fundador da Morris & Opazo

 

Desafio e conceito geral de solução

A previsão de séries temporais tem uma ampla gama de aplicações no setor, regidas por uma série de fatores dependendo do contexto. Por exemplo, no varejo há eventos sazonais, que os modelos clássicos não conseguem explicar precisamente devido à natureza não-linear desses eventos. Outro ponto a considerar é a coleta diária de grandes volumes de informação devido ao crescimento e à revolução tecnológica, transformando cada dado em um potencial ativo para a empresa.

A proposta de Morris & Opazo, um Parceiro APN de nível Advanced com sede no Chile, com a Competência de  Data & Analytics e SDPs de Amazon DyamoDB, Amazon Kinesis, AWS Lambda, Amazon API Gateway e Amazon Redshift, foi desenvolver e implementar um mecanismo de previsão genérico e flexível baseado no aprendizado de máquina de Modelos probabilísticos. Isso fornece informações sobre o comportamento da variável e a incerteza do fenômeno, estudando um horizonte temporal definido pelo usuário. Nosso motor de previsão oferece uma abordagem simples e concreta para o mundo da inteligência artificial e da aprendizagem profunda.

A idéia principal da solução é fornecer uma ferramenta de previsão, para um profissional não necessariamente especialista na área de Machine Learning, programação ou previsão, onde a única interação com nosso produto está no processo de entrada de dados. O mecanismo automaticamente detecta e fornece tratamento para problemas nos logs temporários e, em seguida, procure a melhor configuração de hiperparâmetros encontrando o melhor modelo que descreve a dinâmica do negócio analisado. Como resultado, a solução de previsão fornece previsões e intervalos de previsão sobre a variável de interesse, adicionando informações sobre o desempenho do modelo usado como preditor e complementado por uma análise descritiva da série no nível geral e semanal.

Características técnicas do produto

Os modelos utilizados na criação do produto são FBProphet e DeepAR. O produto FBProphet é um modelo aditivo generalizado cuja base é explicar a variável de interesse como uma soma de componentes de tendência, sazonalidade e eventos atípicos. DeepAR é um modelo probabilístico que utiliza redes neurais de memória recorrentes de longo e curto prazo (LSTM) em que a distribuição de probabilidade da variável é estimada em um determinado momento.

A metodologia de treinamento e inferência para esses modelos pode ser resumida em duas etapas:

  • Procure os melhores hiper-parâmetros
  • Ajuste final do modelo com hiperparâmetros selecionados.

No caso de séries univariadas, modelos com melhor desempenho são selecionados, realizando uma avaliação com métricas calculadas em cada interação. O diagrama a seguir explica a sequência de treinamento:

Resultado

A previsão para o caso univariado é expressa através de um gráfico interativo, onde a visualização mostra a parte final dos dados originais e os pontos previstos. Além disso, adiciona-se uma banda (azul clara) com intervalos de predição, visando indicar o intervalo da variável com uma confiança de 80%.

Para ambos os casos, é entregue:

  • Estatísticas descritivas de destino para cada série e dia da semana
  • Desempenho do modelo em dados de teste, indicando o valor-alvo real, o valor de previsão e o RMSE de cada série prevista
  • Previsão de destino, com intervalos de previsão de 10% e 90% para cada série

O mecanismo de previsão foi desenvolvido na linguagem Python, usando o framework MXNet, especificamente com a biblioteca GluonTS, criada por centenas de dados da Amazon Web Services. Posteriormente, a metodologia de contêiner foi usada para posicionar o produto no AWS Marketplace. Para fazer isso, uma imagem foi criada usando a tecnologia docker, e, em seguida, a imagem foi enviada via Amazon ECR para a plataforma da AWS. Finalmente, o aplicativo que executa e gerencia essa imagem é o orquestrador de contêiner do Amazon ECS.