{"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/synthesizing-action-sequences-for-modifying","title":"Synthesizing Action Sequences for Modifying Model Decisions","arxiv_id":"1910.00057","date":"2019-09-30","proceeding":null,"authors":["Goutham Ramakrishnan","Yun Chan Lee","Aws Albarghouthi"],"abstract":"When a model makes a consequential decision, e.g., denying someone a loan, it needs to additionally generate actionable, realistic feedback on what the person can do to favorably change the decision. We cast this problem through the lens of program synthesis, in which our goal is to synthesize an optimal (realistically cheapest or simplest) sequence of actions that if a person executes successfully can change their classification. We present a novel and general approach that combines search-based program synthesis and test-time adversarial attacks to construct action sequences over a domain-specific set of actions. We demonstrate the effectiveness of our approach on a number of deep neural networks.","url_abs":"https://arxiv.org/abs/1910.00057v3","url_pdf":"https://arxiv.org/pdf/1910.00057v3.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":"synthesizing-action-sequences-for-modifying","repo_url":"https://github.com/goutham7r/synth-action-seq","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"program-synthesis","task_name":"Program Synthesis"},{"task_slug":"model","task_name":"model"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1910.00057","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1910.00057"}},"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/goutham7r/synth-action-seq","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":7},"by_repo_kind":{"listed":{"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":"52cb82cdb010b836","entry":"get_ckpt_path","repo":"goutham7r/synth-action-seq","repo_kind":"listed","path":"common/paths.py","file_url":"https://github.com/goutham7r/synth-action-seq/blob/HEAD/common/paths.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":"52cb82cdb010b836"}},{"code_sha256_prefix":"4441115d171a4c7b","entry":"is_dupe","repo":"goutham7r/synth-action-seq","repo_kind":"listed","path":"heuristics/abs_gradient.py","file_url":"https://github.com/goutham7r/synth-action-seq/blob/HEAD/heuristics/abs_gradient.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":"4441115d171a4c7b"}},{"code_sha256_prefix":"e46b6836867e89a0","entry":"is_dupe","repo":"goutham7r/synth-action-seq","repo_kind":"listed","path":"heuristics/vanilla.py","file_url":"https://github.com/goutham7r/synth-action-seq/blob/HEAD/heuristics/vanilla.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":"e46b6836867e89a0"}},{"code_sha256_prefix":"b06138785fde8a7b","entry":"loader","repo":"goutham7r/synth-action-seq","repo_kind":"listed","path":"actions/feature.py","file_url":"https://github.com/goutham7r/synth-action-seq/blob/HEAD/actions/feature.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":"b06138785fde8a7b"}},{"code_sha256_prefix":"d1a047fc31649300","entry":"op_and","repo":"goutham7r/synth-action-seq","repo_kind":"listed","path":"actions/condition_ops.py","file_url":"https://github.com/goutham7r/synth-action-seq/blob/HEAD/actions/condition_ops.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":"d1a047fc31649300"}},{"code_sha256_prefix":"a338dd5f5c0c01a7","entry":"op_gt","repo":"goutham7r/synth-action-seq","repo_kind":"listed","path":"actions/condition_ops.py","file_url":"https://github.com/goutham7r/synth-action-seq/blob/HEAD/actions/condition_ops.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":"a338dd5f5c0c01a7"}},{"code_sha256_prefix":"73b47dad61ccdd7c","entry":"op_lt","repo":"goutham7r/synth-action-seq","repo_kind":"listed","path":"actions/condition_ops.py","file_url":"https://github.com/goutham7r/synth-action-seq/blob/HEAD/actions/condition_ops.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":"73b47dad61ccdd7c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}