{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/adaptive-graph-convolutional-recurrent","title":"Adaptive Graph Convolutional Recurrent Network for Traffic Forecasting","arxiv_id":"2007.02842","date":"2020-07-06","proceeding":"NeurIPS 2020 12","authors":["Lei Bai","Lina Yao","Can Li","Xianzhi Wang","Can Wang"],"abstract":"Modeling complex spatial and temporal correlations in the correlated time series data is indispensable for understanding the traffic dynamics and predicting the future status of an evolving traffic system. Recent works focus on designing complicated graph neural network architectures to capture shared patterns with the help of pre-defined graphs. In this paper, we argue that learning node-specific patterns is essential for traffic forecasting while the pre-defined graph is avoidable. To this end, we propose two adaptive modules for enhancing Graph Convolutional Network (GCN) with new capabilities: 1) a Node Adaptive Parameter Learning (NAPL) module to capture node-specific patterns; 2) a Data Adaptive Graph Generation (DAGG) module to infer the inter-dependencies among different traffic series automatically. We further propose an Adaptive Graph Convolutional Recurrent Network (AGCRN) to capture fine-grained spatial and temporal correlations in traffic series automatically based on the two modules and recurrent networks. Our experiments on two real-world traffic datasets show AGCRN outperforms state-of-the-art by a significant margin without pre-defined graphs about spatial connections.","url_abs":"https://arxiv.org/abs/2007.02842v2","url_pdf":"https://arxiv.org/pdf/2007.02842v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"adaptive-graph-convolutional-recurrent","repo_url":"https://github.com/LeiBAI/AGCRN","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"adaptive-graph-convolutional-recurrent","repo_url":"https://github.com/benedekrozemberczki/pytorch_geometric_temporal","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"adaptive-graph-convolutional-recurrent","repo_url":"https://github.com/panwangwin/SpatialTemporalNetTrainer-pytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"graph-generation","task_name":"Graph Generation"},{"task_slug":"graph-neural-network","task_name":"Graph Neural Network"},{"task_slug":"multivariate-time-series-forecasting","task_name":"Multivariate Time Series Forecasting"},{"task_slug":"spatio-temporal-forecasting","task_name":"Spatio-Temporal Forecasting"},{"task_slug":"time-series-1","task_name":"Time Series"},{"task_slug":"time-series","task_name":"Time Series Analysis"},{"task_slug":"time-series-forecasting","task_name":"Time Series Forecasting"},{"task_slug":"time-series-prediction","task_name":"Time Series Prediction"},{"task_slug":"traffic-prediction","task_name":"Traffic Prediction"},{"task_slug":"weather-forecasting","task_name":"Weather Forecasting"}],"methods":[{"method_slug":"graph-neural-network","method_name":"Graph Neural Network"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/traffic-prediction-on-bjtaxi","task":"Traffic Prediction","dataset":"BJTaxi","model":"AGCRN","rank_in_archive_order":2,"of":5,"metrics":{"MAE @ in":"12.30","MAE @ out":"12.38","MAPE (%) @ in":"15.61","MAPE (%) @ out":"15.75"},"uses_additional_data":false},{"leaderboard":"/sota/traffic-prediction-on-expy-tky-1","task":"Traffic Prediction","dataset":"EXPY-TKY","model":"AGCRN","rank_in_archive_order":6,"of":8,"metrics":{"1 step MAE":"5.99","3 step MAE":"6.68","6 step MAE":"7.11"},"uses_additional_data":false},{"leaderboard":"/sota/traffic-prediction-on-ne-bj","task":"Traffic Prediction","dataset":"NE-BJ","model":"AGCRN","rank_in_archive_order":6,"of":6,"metrics":{"12 steps MAE":"4.99"},"uses_additional_data":false},{"leaderboard":"/sota/traffic-prediction-on-nycbike1","task":"Traffic Prediction","dataset":"NYCBike1","model":"AGCRN","rank_in_archive_order":2,"of":4,"metrics":{"MAE @ in":"5.17","MAE @ out":"5.47","MAPE (%) @ in":"25.59","MAPE (%) @ out":"26.63"},"uses_additional_data":false},{"leaderboard":"/sota/traffic-prediction-on-nycbike2","task":"Traffic Prediction","dataset":"NYCBike2","model":"AGCRN","rank_in_archive_order":2,"of":4,"metrics":{"MAE @ in":"5.18","MAE @ out":"4.79","MAPE (%) @ in":"27.14","MAPE (%) @ out":"26.17"},"uses_additional_data":false},{"leaderboard":"/sota/traffic-prediction-on-nyctaxi","task":"Traffic Prediction","dataset":"NYCTaxi","model":"AGCRN","rank_in_archive_order":2,"of":5,"metrics":{"MAE @ in":"12.13","MAE @ out":"9.87","MAPE (%) @ in":"18.78","MAPE (%) @ out":"18.41"},"uses_additional_data":false},{"leaderboard":"/sota/traffic-prediction-on-pems04","task":"Traffic Prediction","dataset":"PeMS04","model":"AGCRN","rank_in_archive_order":11,"of":12,"metrics":{"12 Steps MAE":"19.83"},"uses_additional_data":true},{"leaderboard":"/sota/weather-forecasting-on-la","task":"Weather Forecasting","dataset":"LA","model":"AGCRN","rank_in_archive_order":2,"of":4,"metrics":{"MSE (t+1)":"0.2289 ± 0.0327","MSE (t+6)":"0.8412 ± 1.1162"},"uses_additional_data":false},{"leaderboard":"/sota/weather-forecasting-on-noaa-atmospheric","task":"Weather Forecasting","dataset":"NOAA Atmospheric Temperature Dataset","model":"AGCRN","rank_in_archive_order":3,"of":5,"metrics":{"MAE (t+1)":"0.3019 ± 0.0374","MAE (t+10)":"1.3755 ± 0.2732"},"uses_additional_data":false},{"leaderboard":"/sota/weather-forecasting-on-sd","task":"Weather Forecasting","dataset":"SD","model":"AGCRN","rank_in_archive_order":2,"of":10,"metrics":{"MSE (t+1)":"0.2010 ± 0.0188","MSE (t+6)":"1.0181 ± 0.1275"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2007.02842","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2007.02842"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/benedekrozemberczki/pytorch_geometric_temporal","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/panwangwin/SpatialTemporalNetTrainer-pytorch","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/LeiBAI/AGCRN","reach":null}],"summary":{"ran":5,"unverified":2},"by_repo_kind":{"official":{"samples":4,"ran":3,"repositories":1},"listed":{"samples":3,"ran":2,"repositories":2}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":1,"samples":[{"code_sha256_prefix":"f0163a34cbc9018d","entry":"AGCRN","repo":"benedekrozemberczki/pytorch_geometric_temporal","repo_kind":"listed","path":"torch_geometric_temporal/nn/recurrent/agcrn.py","file_url":"https://github.com/benedekrozemberczki/pytorch_geometric_temporal/blob/HEAD/torch_geometric_temporal/nn/recurrent/agcrn.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f0163a34cbc9018d"}},{"code_sha256_prefix":"de33d1aa33944e3e","entry":"AGCRN","repo":"LeiBAI/AGCRN","repo_kind":"official","path":"model/AGCRN.py","file_url":"https://github.com/LeiBAI/AGCRN/blob/HEAD/model/AGCRN.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"de33d1aa33944e3e"}},{"code_sha256_prefix":"48e42ddfa8dd69ee","entry":"AGCRNCell","repo":"LeiBAI/AGCRN","repo_kind":"official","path":"model/AGCRN.py","file_url":"https://github.com/LeiBAI/AGCRN/blob/HEAD/model/AGCRN.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"48e42ddfa8dd69ee"}},{"code_sha256_prefix":"2715bf34e63e125c","entry":"AVWGCN","repo":"benedekrozemberczki/pytorch_geometric_temporal","repo_kind":"listed","path":"torch_geometric_temporal/nn/recurrent/agcrn.py","file_url":"https://github.com/benedekrozemberczki/pytorch_geometric_temporal/blob/HEAD/torch_geometric_temporal/nn/recurrent/agcrn.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2715bf34e63e125c"}},{"code_sha256_prefix":"223d0b8f4bccca3d","entry":"AVWGCN","repo":"LeiBAI/AGCRN","repo_kind":"official","path":"model/AGCRN.py","file_url":"https://github.com/LeiBAI/AGCRN/blob/HEAD/model/AGCRN.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"223d0b8f4bccca3d"}},{"code_sha256_prefix":"c2d32eadbd707ac8","entry":"AVWDCRNN","repo":"LeiBAI/AGCRN","repo_kind":"official","path":"model/AGCRN.py","file_url":"https://github.com/LeiBAI/AGCRN/blob/HEAD/model/AGCRN.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c2d32eadbd707ac8"}},{"code_sha256_prefix":"26b07867de61c59f","entry":"S2SGRU","repo":"panwangwin/SpatialTemporalNetTrainer-pytorch","repo_kind":"listed","path":"models.py","file_url":"https://github.com/panwangwin/SpatialTemporalNetTrainer-pytorch/blob/HEAD/models.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"26b07867de61c59f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}