{"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/measuring-compositional-generalization-a-1","title":"Measuring Compositional Generalization: A Comprehensive Method on Realistic Data","arxiv_id":"1912.09713","date":"2019-12-20","proceeding":"ICLR 2020 1","authors":["Daniel Keysers","Nathanael Schärli","Nathan Scales","Hylke Buisman","Daniel Furrer","Sergii Kashubin","Nikola Momchev","Danila Sinopalnikov","Lukasz Stafiniak","Tibor Tihon","Dmitry Tsarkov","Xiao Wang","Marc van Zee","Olivier Bousquet"],"abstract":"State-of-the-art machine learning methods exhibit limited compositional generalization. At the same time, there is a lack of realistic benchmarks that comprehensively measure this ability, which makes it challenging to find and evaluate improvements. We introduce a novel method to systematically construct such benchmarks by maximizing compound divergence while guaranteeing a small atom divergence between train and test sets, and we quantitatively compare this method to other approaches for creating compositional generalization benchmarks. We present a large and realistic natural language question answering dataset that is constructed according to this method, and we use it to analyze the compositional generalization ability of three machine learning architectures. We find that they fail to generalize compositionally and that there is a surprisingly strong negative correlation between compound divergence and accuracy. We also demonstrate how our method can be used to create new compositionality benchmarks on top of the existing SCAN dataset, which confirms these findings.","url_abs":"https://arxiv.org/abs/1912.09713v2","url_pdf":"https://arxiv.org/pdf/1912.09713v2.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":"measuring-compositional-generalization-a-1","repo_url":"https://github.com/google-research/google-research/tree/master/cfq","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"tf","reach":null},{"paper_slug":"measuring-compositional-generalization-a-1","repo_url":"https://github.com/ronentk/dbca-splitter","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"measuring-compositional-generalization-a-1","repo_url":"https://github.com/ziwang-klvk/cfq-rbmt","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"machine-learning","task_name":"BIG-bench Machine Learning"},{"task_slug":"question-answering","task_name":"Question Answering"},{"task_slug":"semantic-parsing","task_name":"Semantic Parsing"}],"methods":[{"method_slug":"test","method_name":"Test"}],"datasets_introduced":[{"slug":"cfq","name":"CFQ","full_name":"Compositional Freebase Questions"}],"methods_introduced":[],"results":[{"leaderboard":"/sota/semantic-parsing-on-cfq","task":"Semantic Parsing","dataset":"CFQ","model":"Universal Transformer","rank_in_archive_order":5,"of":5,"metrics":{"Exact Match":"18.9"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1912.09713","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1912.09713"}},"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/google-research/google-research/tree/master/cfq","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ziwang-klvk/cfq-rbmt","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ronentk/dbca-splitter","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":1},"by_repo_kind":{"listed":{"samples":1,"ran":0,"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":"3d29ff814d86ff7d","entry":"splitIO","repo":"ziwang-klvk/cfq-rbmt","repo_kind":"listed","path":"dataset_generator.py","file_url":"https://github.com/ziwang-klvk/cfq-rbmt/blob/HEAD/dataset_generator.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":"3d29ff814d86ff7d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}