jdb78 / pytorch-forecasting

Time series forecasting with PyTorch
https://pytorch-forecasting.readthedocs.io/
MIT License
3.75k stars 599 forks source link

Implement New Model: Graph Deep Factors for Forecasting #128

Open StatMixedML opened 3 years ago

StatMixedML commented 3 years ago

Description

The following is taken from Graph Deep Factors for Forecasting:

Deep probabilistic forecasting techniques have recently been proposed for modeling large collections of time-series. However, these techniques explicitly assume either complete independence (local model) or complete dependence (global model) between time-series in the collection. This corresponds to the two extreme cases where every time-series is disconnected from every other time-series in the collection or likewise, that every time-series is related to every other time-series resulting in a completely connected graph. In this work, we propose a deep hybrid probabilistic graph-based forecasting framework called Graph Deep Factors (GraphDF) that goes beyond these two extremes by allowing nodes and their time-series to be connected to others in an arbitrary fashion. GraphDF is a hybrid forecasting framework that consists of a relational global and relational local model. In particular, we propose a relational global model that learns complex non-linear time-series patterns globally using the structure of the graph to improve both forecasting accuracy and computational efficiency. Similarly, instead of modeling every time-series independently, we learn a relational local model that not only considers its individual time-series but also the time-series of nodes that are connected in the graph.

The idea is to have a global-local model that explicitly considers the local pattern of each time series, which is in contrast to purely global models, such as DeepAR, MQRNN, etc.

image

jdb78 commented 3 years ago

Looks very intriguing. Is there an official implementation out there that could be used as a base? Feel free to open a PR. I currently working on #115 which could be a template for additional autoregressive networks.

StatMixedML commented 3 years ago

@jdb78 Thank for your comment.

I am not aware of any publicly available implementation of GraphDF. Let's see what I can do in terms of a PR. We could use GluonTS Deep Factor as a starting point for implementing GraphDF, as GraphDF is a modified version of DeepFactor.

jdb78 commented 3 years ago

There is a new tutorial to help with implementing new models: https://pytorch-forecasting.readthedocs.io/en/latest/tutorials/building.html