{"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/metgen-a-module-based-entailment-tree","title":"METGEN: A Module-Based Entailment Tree Generation Framework for Answer Explanation","arxiv_id":"2205.02593","date":"2022-05-05","proceeding":"Findings (NAACL) 2022 7","authors":["Ruixin Hong","Hongming Zhang","Xintong Yu","ChangShui Zhang"],"abstract":"Knowing the reasoning chains from knowledge to the predicted answers can help construct an explainable question answering (QA) system. Advances on QA explanation propose to explain the answers with entailment trees composed of multiple entailment steps. While current work proposes to generate entailment trees with end-to-end generative models, the steps in the generated trees are not constrained and could be unreliable. In this paper, we propose METGEN, a Module-based Entailment Tree GENeration framework that has multiple modules and a reasoning controller. Given a question and several supporting knowledge, METGEN can iteratively generate the entailment tree by conducting single-step entailment with separate modules and selecting the reasoning flow with the controller. As each module is guided to perform a specific type of entailment reasoning, the steps generated by METGEN are more reliable and valid. Experiment results on the standard benchmark show that METGEN can outperform previous state-of-the-art models with only 9% of the parameters.","url_abs":"https://arxiv.org/abs/2205.02593v1","url_pdf":"https://arxiv.org/pdf/2205.02593v1.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":"metgen-a-module-based-entailment-tree","repo_url":"https://github.com/Raising-hrx/MetGen","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"metgen-a-module-based-entailment-tree","repo_url":"https://github.com/2023-MindSpore-1/ms-code-145","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"mindspore","reach":{"status":"ok"}},{"paper_slug":"metgen-a-module-based-entailment-tree","repo_url":"https://github.com/tencent-ailab/metalogic","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"question-answering","task_name":"Question Answering"},{"task_slug":null,"task_name":"valid"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2205.02593","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2205.02593"}},"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/Raising-hrx/MetGen","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/2023-MindSpore-1/ms-code-145","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/tencent-ailab/metalogic","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":15},"by_repo_kind":{"official":{"samples":2,"ran":0,"repositories":1},"listed":{"samples":13,"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":"beba7770688234ee","entry":"add_prefix","repo":"tencent-ailab/metalogic","repo_kind":"listed","path":"code/MultitaskGenerator.py","file_url":"https://github.com/tencent-ailab/metalogic/blob/HEAD/code/MultitaskGenerator.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":"beba7770688234ee"}},{"code_sha256_prefix":"5eec4de27f0a807e","entry":"average_metric","repo":"tencent-ailab/metalogic","repo_kind":"listed","path":"code/evaluate_metric.py","file_url":"https://github.com/tencent-ailab/metalogic/blob/HEAD/code/evaluate_metric.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":"5eec4de27f0a807e"}},{"code_sha256_prefix":"6724ecbf0decf84e","entry":"compute_f1","repo":"tencent-ailab/metalogic","repo_kind":"listed","path":"code/evaluate_metric.py","file_url":"https://github.com/tencent-ailab/metalogic/blob/HEAD/code/evaluate_metric.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":"6724ecbf0decf84e"}},{"code_sha256_prefix":"2e5c0702c50628ea","entry":"compute_ppl","repo":"tencent-ailab/metalogic","repo_kind":"listed","path":"code/inference.py","file_url":"https://github.com/tencent-ailab/metalogic/blob/HEAD/code/inference.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":"2e5c0702c50628ea"}},{"code_sha256_prefix":"afa489d8ecd9a6b0","entry":"div","repo":"tencent-ailab/metalogic","repo_kind":"listed","path":"code/evaluate_metric.py","file_url":"https://github.com/tencent-ailab/metalogic/blob/HEAD/code/evaluate_metric.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":"afa489d8ecd9a6b0"}},{"code_sha256_prefix":"b9f140e483016d14","entry":"eval_triples_by_operator","repo":"tencent-ailab/metalogic","repo_kind":"listed","path":"code/show_results.py","file_url":"https://github.com/tencent-ailab/metalogic/blob/HEAD/code/show_results.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":"b9f140e483016d14"}},{"code_sha256_prefix":"b8079af0c4132e0a","entry":"inference_alltype_batch","repo":"Raising-hrx/MetGen","repo_kind":"official","path":"code/reasoning.py","file_url":"https://github.com/Raising-hrx/MetGen/blob/HEAD/code/reasoning.py","link_basis":"first_harvest_node","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":"b8079af0c4132e0a"}},{"code_sha256_prefix":"bb8883844e1d86f0","entry":"load_model","repo":"tencent-ailab/metalogic","repo_kind":"listed","path":"code/inference.py","file_url":"https://github.com/tencent-ailab/metalogic/blob/HEAD/code/inference.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":"bb8883844e1d86f0"}},{"code_sha256_prefix":"cd4093a904b501e5","entry":"model_inference","repo":"tencent-ailab/metalogic","repo_kind":"listed","path":"code/inference.py","file_url":"https://github.com/tencent-ailab/metalogic/blob/HEAD/code/inference.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":"cd4093a904b501e5"}},{"code_sha256_prefix":"00efe99655a93027","entry":"module_generate","repo":"Raising-hrx/MetGen","repo_kind":"official","path":"code/reasoning.py","file_url":"https://github.com/Raising-hrx/MetGen/blob/HEAD/code/reasoning.py","link_basis":"first_harvest_node","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":"00efe99655a93027"}},{"code_sha256_prefix":"136e8658ff8e991a","entry":"preprocess_raw_data","repo":"tencent-ailab/metalogic","repo_kind":"listed","path":"code/tree_utils.py","file_url":"https://github.com/tencent-ailab/metalogic/blob/HEAD/code/tree_utils.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":"136e8658ff8e991a"}},{"code_sha256_prefix":"085a151d0f4302bb","entry":"remove_given_tokens","repo":"tencent-ailab/metalogic","repo_kind":"listed","path":"code/tree_utils.py","file_url":"https://github.com/tencent-ailab/metalogic/blob/HEAD/code/tree_utils.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":"085a151d0f4302bb"}},{"code_sha256_prefix":"fa555ae62592ef54","entry":"results_three_components","repo":"tencent-ailab/metalogic","repo_kind":"listed","path":"code/show_results.py","file_url":"https://github.com/tencent-ailab/metalogic/blob/HEAD/code/show_results.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":"fa555ae62592ef54"}},{"code_sha256_prefix":"eadaf1fa3927a98e","entry":"train_one_step","repo":"tencent-ailab/metalogic","repo_kind":"listed","path":"code/ModuleGenerator.py","file_url":"https://github.com/tencent-ailab/metalogic/blob/HEAD/code/ModuleGenerator.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":"eadaf1fa3927a98e"}},{"code_sha256_prefix":"95f196e28e3cebb0","entry":"transform_by_dict","repo":"tencent-ailab/metalogic","repo_kind":"listed","path":"code/tree_utils.py","file_url":"https://github.com/tencent-ailab/metalogic/blob/HEAD/code/tree_utils.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":"95f196e28e3cebb0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}