{"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/ferrari-federated-feature-unlearning-via","title":"Ferrari: Federated Feature Unlearning via Optimizing Feature Sensitivity","arxiv_id":"2405.17462","date":"2024-05-23","proceeding":null,"authors":["Hanlin Gu","Win Kent Ong","Chee Seng Chan","Lixin Fan"],"abstract":"The advent of Federated Learning (FL) highlights the practical necessity for the right to be forgotten for all clients, allowing them to request data deletion from the machine learning models service provider. This necessity has spurred a growing demand for Federated Unlearning (FU). Feature unlearning has gained considerable attention due to its applications in unlearning sensitive, backdoor, and biased features. Existing methods employ the influence function to achieve feature unlearning, which is impractical for FL as it necessitates the participation of other clients, if not all, in the unlearning process. Furthermore, current research lacks an evaluation of the effectiveness of feature unlearning. To address these limitations, we define feature sensitivity in evaluating feature unlearning according to Lipschitz continuity. This metric characterizes the model outputs rate of change or sensitivity to perturbations in the input feature. We then propose an effective federated feature unlearning framework called Ferrari, which minimizes feature sensitivity. Extensive experimental results and theoretical analysis demonstrate the effectiveness of Ferrari across various feature unlearning scenarios, including sensitive, backdoor, and biased features. The code is publicly available at https://github.com/OngWinKent/Federated-Feature-Unlearning","url_abs":"https://arxiv.org/abs/2405.17462v4","url_pdf":"https://arxiv.org/pdf/2405.17462v4.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":"ferrari-federated-feature-unlearning-via","repo_url":"https://github.com/ongwinkent/federated-feature-unlearning","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[{"task_slug":"federated-learning","task_name":"Federated Learning"},{"task_slug":"sensitivity","task_name":"Sensitivity"}],"methods":[{"method_slug":null,"method_name":null}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2405.17462","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.17462"}},"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":"deterministic:regex_extraction","url":"https://github.com/OngWinKent/Federated-Feature-Unlearning","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ongwinkent/federated-feature-unlearning","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"ran":8,"ran_draft_wrong":1,"unverified":2},"by_repo_kind":{"official":{"samples":11,"ran":9,"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":11,"samples":[{"code_sha256_prefix":"64a2213afa5193d7","entry":"Lipschitz","repo":"ongwinkent/federated-feature-unlearning","repo_kind":"official","path":"unlearn_strategies/lipschitz_strategy.py","file_url":"https://github.com/ongwinkent/federated-feature-unlearning/blob/HEAD/unlearn_strategies/lipschitz_strategy.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"64a2213afa5193d7"}},{"code_sha256_prefix":"e8dbb156b1109cfa","entry":"accuracy","repo":"OngWinKent/Federated-Feature-Unlearning","repo_kind":"official","path":"datasets/metrics.py","file_url":"https://github.com/OngWinKent/Federated-Feature-Unlearning/blob/HEAD/datasets/metrics.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"e8dbb156b1109cfa"}},{"code_sha256_prefix":"61bbe1f47687d16e","entry":"diabetes","repo":"OngWinKent/Federated-Feature-Unlearning","repo_kind":"official","path":"datasets/tabular.py","file_url":"https://github.com/OngWinKent/Federated-Feature-Unlearning/blob/HEAD/datasets/tabular.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"61bbe1f47687d16e"}},{"code_sha256_prefix":"6a91d06927414689","entry":"gss","repo":"OngWinKent/Federated-Feature-Unlearning","repo_kind":"official","path":"datasets/tabular.py","file_url":"https://github.com/OngWinKent/Federated-Feature-Unlearning/blob/HEAD/datasets/tabular.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"6a91d06927414689"}},{"code_sha256_prefix":"4fa117d5dab1b877","entry":"lipschitz_unlearning","repo":"ongwinkent/federated-feature-unlearning","repo_kind":"official","path":"unlearn_strategies/lipschitz_strategy.py","file_url":"https://github.com/ongwinkent/federated-feature-unlearning/blob/HEAD/unlearn_strategies/lipschitz_strategy.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"4fa117d5dab1b877"}},{"code_sha256_prefix":"5106ae2bef09bdbb","entry":"tabular_backdoor","repo":"OngWinKent/Federated-Feature-Unlearning","repo_kind":"official","path":"datasets/backdoor.py","file_url":"https://github.com/OngWinKent/Federated-Feature-Unlearning/blob/HEAD/datasets/backdoor.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"5106ae2bef09bdbb"}},{"code_sha256_prefix":"8c92e8ef9dbc1def","entry":"tabular_sensitive","repo":"OngWinKent/Federated-Feature-Unlearning","repo_kind":"official","path":"datasets/sensitive.py","file_url":"https://github.com/OngWinKent/Federated-Feature-Unlearning/blob/HEAD/datasets/sensitive.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"8c92e8ef9dbc1def"}},{"code_sha256_prefix":"649f700f5a16056d","entry":"validation_epoch_end","repo":"OngWinKent/Federated-Feature-Unlearning","repo_kind":"official","path":"datasets/metrics.py","file_url":"https://github.com/OngWinKent/Federated-Feature-Unlearning/blob/HEAD/datasets/metrics.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"649f700f5a16056d"}},{"code_sha256_prefix":"ef1a566a0796438e","entry":"validation_step","repo":"OngWinKent/Federated-Feature-Unlearning","repo_kind":"official","path":"datasets/metrics.py","file_url":"https://github.com/OngWinKent/Federated-Feature-Unlearning/blob/HEAD/datasets/metrics.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"ef1a566a0796438e"}},{"code_sha256_prefix":"c8714d57fa364ac2","entry":"adult","repo":"OngWinKent/Federated-Feature-Unlearning","repo_kind":"official","path":"datasets/tabular.py","file_url":"https://github.com/OngWinKent/Federated-Feature-Unlearning/blob/HEAD/datasets/tabular.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"c8714d57fa364ac2"}},{"code_sha256_prefix":"ff8d4d372ec6b3cf","entry":"create_biased_trainingset","repo":"OngWinKent/Federated-Feature-Unlearning","repo_kind":"official","path":"datasets/bias.py","file_url":"https://github.com/OngWinKent/Federated-Feature-Unlearning/blob/HEAD/datasets/bias.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"ff8d4d372ec6b3cf"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}