{"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/extract-the-knowledge-of-graph-neural","title":"Extract the Knowledge of Graph Neural Networks and Go Beyond it: An Effective Knowledge Distillation Framework","arxiv_id":"2103.02885","date":"2021-03-04","proceeding":null,"authors":["Cheng Yang","Jiawei Liu","Chuan Shi"],"abstract":"Semi-supervised learning on graphs is an important problem in the machine learning area. In recent years, state-of-the-art classification methods based on graph neural networks (GNNs) have shown their superiority over traditional ones such as label propagation. However, the sophisticated architectures of these neural models will lead to a complex prediction mechanism, which could not make full use of valuable prior knowledge lying in the data, e.g., structurally correlated nodes tend to have the same class. In this paper, we propose a framework based on knowledge distillation to address the above issues. Our framework extracts the knowledge of an arbitrary learned GNN model (teacher model), and injects it into a well-designed student model. The student model is built with two simple prediction mechanisms, i.e., label propagation and feature transformation, which naturally preserves structure-based and feature-based prior knowledge, respectively. In specific, we design the student model as a trainable combination of parameterized label propagation and feature transformation modules. As a result, the learned student can benefit from both prior knowledge and the knowledge in GNN teachers for more effective predictions. Moreover, the learned student model has a more interpretable prediction process than GNNs. We conduct experiments on five public benchmark datasets and employ seven GNN models including GCN, GAT, APPNP, SAGE, SGC, GCNII and GLP as the teacher models. Experimental results show that the learned student model can consistently outperform its corresponding teacher model by 1.4% - 4.7% on average. Code and data are available at https://github.com/BUPT-GAMMA/CPF","url_abs":"https://arxiv.org/abs/2103.02885v1","url_pdf":"https://arxiv.org/pdf/2103.02885v1.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":"extract-the-knowledge-of-graph-neural","repo_url":"https://github.com/BUPT-GAMMA/CPF","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"knowledge-distillation","task_name":"Knowledge Distillation"},{"task_slug":"node-classification","task_name":"Node Classification"}],"methods":[{"method_slug":"appnp","method_name":"APPNP"},{"method_slug":"gat","method_name":"GAT"},{"method_slug":"gcn","method_name":"GCN"},{"method_slug":"gcnii","method_name":"GCNII"},{"method_slug":"knowledge-distillation","method_name":"Knowledge Distillation"},{"method_slug":"residual-connection","method_name":"Residual Connection"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/node-classification-on-amz-computers","task":"Node Classification","dataset":"AMZ Computers","model":"CPF-ind-GAT","rank_in_archive_order":3,"of":5,"metrics":{"Accuracy":"85.5%"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-amz-photo","task":"Node Classification","dataset":"AMZ Photo","model":"CPF-ind-GAT","rank_in_archive_order":8,"of":14,"metrics":{"Accuracy":"94.10%"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-citeseer-with-public","task":"Node Classification","dataset":"CiteSeer with Public Split: fixed 20 nodes per class","model":"CPF-tra-APPNP","rank_in_archive_order":5,"of":40,"metrics":{"Accuracy":"74.6%"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-cora-05","task":"Node Classification","dataset":"Cora (0.5%)","model":"CPF-ind_APPNP","rank_in_archive_order":1,"of":15,"metrics":{"Accuracy":"77.3%"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-cora-1","task":"Node Classification","dataset":"Cora (1%)","model":"CPF-ind-APPNP","rank_in_archive_order":1,"of":15,"metrics":{"Accuracy":"80.24%"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-cora-3","task":"Node Classification","dataset":"Cora (3%)","model":"CPF-tra-GCNII","rank_in_archive_order":1,"of":15,"metrics":{"Accuracy":"84.18%"},"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":"CPF-ind-APPNP","rank_in_archive_order":5,"of":36,"metrics":{"Accuracy":"85.3%"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-cora-fixed-10-node-per","task":"Node Classification","dataset":"Cora: fixed 10 node per class","model":"CPF-tra-GCNII","rank_in_archive_order":1,"of":2,"metrics":{"Accuracy":"84.1%"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-cora-fixed-5-node-per","task":"Node Classification","dataset":"Cora: fixed 5 node per class","model":"CPF-tra-APPNP","rank_in_archive_order":1,"of":2,"metrics":{"Accuracy":"80.26%"},"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":"CPF-tra-GCNII","rank_in_archive_order":2,"of":37,"metrics":{"Accuracy":"83.20%"},"uses_additional_data":false}],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2103.02885","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2103.02885"}},"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/BUPT-GAMMA/CPF","reach":null}],"summary":{"ran_draft_wrong":2,"unverified":1},"by_repo_kind":{"official":{"samples":3,"ran":2,"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":3,"samples":[{"code_sha256_prefix":"70795b899ed26273","entry":"arg_parse","repo":"BUPT-GAMMA/CPF","repo_kind":"official","path":"train_dgl.py","file_url":"https://github.com/BUPT-GAMMA/CPF/blob/HEAD/train_dgl.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"70795b899ed26273"}},{"code_sha256_prefix":"5cbc96219b8be438","entry":"func_search","repo":"BUPT-GAMMA/CPF","repo_kind":"official","path":"spawn_worker.py","file_url":"https://github.com/BUPT-GAMMA/CPF/blob/HEAD/spawn_worker.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5cbc96219b8be438"}},{"code_sha256_prefix":"56eae392eb879662","entry":"arg_parse","repo":"BUPT-GAMMA/CPF","repo_kind":"official","path":"spawn_worker.py","file_url":"https://github.com/BUPT-GAMMA/CPF/blob/HEAD/spawn_worker.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"56eae392eb879662"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}