{"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/adversarial-attacks-on-fairness-of-graph","title":"Adversarial Attacks on Fairness of Graph Neural Networks","arxiv_id":"2310.13822","date":"2023-10-20","proceeding":null,"authors":["Binchi Zhang","Yushun Dong","Chen Chen","Yada Zhu","Minnan Luo","Jundong Li"],"abstract":"Fairness-aware graph neural networks (GNNs) have gained a surge of attention as they can reduce the bias of predictions on any demographic group (e.g., female) in graph-based applications. Although these methods greatly improve the algorithmic fairness of GNNs, the fairness can be easily corrupted by carefully designed adversarial attacks. In this paper, we investigate the problem of adversarial attacks on fairness of GNNs and propose G-FairAttack, a general framework for attacking various types of fairness-aware GNNs in terms of fairness with an unnoticeable effect on prediction utility. In addition, we propose a fast computation technique to reduce the time complexity of G-FairAttack. The experimental study demonstrates that G-FairAttack successfully corrupts the fairness of different types of GNNs while keeping the attack unnoticeable. Our study on fairness attacks sheds light on potential vulnerabilities in fairness-aware GNNs and guides further research on the robustness of GNNs in terms of fairness.","url_abs":"https://arxiv.org/abs/2310.13822v2","url_pdf":"https://arxiv.org/pdf/2310.13822v2.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":"adversarial-attacks-on-fairness-of-graph","repo_url":"https://github.com/zhangbinchi/g-fairattack","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"fairness","task_name":"Fairness"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2310.13822","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2310.13822"}},"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/zhangbinchi/g-fairattack","reach":null}],"summary":{"ran_fixture":2,"ran":4,"ran_draft_wrong":1,"unverified":3},"by_repo_kind":{"official":{"samples":10,"ran":7,"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":"c16602e5d4527490","entry":"KernelEstimator","repo":"zhangbinchi/g-fairattack","repo_kind":"official","path":"GFA.py","file_url":"https://github.com/zhangbinchi/g-fairattack/blob/HEAD/GFA.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c16602e5d4527490"}},{"code_sha256_prefix":"99e3e10db548df4b","entry":"SGC","repo":"zhangbinchi/g-fairattack","repo_kind":"official","path":"GFA.py","file_url":"https://github.com/zhangbinchi/g-fairattack/blob/HEAD/GFA.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"99e3e10db548df4b"}},{"code_sha256_prefix":"42f8da3a49b5f6bb","entry":"accuracy1","repo":"zhangbinchi/g-fairattack","repo_kind":"official","path":"GFA.py","file_url":"https://github.com/zhangbinchi/g-fairattack/blob/HEAD/GFA.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"42f8da3a49b5f6bb"}},{"code_sha256_prefix":"50d8d0e5759dbc3b","entry":"choose_edge_approx","repo":"zhangbinchi/g-fairattack","repo_kind":"official","path":"GFA.py","file_url":"https://github.com/zhangbinchi/g-fairattack/blob/HEAD/GFA.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":"50d8d0e5759dbc3b"}},{"code_sha256_prefix":"c4cc13d8cbfcb5f8","entry":"fair_metric1","repo":"zhangbinchi/g-fairattack","repo_kind":"official","path":"GFA.py","file_url":"https://github.com/zhangbinchi/g-fairattack/blob/HEAD/GFA.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c4cc13d8cbfcb5f8"}},{"code_sha256_prefix":"89a0cd5f36dc2b64","entry":"neighbor_dist","repo":"zhangbinchi/g-fairattack","repo_kind":"official","path":"GFA.py","file_url":"https://github.com/zhangbinchi/g-fairattack/blob/HEAD/GFA.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":"89a0cd5f36dc2b64"}},{"code_sha256_prefix":"8ed824fa0667c6a6","entry":"normalize_adj","repo":"zhangbinchi/g-fairattack","repo_kind":"official","path":"GFA.py","file_url":"https://github.com/zhangbinchi/g-fairattack/blob/HEAD/GFA.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8ed824fa0667c6a6"}},{"code_sha256_prefix":"9cef2b2b9c6687f6","entry":"EpanechnikovKernel","repo":"zhangbinchi/g-fairattack","repo_kind":"official","path":"GFA.py","file_url":"https://github.com/zhangbinchi/g-fairattack/blob/HEAD/GFA.py","link_basis":"first_harvest_node","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":"9cef2b2b9c6687f6"}},{"code_sha256_prefix":"ffec5b5e1a3adcb3","entry":"GFA","repo":"zhangbinchi/g-fairattack","repo_kind":"official","path":"GFA.py","file_url":"https://github.com/zhangbinchi/g-fairattack/blob/HEAD/GFA.py","link_basis":"first_harvest_node","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":"ffec5b5e1a3adcb3"}},{"code_sha256_prefix":"93399c52141245d1","entry":"edge_loop","repo":"zhangbinchi/g-fairattack","repo_kind":"official","path":"GFA.py","file_url":"https://github.com/zhangbinchi/g-fairattack/blob/HEAD/GFA.py","link_basis":"first_harvest_node","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":"93399c52141245d1"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}