{"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/the-vulnerabilities-of-graph-convolutional","title":"Adversarial Examples on Graph Data: Deep Insights into Attack and Defense","arxiv_id":"1903.01610","date":"2019-03-05","proceeding":null,"authors":["Huijun Wu","Chen Wang","Yuriy Tyshetskiy","Andrew Docherty","Kai Lu","Liming Zhu"],"abstract":"Graph deep learning models, such as graph convolutional networks (GCN) achieve remarkable performance for tasks on graph data. Similar to other types of deep models, graph deep learning models often suffer from adversarial attacks. However, compared with non-graph data, the discrete features, graph connections and different definitions of imperceptible perturbations bring unique challenges and opportunities for the adversarial attacks and defenses for graph data. In this paper, we propose both attack and defense techniques. For attack, we show that the discreteness problem could easily be resolved by introducing integrated gradients which could accurately reflect the effect of perturbing certain features or edges while still benefiting from the parallel computations. For defense, we observe that the adversarially manipulated graph for the targeted attack differs from normal graphs statistically. Based on this observation, we propose a defense approach which inspects the graph and recovers the potential adversarial perturbations. Our experiments on a number of datasets show the effectiveness of the proposed methods.","url_abs":"https://arxiv.org/abs/1903.01610v3","url_pdf":"https://arxiv.org/pdf/1903.01610v3.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":"the-vulnerabilities-of-graph-convolutional","repo_url":"https://github.com/stellargraph/stellargraph","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"the-vulnerabilities-of-graph-convolutional","repo_url":"https://github.com/GraphReshape/GraphReshape","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"adversarial-attack","task_name":"Adversarial Attack"},{"task_slug":"adversarial-defense","task_name":"Adversarial Defense"}],"methods":[{"method_slug":"graph-convolutional-networks","method_name":"Graph Convolutional Networks"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1903.01610","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1903.01610"}},"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/GraphReshape/GraphReshape","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/stellargraph/stellargraph","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":12},"by_repo_kind":{"official":{"samples":12,"ran":0,"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":"dc7cde780e6f2212","entry":"comma_sep","repo":"stellargraph/stellargraph","repo_kind":"official","path":"stellargraph/core/validation.py","file_url":"https://github.com/stellargraph/stellargraph/blob/HEAD/stellargraph/core/validation.py","link_basis":"first_harvest_node","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":"dc7cde780e6f2212"}},{"code_sha256_prefix":"e9d08df66de8c89b","entry":"convert_edges","repo":"stellargraph/stellargraph","repo_kind":"official","path":"stellargraph/core/convert.py","file_url":"https://github.com/stellargraph/stellargraph/blob/HEAD/stellargraph/core/convert.py","link_basis":"first_harvest_node","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":"e9d08df66de8c89b"}},{"code_sha256_prefix":"c2b35b0171ab08d5","entry":"expected_calibration_error","repo":"stellargraph/stellargraph","repo_kind":"official","path":"stellargraph/calibration.py","file_url":"https://github.com/stellargraph/stellargraph/blob/HEAD/stellargraph/calibration.py","link_basis":"first_harvest_node","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":"c2b35b0171ab08d5"}},{"code_sha256_prefix":"83faed11aed1262c","entry":"extract_element_features","repo":"stellargraph/stellargraph","repo_kind":"official","path":"stellargraph/core/graph.py","file_url":"https://github.com/stellargraph/stellargraph/blob/HEAD/stellargraph/core/graph.py","link_basis":"first_harvest_node","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":"83faed11aed1262c"}},{"code_sha256_prefix":"396a562b15f78565","entry":"from_networkx","repo":"stellargraph/stellargraph","repo_kind":"official","path":"stellargraph/core/convert.py","file_url":"https://github.com/stellargraph/stellargraph/blob/HEAD/stellargraph/core/convert.py","link_basis":"first_harvest_node","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":"396a562b15f78565"}},{"code_sha256_prefix":"fabfe39c92cefeab","entry":"is_real_iterable","repo":"stellargraph/stellargraph","repo_kind":"official","path":"stellargraph/core/utils.py","file_url":"https://github.com/stellargraph/stellargraph/blob/HEAD/stellargraph/core/utils.py","link_basis":"first_harvest_node","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":"fabfe39c92cefeab"}},{"code_sha256_prefix":"750b130756b77187","entry":"issue_text","repo":"stellargraph/stellargraph","repo_kind":"official","path":"stellargraph/core/experimental.py","file_url":"https://github.com/stellargraph/stellargraph/blob/HEAD/stellargraph/core/experimental.py","link_basis":"first_harvest_node","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":"750b130756b77187"}},{"code_sha256_prefix":"ffd7a6431d7a8779","entry":"messages","repo":"stellargraph/stellargraph","repo_kind":"official","path":"stellargraph/core/experimental.py","file_url":"https://github.com/stellargraph/stellargraph/blob/HEAD/stellargraph/core/experimental.py","link_basis":"first_harvest_node","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":"ffd7a6431d7a8779"}},{"code_sha256_prefix":"293f18b7f6dc6773","entry":"render_link","repo":"stellargraph/stellargraph","repo_kind":"official","path":"stellargraph/core/experimental.py","file_url":"https://github.com/stellargraph/stellargraph/blob/HEAD/stellargraph/core/experimental.py","link_basis":"first_harvest_node","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":"293f18b7f6dc6773"}},{"code_sha256_prefix":"b4998b48ce106551","entry":"separated","repo":"stellargraph/stellargraph","repo_kind":"official","path":"stellargraph/core/validation.py","file_url":"https://github.com/stellargraph/stellargraph/blob/HEAD/stellargraph/core/validation.py","link_basis":"first_harvest_node","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":"b4998b48ce106551"}},{"code_sha256_prefix":"9bc8662cbed7b93f","entry":"smart_array_index","repo":"stellargraph/stellargraph","repo_kind":"official","path":"stellargraph/core/utils.py","file_url":"https://github.com/stellargraph/stellargraph/blob/HEAD/stellargraph/core/utils.py","link_basis":"first_harvest_node","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":"9bc8662cbed7b93f"}},{"code_sha256_prefix":"faea1114ea795e6f","entry":"zero_sized_array","repo":"stellargraph/stellargraph","repo_kind":"official","path":"stellargraph/core/utils.py","file_url":"https://github.com/stellargraph/stellargraph/blob/HEAD/stellargraph/core/utils.py","link_basis":"first_harvest_node","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":"faea1114ea795e6f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}