{"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/a-game-theoretic-approach-to-class-wise","title":"A Game Theoretic Approach to Class-wise Selective Rationalization","arxiv_id":"1910.12853","date":"2019-10-28","proceeding":"NeurIPS 2019 12","authors":["Shiyu Chang","Yang Zhang","Mo Yu","Tommi S. Jaakkola"],"abstract":"Selection of input features such as relevant pieces of text has become a common technique of highlighting how complex neural predictors operate. The selection can be optimized post-hoc for trained models or incorporated directly into the method itself (self-explaining). However, an overall selection does not properly capture the multi-faceted nature of useful rationales such as pros and cons for decisions. To this end, we propose a new game theoretic approach to class-dependent rationalization, where the method is specifically trained to highlight evidence supporting alternative conclusions. Each class involves three players set up competitively to find evidence for factual and counterfactual scenarios. We show theoretically in a simplified scenario how the game drives the solution towards meaningful class-dependent rationales. We evaluate the method in single- and multi-aspect sentiment classification tasks and demonstrate that the proposed method is able to identify both factual (justifying the ground truth label) and counterfactual (countering the ground truth label) rationales consistent with human rationalization. The code for our method is publicly available.","url_abs":"https://arxiv.org/abs/1910.12853v1","url_pdf":"https://arxiv.org/pdf/1910.12853v1.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":"a-game-theoretic-approach-to-class-wise","repo_url":"https://github.com/code-terminator/classwise_rationale","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"sentiment-analysis","task_name":"Sentiment Analysis"},{"task_slug":"sentiment-classification","task_name":"Sentiment Classification"},{"task_slug":null,"task_name":"counterfactual"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1910.12853","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1910.12853"}},"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/classwise_rationale","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":9},"by_repo_kind":{"official":{"samples":9,"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":"d51408db9fe03765","entry":"compute_accuracy","repo":"code-terminator/classwise_rationale","repo_kind":"official","path":"core/metric.py","file_url":"https://github.com/code-terminator/classwise_rationale/blob/HEAD/core/metric.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":"d51408db9fe03765"}},{"code_sha256_prefix":"8a5023e52b3d6ec4","entry":"convert_examples_to_np_arrays","repo":"code-terminator/classwise_rationale","repo_kind":"official","path":"core/dataset.py","file_url":"https://github.com/code-terminator/classwise_rationale/blob/HEAD/core/dataset.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":"8a5023e52b3d6ec4"}},{"code_sha256_prefix":"1e043afa08ce8df4","entry":"convert_single_text","repo":"code-terminator/classwise_rationale","repo_kind":"official","path":"core/dataset.py","file_url":"https://github.com/code-terminator/classwise_rationale/blob/HEAD/core/dataset.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":"1e043afa08ce8df4"}},{"code_sha256_prefix":"f51cebce245437f5","entry":"gen_nl_loss","repo":"code-terminator/classwise_rationale","repo_kind":"official","path":"core/train_utils.py","file_url":"https://github.com/code-terminator/classwise_rationale/blob/HEAD/core/train_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":"f51cebce245437f5"}},{"code_sha256_prefix":"8c5c1b7e7a15baee","entry":"get_beer_annotation","repo":"code-terminator/classwise_rationale","repo_kind":"official","path":"core/beer.py","file_url":"https://github.com/code-terminator/classwise_rationale/blob/HEAD/core/beer.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":"8c5c1b7e7a15baee"}},{"code_sha256_prefix":"a7eb8a5f953da68c","entry":"get_continuity_loss","repo":"code-terminator/classwise_rationale","repo_kind":"official","path":"core/metric.py","file_url":"https://github.com/code-terminator/classwise_rationale/blob/HEAD/core/metric.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":"a7eb8a5f953da68c"}},{"code_sha256_prefix":"050a2b4050a56bde","entry":"get_pretained_glove","repo":"code-terminator/classwise_rationale","repo_kind":"official","path":"core/language.py","file_url":"https://github.com/code-terminator/classwise_rationale/blob/HEAD/core/language.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":"050a2b4050a56bde"}},{"code_sha256_prefix":"87d2f2d85e666498","entry":"get_sparsity_loss","repo":"code-terminator/classwise_rationale","repo_kind":"official","path":"core/metric.py","file_url":"https://github.com/code-terminator/classwise_rationale/blob/HEAD/core/metric.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":"87d2f2d85e666498"}},{"code_sha256_prefix":"a4ccf5f8dcd94d12","entry":"str2bool","repo":"code-terminator/classwise_rationale","repo_kind":"official","path":"core/misc.py","file_url":"https://github.com/code-terminator/classwise_rationale/blob/HEAD/core/misc.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":"a4ccf5f8dcd94d12"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}