Como treinar o modelo LSTM em vários dados de séries temporais?
Caso de uso: tenho vendas semanais de 20.000 agentes nos últimos 5 anos. Precisa prever as próximas vendas semanais para cada agente.
Preciso seguir uma técnica de processamento em lote - pegue um agente de cada vez, treine o modelo LSTM e faça a previsão? Alguma maneira melhor?
Respostas:
Torne a identidade do agente um dos recursos e treine todos os dados. Provavelmente, treine um minilote de, por exemplo, 128 agentes de cada vez: percorra a série cronológica do início ao fim para esses 128 agentes e selecione um novo minilote de agentes. Para cada mini-lote, execute uma fatia dos digamos 50 timesteps e depois faça backprop. Mantenha os estados finais dessa fatia e execute os próximos 50 timesteps, a partir desses estados finais. Enxágüe e repita até chegar ao final dos intervalos de tempo, para aquele mini-lote de ~ 128 agentes.
Ao colocar a identidade de cada agente como um dos recursos, você possibilita à rede:
Edit: Alpo Jose escreveu:
Ooo, isso é verdade. Existem 20.000 deles. Isso é muito. Eu acho que o que você pode querer fazer é incorporá-los. Tenha uma camada de pesquisa, que capte um ID de agente (expresso como um número inteiro, um índice) e produza um vetor de alta dimensão, como algo como um vetor de comprimento 50-300, provavelmente um vetor cujo comprimento corresponda aproximadamente ao tamanho oculto de seu LSTM.
Matematicamente, uma tabela de pesquisa, também chamada de 'camada de incorporação', é equivalente a transformar os IDs do agente em vetores quentes, passando então por uma camada linear (totalmente conectada). No entanto, os requisitos de memória são muito reduzidos para a camada de incorporação.
Em termos do que a camada de incorporação aprenderá, à medida que você a treina, a camada de incorporação formará algum tipo de representação latente de cada agente. A representação latente provavelmente não será legível / interpretável, mas permitirá que o modelo aprenda coisas como 'ok, esse agente, 1524, é relativamente eficaz, mas não nos fins de semana; onde 1526 é ótimo todos os dias; etc .... '. As dimensões latentes do vetor de incorporação podem realmente significar coisas, mas ninguém nunca tenta descobrir o que elas significam (acho que seria difícil / impossível). No entanto, as combinações de alta dimensão por agente permitem que o modelo aprenda algo sobre o comportamento de cada agente e modele isso nas previsões de séries temporais.
fonte