{"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-random-neural-network","title":"Graph Random Neural Network for Semi-Supervised Learning on Graphs","arxiv_id":"2005.11079","date":"2020-05-22","proceeding":null,"authors":["Wenzheng Feng","Jie Zhang","Yuxiao Dong","Yu Han","Huanbo Luan","Qian Xu","Qiang Yang","Evgeny Kharlamov","Jie Tang"],"abstract":"We study the problem of semi-supervised learning on graphs, for which graph neural networks (GNNs) have been extensively explored. However, most existing GNNs inherently suffer from the limitations of over-smoothing, non-robustness, and weak-generalization when labeled nodes are scarce. In this paper, we propose a simple yet effective framework -- GRAPH RANDOM NEURAL NETWORKS (GRAND) -- to address these issues. In GRAND, we first design a random propagation strategy to perform graph data augmentation. Then we leverage consistency regularization to optimize the prediction consistency of unlabeled nodes across different data augmentations. Extensive experiments on graph benchmark datasets suggest that GRAND significantly outperforms state-of-the-art GNN baselines on semi-supervised node classification. Finally, we show that GRAND mitigates the issues of over-smoothing and non-robustness, exhibiting better generalization behavior than existing GNNs. The source code of GRAND is publicly available at https://github.com/Grand20/grand.","url_abs":"https://arxiv.org/abs/2005.11079v4","url_pdf":"https://arxiv.org/pdf/2005.11079v4.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-random-neural-network","repo_url":"https://github.com/Grand20/grand","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"graph-random-neural-network","repo_url":"https://github.com/hengruizhang98/GRAND","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"graph-random-neural-network","repo_url":"https://github.com/junzhuang-code/graphss","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"graph-random-neural-network","repo_url":"https://github.com/junzhuang-code/lindt","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"graph-random-neural-network","repo_url":"https://github.com/luckytiger123/dropmessage","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"graph-random-neural-network","repo_url":"https://github.com/vapene/Graph-Random-Neural-Networks-for-Semi-Supervised-Learning-on-Graphs","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"graph-random-neural-network","repo_url":"https://github.com/zjunet/dropmessage","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"graph-random-neural-network","repo_url":"https://github.com/MindSpore-scientific/code-1/tree/main/rand_conv-master","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null},{"paper_slug":"graph-random-neural-network","repo_url":"https://github.com/dmlc/dgl/tree/master/examples/pytorch/grand","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"data-augmentation","task_name":"Data Augmentation"},{"task_slug":"graph-learning","task_name":"Graph Learning"},{"task_slug":"node-classification","task_name":"Node Classification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/node-classification-on-citeseer-with-public","task":"Node Classification","dataset":"CiteSeer with Public Split: fixed 20 nodes per class","model":"GRAND","rank_in_archive_order":2,"of":40,"metrics":{"Accuracy":"75.4 ± 0.4"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-cora-with-public-split","task":"Node Classification","dataset":"Cora with Public Split: fixed 20 nodes per class","model":"GRAND","rank_in_archive_order":4,"of":36,"metrics":{"Accuracy":"85.4 ± 0.4"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-pubmed-with-public","task":"Node Classification","dataset":"PubMed with Public Split: fixed 20 nodes per class","model":"GRAND","rank_in_archive_order":3,"of":37,"metrics":{"Accuracy":"82.7 ± 0.6"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2005.11079","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2005.11079"}},"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":"deterministic:regex_extraction","url":"https://github.com/Grand20/grand","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/dmlc/dgl/tree/master/examples/pytorch/grand","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/zjunet/dropmessage","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/vapene/Graph-Random-Neural-Networks-for-Semi-Supervised-Learning-on-Graphs","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/junzhuang-code/lindt","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MindSpore-scientific/code-1/tree/main/rand_conv-master","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/luckytiger123/dropmessage","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/hengruizhang98/GRAND","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/junzhuang-code/graphss","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":2,"ran_fixture":2,"ran_draft_wrong":3,"ran_honours":1,"unverified":14},"by_repo_kind":{"official":{"samples":4,"ran":2,"repositories":1},"listed":{"samples":18,"ran":6,"repositories":3}},"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":"991b5ce9d0230b0b","entry":"BayesSelfSupervision","repo":"junzhuang-code/graphss","repo_kind":"listed","path":"graphSS/models_SS.py","file_url":"https://github.com/junzhuang-code/graphss/blob/HEAD/graphSS/models_SS.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":"991b5ce9d0230b0b"}},{"code_sha256_prefix":"d22f6a0cb53e22bc","entry":"compute_accuracy","repo":"junzhuang-code/graphss","repo_kind":"listed","path":"graphSS/models_SS.py","file_url":"https://github.com/junzhuang-code/graphss/blob/HEAD/graphSS/models_SS.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d22f6a0cb53e22bc"}},{"code_sha256_prefix":"3ab88254add4c192","entry":"encode_onehot","repo":"Grand20/grand","repo_kind":"official","path":"pygcn/utils.py","file_url":"https://github.com/Grand20/grand/blob/HEAD/pygcn/utils.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3ab88254add4c192"}},{"code_sha256_prefix":"f0de9371020525dc","entry":"load_checkpoint","repo":"junzhuang-code/graphss","repo_kind":"listed","path":"graphSS/models_SS.py","file_url":"https://github.com/junzhuang-code/graphss/blob/HEAD/graphSS/models_SS.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":"f0de9371020525dc"}},{"code_sha256_prefix":"5c3fa9402a9405bc","entry":"parse_index_file","repo":"Grand20/grand","repo_kind":"official","path":"pygcn/utils.py","file_url":"https://github.com/Grand20/grand/blob/HEAD/pygcn/utils.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5c3fa9402a9405bc"}},{"code_sha256_prefix":"3bce344d99820bd8","entry":"prediction","repo":"junzhuang-code/graphss","repo_kind":"listed","path":"graphSS/models_SS.py","file_url":"https://github.com/junzhuang-code/graphss/blob/HEAD/graphSS/models_SS.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":"3bce344d99820bd8"}},{"code_sha256_prefix":"5087e50651937e1a","entry":"propagate","repo":"vapene/Graph-Random-Neural-Networks-for-Semi-Supervised-Learning-on-Graphs","repo_kind":"listed","path":"train_grand.py","file_url":"https://github.com/vapene/Graph-Random-Neural-Networks-for-Semi-Supervised-Learning-on-Graphs/blob/HEAD/train_grand.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":"5087e50651937e1a"}},{"code_sha256_prefix":"c05480a878ada1cf","entry":"tensor2array","repo":"junzhuang-code/graphss","repo_kind":"listed","path":"graphSS/models_SS.py","file_url":"https://github.com/junzhuang-code/graphss/blob/HEAD/graphSS/models_SS.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":"c05480a878ada1cf"}},{"code_sha256_prefix":"3dfa8f8448457f20","entry":"compute_alpha","repo":"junzhuang-code/lindt","repo_kind":"listed","path":"src/baselines/nettack/nettack.py","file_url":"https://github.com/junzhuang-code/lindt/blob/HEAD/src/baselines/nettack/nettack.py","link_basis":"harvester_set","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":"3dfa8f8448457f20"}},{"code_sha256_prefix":"f7fada718dfb80fa","entry":"compute_new_a_hat_uv","repo":"junzhuang-code/lindt","repo_kind":"listed","path":"src/baselines/nettack/nettack.py","file_url":"https://github.com/junzhuang-code/lindt/blob/HEAD/src/baselines/nettack/nettack.py","link_basis":"harvester_set","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":"f7fada718dfb80fa"}},{"code_sha256_prefix":"e76a55dd6370c052","entry":"connected_after","repo":"junzhuang-code/lindt","repo_kind":"listed","path":"src/baselines/nettack/nettack.py","file_url":"https://github.com/junzhuang-code/lindt/blob/HEAD/src/baselines/nettack/nettack.py","link_basis":"harvester_set","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":"e76a55dd6370c052"}},{"code_sha256_prefix":"9217cd111831be29","entry":"dump_pickle","repo":"junzhuang-code/graphss","repo_kind":"listed","path":"graphSS/models_SS.py","file_url":"https://github.com/junzhuang-code/graphss/blob/HEAD/graphSS/models_SS.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":"9217cd111831be29"}},{"code_sha256_prefix":"f18b6a502c85b70f","entry":"largest_connected_components","repo":"junzhuang-code/lindt","repo_kind":"listed","path":"src/baselines/nettack/utils.py","file_url":"https://github.com/junzhuang-code/lindt/blob/HEAD/src/baselines/nettack/utils.py","link_basis":"harvester_set","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":"f18b6a502c85b70f"}},{"code_sha256_prefix":"b7b41445fcb56b5e","entry":"load_data","repo":"Grand20/grand","repo_kind":"official","path":"pygcn/utils.py","file_url":"https://github.com/Grand20/grand/blob/HEAD/pygcn/utils.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":"b7b41445fcb56b5e"}},{"code_sha256_prefix":"3a0244a98c124e9a","entry":"load_npz","repo":"junzhuang-code/lindt","repo_kind":"listed","path":"src/baselines/nettack/utils.py","file_url":"https://github.com/junzhuang-code/lindt/blob/HEAD/src/baselines/nettack/utils.py","link_basis":"harvester_set","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":"3a0244a98c124e9a"}},{"code_sha256_prefix":"fc3b508e487bb7c6","entry":"preprocess_graph","repo":"junzhuang-code/lindt","repo_kind":"listed","path":"src/baselines/nettack/utils.py","file_url":"https://github.com/junzhuang-code/lindt/blob/HEAD/src/baselines/nettack/utils.py","link_basis":"harvester_set","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":"fc3b508e487bb7c6"}},{"code_sha256_prefix":"eaeb48eba0a39771","entry":"rand_prop","repo":"vapene/Graph-Random-Neural-Networks-for-Semi-Supervised-Learning-on-Graphs","repo_kind":"listed","path":"train_grand.py","file_url":"https://github.com/vapene/Graph-Random-Neural-Networks-for-Semi-Supervised-Learning-on-Graphs/blob/HEAD/train_grand.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":"eaeb48eba0a39771"}},{"code_sha256_prefix":"6fd1050c8370f6bd","entry":"rand_prop","repo":"Grand20/grand","repo_kind":"official","path":"train_grand.py","file_url":"https://github.com/Grand20/grand/blob/HEAD/train_grand.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":"6fd1050c8370f6bd"}},{"code_sha256_prefix":"aec7eb44fa04447e","entry":"read_pickle","repo":"junzhuang-code/lindt","repo_kind":"listed","path":"src/utils.py","file_url":"https://github.com/junzhuang-code/lindt/blob/HEAD/src/utils.py","link_basis":"harvester_set","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":"aec7eb44fa04447e"}},{"code_sha256_prefix":"50cce9ad0aedf824","entry":"read_yaml_file","repo":"junzhuang-code/lindt","repo_kind":"listed","path":"src/utils.py","file_url":"https://github.com/junzhuang-code/lindt/blob/HEAD/src/utils.py","link_basis":"harvester_set","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":"50cce9ad0aedf824"}},{"code_sha256_prefix":"5b8f6ae013697a25","entry":"save_checkpoint","repo":"junzhuang-code/graphss","repo_kind":"listed","path":"graphSS/models_SS.py","file_url":"https://github.com/junzhuang-code/graphss/blob/HEAD/graphSS/models_SS.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":"5b8f6ae013697a25"}},{"code_sha256_prefix":"433c0da03b15b2fb","entry":"train","repo":"junzhuang-code/graphss","repo_kind":"listed","path":"graphSS/models_SS.py","file_url":"https://github.com/junzhuang-code/graphss/blob/HEAD/graphSS/models_SS.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":"433c0da03b15b2fb"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}