{"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/i-prefer-not-to-say-operationalizing-fair-and","title":"I Prefer not to Say: Protecting User Consent in Models with Optional Personal Data","arxiv_id":"2210.13954","date":"2022-10-25","proceeding":null,"authors":["Tobias Leemann","Martin Pawelczyk","Christian Thomas Eberle","Gjergji Kasneci"],"abstract":"We examine machine learning models in a setup where individuals have the choice to share optional personal information with a decision-making system, as seen in modern insurance pricing models. Some users consent to their data being used whereas others object and keep their data undisclosed. In this work, we show that the decision not to share data can be considered as information in itself that should be protected to respect users' privacy. This observation raises the overlooked problem of how to ensure that users who protect their personal data do not suffer any disadvantages as a result. To address this problem, we formalize protection requirements for models which only use the information for which active user consent was obtained. This excludes implicit information contained in the decision to share data or not. We offer the first solution to this problem by proposing the notion of Protected User Consent (PUC), which we prove to be loss-optimal under our protection requirement. We observe that privacy and performance are not fundamentally at odds with each other and that it is possible for a decision maker to benefit from additional data while respecting users' consent. To learn PUC-compliant models, we devise a model-agnostic data augmentation strategy with finite sample convergence guarantees. Finally, we analyze the implications of PUC on challenging real datasets, tasks, and models.","url_abs":"https://arxiv.org/abs/2210.13954v5","url_pdf":"https://arxiv.org/pdf/2210.13954v5.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":"i-prefer-not-to-say-operationalizing-fair-and","repo_url":"https://github.com/tleemann/protectedconsent","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":null}],"tasks":[{"task_slug":"data-augmentation","task_name":"Data Augmentation"},{"task_slug":"decision-making","task_name":"Decision Making"},{"task_slug":"fairness","task_name":"Fairness"}],"methods":[{"method_slug":"logistic-regression","method_name":"Logistic Regression"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2210.13954","atlas_url":"https://app.syntology.ai/?focus=2210.13954","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2210.13954"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/tleemann/protectedconsent","reach":null}],"summary":{"ran_honours":1,"unverified":4},"by_repo_kind":{"official":{"samples":5,"ran":1,"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":5,"samples":[{"code_sha256_prefix":"9a32625b50819bfe","entry":"id","repo":"tleemann/protectedconsent","repo_kind":"official","path":"experiments/experiment1.py","file_url":"https://github.com/tleemann/protectedconsent/blob/HEAD/experiments/experiment1.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9a32625b50819bfe"}},{"code_sha256_prefix":"339e382ec9211de1","entry":"abs_gap","repo":"tleemann/protectedconsent","repo_kind":"official","path":"experiments/experiment1.py","file_url":"https://github.com/tleemann/protectedconsent/blob/HEAD/experiments/experiment1.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"339e382ec9211de1"}},{"code_sha256_prefix":"71f62d6d5a20c92a","entry":"exhaustive_resampling","repo":"tleemann/protectedconsent","repo_kind":"official","path":"utils/pucida.py","file_url":"https://github.com/tleemann/protectedconsent/blob/HEAD/utils/pucida.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"71f62d6d5a20c92a"}},{"code_sha256_prefix":"db06c0a4ccb2cad0","entry":"mean_pred","repo":"tleemann/protectedconsent","repo_kind":"official","path":"experiments/experiment1.py","file_url":"https://github.com/tleemann/protectedconsent/blob/HEAD/experiments/experiment1.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"db06c0a4ccb2cad0"}},{"code_sha256_prefix":"4c8955824c8fbbc7","entry":"random_resampling","repo":"tleemann/protectedconsent","repo_kind":"official","path":"utils/pucida.py","file_url":"https://github.com/tleemann/protectedconsent/blob/HEAD/utils/pucida.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4c8955824c8fbbc7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}