{"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/reframed-ges-with-a-neural-conditional","title":"Reframed GES with a Neural Conditional Dependence Measure","arxiv_id":"2206.08531","date":"2022-06-17","proceeding":null,"authors":["Xinwei Shen","Shengyu Zhu","Jiji Zhang","Shoubo Hu","Zhitang Chen"],"abstract":"In a nonparametric setting, the causal structure is often identifiable only up to Markov equivalence, and for the purpose of causal inference, it is useful to learn a graphical representation of the Markov equivalence class (MEC). In this paper, we revisit the Greedy Equivalence Search (GES) algorithm, which is widely cited as a score-based algorithm for learning the MEC of the underlying causal structure. We observe that in order to make the GES algorithm consistent in a nonparametric setting, it is not necessary to design a scoring metric that evaluates graphs. Instead, it suffices to plug in a consistent estimator of a measure of conditional dependence to guide the search. We therefore present a reframing of the GES algorithm, which is more flexible than the standard score-based version and readily lends itself to the nonparametric setting with a general measure of conditional dependence. In addition, we propose a neural conditional dependence (NCD) measure, which utilizes the expressive power of deep neural networks to characterize conditional independence in a nonparametric manner. We establish the optimality of the reframed GES algorithm under standard assumptions and the consistency of using our NCD estimator to decide conditional independence. Together these results justify the proposed approach. Experimental results demonstrate the effectiveness of our method in causal discovery, as well as the advantages of using our NCD measure over kernel-based measures.","url_abs":"https://arxiv.org/abs/2206.08531v1","url_pdf":"https://arxiv.org/pdf/2206.08531v1.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":"reframed-ges-with-a-neural-conditional","repo_url":"https://github.com/xwshen51/ges-ncd","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"causal-discovery","task_name":"Causal Discovery"},{"task_slug":"causal-inference","task_name":"Causal Inference"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2206.08531","atlas_url":"https://app.syntology.ai/?focus=2206.08531","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2206.08531"}},"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/xwshen51/ges-ncd","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":5,"unverified":2},"by_repo_kind":{"official":{"samples":7,"ran":5,"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":"07bf2723754f8d54","entry":"cc_square","repo":"xwshen51/ges-ncd","repo_kind":"official","path":"ncd.py","file_url":"https://github.com/xwshen51/ges-ncd/blob/HEAD/ncd.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"07bf2723754f8d54"}},{"code_sha256_prefix":"249f1e1b4c629472","entry":"get_ancestors","repo":"xwshen51/ges-ncd","repo_kind":"official","path":"graph_util.py","file_url":"https://github.com/xwshen51/ges-ncd/blob/HEAD/graph_util.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"249f1e1b4c629472"}},{"code_sha256_prefix":"c7002063c4889df3","entry":"get_parents","repo":"xwshen51/ges-ncd","repo_kind":"official","path":"graph_util.py","file_url":"https://github.com/xwshen51/ges-ncd/blob/HEAD/graph_util.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c7002063c4889df3"}},{"code_sha256_prefix":"408111e4bdaf6c7e","entry":"has_undir_edge","repo":"xwshen51/ges-ncd","repo_kind":"official","path":"graph_util.py","file_url":"https://github.com/xwshen51/ges-ncd/blob/HEAD/graph_util.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"408111e4bdaf6c7e"}},{"code_sha256_prefix":"23ce00acbf5ee70c","entry":"snlinear","repo":"xwshen51/ges-ncd","repo_kind":"official","path":"models.py","file_url":"https://github.com/xwshen51/ges-ncd/blob/HEAD/models.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"23ce00acbf5ee70c"}},{"code_sha256_prefix":"72a3ef8edcec8fcc","entry":"dagFromPatternWithColliders","repo":"xwshen51/ges-ncd","repo_kind":"official","path":"search_util.py","file_url":"https://github.com/xwshen51/ges-ncd/blob/HEAD/search_util.py","link_basis":"harvester_set","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":"72a3ef8edcec8fcc"}},{"code_sha256_prefix":"59563686482cb419","entry":"get_undir_edge","repo":"xwshen51/ges-ncd","repo_kind":"official","path":"search_util.py","file_url":"https://github.com/xwshen51/ges-ncd/blob/HEAD/search_util.py","link_basis":"harvester_set","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":"59563686482cb419"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}