{"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/unlocking-the-potential-of-classic-gnns-for","title":"Unlocking the Potential of Classic GNNs for Graph-level Tasks: Simple Architectures Meet Excellence","arxiv_id":"2502.09263","date":"2025-02-13","proceeding":null,"authors":["Yuankai Luo","Lei Shi","Xiao-Ming Wu"],"abstract":"Message-passing Graph Neural Networks (GNNs) are often criticized for their limited expressiveness, issues like over-smoothing and over-squashing, and challenges in capturing long-range dependencies, while Graph Transformers (GTs) are considered superior due to their global attention mechanisms. Literature frequently suggests that GTs outperform GNNs, particularly in graph-level tasks such as graph classification and regression. In this study, we explore the untapped potential of GNNs through an enhanced framework, GNN+, which integrates six widely used techniques: edge feature integration, normalization, dropout, residual connections, feed-forward networks, and positional encoding, to effectively tackle graph-level tasks. We conduct a systematic evaluation of three classic GNNs, namely GCN, GIN, and GatedGCN, enhanced by the GNN+ framework across 14 well-known graph-level datasets. Our results show that, contrary to the prevailing belief, classic GNNs excel in graph-level tasks, securing top three rankings across all datasets and achieving first place in eight, while also demonstrating greater efficiency than GTs. This highlights the potential of simple GNN architectures, challenging the belief that complex mechanisms in GTs are essential for superior graph-level performance.","url_abs":"https://arxiv.org/abs/2502.09263v1","url_pdf":"https://arxiv.org/pdf/2502.09263v1.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":"unlocking-the-potential-of-classic-gnns-for","repo_url":"https://github.com/LUOyk1999/GNNPlus","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"graph-classification","task_name":"Graph Classification"},{"task_slug":"graph-property-prediction","task_name":"Graph Property Prediction"},{"task_slug":"graph-regression","task_name":"Graph Regression"},{"task_slug":"node-classification","task_name":"Node Classification"}],"methods":[{"method_slug":"attention","method_name":"Attention"},{"method_slug":"gcn","method_name":"GCN"},{"method_slug":"gin","method_name":"GIN"},{"method_slug":"gts","method_name":"GTS"},{"method_slug":"softmax","method_name":"Softmax"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/graph-classification-on-cifar10-100k","task":"Graph Classification","dataset":"CIFAR10 100k","model":"GatedGCN+","rank_in_archive_order":2,"of":20,"metrics":{"Accuracy (%)":"77.218 ± 0.381"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-mnist","task":"Graph Classification","dataset":"MNIST","model":"GatedGCN+","rank_in_archive_order":4,"of":13,"metrics":{"Accuracy":"98.712 ± 0.137"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-mnist","task":"Graph Classification","dataset":"MNIST","model":"GCN+","rank_in_archive_order":7,"of":13,"metrics":{"Accuracy":"98.382 ± 0.095"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-malnet-tiny","task":"Graph Classification","dataset":"MalNet-Tiny","model":"GatedGCN+","rank_in_archive_order":2,"of":4,"metrics":{"Accuracy":"94.600±0.570"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-peptides-func","task":"Graph Classification","dataset":"Peptides-func","model":"GCN+","rank_in_archive_order":7,"of":44,"metrics":{"AP":"0.7261 ± 0.0067"},"uses_additional_data":false},{"leaderboard":"/sota/graph-property-prediction-on-ogbg-code2","task":"Graph Property Prediction","dataset":"ogbg-code2","model":"GatedGCN+","rank_in_archive_order":5,"of":21,"metrics":{"Test F1 score":"0.1896 ± 0.0024","Validation F1 score":"0.1742 ± 0.0027"},"uses_additional_data":false},{"leaderboard":"/sota/graph-property-prediction-on-ogbg-molhiv","task":"Graph Property Prediction","dataset":"ogbg-molhiv","model":"GatedGCN+","rank_in_archive_order":17,"of":43,"metrics":{"Ext. data":"No","Number of params":"1076633","Test ROC-AUC":"0.8040 ± 0.0164","Validation ROC-AUC":"0.8329 ± 0.0158"},"uses_additional_data":false},{"leaderboard":"/sota/graph-property-prediction-on-ogbg-molpcba","task":"Graph Property Prediction","dataset":"ogbg-molpcba","model":"GatedGCN+","rank_in_archive_order":14,"of":36,"metrics":{"Ext. data":"No","Number of params":"6016860","Test AP":"0.2981 ± 0.0024","Validation AP":"0.3011 ± 0.0037"},"uses_additional_data":false},{"leaderboard":"/sota/graph-property-prediction-on-ogbg-ppa","task":"Graph Property Prediction","dataset":"ogbg-ppa","model":"GatedGCN+","rank_in_archive_order":1,"of":18,"metrics":{"Ext. data":"No","Number of params":"5547557","Test Accuracy":"0.8258 ± 0.0055","Validation Accuracy":"0.7815 ± 0.0043"},"uses_additional_data":false},{"leaderboard":"/sota/graph-property-prediction-on-ogbg-ppa","task":"Graph Property Prediction","dataset":"ogbg-ppa","model":"GIN+","rank_in_archive_order":4,"of":18,"metrics":{"Ext. data":"No","Number of params":"8173605","Test Accuracy":"0.8107 ± 0.0053","Validation Accuracy":"0.7786 ± 0.0095"},"uses_additional_data":false},{"leaderboard":"/sota/graph-property-prediction-on-ogbg-ppa","task":"Graph Property Prediction","dataset":"ogbg-ppa","model":"GCN+","rank_in_archive_order":5,"of":18,"metrics":{"Ext. data":"No","Number of params":"5549605","Test Accuracy":"0.8077 ± 0.0041","Validation Accuracy":"0.7586 ± 0.0032"},"uses_additional_data":false},{"leaderboard":"/sota/graph-regression-on-peptides-struct","task":"Graph Regression","dataset":"Peptides-struct","model":"GCN+","rank_in_archive_order":3,"of":39,"metrics":{"MAE":"0.2421 ± 0.0016"},"uses_additional_data":false},{"leaderboard":"/sota/graph-regression-on-zinc-500k","task":"Graph Regression","dataset":"ZINC-500k","model":"GIN+","rank_in_archive_order":7,"of":36,"metrics":{"MAE":"0.065"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-cluster","task":"Node Classification","dataset":"CLUSTER","model":"GatedGCN+","rank_in_archive_order":3,"of":12,"metrics":{"Accuracy":"79.128 ± 0.235"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-coco-sp","task":"Node Classification","dataset":"COCO-SP","model":"GatedGCN+","rank_in_archive_order":3,"of":19,"metrics":{"macro F1":"0.3802 ± 0.0015"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-pattern","task":"Node Classification","dataset":"PATTERN","model":"GatedGCN+","rank_in_archive_order":3,"of":11,"metrics":{"Accuracy":"87.029 ± 0.037"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-pascalvoc-sp-1","task":"Node Classification","dataset":"PascalVOC-SP","model":"GatedGCN+","rank_in_archive_order":5,"of":21,"metrics":{"macro F1":"0.4263 ± 0.0057"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2502.09263","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2502.09263"}},"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/LUOyk1999/GNNPlus","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":4,"unverified":8},"by_repo_kind":{"official":{"samples":12,"ran":4,"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":"ecf14287d3465c48","entry":"accuracy_SBM","repo":"LUOyk1999/GNNPlus","repo_kind":"official","path":"GNNPlus/logger.py","file_url":"https://github.com/LUOyk1999/GNNPlus/blob/HEAD/GNNPlus/logger.py","link_basis":"harvester_set","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":"ecf14287d3465c48"}},{"code_sha256_prefix":"9dc78001d467fc9d","entry":"eval_spearmanr","repo":"LUOyk1999/GNNPlus","repo_kind":"official","path":"GNNPlus/logger.py","file_url":"https://github.com/LUOyk1999/GNNPlus/blob/HEAD/GNNPlus/logger.py","link_basis":"harvester_set","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":"9dc78001d467fc9d"}},{"code_sha256_prefix":"1bb331bf70a78136","entry":"get_final_pretrained_ckpt","repo":"LUOyk1999/GNNPlus","repo_kind":"official","path":"GNNPlus/finetuning.py","file_url":"https://github.com/LUOyk1999/GNNPlus/blob/HEAD/GNNPlus/finetuning.py","link_basis":"harvester_set","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":"1bb331bf70a78136"}},{"code_sha256_prefix":"47e492109e6d308f","entry":"subtoken_cross_entropy","repo":"LUOyk1999/GNNPlus","repo_kind":"official","path":"GNNPlus/loss/subtoken_prediction_loss.py","file_url":"https://github.com/LUOyk1999/GNNPlus/blob/HEAD/GNNPlus/loss/subtoken_prediction_loss.py","link_basis":"harvester_set","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":"47e492109e6d308f"}},{"code_sha256_prefix":"3db4474abe13fdee","entry":"init_model_from_pretrained","repo":"LUOyk1999/GNNPlus","repo_kind":"official","path":"GNNPlus/finetuning.py","file_url":"https://github.com/LUOyk1999/GNNPlus/blob/HEAD/GNNPlus/finetuning.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":"3db4474abe13fdee"}},{"code_sha256_prefix":"c98a702be0660ac9","entry":"is_seed","repo":"LUOyk1999/GNNPlus","repo_kind":"official","path":"GNNPlus/agg_runs.py","file_url":"https://github.com/LUOyk1999/GNNPlus/blob/HEAD/GNNPlus/agg_runs.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":"c98a702be0660ac9"}},{"code_sha256_prefix":"438635c08adfe2aa","entry":"is_split","repo":"LUOyk1999/GNNPlus","repo_kind":"official","path":"GNNPlus/agg_runs.py","file_url":"https://github.com/LUOyk1999/GNNPlus/blob/HEAD/GNNPlus/agg_runs.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":"438635c08adfe2aa"}},{"code_sha256_prefix":"40e98e1ecbf39f34","entry":"join_list","repo":"LUOyk1999/GNNPlus","repo_kind":"official","path":"GNNPlus/agg_runs.py","file_url":"https://github.com/LUOyk1999/GNNPlus/blob/HEAD/GNNPlus/agg_runs.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":"40e98e1ecbf39f34"}},{"code_sha256_prefix":"d59c374db2cf64ae","entry":"l1_losses","repo":"LUOyk1999/GNNPlus","repo_kind":"official","path":"GNNPlus/loss/l1.py","file_url":"https://github.com/LUOyk1999/GNNPlus/blob/HEAD/GNNPlus/loss/l1.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":"d59c374db2cf64ae"}},{"code_sha256_prefix":"d796cdea5889c847","entry":"load_pretrained_model_cfg","repo":"LUOyk1999/GNNPlus","repo_kind":"official","path":"GNNPlus/finetuning.py","file_url":"https://github.com/LUOyk1999/GNNPlus/blob/HEAD/GNNPlus/finetuning.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":"d796cdea5889c847"}},{"code_sha256_prefix":"f1cbbbc857d8b871","entry":"multilabel_cross_entropy","repo":"LUOyk1999/GNNPlus","repo_kind":"official","path":"GNNPlus/loss/multilabel_classification_loss.py","file_url":"https://github.com/LUOyk1999/GNNPlus/blob/HEAD/GNNPlus/loss/multilabel_classification_loss.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":"f1cbbbc857d8b871"}},{"code_sha256_prefix":"4632e6a524984022","entry":"weighted_cross_entropy","repo":"LUOyk1999/GNNPlus","repo_kind":"official","path":"GNNPlus/loss/weighted_cross_entropy.py","file_url":"https://github.com/LUOyk1999/GNNPlus/blob/HEAD/GNNPlus/loss/weighted_cross_entropy.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":"4632e6a524984022"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}