{"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/polynormer-polynomial-expressive-graph","title":"Polynormer: Polynomial-Expressive Graph Transformer in Linear Time","arxiv_id":"2403.01232","date":"2024-03-02","proceeding":null,"authors":["Chenhui Deng","Zichao Yue","Zhiru Zhang"],"abstract":"Graph transformers (GTs) have emerged as a promising architecture that is theoretically more expressive than message-passing graph neural networks (GNNs). However, typical GT models have at least quadratic complexity and thus cannot scale to large graphs. While there are several linear GTs recently proposed, they still lag behind GNN counterparts on several popular graph datasets, which poses a critical concern on their practical expressivity. To balance the trade-off between expressivity and scalability of GTs, we propose Polynormer, a polynomial-expressive GT model with linear complexity. Polynormer is built upon a novel base model that learns a high-degree polynomial on input features. To enable the base model permutation equivariant, we integrate it with graph topology and node features separately, resulting in local and global equivariant attention models. Consequently, Polynormer adopts a linear local-to-global attention scheme to learn high-degree equivariant polynomials whose coefficients are controlled by attention scores. Polynormer has been evaluated on $13$ homophilic and heterophilic datasets, including large graphs with millions of nodes. Our extensive experiment results show that Polynormer outperforms state-of-the-art GNN and GT baselines on most datasets, even without the use of nonlinear activation functions.","url_abs":"https://arxiv.org/abs/2403.01232v3","url_pdf":"https://arxiv.org/pdf/2403.01232v3.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":"polynormer-polynomial-expressive-graph","repo_url":"https://github.com/cornell-zhang/polynormer","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"paper_slug":"polynormer-polynomial-expressive-graph","repo_url":"https://github.com/cornell-zhang/Polynormer/tree/master/large_graph_exp","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"node-classification","task_name":"Node Classification"}],"methods":[{"method_slug":"graph-transformer","method_name":"Graph Transformer"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/node-classification-on-amazon-ratings","task":"Node Classification","dataset":"amazon-ratings","model":"Polynormer","rank_in_archive_order":3,"of":4,"metrics":{"Accuracy (%)":"54.81 ± 0.49"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-minesweeper","task":"Node Classification","dataset":"minesweeper","model":"Polynormer","rank_in_archive_order":4,"of":4,"metrics":{"AUCROC":"97.46±0.36"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-pokec","task":"Node Classification","dataset":"pokec","model":"Polynormer","rank_in_archive_order":3,"of":7,"metrics":{"Accuracy":"86.10±0.05"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-questions","task":"Node Classification","dataset":"questions","model":"Polynormer","rank_in_archive_order":3,"of":3,"metrics":{"AUCROC":"78.92±0.89"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-roman-empire","task":"Node Classification","dataset":"roman-empire","model":"Polynormer","rank_in_archive_order":1,"of":7,"metrics":{"Accuracy (% )":"92.55±0.37"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-tolokers","task":"Node Classification","dataset":"tolokers","model":"Polynormer","rank_in_archive_order":1,"of":4,"metrics":{"AUCROC":"85.91±0.74"},"uses_additional_data":false},{"leaderboard":"/sota/node-property-prediction-on-ogbn-arxiv","task":"Node Property Prediction","dataset":"ogbn-arxiv","model":"Polynormer","rank_in_archive_order":44,"of":86,"metrics":{"Ext. data":"No","Number of params":"1806160","Test Accuracy":"0.7346 ± 0.0016","Validation Accuracy":"0.7459 ± 0.0010"},"uses_additional_data":false},{"leaderboard":"/sota/node-property-prediction-on-ogbn-products","task":"Node Property Prediction","dataset":"ogbn-products","model":"Polynormer","rank_in_archive_order":27,"of":64,"metrics":{"Ext. data":"No","Number of params":"2383654","Test Accuracy":"0.8382 ± 0.0011","Validation Accuracy":"0.9239 ± 0.0005"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2403.01232","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2403.01232"}},"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":"deterministic:regex_extraction","url":"https://github.com/cornell-zhang/Polynormer","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cornell-zhang/Polynormer/tree/master/large_graph_exp","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cornell-zhang/polynormer","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"summary":{"ran":5,"unverified":3},"by_repo_kind":{"official":{"samples":8,"ran":5,"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":"ea1ddecdfaa27927","entry":"GlobalAttn","repo":"cornell-zhang/polynormer","repo_kind":"official","path":"model.py","file_url":"https://github.com/cornell-zhang/polynormer/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"ea1ddecdfaa27927"}},{"code_sha256_prefix":"62ffb90034b7235d","entry":"Polynormer","repo":"cornell-zhang/polynormer","repo_kind":"official","path":"model.py","file_url":"https://github.com/cornell-zhang/polynormer/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"62ffb90034b7235d"}},{"code_sha256_prefix":"319c36c17da75fed","entry":"eval_acc","repo":"cornell-zhang/Polynormer","repo_kind":"official","path":"data_utils.py","file_url":"https://github.com/cornell-zhang/Polynormer/blob/HEAD/data_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"319c36c17da75fed"}},{"code_sha256_prefix":"5b7702a29f6dafaf","entry":"load_fixed_splits","repo":"cornell-zhang/Polynormer","repo_kind":"official","path":"data_utils.py","file_url":"https://github.com/cornell-zhang/Polynormer/blob/HEAD/data_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"5b7702a29f6dafaf"}},{"code_sha256_prefix":"635fdf41b8d70789","entry":"load_model","repo":"cornell-zhang/Polynormer","repo_kind":"official","path":"logger.py","file_url":"https://github.com/cornell-zhang/Polynormer/blob/HEAD/logger.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"635fdf41b8d70789"}},{"code_sha256_prefix":"39f7b3a8e45be81b","entry":"eval_f1","repo":"cornell-zhang/Polynormer","repo_kind":"official","path":"data_utils.py","file_url":"https://github.com/cornell-zhang/Polynormer/blob/HEAD/data_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"39f7b3a8e45be81b"}},{"code_sha256_prefix":"2ca80bf081304f24","entry":"load_hetero_dataset","repo":"cornell-zhang/Polynormer","repo_kind":"official","path":"dataset.py","file_url":"https://github.com/cornell-zhang/Polynormer/blob/HEAD/dataset.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"2ca80bf081304f24"}},{"code_sha256_prefix":"a411b546b0451f0e","entry":"load_wikics_dataset","repo":"cornell-zhang/Polynormer","repo_kind":"official","path":"dataset.py","file_url":"https://github.com/cornell-zhang/Polynormer/blob/HEAD/dataset.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"a411b546b0451f0e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}