{"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/invariant-rationalization","title":"Invariant Rationalization","arxiv_id":"2003.09772","date":"2020-03-22","proceeding":"ICML 2020 1","authors":["Shiyu Chang","Yang Zhang","Mo Yu","Tommi S. Jaakkola"],"abstract":"Selective rationalization improves neural network interpretability by identifying a small subset of input features -- the rationale -- that best explains or supports the prediction. A typical rationalization criterion, i.e. maximum mutual information (MMI), finds the rationale that maximizes the prediction performance based only on the rationale. However, MMI can be problematic because it picks up spurious correlations between the input features and the output. Instead, we introduce a game-theoretic invariant rationalization criterion where the rationales are constrained to enable the same predictor to be optimal across different environments. We show both theoretically and empirically that the proposed rationales can rule out spurious correlations, generalize better to different test scenarios, and align better with human judgments. Our data and code are available.","url_abs":"https://arxiv.org/abs/2003.09772v1","url_pdf":"https://arxiv.org/pdf/2003.09772v1.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":"invariant-rationalization","repo_url":"https://github.com/code-terminator/invariant_rationalization","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[{"method_slug":"interpretability","method_name":"Interpretability"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2003.09772","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2003.09772"}},"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/code-terminator/invariant_rationalization","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":7},"by_repo_kind":{"official":{"samples":7,"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":"220f57665aeb4c5d","entry":"cal_sparsity_loss","repo":"code-terminator/invariant_rationalization","repo_kind":"official","path":"utils.py","file_url":"https://github.com/code-terminator/invariant_rationalization/blob/HEAD/utils.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":"220f57665aeb4c5d"}},{"code_sha256_prefix":"5049398bdcfb5fa7","entry":"convert_to_unicode","repo":"code-terminator/invariant_rationalization","repo_kind":"official","path":"imdb.py","file_url":"https://github.com/code-terminator/invariant_rationalization/blob/HEAD/imdb.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":"5049398bdcfb5fa7"}},{"code_sha256_prefix":"c7fb71ec3b394233","entry":"get_examples","repo":"code-terminator/invariant_rationalization","repo_kind":"official","path":"imdb.py","file_url":"https://github.com/code-terminator/invariant_rationalization/blob/HEAD/imdb.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":"c7fb71ec3b394233"}},{"code_sha256_prefix":"576d1c720f9ede99","entry":"get_pretained_glove","repo":"code-terminator/invariant_rationalization","repo_kind":"official","path":"utils.py","file_url":"https://github.com/code-terminator/invariant_rationalization/blob/HEAD/utils.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":"576d1c720f9ede99"}},{"code_sha256_prefix":"4be42a943159ac43","entry":"inv_rat_loss","repo":"code-terminator/invariant_rationalization","repo_kind":"official","path":"utils.py","file_url":"https://github.com/code-terminator/invariant_rationalization/blob/HEAD/utils.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":"4be42a943159ac43"}},{"code_sha256_prefix":"9f51682cf7d451e3","entry":"test_imdb","repo":"code-terminator/invariant_rationalization","repo_kind":"official","path":"evaluate.py","file_url":"https://github.com/code-terminator/invariant_rationalization/blob/HEAD/evaluate.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":"9f51682cf7d451e3"}},{"code_sha256_prefix":"a765c039d9e2dd90","entry":"text2idx","repo":"code-terminator/invariant_rationalization","repo_kind":"official","path":"imdb.py","file_url":"https://github.com/code-terminator/invariant_rationalization/blob/HEAD/imdb.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":"a765c039d9e2dd90"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}