{"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/d-separation-for-causal-self-explanation-1","title":"D-Separation for Causal Self-Explanation","arxiv_id":"2309.13391","date":"2023-09-23","proceeding":"NeurIPS 2023 11","authors":["Wei Liu","Jun Wang","Haozhao Wang","Ruixuan Li","Zhiying Deng","Yuankai Zhang","Yang Qiu"],"abstract":"Rationalization is a self-explaining framework for NLP models. Conventional work typically uses the maximum mutual information (MMI) criterion to find the rationale that is most indicative of the target label. However, this criterion can be influenced by spurious features that correlate with the causal rationale or the target label. Instead of attempting to rectify the issues of the MMI criterion, we propose a novel criterion to uncover the causal rationale, termed the Minimum Conditional Dependence (MCD) criterion, which is grounded on our finding that the non-causal features and the target label are \\emph{d-separated} by the causal rationale. By minimizing the dependence between the unselected parts of the input and the target label conditioned on the selected rationale candidate, all the causes of the label are compelled to be selected. In this study, we employ a simple and practical measure of dependence, specifically the KL-divergence, to validate our proposed MCD criterion. Empirically, we demonstrate that MCD improves the F1 score by up to $13.7\\%$ compared to previous state-of-the-art MMI-based methods. Our code is available at: \\url{https://github.com/jugechengzi/Rationalization-MCD}.","url_abs":"https://arxiv.org/abs/2309.13391v2","url_pdf":"https://arxiv.org/pdf/2309.13391v2.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":"d-separation-for-causal-self-explanation-1","repo_url":"https://github.com/jugechengzi/rationalization-mcd","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2309.13391","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2309.13391"}},"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":"deterministic:regex_extraction","url":"https://github.com/jugechengzi/Rationalization-MCD","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/jugechengzi/rationalization-mcd","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":6,"ran_honours":1,"ran_violates":1,"unverified":1},"by_repo_kind":{"official":{"samples":9,"ran":8,"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":"95bc2ea2126b7bf5","entry":"JS_DIV","repo":"jugechengzi/rationalization-mcd","repo_kind":"official","path":"train_util.py","file_url":"https://github.com/jugechengzi/rationalization-mcd/blob/HEAD/train_util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"95bc2ea2126b7bf5"}},{"code_sha256_prefix":"91596484f00a8c53","entry":"classfy","repo":"jugechengzi/Rationalization-MCD","repo_kind":"official","path":"train_util.py","file_url":"https://github.com/jugechengzi/Rationalization-MCD/blob/HEAD/train_util.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":"91596484f00a8c53"}},{"code_sha256_prefix":"560b7aab59832a78","entry":"compute_micro_stats","repo":"jugechengzi/Rationalization-MCD","repo_kind":"official","path":"metric.py","file_url":"https://github.com/jugechengzi/Rationalization-MCD/blob/HEAD/metric.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":"560b7aab59832a78"}},{"code_sha256_prefix":"c92373379a9ed7e6","entry":"get_continuity_loss","repo":"jugechengzi/rationalization-mcd","repo_kind":"official","path":"train_util.py","file_url":"https://github.com/jugechengzi/rationalization-mcd/blob/HEAD/train_util.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c92373379a9ed7e6"}},{"code_sha256_prefix":"a7fd4428a7a26977","entry":"get_embeddings","repo":"jugechengzi/Rationalization-MCD","repo_kind":"official","path":"embedding.py","file_url":"https://github.com/jugechengzi/Rationalization-MCD/blob/HEAD/embedding.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":"a7fd4428a7a26977"}},{"code_sha256_prefix":"f5f0244064d12e86","entry":"get_glove_embedding","repo":"jugechengzi/Rationalization-MCD","repo_kind":"official","path":"embedding.py","file_url":"https://github.com/jugechengzi/Rationalization-MCD/blob/HEAD/embedding.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":"f5f0244064d12e86"}},{"code_sha256_prefix":"7d30b2c623f59a22","entry":"get_sparsity_loss","repo":"jugechengzi/rationalization-mcd","repo_kind":"official","path":"train_util.py","file_url":"https://github.com/jugechengzi/rationalization-mcd/blob/HEAD/train_util.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7d30b2c623f59a22"}},{"code_sha256_prefix":"abebc5f76021fd0c","entry":"train_g_skew","repo":"jugechengzi/Rationalization-MCD","repo_kind":"official","path":"train_util.py","file_url":"https://github.com/jugechengzi/Rationalization-MCD/blob/HEAD/train_util.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":"abebc5f76021fd0c"}},{"code_sha256_prefix":"1bffa447ebd10da9","entry":"train_decouple_causal2","repo":"jugechengzi/rationalization-mcd","repo_kind":"official","path":"train_util.py","file_url":"https://github.com/jugechengzi/rationalization-mcd/blob/HEAD/train_util.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":"1bffa447ebd10da9"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}