{"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/arxiv-2601-19449","title":"Fixed Aggregation Features Can Rival GNNs","arxiv_id":"2601.19449","date":"2026-01-27","proceeding":"ICML","authors":["Celia Rubio-Madrigal","Rebekka Burkholz"],"abstract":"Graph neural networks (GNNs) are widely believed to excel at node representation learning through trainable neighborhood aggregations. We challenge this view by introducing Fixed Aggregation Features (FAFs), a training-free approach that transforms graph learning tasks into tabular problems. This simple shift enables the use of well-established tabular methods, offering strong interpretability and the flexibility to deploy diverse classifiers. Across 14 benchmarks, well-tuned multilayer perceptrons trained on FAFs rival or outperform state-of-the-art GNNs and graph transformers on 12 tasks -- often using only mean aggregation. The only exceptions are the Roman Empire and Minesweeper datasets, which typically require unusually deep GNNs. To explain the theoretical possibility of non-trainable aggregations, we connect our findings to Kolmogorov-Arnold representations and discuss when mean aggregation can be sufficient. In conclusion, our results call for (i) richer benchmarks benefiting from learning diverse neighborhood aggregations, (ii) strong tabular baselines as standard, and (iii) employing and advancing tabular models for graph data to gain new insights into related tasks.","url_abs":"https://arxiv.org/abs/2601.19449","url_pdf":"https://arxiv.org/pdf/2601.19449","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2601.19449","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2601.19449"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/celrm/fixed-aggregation-features","reach":null}],"summary":{"unverified":6},"by_repo_kind":{"found_in_text":{"samples":6,"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":6,"samples":[{"code_sha256_prefix":"58baf2e0e8e1755c","entry":"class_rand_splits","repo":"celrm/fixed-aggregation-features","repo_kind":"found_in_text","path":"data_utils.py","file_url":"https://github.com/celrm/fixed-aggregation-features/blob/HEAD/data_utils.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":"58baf2e0e8e1755c"}},{"code_sha256_prefix":"cbd53b326e26c73a","entry":"ka_multihop_feats","repo":"celrm/fixed-aggregation-features","repo_kind":"found_in_text","path":"aggregation_other.py","file_url":"https://github.com/celrm/fixed-aggregation-features/blob/HEAD/aggregation_other.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":"cbd53b326e26c73a"}},{"code_sha256_prefix":"025e94d610e74ffd","entry":"load_fixed_splits","repo":"celrm/fixed-aggregation-features","repo_kind":"found_in_text","path":"data_utils.py","file_url":"https://github.com/celrm/fixed-aggregation-features/blob/HEAD/data_utils.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":"025e94d610e74ffd"}},{"code_sha256_prefix":"d8e306910a720c14","entry":"load_model","repo":"celrm/fixed-aggregation-features","repo_kind":"found_in_text","path":"logger.py","file_url":"https://github.com/celrm/fixed-aggregation-features/blob/HEAD/logger.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":"d8e306910a720c14"}},{"code_sha256_prefix":"32bbcf66dbf4e11b","entry":"pca_reduce","repo":"celrm/fixed-aggregation-features","repo_kind":"found_in_text","path":"aggregation.py","file_url":"https://github.com/celrm/fixed-aggregation-features/blob/HEAD/aggregation.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":"32bbcf66dbf4e11b"}},{"code_sha256_prefix":"f54bada0dd9396ba","entry":"rand_train_test_idx","repo":"celrm/fixed-aggregation-features","repo_kind":"found_in_text","path":"data_utils.py","file_url":"https://github.com/celrm/fixed-aggregation-features/blob/HEAD/data_utils.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":"f54bada0dd9396ba"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}