{"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/c-disentanglement-discovering-causally","title":"C-Disentanglement: Discovering Causally-Independent Generative Factors under an Inductive Bias of Confounder","arxiv_id":"2310.17325","date":"2023-10-26","proceeding":"NeurIPS 2023 11","authors":["Xiaoyu Liu","Jiaxin Yuan","Bang An","Yuancheng Xu","Yifan Yang","Furong Huang"],"abstract":"Representation learning assumes that real-world data is generated by a few semantically meaningful generative factors (i.e., sources of variation) and aims to discover them in the latent space. These factors are expected to be causally disentangled, meaning that distinct factors are encoded into separate latent variables, and changes in one factor will not affect the values of the others. Compared to statistical independence, causal disentanglement allows more controllable data generation, improved robustness, and better generalization. However, most existing work assumes unconfoundedness in the discovery process, that there are no common causes to the generative factors and thus obtain only statistical independence. In this paper, we recognize the importance of modeling confounders in discovering causal generative factors. Unfortunately, such factors are not identifiable without proper inductive bias. We fill the gap by introducing a framework entitled Confounded-Disentanglement (C-Disentanglement), the first framework that explicitly introduces the inductive bias of confounder via labels from domain expertise. In addition, we accordingly propose an approach to sufficiently identify the causally disentangled factors under any inductive bias of the confounder. We conduct extensive experiments on both synthetic and real-world datasets. Our method demonstrates competitive results compared to various SOTA baselines in obtaining causally disentangled features and downstream tasks under domain shifts.","url_abs":"https://arxiv.org/abs/2310.17325v1","url_pdf":"https://arxiv.org/pdf/2310.17325v1.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":"c-disentanglement-discovering-causally","repo_url":"https://github.com/xliu1231/causal_disentangle","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"disentanglement","task_name":"Disentanglement"},{"task_slug":"inductive-bias","task_name":"Inductive Bias"},{"task_slug":"representation-learning","task_name":"Representation Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2310.17325","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2310.17325"}},"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/xliu1231/causal_disentangle","reach":null}],"summary":{"ran":3,"ran_draft_wrong":2,"ran_fixture":1,"unverified":2},"by_repo_kind":{"official":{"samples":8,"ran":6,"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":8,"samples":[{"code_sha256_prefix":"ce6e74150b343246","entry":"BaseVAE","repo":"xliu1231/causal_disentangle","repo_kind":"official","path":"causalvae.py","file_url":"https://github.com/xliu1231/causal_disentangle/blob/HEAD/causalvae.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ce6e74150b343246"}},{"code_sha256_prefix":"2569172cd5836527","entry":"CausalDAG","repo":"xliu1231/causal_disentangle","repo_kind":"official","path":"causalvae.py","file_url":"https://github.com/xliu1231/causal_disentangle/blob/HEAD/causalvae.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2569172cd5836527"}},{"code_sha256_prefix":"6ff7a35d695077c2","entry":"View","repo":"xliu1231/causal_disentangle","repo_kind":"official","path":"causalvae.py","file_url":"https://github.com/xliu1231/causal_disentangle/blob/HEAD/causalvae.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6ff7a35d695077c2"}},{"code_sha256_prefix":"c511b959a3b87626","entry":"conditional_sample_gaussian","repo":"xliu1231/causal_disentangle","repo_kind":"official","path":"causalvae.py","file_url":"https://github.com/xliu1231/causal_disentangle/blob/HEAD/causalvae.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c511b959a3b87626"}},{"code_sha256_prefix":"69d34cc11ecd7f4a","entry":"get_index","repo":"xliu1231/causal_disentangle","repo_kind":"official","path":"3dshape_dataset/dataset_3d_shape.py","file_url":"https://github.com/xliu1231/causal_disentangle/blob/HEAD/3dshape_dataset/dataset_3d_shape.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"69d34cc11ecd7f4a"}},{"code_sha256_prefix":"184daeb62f9ab8b3","entry":"kl_normal","repo":"xliu1231/causal_disentangle","repo_kind":"official","path":"causalvae.py","file_url":"https://github.com/xliu1231/causal_disentangle/blob/HEAD/causalvae.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"184daeb62f9ab8b3"}},{"code_sha256_prefix":"1927ecd6d552be0d","entry":"CausalVAE","repo":"xliu1231/causal_disentangle","repo_kind":"official","path":"causalvae.py","file_url":"https://github.com/xliu1231/causal_disentangle/blob/HEAD/causalvae.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":"1927ecd6d552be0d"}},{"code_sha256_prefix":"eff5a7e656a0ee07","entry":"kaiming_init","repo":"xliu1231/causal_disentangle","repo_kind":"official","path":"causalvae.py","file_url":"https://github.com/xliu1231/causal_disentangle/blob/HEAD/causalvae.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":"eff5a7e656a0ee07"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}