{"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/when-differential-privacy-meets-nlp-the-devil","title":"When differential privacy meets NLP: The devil is in the detail","arxiv_id":"2109.03175","date":"2021-09-07","proceeding":"EMNLP 2021 11","authors":["Ivan Habernal"],"abstract":"Differential privacy provides a formal approach to privacy of individuals. Applications of differential privacy in various scenarios, such as protecting users' original utterances, must satisfy certain mathematical properties. Our contribution is a formal analysis of ADePT, a differentially private auto-encoder for text rewriting (Krishna et al, 2021). ADePT achieves promising results on downstream tasks while providing tight privacy guarantees. Our proof reveals that ADePT is not differentially private, thus rendering the experimental results unsubstantiated. We also quantify the impact of the error in its private mechanism, showing that the true sensitivity is higher by at least factor 6 in an optimistic case of a very small encoder's dimension and that the amount of utterances that are not privatized could easily reach 100% of the entire dataset. Our intention is neither to criticize the authors, nor the peer-reviewing process, but rather point out that if differential privacy applications in NLP rely on formal guarantees, these should be outlined in full and put under detailed scrutiny.","url_abs":"https://arxiv.org/abs/2109.03175v1","url_pdf":"https://arxiv.org/pdf/2109.03175v1.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":"when-differential-privacy-meets-nlp-the-devil","repo_url":"https://github.com/habernal/emnlp2021-differential-privacy-nlp","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"when-differential-privacy-meets-nlp-the-devil","repo_url":"https://github.com/trusthlt/dp-rewrite","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2109.03175","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2109.03175"}},"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/trusthlt/dp-rewrite","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/habernal/emnlp2021-differential-privacy-nlp","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_violates":1,"unverified":4},"by_repo_kind":{"listed":{"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":0,"samples":[{"code_sha256_prefix":"387318c7a376d775","entry":"str2bool","repo":"trusthlt/dp-rewrite","repo_kind":"listed","path":"settings.py","file_url":"https://github.com/trusthlt/dp-rewrite/blob/HEAD/settings.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"387318c7a376d775"}},{"code_sha256_prefix":"980b3d5ef8688039","entry":"decode_rewritten","repo":"trusthlt/dp-rewrite","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/trusthlt/dp-rewrite/blob/HEAD/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"980b3d5ef8688039"}},{"code_sha256_prefix":"32c73844bca59c7e","entry":"decode_rewritten_rnn","repo":"trusthlt/dp-rewrite","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/trusthlt/dp-rewrite/blob/HEAD/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"32c73844bca59c7e"}},{"code_sha256_prefix":"0c6546186b00cfde","entry":"get_model_type","repo":"trusthlt/dp-rewrite","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/trusthlt/dp-rewrite/blob/HEAD/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0c6546186b00cfde"}},{"code_sha256_prefix":"4204c49ac3c9f24d","entry":"sorted_alphanumeric","repo":"trusthlt/dp-rewrite","repo_kind":"listed","path":"settings.py","file_url":"https://github.com/trusthlt/dp-rewrite/blob/HEAD/settings.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4204c49ac3c9f24d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}