{"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/gman-a-graph-multi-attention-network-for","title":"GMAN: A Graph Multi-Attention Network for Traffic Prediction","arxiv_id":"1911.08415","date":"2019-11-11","proceeding":null,"authors":["Chuanpan Zheng","Xiaoliang Fan","Cheng Wang","Jianzhong Qi"],"abstract":"Long-term traffic prediction is highly challenging due to the complexity of traffic systems and the constantly changing nature of many impacting factors. In this paper, we focus on the spatio-temporal factors, and propose a graph multi-attention network (GMAN) to predict traffic conditions for time steps ahead at different locations on a road network graph. GMAN adapts an encoder-decoder architecture, where both the encoder and the decoder consist of multiple spatio-temporal attention blocks to model the impact of the spatio-temporal factors on traffic conditions. The encoder encodes the input traffic features and the decoder predicts the output sequence. Between the encoder and the decoder, a transform attention layer is applied to convert the encoded traffic features to generate the sequence representations of future time steps as the input of the decoder. The transform attention mechanism models the direct relationships between historical and future time steps that helps to alleviate the error propagation problem among prediction time steps. Experimental results on two real-world traffic prediction tasks (i.e., traffic volume prediction and traffic speed prediction) demonstrate the superiority of GMAN. In particular, in the 1 hour ahead prediction, GMAN outperforms state-of-the-art methods by up to 4% improvement in MAE measure. The source code is available at https://github.com/zhengchuanpan/GMAN.","url_abs":"https://arxiv.org/abs/1911.08415v2","url_pdf":"https://arxiv.org/pdf/1911.08415v2.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":"gman-a-graph-multi-attention-network-for","repo_url":"https://github.com/zhengchuanpan/GMAN","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"gman-a-graph-multi-attention-network-for","repo_url":"https://github.com/SmallNana/GMAN_pytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"gman-a-graph-multi-attention-network-for","repo_url":"https://github.com/VincLee8188/GMAN-PyTorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"gman-a-graph-multi-attention-network-for","repo_url":"https://github.com/VincLee8188/Gman_Ptorch_version","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"gman-a-graph-multi-attention-network-for","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":"gman-a-graph-multi-attention-network-for","repo_url":"https://github.com/tijsmaas/TrafficPrediction","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":null}],"tasks":[{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"image-dehazing","task_name":"Image Dehazing"},{"task_slug":"prediction","task_name":"Prediction"},{"task_slug":"traffic-prediction","task_name":"Traffic Prediction"}],"methods":[{"method_slug":"multi-attention-network","method_name":"Multi-Attention Network"},{"method_slug":"speed","method_name":"SPEED"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-dehazing-on-kitti","task":"Image Dehazing","dataset":"KITTI","model":"GMAN","rank_in_archive_order":2,"of":3,"metrics":{"PSNR":"24.64"},"uses_additional_data":false},{"leaderboard":"/sota/traffic-prediction-on-ne-bj","task":"Traffic Prediction","dataset":"NE-BJ","model":"GMAN","rank_in_archive_order":3,"of":6,"metrics":{"12 steps MAE":"4.80"},"uses_additional_data":false},{"leaderboard":"/sota/traffic-prediction-on-pems-bay","task":"Traffic Prediction","dataset":"PEMS-BAY","model":"GMAN","rank_in_archive_order":12,"of":16,"metrics":{"MAE @ 12 step":"1.92","RMSE ":"4.49"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1911.08415","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1911.08415"}},"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/VincLee8188/GMAN-PyTorch","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/zhengchuanpan/GMAN","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/tijsmaas/TrafficPrediction","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/SmallNana/GMAN_pytorch","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/VincLee8188/Gman_Ptorch_version","reach":{"status":"ok"}}],"summary":{"unverified":10},"by_repo_kind":{"official":{"samples":10,"ran":0,"repositories":1}},"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":0,"samples":[{"code_sha256_prefix":"c71ec4f39a2bea7a","entry":"alias_draw","repo":"zhengchuanpan/GMAN","repo_kind":"official","path":"METR/node2vec/node2vec.py","file_url":"https://github.com/zhengchuanpan/GMAN/blob/HEAD/METR/node2vec/node2vec.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c71ec4f39a2bea7a"}},{"code_sha256_prefix":"0ddb0dd1cf3b67dd","entry":"alias_setup","repo":"zhengchuanpan/GMAN","repo_kind":"official","path":"METR/node2vec/node2vec.py","file_url":"https://github.com/zhengchuanpan/GMAN/blob/HEAD/METR/node2vec/node2vec.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0ddb0dd1cf3b67dd"}},{"code_sha256_prefix":"8e2329b6f957b2ce","entry":"batch_norm","repo":"zhengchuanpan/GMAN","repo_kind":"official","path":"METR/tf_utils.py","file_url":"https://github.com/zhengchuanpan/GMAN/blob/HEAD/METR/tf_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8e2329b6f957b2ce"}},{"code_sha256_prefix":"6122f2f19a4027d8","entry":"conv2d","repo":"zhengchuanpan/GMAN","repo_kind":"official","path":"METR/tf_utils.py","file_url":"https://github.com/zhengchuanpan/GMAN/blob/HEAD/METR/tf_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6122f2f19a4027d8"}},{"code_sha256_prefix":"e4716e5fdd0a9483","entry":"dropout","repo":"zhengchuanpan/GMAN","repo_kind":"official","path":"METR/tf_utils.py","file_url":"https://github.com/zhengchuanpan/GMAN/blob/HEAD/METR/tf_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e4716e5fdd0a9483"}},{"code_sha256_prefix":"78c234f574a9d6a2","entry":"loadData","repo":"zhengchuanpan/GMAN","repo_kind":"official","path":"METR/utils.py","file_url":"https://github.com/zhengchuanpan/GMAN/blob/HEAD/METR/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"78c234f574a9d6a2"}},{"code_sha256_prefix":"1ba47a23adf07065","entry":"metric","repo":"zhengchuanpan/GMAN","repo_kind":"official","path":"METR/utils.py","file_url":"https://github.com/zhengchuanpan/GMAN/blob/HEAD/METR/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1ba47a23adf07065"}},{"code_sha256_prefix":"87a81a456578efcc","entry":"placeholder","repo":"zhengchuanpan/GMAN","repo_kind":"official","path":"METR/model.py","file_url":"https://github.com/zhengchuanpan/GMAN/blob/HEAD/METR/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"87a81a456578efcc"}},{"code_sha256_prefix":"c11afb5b81b2e8bd","entry":"placeholder","repo":"zhengchuanpan/GMAN","repo_kind":"official","path":"PeMS/model.py","file_url":"https://github.com/zhengchuanpan/GMAN/blob/HEAD/PeMS/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c11afb5b81b2e8bd"}},{"code_sha256_prefix":"3fc58cdee460bc5d","entry":"seq2instance","repo":"zhengchuanpan/GMAN","repo_kind":"official","path":"METR/utils.py","file_url":"https://github.com/zhengchuanpan/GMAN/blob/HEAD/METR/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3fc58cdee460bc5d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}