Multi-Source Time Series Data Prediction

I was wondering if anyone has experience with time series prediction for data from multiple sources. So for instance, time series $a,b,..,z$ each have their own shape, some may be correlated with others. The ultimate goal is to have a model trained such that the value at time $t+1$ for any given data source can be predicted.

I personally have two solutions that in theory could work, but was wondering if anyone knew of other frequently used methods.

  1. Multi-task learning with LSTM

  2. Use feature engineering to model properties of each time series source as features along with usual features and use these with LSTM

Topic lstm multitask-learning forecast time-series

Category Data Science


The answer is Data Fusion or Feature Fusion.

I am implementing one using neural networks to classify Human Activity using multiple kinds of sensors: accelerometer, binary sensors, ecc..

We train a neural network with multiple input layers: one for each data source.

The forward pass keeps these separate until deeper in the network, at which point we concatenate the feature representations and then proceed with a single, merged processing pipeline in the network which ends at a single classification layer.

We can think of it as each independent pipeline learn a feature representation of its data source that can then be usefully combined with the other representations to perform classification.

This maintains independence of each network branch (e.g. you could have an LSTM processing sequential data, whose latent state vector then is concatenated with a FC feature from a CNN processing pressure plate measurements as images, and so on).

This is the structure I am using


You can certainly use an LSTM for this approach, as well as VAR, or potentially a more 'traditional' model (random forest). I have implemented multivariate LSTM for t+x prediction in Keras. Feature engineering may definitely help improve results.

I have also used VAR and was surprised at the effectiveness of this when compared against the LSTM. There are packages in Python and R for VAR.

Alternatively, if your features are effectively describing a pattern that is not necessarily dependent on the time component, a more traditional method such as random forest could be used. Probably not as effective as VAR or LSTM, but it's fast.


I'm only aware (and using) a RNN which gets multiple time-series in it's first layer and then mixes those in the following layers. Let me know if you have a question on this approach.

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.