Home

Awesome

Traffic Graph Convolutional Recurrent Neural Network

A Deep Learning Framework for Network-Scale Traffic Learning and Forecasting


Extended version of High-order Graph Convolutional Recurrent Neural Network

2nd version of the TGC-LSTM Model Structure

alt text


1st version of the High-order Graph Convolutional Recurrent Neural Network Structure

<img src="/Images/HGC-LSTM.png" alt="drawing" width="800"/>

Dataset

The model is tested on two real-world network-wide traffic speed dataset, loop detector data and INRIX data. The following figure shows the covered areas. (a) Seattle freeway network; (b) Seattle downtown roadway network.

<img src="/Images/dataset.png" alt="drawing" width="400"/>

Check out this Link for looking into and downloading the loop detecotr dataset. For confidentiality reasons, the INRIX dataset can not be shared.

To run the code, you need to download the loop detector data and the network topology information and put them in the proper "Data" folder.


Experimental Results

Validation Loss Comparison Chart & Model Performance with respect to the number of K

<img src="/Images/V2_Validation_loss.png" alt="drawing" width="400"/><img src="/Images/K_results.png" alt="drawing" width="350"/>

For more detailed experimental results, please refer to the paper.

<!-- The results can be found in the [WiKi](https://github.com/zhiyongc/GraphConvolutionalLSTM/wiki) --->

Visualization

Visualization of graph convolution (GC) weight matrices (averaged, K=3) & weight values on real maps
<img src="/Images/weight_matrix.png" alt="drawing" width="600"/> <img src="/Images/visualization.png" alt="drawing" width="680"/> <!-- Description of the datasets: * `inrix_seattle_speed_matrix_2012`: INRIX Speed Matrix (read by Pandas) * `INRIX_Seattle_2012_A.npy`: INRIX Adjacency Matrix * `INRIX_Seattle_2012_reachability_free_flow_Xmin.npy`: INRIX Free-flow Reachability Matrix during X minites' drive * `nodes_inrix_tmc_list.csv`: List of INRIX TMC code, with the same order of that in the INRIX Speed Matrix (not needed to run the code) * `speed_matrix_2015`: Loop Speed Matrix * `Loop_Seattle_2015_A.npy`: Loop Adjacency Matrix * `Loop_Seattle_2015_reachability_free_flow_5min.npy`: Loop Free-flow Reachability Matrix during X minites' drive * `nodes_loop_mp_list.csv`: List of loop detectors' milepost, with the same order of that in the Loop Speed Matrix (not needed to run the code) -->

Reference

Please cite our paper if you use this code or data in your own work: Traffic Graph Convolutional Recurrent Neural Network: A Deep Learning Framework for Network-Scale Traffic Learning and Forecasting

Hope our work is benefitial for you. Thanks!

@article{cui2019traffic,
  title={Traffic graph convolutional recurrent neural network: A deep learning framework for network-scale traffic learning and forecasting},
  author={Cui, Zhiyong and Henrickson, Kristian and Ke, Ruimin and Wang, Yinhai},
  journal={IEEE Transactions on Intelligent Transportation Systems},
  year={2019},
  publisher={IEEE}
}