{"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/kagnns-kolmogorov-arnold-networks-meet-graph","title":"KAGNNs: Kolmogorov-Arnold Networks meet Graph Learning","arxiv_id":"2406.18380","date":"2024-06-26","proceeding":null,"authors":["Roman Bresson","Giannis Nikolentzos","George Panagopoulos","Michail Chatzianastasis","Jun Pang","Michalis Vazirgiannis"],"abstract":"In recent years, Graph Neural Networks (GNNs) have become the de facto tool for learning node and graph representations. Most GNNs typically consist of a sequence of neighborhood aggregation (a.k.a., message-passing) layers, within which the representation of each node is updated based on those of its neighbors. The most expressive message-passing GNNs can be obtained through the use of the sum aggregator and of MLPs for feature transformation, thanks to their universal approximation capabilities. However, the limitations of MLPs recently motivated the introduction of another family of universal approximators, called Kolmogorov-Arnold Networks (KANs) which rely on a different representation theorem. In this work, we compare the performance of KANs against that of MLPs on graph learning tasks. We evaluate two different implementations of KANs using two distinct base families of functions, namely B-splines and radial basis functions. We perform extensive experiments on node classification, graph classification and graph regression datasets. Our results indicate that KANs are on-par with or better than MLPs on all studied tasks, making them viable alternatives, at the cost of some computational complexity. Code is available at https: //github.com/RomanBresson/KAGNN.","url_abs":"https://arxiv.org/abs/2406.18380v3","url_pdf":"https://arxiv.org/pdf/2406.18380v3.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":"kagnns-kolmogorov-arnold-networks-meet-graph","repo_url":"https://github.com/RomanBresson/KAGNN","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"graph-classification","task_name":"Graph Classification"},{"task_slug":"graph-learning","task_name":"Graph Learning"},{"task_slug":"graph-regression","task_name":"Graph Regression"},{"task_slug":"kolmogorov-arnold-networks","task_name":"Kolmogorov-Arnold Networks"},{"task_slug":"node-classification","task_name":"Node Classification"},{"task_slug":"regression-1","task_name":"regression"}],"methods":[{"method_slug":"base","method_name":"BASE"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2406.18380","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2406.18380"}},"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/RomanBresson/KAGNN","reach":{"status":"ok"}}],"summary":{"ran":7,"unverified":1},"by_repo_kind":{"official":{"samples":8,"ran":7,"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":8,"samples":[{"code_sha256_prefix":"703c85a1d692e5aa","entry":"count_params","repo":"RomanBresson/KAGNN","repo_kind":"official","path":"node_classification_clean/time_model.py","file_url":"https://github.com/RomanBresson/KAGNN/blob/HEAD/node_classification_clean/time_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"703c85a1d692e5aa"}},{"code_sha256_prefix":"e6fecbae3fad6abf","entry":"make_mlp","repo":"RomanBresson/KAGNN","repo_kind":"official","path":"graph_classification/models.py","file_url":"https://github.com/RomanBresson/KAGNN/blob/HEAD/graph_classification/models.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e6fecbae3fad6abf"}},{"code_sha256_prefix":"2c9c508b9c64f4a4","entry":"make_mlp","repo":"RomanBresson/KAGNN","repo_kind":"official","path":"node_classification_clean/models.py","file_url":"https://github.com/RomanBresson/KAGNN/blob/HEAD/node_classification_clean/models.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2c9c508b9c64f4a4"}},{"code_sha256_prefix":"e50ff32e95107f76","entry":"test","repo":"RomanBresson/KAGNN","repo_kind":"official","path":"graph_classification/graph_classification_utils.py","file_url":"https://github.com/RomanBresson/KAGNN/blob/HEAD/graph_classification/graph_classification_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e50ff32e95107f76"}},{"code_sha256_prefix":"376ccfd875afef4b","entry":"time_model","repo":"RomanBresson/KAGNN","repo_kind":"official","path":"node_classification_clean/time_model.py","file_url":"https://github.com/RomanBresson/KAGNN/blob/HEAD/node_classification_clean/time_model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"376ccfd875afef4b"}},{"code_sha256_prefix":"5ca873d38e249a8f","entry":"train","repo":"RomanBresson/KAGNN","repo_kind":"official","path":"graph_classification/graph_classification_utils.py","file_url":"https://github.com/RomanBresson/KAGNN/blob/HEAD/graph_classification/graph_classification_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5ca873d38e249a8f"}},{"code_sha256_prefix":"9d8a6d700a2e387a","entry":"val","repo":"RomanBresson/KAGNN","repo_kind":"official","path":"graph_classification/graph_classification_utils.py","file_url":"https://github.com/RomanBresson/KAGNN/blob/HEAD/graph_classification/graph_classification_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9d8a6d700a2e387a"}},{"code_sha256_prefix":"5b7958ab5c0e92f2","entry":"train_model","repo":"RomanBresson/KAGNN","repo_kind":"official","path":"graph_classification/time_model.py","file_url":"https://github.com/RomanBresson/KAGNN/blob/HEAD/graph_classification/time_model.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":"5b7958ab5c0e92f2"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}