Comment former le modèle LSTM sur plusieurs données de séries chronologiques?
Cas d'utilisation: J'ai des ventes hebdomadaires de 20 000 agents depuis 5 ans. Besoin de prévoir les ventes hebdomadaires à venir pour chaque agent.
Dois-je suivre une technique de traitement par lots - prendre un agent à la fois, former le modèle LSTM puis prévoir? De meilleures façons?
machine-learning
time-series
statistical-significance
lstm
artificial-intelligence
Aljo Jose
la source
la source
Réponses:
Faites de l'identité de l'agent l'une des fonctionnalités et entraînez-vous sur toutes les données. Entraînez-vous probablement sur un mini-lot de 128 agents par exemple à la fois: parcourez la série chronologique du début à la fin pour ces 128 agents, puis sélectionnez un nouveau mini-lot d'agents. Pour chaque mini-lot, exécutez une tranche de disons 50 pas de temps, puis backprop. Gardez les états finaux de cette tranche et exécutez les 50 pas de temps suivants, à partir de ces états finaux. Rincez et répétez jusqu'à la fin des pas de temps, pour ce mini-lot de ~ 128 agents.
En plaçant l'identité de chaque agent comme l'une des fonctionnalités, vous permettez au réseau de:
Edit: Alpo Jose a écrit:
Oooh, c'est vrai. Il y en a 20 000. C'est beaucoup. Je pense que ce que vous voudrez peut-être faire est de les «intégrer». Avoir une couche de recherche, qui prend un identifiant d'agent (exprimé sous la forme d'un entier, d'un index) et génère un vecteur de grande dimension, comme quelque chose comme un vecteur de longueur 50-300, probablement un vecteur dont la longueur correspond approximativement à la taille cachée de votre LSTM.
Mathématiquement, une table de recherche, également appelée «couche d'intégration», équivaut à transformer les ID d'agent en vecteurs uniques, puis à passer par une couche linéaire (entièrement connectée). Cependant, les exigences en mémoire sont très réduites pour la couche d'intégration.
En termes de ce que la couche d'intégration apprendra, au fur et à mesure que vous l'entraînerez, la couche d'intégration formera une sorte de représentation latente de chaque agent. La représentation latente ne sera probablement pas lisible / interprétable en aucune façon, mais permettra au modèle d'apprendre des choses comme «ok cet agent, 1524, est relativement efficace, mais pas le week-end; où comme 1526 est grand chaque jour; etc ....'. Les dimensions latentes du vecteur d'intégration pourraient en fait signifier des choses, mais personne n'essaie jamais de comprendre ce qu'elles signifient (je pense que ce serait difficile / impossible). Cependant, les incorporations par agent de grande dimension permettent au modèle d'apprendre quelque chose sur le comportement de chaque agent et de le modéliser dans les prédictions de séries chronologiques.
la source