{"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/summarization-programs-interpretable","title":"Summarization Programs: Interpretable Abstractive Summarization with Neural Modular Trees","arxiv_id":"2209.10492","date":"2022-09-21","proceeding":null,"authors":["Swarnadeep Saha","Shiyue Zhang","Peter Hase","Mohit Bansal"],"abstract":"Current abstractive summarization models either suffer from a lack of clear interpretability or provide incomplete rationales by only highlighting parts of the source document. To this end, we propose the Summarization Program (SP), an interpretable modular framework consisting of an (ordered) list of binary trees, each encoding the step-by-step generative process of an abstractive summary sentence from the source document. A Summarization Program contains one root node per summary sentence, and a distinct tree connects each summary sentence (root node) to the document sentences (leaf nodes) from which it is derived, with the connecting nodes containing intermediate generated sentences. Edges represent different modular operations involved in summarization such as sentence fusion, compression, and paraphrasing. We first propose an efficient best-first search method over neural modules, SP-Search that identifies SPs for human summaries by directly optimizing for ROUGE scores. Next, using these programs as automatic supervision, we propose seq2seq models that generate Summarization Programs, which are then executed to obtain final summaries. We demonstrate that SP-Search effectively represents the generative process behind human summaries using modules that are typically faithful to their intended behavior. We also conduct a simulation study to show that Summarization Programs improve the interpretability of summarization models by allowing humans to better simulate model reasoning. Summarization Programs constitute a promising step toward interpretable and modular abstractive summarization, a complex task previously addressed primarily through blackbox end-to-end neural systems. Supporting code available at https://github.com/swarnaHub/SummarizationPrograms","url_abs":"https://arxiv.org/abs/2209.10492v2","url_pdf":"https://arxiv.org/pdf/2209.10492v2.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":"summarization-programs-interpretable","repo_url":"https://github.com/swarnahub/summarizationprograms","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"abstractive-text-summarization","task_name":"Abstractive Text Summarization"},{"task_slug":"sentence","task_name":"Sentence"},{"task_slug":"sentence-fusion","task_name":"Sentence Fusion"}],"methods":[{"method_slug":"lstm","method_name":"LSTM"},{"method_slug":"sps-1","method_name":"SPS"},{"method_slug":"seq2seq","method_name":"Seq2Seq"},{"method_slug":"sigmoid-activation","method_name":"Sigmoid Activation"},{"method_slug":"tanh-activation","method_name":"Tanh Activation"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2209.10492","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2209.10492"}},"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/swarnahub/summarizationprograms","reach":null}],"summary":{"ran":1,"ran_draft_wrong":2,"unverified":1},"by_repo_kind":{"official":{"samples":4,"ran":3,"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":"60b1b4b986a79c52","entry":"Tree","repo":"swarnahub/summarizationprograms","repo_kind":"official","path":"sp_search/summarization_program.py","file_url":"https://github.com/swarnahub/summarizationprograms/blob/HEAD/sp_search/summarization_program.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":"60b1b4b986a79c52"}},{"code_sha256_prefix":"20d0657b6f445c9b","entry":"get_program_with_leaves","repo":"swarnahub/summarizationprograms","repo_kind":"official","path":"sp_model/execute_sp.py","file_url":"https://github.com/swarnahub/summarizationprograms/blob/HEAD/sp_model/execute_sp.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"20d0657b6f445c9b"}},{"code_sha256_prefix":"9bf98aed5454ee33","entry":"get_source_documents_and_gold_summaries","repo":"swarnahub/summarizationprograms","repo_kind":"official","path":"sp_model/execute_sp.py","file_url":"https://github.com/swarnahub/summarizationprograms/blob/HEAD/sp_model/execute_sp.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9bf98aed5454ee33"}},{"code_sha256_prefix":"d8b51bde793d9b55","entry":"execute_operation","repo":"swarnahub/summarizationprograms","repo_kind":"official","path":"sp_model/execute_sp.py","file_url":"https://github.com/swarnahub/summarizationprograms/blob/HEAD/sp_model/execute_sp.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":"d8b51bde793d9b55"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}