{"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/on-the-equivalence-of-decoupled-graph","title":"On the Equivalence of Decoupled Graph Convolution Network and Label Propagation","arxiv_id":"2010.12408","date":"2020-10-23","proceeding":null,"authors":["Hande Dong","Jiawei Chen","Fuli Feng","Xiangnan He","Shuxian Bi","Zhaolin Ding","Peng Cui"],"abstract":"The original design of Graph Convolution Network (GCN) couples feature transformation and neighborhood aggregation for node representation learning. Recently, some work shows that coupling is inferior to decoupling, which supports deep graph propagation better and has become the latest paradigm of GCN (e.g., APPNP and SGCN). Despite effectiveness, the working mechanisms of the decoupled GCN are not well understood. In this paper, we explore the decoupled GCN for semi-supervised node classification from a novel and fundamental perspective -- label propagation. We conduct thorough theoretical analyses, proving that the decoupled GCN is essentially the same as the two-step label propagation: first, propagating the known labels along the graph to generate pseudo-labels for the unlabeled nodes, and second, training normal neural network classifiers on the augmented pseudo-labeled data. More interestingly, we reveal the effectiveness of decoupled GCN: going beyond the conventional label propagation, it could automatically assign structure- and model- aware weights to the pseudo-label data. This explains why the decoupled GCN is relatively robust to the structure noise and over-smoothing, but sensitive to the label noise and model initialization. Based on this insight, we propose a new label propagation method named Propagation then Training Adaptively (PTA), which overcomes the flaws of the decoupled GCN with a dynamic and adaptive weighting strategy. Our PTA is simple yet more effective and robust than decoupled GCN. We empirically validate our findings on four benchmark datasets, demonstrating the advantages of our method. The code is available at https://github.com/DongHande/PT_propagation_then_training.","url_abs":"https://arxiv.org/abs/2010.12408v2","url_pdf":"https://arxiv.org/pdf/2010.12408v2.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":"on-the-equivalence-of-decoupled-graph","repo_url":"https://github.com/DongHande/PT_propagation_then_training","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"node-classification","task_name":"Node Classification"},{"task_slug":"pseudo-label","task_name":"Pseudo Label"},{"task_slug":"representation-learning","task_name":"Representation Learning"}],"methods":[{"method_slug":"appnp","method_name":"APPNP"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"gcn","method_name":"GCN"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2010.12408","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2010.12408"}},"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/DongHande/PT_propagation_then_training","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":4},"by_repo_kind":{"official":{"samples":4,"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":"1b14ff500b1a493c","entry":"Stop_args","repo":"DongHande/PT_propagation_then_training","repo_kind":"official","path":"early_stop.py","file_url":"https://github.com/DongHande/PT_propagation_then_training/blob/HEAD/early_stop.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":"1b14ff500b1a493c"}},{"code_sha256_prefix":"c9781654f8e9677d","entry":"exclude_idx","repo":"DongHande/PT_propagation_then_training","repo_kind":"official","path":"utils.py","file_url":"https://github.com/DongHande/PT_propagation_then_training/blob/HEAD/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":"c9781654f8e9677d"}},{"code_sha256_prefix":"7d8fc0acfce3d247","entry":"known_unknown_split","repo":"DongHande/PT_propagation_then_training","repo_kind":"official","path":"utils.py","file_url":"https://github.com/DongHande/PT_propagation_then_training/blob/HEAD/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":"7d8fc0acfce3d247"}},{"code_sha256_prefix":"53bf2cafc2a17770","entry":"train_stopping_split","repo":"DongHande/PT_propagation_then_training","repo_kind":"official","path":"utils.py","file_url":"https://github.com/DongHande/PT_propagation_then_training/blob/HEAD/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":"53bf2cafc2a17770"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}