{"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/generative-causal-representation-learning-for","title":"Generative Causal Representation Learning for Out-of-Distribution Motion Forecasting","arxiv_id":"2302.08635","date":"2023-02-17","proceeding":null,"authors":["Shayan Shirahmad Gale Bagi","Zahra Gharaee","Oliver Schulte","Mark Crowley"],"abstract":"Conventional supervised learning methods typically assume i.i.d samples and are found to be sensitive to out-of-distribution (OOD) data. We propose Generative Causal Representation Learning (GCRL) which leverages causality to facilitate knowledge transfer under distribution shifts. While we evaluate the effectiveness of our proposed method in human trajectory prediction models, GCRL can be applied to other domains as well. First, we propose a novel causal model that explains the generative factors in motion forecasting datasets using features that are common across all environments and with features that are specific to each environment. Selection variables are used to determine which parts of the model can be directly transferred to a new environment without fine-tuning. Second, we propose an end-to-end variational learning paradigm to learn the causal mechanisms that generate observations from features. GCRL is supported by strong theoretical results that imply identifiability of the causal model under certain assumptions. Experimental results on synthetic and real-world motion forecasting datasets show the robustness and effectiveness of our proposed method for knowledge transfer under zero-shot and low-shot settings by substantially outperforming the prior motion forecasting models on out-of-distribution prediction. Our code is available at https://github.com/sshirahmad/GCRL.","url_abs":"https://arxiv.org/abs/2302.08635v2","url_pdf":"https://arxiv.org/pdf/2302.08635v2.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":"generative-causal-representation-learning-for","repo_url":"https://github.com/sshirahmad/GCRL","is_official":0,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"motion-forecasting","task_name":"Motion Forecasting"},{"task_slug":"representation-learning","task_name":"Representation Learning"},{"task_slug":"trajectory-prediction","task_name":"Trajectory Prediction"},{"task_slug":"transfer-learning","task_name":"Transfer Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2302.08635","atlas_url":"https://app.syntology.ai/?focus=2302.08635","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2302.08635"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/sshirahmad/GCRL","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":7,"unverified":2},"by_repo_kind":{"named_in_paper":{"samples":9,"ran":7,"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":"bd1403cc98b0ff9d","entry":"erm_loss","repo":"sshirahmad/GCRL","repo_kind":"named_in_paper","path":"utils.py","file_url":"https://github.com/sshirahmad/GCRL/blob/HEAD/utils.py","link_basis":"harvester_set","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":"bd1403cc98b0ff9d"}},{"code_sha256_prefix":"b0d3a153c03cf535","entry":"get_dset_path","repo":"sshirahmad/GCRL","repo_kind":"named_in_paper","path":"utils.py","file_url":"https://github.com/sshirahmad/GCRL/blob/HEAD/utils.py","link_basis":"harvester_set","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":"b0d3a153c03cf535"}},{"code_sha256_prefix":"e3ed4dc5bbea0947","entry":"get_mean_std_over_seeds","repo":"sshirahmad/GCRL","repo_kind":"named_in_paper","path":"visualize.py","file_url":"https://github.com/sshirahmad/GCRL/blob/HEAD/visualize.py","link_basis":"harvester_set","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":"e3ed4dc5bbea0947"}},{"code_sha256_prefix":"123c2031d3127cc9","entry":"read_file","repo":"sshirahmad/GCRL","repo_kind":"named_in_paper","path":"trajectories.py","file_url":"https://github.com/sshirahmad/GCRL/blob/HEAD/trajectories.py","link_basis":"harvester_set","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":"123c2031d3127cc9"}},{"code_sha256_prefix":"d5ab777433781612","entry":"relative_to_abs","repo":"sshirahmad/GCRL","repo_kind":"named_in_paper","path":"utils.py","file_url":"https://github.com/sshirahmad/GCRL/blob/HEAD/utils.py","link_basis":"harvester_set","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":"d5ab777433781612"}},{"code_sha256_prefix":"d3de56755e246898","entry":"seq_collate","repo":"sshirahmad/GCRL","repo_kind":"named_in_paper","path":"trajectories.py","file_url":"https://github.com/sshirahmad/GCRL/blob/HEAD/trajectories.py","link_basis":"harvester_set","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":"d3de56755e246898"}},{"code_sha256_prefix":"23003035b4c56964","entry":"seq_collate_social","repo":"sshirahmad/GCRL","repo_kind":"named_in_paper","path":"trajectories.py","file_url":"https://github.com/sshirahmad/GCRL/blob/HEAD/trajectories.py","link_basis":"harvester_set","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":"23003035b4c56964"}},{"code_sha256_prefix":"644192cce02c4d9c","entry":"cal_ade_fde","repo":"sshirahmad/GCRL","repo_kind":"named_in_paper","path":"evaluate_model.py","file_url":"https://github.com/sshirahmad/GCRL/blob/HEAD/evaluate_model.py","link_basis":"harvester_set","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":"644192cce02c4d9c"}},{"code_sha256_prefix":"db7aa558200112ab","entry":"evaluate","repo":"sshirahmad/GCRL","repo_kind":"named_in_paper","path":"evaluate_model.py","file_url":"https://github.com/sshirahmad/GCRL/blob/HEAD/evaluate_model.py","link_basis":"harvester_set","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":"db7aa558200112ab"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}