{"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/rationalizing-text-matching-learning-sparse","title":"Rationalizing Text Matching: Learning Sparse Alignments via Optimal Transport","arxiv_id":"2005.13111","date":"2020-05-27","proceeding":"ACL 2020 6","authors":["Kyle Swanson","Lili Yu","Tao Lei"],"abstract":"Selecting input features of top relevance has become a popular method for building self-explaining models. In this work, we extend this selective rationalization approach to text matching, where the goal is to jointly select and align text pieces, such as tokens or sentences, as a justification for the downstream prediction. Our approach employs optimal transport (OT) to find a minimal cost alignment between the inputs. However, directly applying OT often produces dense and therefore uninterpretable alignments. To overcome this limitation, we introduce novel constrained variants of the OT problem that result in highly sparse alignments with controllable sparsity. Our model is end-to-end differentiable using the Sinkhorn algorithm for OT and can be trained without any alignment annotations. We evaluate our model on the StackExchange, MultiNews, e-SNLI, and MultiRC datasets. Our model achieves very sparse rationale selections with high fidelity while preserving prediction accuracy compared to strong attention baseline models.","url_abs":"https://arxiv.org/abs/2005.13111v1","url_pdf":"https://arxiv.org/pdf/2005.13111v1.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":"rationalizing-text-matching-learning-sparse","repo_url":"https://github.com/asappresearch/rationale-alignment","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"text-matching","task_name":"Text Matching"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2005.13111","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2005.13111"}},"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/asappresearch/rationale-alignment","reach":null}],"summary":{"ran_fixture":2,"ran_draft_wrong":2},"by_repo_kind":{"official":{"samples":4,"ran":4,"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":"0ce59eaf7b896853","entry":"bmv","repo":"asappresearch/rationale-alignment","repo_kind":"official","path":"sinkhorn/sinkhorn.py","file_url":"https://github.com/asappresearch/rationale-alignment/blob/HEAD/sinkhorn/sinkhorn.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0ce59eaf7b896853"}},{"code_sha256_prefix":"fcbefbb7e4928ae5","entry":"compute_masks","repo":"asappresearch/rationale-alignment","repo_kind":"official","path":"sinkhorn/sinkhorn.py","file_url":"https://github.com/asappresearch/rationale-alignment/blob/HEAD/sinkhorn/sinkhorn.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fcbefbb7e4928ae5"}},{"code_sha256_prefix":"981f258607ac4ba8","entry":"mask_log","repo":"asappresearch/rationale-alignment","repo_kind":"official","path":"sinkhorn/sinkhorn.py","file_url":"https://github.com/asappresearch/rationale-alignment/blob/HEAD/sinkhorn/sinkhorn.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"981f258607ac4ba8"}},{"code_sha256_prefix":"8df4c2374ea066b4","entry":"sinkhorn","repo":"asappresearch/rationale-alignment","repo_kind":"official","path":"sinkhorn/sinkhorn.py","file_url":"https://github.com/asappresearch/rationale-alignment/blob/HEAD/sinkhorn/sinkhorn.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8df4c2374ea066b4"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}