{"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/graph-adversarial-networks-protecting","title":"Information Obfuscation of Graph Neural Networks","arxiv_id":"2009.13504","date":"2020-09-28","proceeding":null,"authors":["Peiyuan Liao","Han Zhao","Keyulu Xu","Tommi Jaakkola","Geoffrey Gordon","Stefanie Jegelka","Ruslan Salakhutdinov"],"abstract":"While the advent of Graph Neural Networks (GNNs) has greatly improved node and graph representation learning in many applications, the neighborhood aggregation scheme exposes additional vulnerabilities to adversaries seeking to extract node-level information about sensitive attributes. In this paper, we study the problem of protecting sensitive attributes by information obfuscation when learning with graph structured data. We propose a framework to locally filter out pre-determined sensitive attributes via adversarial training with the total variation and the Wasserstein distance. Our method creates a strong defense against inference attacks, while only suffering small loss in task performance. Theoretically, we analyze the effectiveness of our framework against a worst-case adversary, and characterize an inherent trade-off between maximizing predictive accuracy and minimizing information leakage. Experiments across multiple datasets from recommender systems, knowledge graphs and quantum chemistry demonstrate that the proposed approach provides a robust defense across various graph structures and tasks, while producing competitive GNN encoders for downstream tasks.","url_abs":"https://arxiv.org/abs/2009.13504v5","url_pdf":"https://arxiv.org/pdf/2009.13504v5.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":"graph-adversarial-networks-protecting","repo_url":"https://github.com/liaopeiyuan/GAL","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"adversarial-defense","task_name":"Adversarial Defense"},{"task_slug":"graph-representation-learning","task_name":"Graph Representation Learning"},{"task_slug":"knowledge-graphs","task_name":"Knowledge Graphs"},{"task_slug":"recommendation-systems","task_name":"Recommendation Systems"},{"task_slug":"representation-learning","task_name":"Representation Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2009.13504","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2009.13504"}},"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/liaopeiyuan/GAL","reach":null}],"summary":{"ran":5,"ran_fixture":1},"by_repo_kind":{"official":{"samples":6,"ran":6,"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":"c1f6ba6fe31cbb58","entry":"GAL","repo":"liaopeiyuan/GAL","repo_kind":"official","path":"Movielens_Wasserstein/models.py","file_url":"https://github.com/liaopeiyuan/GAL/blob/HEAD/Movielens_Wasserstein/models.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c1f6ba6fe31cbb58"}},{"code_sha256_prefix":"c64894d0c9a6c279","entry":"GNN","repo":"liaopeiyuan/GAL","repo_kind":"official","path":"Movielens_Wasserstein/models.py","file_url":"https://github.com/liaopeiyuan/GAL/blob/HEAD/Movielens_Wasserstein/models.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c64894d0c9a6c279"}},{"code_sha256_prefix":"764b8adf807dbb5c","entry":"GradReverse","repo":"liaopeiyuan/GAL","repo_kind":"official","path":"Movielens_Wasserstein/models.py","file_url":"https://github.com/liaopeiyuan/GAL/blob/HEAD/Movielens_Wasserstein/models.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"764b8adf807dbb5c"}},{"code_sha256_prefix":"e1eae100d2f87967","entry":"GradientReversalLayer","repo":"liaopeiyuan/GAL","repo_kind":"official","path":"Movielens_Wasserstein/models.py","file_url":"https://github.com/liaopeiyuan/GAL/blob/HEAD/Movielens_Wasserstein/models.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e1eae100d2f87967"}},{"code_sha256_prefix":"6dba9a1d82f4f646","entry":"SimpleGCMC","repo":"liaopeiyuan/GAL","repo_kind":"official","path":"Movielens_Wasserstein/models.py","file_url":"https://github.com/liaopeiyuan/GAL/blob/HEAD/Movielens_Wasserstein/models.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6dba9a1d82f4f646"}},{"code_sha256_prefix":"40011387371e919d","entry":"to_device","repo":"liaopeiyuan/GAL","repo_kind":"official","path":"Movielens_Wasserstein/models.py","file_url":"https://github.com/liaopeiyuan/GAL/blob/HEAD/Movielens_Wasserstein/models.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"40011387371e919d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}