{"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/certifiable-robustness-and-robust-training","title":"Certifiable Robustness and Robust Training for Graph Convolutional Networks","arxiv_id":"1906.12269","date":"2019-06-28","proceeding":null,"authors":["Daniel Zügner","Stephan Günnemann"],"abstract":"Recent works show that Graph Neural Networks (GNNs) are highly non-robust with respect to adversarial attacks on both the graph structure and the node attributes, making their outcomes unreliable. We propose the first method for certifiable (non-)robustness of graph convolutional networks with respect to perturbations of the node attributes. We consider the case of binary node attributes (e.g. bag-of-words) and perturbations that are L_0-bounded. If a node has been certified with our method, it is guaranteed to be robust under any possible perturbation given the attack model. Likewise, we can certify non-robustness. Finally, we propose a robust semi-supervised training procedure that treats the labeled and unlabeled nodes jointly. As shown in our experimental evaluation, our method significantly improves the robustness of the GNN with only minimal effect on the predictive accuracy.","url_abs":"https://arxiv.org/abs/1906.12269v1","url_pdf":"https://arxiv.org/pdf/1906.12269v1.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":"certifiable-robustness-and-robust-training","repo_url":"https://github.com/danielzuegner/robust-gcn","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"node-classification","task_name":"Node Classification"}],"methods":[{"method_slug":"graph-convolutional-networks","method_name":"Graph Convolutional Networks"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/node-classification-on-citeseer","task":"Node Classification","dataset":"Citeseer","model":"GNN RH-U","rank_in_archive_order":62,"of":71,"metrics":{"Accuracy":"68%"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-cora","task":"Node Classification","dataset":"Cora","model":"GNN RH-U","rank_in_archive_order":46,"of":73,"metrics":{"Accuracy":"83%"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-pubmed","task":"Node Classification","dataset":"Pubmed","model":"GNN RH-U","rank_in_archive_order":21,"of":70,"metrics":{"Accuracy":"86%"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1906.12269","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1906.12269"}},"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/danielzuegner/robust-gcn","reach":null}],"summary":{"ran_draft_wrong":3},"by_repo_kind":{"listed":{"samples":3,"ran":3,"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":"ec7977b6ec96dce1","entry":"chunker","repo":"danielzuegner/robust-gcn","repo_kind":"listed","path":"robust_gcn/robust_gcn.py","file_url":"https://github.com/danielzuegner/robust-gcn/blob/HEAD/robust_gcn/robust_gcn.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ec7977b6ec96dce1"}},{"code_sha256_prefix":"a3cccfaa8bd4c86c","entry":"preprocess_adj","repo":"danielzuegner/robust-gcn","repo_kind":"listed","path":"robust_gcn/robust_gcn.py","file_url":"https://github.com/danielzuegner/robust-gcn/blob/HEAD/robust_gcn/robust_gcn.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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a3cccfaa8bd4c86c"}},{"code_sha256_prefix":"c25e88689b0251b5","entry":"sparse_tensor","repo":"danielzuegner/robust-gcn","repo_kind":"listed","path":"robust_gcn/robust_gcn.py","file_url":"https://github.com/danielzuegner/robust-gcn/blob/HEAD/robust_gcn/robust_gcn.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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c25e88689b0251b5"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}