{"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/scaling-up-graph-neural-networks-via-graph","title":"Scaling Up Graph Neural Networks Via Graph Coarsening","arxiv_id":"2106.05150","date":"2021-06-09","proceeding":null,"authors":["Zengfeng Huang","Shengzhong Zhang","Chong Xi","Tang Liu","Min Zhou"],"abstract":"Scalability of graph neural networks remains one of the major challenges in graph machine learning. Since the representation of a node is computed by recursively aggregating and transforming representation vectors of its neighboring nodes from previous layers, the receptive fields grow exponentially, which makes standard stochastic optimization techniques ineffective. Various approaches have been proposed to alleviate this issue, e.g., sampling-based methods and techniques based on pre-computation of graph filters. In this paper, we take a different approach and propose to use graph coarsening for scalable training of GNNs, which is generic, extremely simple and has sublinear memory and time costs during training. We present extensive theoretical analysis on the effect of using coarsening operations and provides useful guidance on the choice of coarsening methods. Interestingly, our theoretical analysis shows that coarsening can also be considered as a type of regularization and may improve the generalization. Finally, empirical results on real world datasets show that, simply applying off-the-shelf coarsening methods, we can reduce the number of nodes by up to a factor of ten without causing a noticeable downgrade in classification accuracy.","url_abs":"https://arxiv.org/abs/2106.05150v1","url_pdf":"https://arxiv.org/pdf/2106.05150v1.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":"scaling-up-graph-neural-networks-via-graph","repo_url":"https://github.com/szzhang17/Scaling-Up-Graph-Neural-Networks-Via-Graph-Coarsening","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"stochastic-optimization","task_name":"Stochastic Optimization"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2106.05150","atlas_url":"https://app.syntology.ai/?focus=2106.05150","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2106.05150"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/szzhang17/Scaling-Up-Graph-Neural-Networks-Via-Graph-Coarsening","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":8},"by_repo_kind":{"official":{"samples":8,"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":"d0576dee6519c1db","entry":"coarsen_vector","repo":"szzhang17/Scaling-Up-Graph-Neural-Networks-Via-Graph-Coarsening","repo_kind":"official","path":"APPNP/graph_coarsening/coarsening_utils.py","file_url":"https://github.com/szzhang17/Scaling-Up-Graph-Neural-Networks-Via-Graph-Coarsening/blob/HEAD/APPNP/graph_coarsening/coarsening_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":"d0576dee6519c1db"}},{"code_sha256_prefix":"5c3bc6da4ad2ba64","entry":"coarsening","repo":"szzhang17/Scaling-Up-Graph-Neural-Networks-Via-Graph-Coarsening","repo_kind":"official","path":"APPNP/utils.py","file_url":"https://github.com/szzhang17/Scaling-Up-Graph-Neural-Networks-Via-Graph-Coarsening/blob/HEAD/APPNP/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":"5c3bc6da4ad2ba64"}},{"code_sha256_prefix":"432fe5396879938e","entry":"extract_components","repo":"szzhang17/Scaling-Up-Graph-Neural-Networks-Via-Graph-Coarsening","repo_kind":"official","path":"APPNP/utils.py","file_url":"https://github.com/szzhang17/Scaling-Up-Graph-Neural-Networks-Via-Graph-Coarsening/blob/HEAD/APPNP/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":"432fe5396879938e"}},{"code_sha256_prefix":"3be203f7b4c1f984","entry":"get_S","repo":"szzhang17/Scaling-Up-Graph-Neural-Networks-Via-Graph-Coarsening","repo_kind":"official","path":"APPNP/graph_coarsening/graph_utils.py","file_url":"https://github.com/szzhang17/Scaling-Up-Graph-Neural-Networks-Via-Graph-Coarsening/blob/HEAD/APPNP/graph_coarsening/graph_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":"3be203f7b4c1f984"}},{"code_sha256_prefix":"5f9905758c8b3c7e","entry":"get_neighbors","repo":"szzhang17/Scaling-Up-Graph-Neural-Networks-Via-Graph-Coarsening","repo_kind":"official","path":"APPNP/graph_coarsening/graph_utils.py","file_url":"https://github.com/szzhang17/Scaling-Up-Graph-Neural-Networks-Via-Graph-Coarsening/blob/HEAD/APPNP/graph_coarsening/graph_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":"5f9905758c8b3c7e"}},{"code_sha256_prefix":"05cffcb8e9dc1e11","entry":"lift_vector","repo":"szzhang17/Scaling-Up-Graph-Neural-Networks-Via-Graph-Coarsening","repo_kind":"official","path":"APPNP/graph_coarsening/coarsening_utils.py","file_url":"https://github.com/szzhang17/Scaling-Up-Graph-Neural-Networks-Via-Graph-Coarsening/blob/HEAD/APPNP/graph_coarsening/coarsening_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":"05cffcb8e9dc1e11"}},{"code_sha256_prefix":"b4f9785d90c70cbe","entry":"maxWeightMatching","repo":"szzhang17/Scaling-Up-Graph-Neural-Networks-Via-Graph-Coarsening","repo_kind":"official","path":"APPNP/graph_coarsening/maxWeightMatching.py","file_url":"https://github.com/szzhang17/Scaling-Up-Graph-Neural-Networks-Via-Graph-Coarsening/blob/HEAD/APPNP/graph_coarsening/maxWeightMatching.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":"b4f9785d90c70cbe"}},{"code_sha256_prefix":"03c0ec68ff746fc6","entry":"one_hot","repo":"szzhang17/Scaling-Up-Graph-Neural-Networks-Via-Graph-Coarsening","repo_kind":"official","path":"APPNP/utils.py","file_url":"https://github.com/szzhang17/Scaling-Up-Graph-Neural-Networks-Via-Graph-Coarsening/blob/HEAD/APPNP/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":"03c0ec68ff746fc6"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}