RNN pour des intervalles de temps irréguliers?

13

Les RNN sont remarquablement bons pour capturer la dépendance temporelle des données séquentielles. Cependant, que se passe-t-il lorsque les éléments de séquence ne sont pas également espacés dans le temps?

Par exemple, la première entrée dans la cellule LSTM se produit le lundi, puis aucune donnée du mardi au jeudi, puis enfin de nouvelles entrées pour chacun des vendredis, samedis et dimanches. Une possibilité serait d'avoir une sorte de vecteur NULL alimenté du mardi au jeudi, mais cela semble être une solution stupide, à la fois parce que les entrées NULL contamineront les données et parce que c'est un gaspillage de ressources.

Des idées? Comment les RNN traitent-ils de tels cas? S'il existe d'autres méthodes que les RNN, je salue également ces suggestions.

Tfovid
la source
De quel type de données s'agit-il? Comme pouvons-nous supposer que certains jours, nous obtenons une mesure d'une fonction qui est continue? Par exemple, la température à un endroit?
user0
@ user99889 Oui, cela pourrait être un exemple, mais je pensais plutôt à un compteur. Par exemple, vous obtenez un chef d'accusation à 9 h 32, puis rien, ces deux chefs d'accusation à 9 h 37, puis rien, etc ...
Tfovid

Réponses:

2

Si vous alimentez un vecteur de données au temps , la solution la plus simple consiste à obtenir un codage du jour de la semaine, , puis à simplement introduire dans le réseau la concaténation de et . Le schéma de codage heure / date peut être plus compliqué si le format de l'heure est plus compliqué qu'un simple jour de semaine bien sûr.vttdtvtdt

En outre, en fonction de la rareté et de l'irrégularité des données, les entrées NULL devraient être une solution raisonnable. Je soupçonne que la porte d'entrée d'un LSTM permettrait au LSTM de lire correctement les informations d'une entrée NULL sans contaminer les données (la mémoire / l'état caché) comme vous le dites.

shimao
la source
1
En fait, au lieu d'un encodage à chaud, pourquoi ne pas simplement concaténer un seul nœud d'entrée au LSTM qui contient la date, ou mieux encore, l'heure avant le "présent", où le présent est le dernier élément de la séquence. Dans ce cas, ces nœuds contiendraient -5 (pour lundi), -2 (pour vendredi), -1 (pour samedi), 0 (pour dimanche, c'est-à-dire le jour le plus récent). Cela contournera le besoin de NULLs et en même temps (espérons-le) encodera par combien le LSTM devrait "oublier" entre les récursions. Cela vous semble-t-il raisonnable?
Tfovid
Oui, ça devrait marcher.
shimao
1

J'essaierais d'incorporer explicitement l'intervalle de temps dans le modèle. Par exemple, un modèle de série chronologique classique tel que l'AR autorégressif (p) peut être considéré comme une discrétisation du modèle temporel continu. Par exemple, le modèle AR (1): peut être considéré comme une version de:

yt=c+ϕyt1+εt
yt=cΔt+eγΔtytΔt+ξtσΔt

Vous pouvez faire des analogies avec les modèles de séries chronologiques de RNN. Par exemple, dans le processus AR (1) peut être considéré comme un poids de mémoire dans les RNN. Par conséquent, vous pouvez connecter la différence de temps entre les observations à vos fonctionnalités de cette façon. Je dois avertir que ce n'est qu'une idée, et je ne l'ai pas encore essayé moi-même.ϕ

Aksakal
la source
1

Je pense que cela dépend des données. Par exemple, si vous traitez des comptes et que vous avez juste oublié de le mesurer certains jours, la meilleure stratégie consiste à imputer les valeurs manquantes (par exemple, via une interpolation ou des processus gaussiens), puis à traiter la série temporelle imputée avec un RNN. En imputant, vous intégreriez des connaissances.

Si le manque est significatif (il faisait trop chaud pour mesurer les décomptes certains jours), alors il est préférable d'imputer peut-être et d'ajouter également un vecteur indicateur qui est 1 si la valeur était manquante et 0 sinon.

user0
la source
L'absence de données ne peut pas être traitée par imputation car les données sont objectivement absentes dans ce cas, et pas simplement le résultat d'une mesure manquée. Quant à l'ajout d'une étiquette pour les valeurs manquantes (par exemple, 0 ou 1 comme vous l'avez suggéré), cela équivaudrait à une valeur nulle. Le problème avec cela est la rareté des données: les fenêtres coulissantes sur lesquelles le RNN est formé contiendront principalement des valeurs nulles, alors que, dans la pratique, on aimerait ajouter autant d'informations tout en tenant compte du fait que ils sont entrecoupés de temps.
Tfovid