{"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/learning-temporally-causal-latent-processes","title":"Learning Temporally Causal Latent Processes from General Temporal Data","arxiv_id":"2110.05428","date":"2021-10-11","proceeding":null,"authors":["Weiran Yao","Yuewen Sun","Alex Ho","Changyin Sun","Kun Zhang"],"abstract":"Our goal is to recover time-delayed latent causal variables and identify their relations from measured temporal data. Estimating causally-related latent variables from observations is particularly challenging as the latent variables are not uniquely recoverable in the most general case. In this work, we consider both a nonparametric, nonstationary setting and a parametric setting for the latent processes and propose two provable conditions under which temporally causal latent processes can be identified from their nonlinear mixtures. We propose LEAP, a theoretically-grounded framework that extends Variational AutoEncoders (VAEs) by enforcing our conditions through proper constraints in causal process prior. Experimental results on various datasets demonstrate that temporally causal latent processes are reliably identified from observed variables under different dependency structures and that our approach considerably outperforms baselines that do not properly leverage history or nonstationarity information. This demonstrates that using temporal information to learn latent processes from their invertible nonlinear mixtures in an unsupervised manner, for which we believe our work is one of the first, seems promising even without sparsity or minimality assumptions.","url_abs":"https://arxiv.org/abs/2110.05428v4","url_pdf":"https://arxiv.org/pdf/2110.05428v4.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":"learning-temporally-causal-latent-processes","repo_url":"https://github.com/weirayao/leap","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"learning-temporally-causal-latent-processes","repo_url":"https://github.com/anonymous-authors-iclr2022-481/leap","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"causal-discovery","task_name":"Causal Discovery"},{"task_slug":"representation-learning","task_name":"Representation Learning"},{"task_slug":"video-understanding","task_name":"Video Understanding"}],"methods":[{"method_slug":"normalizing-flows","method_name":"Normalizing Flows"},{"method_slug":"supervised-contrastive-loss","method_name":"Supervised Contrastive Loss"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2110.05428","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2110.05428"}},"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/weirayao/leap","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/anonymous-authors-iclr2022-481/leap","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":1,"unverified":5},"by_repo_kind":{"listed":{"samples":4,"ran":0,"repositories":1},"community":{"samples":2,"ran":1,"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":"91a846b5e4651419","entry":"create_run_folders","repo":"talmo/leap","repo_kind":"community","path":"leap/training.py","file_url":"https://github.com/talmo/leap/blob/HEAD/leap/training.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"none","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"91a846b5e4651419"}},{"code_sha256_prefix":"e3dd2624161bc3f7","entry":"compute_cross_ent_normal","repo":"anonymous-authors-iclr2022-481/leap","repo_kind":"listed","path":"ltcl/modules/lvae_nonlinear.py","file_url":"https://github.com/anonymous-authors-iclr2022-481/leap/blob/HEAD/ltcl/modules/lvae_nonlinear.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":"e3dd2624161bc3f7"}},{"code_sha256_prefix":"a9bccfb88c109ccd","entry":"compute_ent_normal","repo":"anonymous-authors-iclr2022-481/leap","repo_kind":"listed","path":"ltcl/modules/lvae_nonlinear.py","file_url":"https://github.com/anonymous-authors-iclr2022-481/leap/blob/HEAD/ltcl/modules/lvae_nonlinear.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":"a9bccfb88c109ccd"}},{"code_sha256_prefix":"cebefb3be2a5a288","entry":"reconstruction_loss","repo":"anonymous-authors-iclr2022-481/leap","repo_kind":"listed","path":"ltcl/modules/cond_linear_vae.py","file_url":"https://github.com/anonymous-authors-iclr2022-481/leap/blob/HEAD/ltcl/modules/cond_linear_vae.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":"cebefb3be2a5a288"}},{"code_sha256_prefix":"21ac2bba534cbf6a","entry":"reconstruction_loss","repo":"anonymous-authors-iclr2022-481/leap","repo_kind":"listed","path":"ltcl/modules/lvae_nonlinear.py","file_url":"https://github.com/anonymous-authors-iclr2022-481/leap/blob/HEAD/ltcl/modules/lvae_nonlinear.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":"21ac2bba534cbf6a"}},{"code_sha256_prefix":"30ad80c64b2a2dc6","entry":"train_val_split","repo":"talmo/leap","repo_kind":"community","path":"leap/training.py","file_url":"https://github.com/talmo/leap/blob/HEAD/leap/training.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"30ad80c64b2a2dc6"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}