{"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/teaching-machine-comprehension-with","title":"Teaching Machine Comprehension with Compositional Explanations","arxiv_id":"2005.00806","date":"2020-05-02","proceeding":"Findings of the Association for Computational Linguistics 2020","authors":["Qinyuan Ye","Xiao Huang","Elizabeth Boschee","Xiang Ren"],"abstract":"Advances in machine reading comprehension (MRC) rely heavily on the collection of large scale human-annotated examples in the form of (question, paragraph, answer) triples. In contrast, humans are typically able to generalize with only a few examples, relying on deeper underlying world knowledge, linguistic sophistication, and/or simply superior deductive powers. In this paper, we focus on \"teaching\" machines reading comprehension, using a small number of semi-structured explanations that explicitly inform machines why answer spans are correct. We extract structured variables and rules from explanations and compose neural module teachers that annotate instances for training downstream MRC models. We use learnable neural modules and soft logic to handle linguistic variation and overcome sparse coverage; the modules are jointly optimized with the MRC model to improve final performance. On the SQuAD dataset, our proposed method achieves 70.14% F1 score with supervision from 26 explanations, comparable to plain supervised learning using 1,100 labeled instances, yielding a 12x speed up.","url_abs":"https://arxiv.org/abs/2005.00806v3","url_pdf":"https://arxiv.org/pdf/2005.00806v3.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":"teaching-machine-comprehension-with","repo_url":"https://github.com/INK-USC/mrc-explanation","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"teaching-machine-comprehension-with","repo_url":"https://github.com/INK-USC/nl-explanation","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"data-augmentation","task_name":"Data Augmentation"},{"task_slug":"machine-reading-comprehension","task_name":"Machine Reading Comprehension"},{"task_slug":"reading-comprehension","task_name":"Reading Comprehension"},{"task_slug":"world-knowledge","task_name":"World Knowledge"}],"methods":[{"method_slug":"speed","method_name":"SPEED"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2005.00806","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2005.00806"}},"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/INK-USC/nl-explanation","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/INK-USC/mrc-explanation","reach":null}],"summary":{"ran":1,"ran_fixture":1,"ran_draft_wrong":3,"ran_honours":4,"ran_violates":1},"by_repo_kind":{"official":{"samples":9,"ran":9,"repositories":2}},"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":10,"samples":[{"code_sha256_prefix":"db9dff06388f701c","entry":"Occurrence","repo":"INK-USC/mrc-explanation","repo_kind":"official","path":"module/modules.py","file_url":"https://github.com/INK-USC/mrc-explanation/blob/HEAD/module/modules.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"db9dff06388f701c"}},{"code_sha256_prefix":"d9f13dc05f7e1bb0","entry":"_and","repo":"INK-USC/nl-explanation","repo_kind":"official","path":"module/modules.py","file_url":"https://github.com/INK-USC/nl-explanation/blob/HEAD/module/modules.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d9f13dc05f7e1bb0"}},{"code_sha256_prefix":"a33c4f77cdf2cc58","entry":"find","repo":"INK-USC/mrc-explanation","repo_kind":"official","path":"module/modules.py","file_url":"https://github.com/INK-USC/mrc-explanation/blob/HEAD/module/modules.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a33c4f77cdf2cc58"}},{"code_sha256_prefix":"a3b5708ff6975fb3","entry":"get_st_ed","repo":"INK-USC/mrc-explanation","repo_kind":"official","path":"module/modules.py","file_url":"https://github.com/INK-USC/mrc-explanation/blob/HEAD/module/modules.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a3b5708ff6975fb3"}},{"code_sha256_prefix":"6a96435eba311b08","entry":"normalize_answer","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"6a96435eba311b08"}},{"code_sha256_prefix":"0fb83ac29ef90e19","entry":"remove_repeated","repo":"INK-USC/mrc-explanation","repo_kind":"official","path":"module/modules.py","file_url":"https://github.com/INK-USC/mrc-explanation/blob/HEAD/module/modules.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0fb83ac29ef90e19"}},{"code_sha256_prefix":"828af04bf6b3de78","entry":"root","repo":"INK-USC/nl-explanation","repo_kind":"official","path":"module/modules.py","file_url":"https://github.com/INK-USC/nl-explanation/blob/HEAD/module/modules.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"828af04bf6b3de78"}},{"code_sha256_prefix":"12a347dd24e25948","entry":"softened_string_eq","repo":"INK-USC/mrc-explanation","repo_kind":"official","path":"module/modules.py","file_url":"https://github.com/INK-USC/mrc-explanation/blob/HEAD/module/modules.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"12a347dd24e25948"}},{"code_sha256_prefix":"5405b2997338abd0","entry":"to_tensor","repo":"INK-USC/nl-explanation","repo_kind":"official","path":"module/modules.py","file_url":"https://github.com/INK-USC/nl-explanation/blob/HEAD/module/modules.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5405b2997338abd0"}},{"code_sha256_prefix":"2391c1cafa690f61","entry":"tuple_fy","repo":"INK-USC/nl-explanation","repo_kind":"official","path":"module/modules.py","file_url":"https://github.com/INK-USC/nl-explanation/blob/HEAD/module/modules.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2391c1cafa690f61"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}