{"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/provably-powerful-graph-networks","title":"Provably Powerful Graph Networks","arxiv_id":"1905.11136","date":"2019-05-27","proceeding":"NeurIPS 2019 12","authors":["Haggai Maron","Heli Ben-Hamu","Hadar Serviansky","Yaron Lipman"],"abstract":"Recently, the Weisfeiler-Lehman (WL) graph isomorphism test was used to measure the expressive power of graph neural networks (GNN). It was shown that the popular message passing GNN cannot distinguish between graphs that are indistinguishable by the 1-WL test (Morris et al. 2018; Xu et al. 2019). Unfortunately, many simple instances of graphs are indistinguishable by the 1-WL test. In search for more expressive graph learning models we build upon the recent k-order invariant and equivariant graph neural networks (Maron et al. 2019a,b) and present two results: First, we show that such k-order networks can distinguish between non-isomorphic graphs as good as the k-WL tests, which are provably stronger than the 1-WL test for k>2. This makes these models strictly stronger than message passing models. Unfortunately, the higher expressiveness of these models comes with a computational cost of processing high order tensors. Second, setting our goal at building a provably stronger, simple and scalable model we show that a reduced 2-order network containing just scaled identity operator, augmented with a single quadratic operation (matrix multiplication) has a provable 3-WL expressive power. Differently put, we suggest a simple model that interleaves applications of standard Multilayer-Perceptron (MLP) applied to the feature dimension and matrix multiplication. We validate this model by presenting state of the art results on popular graph classification and regression tasks. To the best of our knowledge, this is the first practical invariant/equivariant model with guaranteed 3-WL expressiveness, strictly stronger than message passing models.","url_abs":"https://arxiv.org/abs/1905.11136v4","url_pdf":"https://arxiv.org/pdf/1905.11136v4.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":"provably-powerful-graph-networks","repo_url":"https://github.com/hadarser/ProvablyPowerfulGraphNetworks","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":null},{"paper_slug":"provably-powerful-graph-networks","repo_url":"https://github.com/hadarser/ProvablyPowerfulGraphNetworks_torch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"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"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/graph-classification-on-collab","task":"Graph Classification","dataset":"COLLAB","model":"PPGN","rank_in_archive_order":6,"of":39,"metrics":{"Accuracy":"81.38%"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-imdb-b","task":"Graph Classification","dataset":"IMDb-B","model":"PPGN","rank_in_archive_order":39,"of":51,"metrics":{"Accuracy":"72.6%"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-imdb-m","task":"Graph Classification","dataset":"IMDb-M","model":"PPGN","rank_in_archive_order":25,"of":36,"metrics":{"Accuracy":"50%"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-mutag","task":"Graph Classification","dataset":"MUTAG","model":"PPGN","rank_in_archive_order":19,"of":74,"metrics":{"Accuracy":"90.55%"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-nci1","task":"Graph Classification","dataset":"NCI1","model":"PPGN","rank_in_archive_order":28,"of":69,"metrics":{"Accuracy":"83.19%"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-nci109","task":"Graph Classification","dataset":"NCI109","model":"PPGN","rank_in_archive_order":17,"of":38,"metrics":{"Accuracy":"82.23"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-proteins","task":"Graph Classification","dataset":"PROTEINS","model":"PPGN","rank_in_archive_order":34,"of":103,"metrics":{"Accuracy":"77.20%"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-ptc","task":"Graph Classification","dataset":"PTC","model":"PPGN","rank_in_archive_order":20,"of":37,"metrics":{"Accuracy":"66.17%"},"uses_additional_data":false},{"leaderboard":"/sota/graph-regression-on-zinc-500k","task":"Graph Regression","dataset":"ZINC-500k","model":"3WLGNN","rank_in_archive_order":32,"of":36,"metrics":{"MAE":"0.303"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1905.11136","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1905.11136"}},"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/hadarser/ProvablyPowerfulGraphNetworks_torch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/hadarser/ProvablyPowerfulGraphNetworks","reach":null}],"summary":{"unverified":8},"by_repo_kind":{"listed":{"samples":8,"ran":0,"repositories":2}},"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":"dbb32e482cdfa29f","entry":"create_dirs","repo":"hadarser/ProvablyPowerfulGraphNetworks_torch","repo_kind":"listed","path":"utils/dirs.py","file_url":"https://github.com/hadarser/ProvablyPowerfulGraphNetworks_torch/blob/HEAD/utils/dirs.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"dbb32e482cdfa29f"}},{"code_sha256_prefix":"15bb4b29cca9b4a1","entry":"diag_offdiag_maxpool","repo":"hadarser/ProvablyPowerfulGraphNetworks_torch","repo_kind":"listed","path":"layers/layers.py","file_url":"https://github.com/hadarser/ProvablyPowerfulGraphNetworks_torch/blob/HEAD/layers/layers.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"15bb4b29cca9b4a1"}},{"code_sha256_prefix":"7838e53265948514","entry":"download_url","repo":"hadarser/ProvablyPowerfulGraphNetworks","repo_kind":"listed","path":"utils/get_data.py","file_url":"https://github.com/hadarser/ProvablyPowerfulGraphNetworks/blob/HEAD/utils/get_data.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7838e53265948514"}},{"code_sha256_prefix":"bbc60ae90dd59aa6","entry":"get_config_from_json","repo":"hadarser/ProvablyPowerfulGraphNetworks_torch","repo_kind":"listed","path":"utils/config.py","file_url":"https://github.com/hadarser/ProvablyPowerfulGraphNetworks_torch/blob/HEAD/utils/config.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bbc60ae90dd59aa6"}},{"code_sha256_prefix":"9f1e79aa60bf79b8","entry":"load_dataset","repo":"hadarser/ProvablyPowerfulGraphNetworks_torch","repo_kind":"listed","path":"data_loader/data_helper.py","file_url":"https://github.com/hadarser/ProvablyPowerfulGraphNetworks_torch/blob/HEAD/data_loader/data_helper.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9f1e79aa60bf79b8"}},{"code_sha256_prefix":"5ffb58ac4245a0f8","entry":"load_qm9","repo":"hadarser/ProvablyPowerfulGraphNetworks_torch","repo_kind":"listed","path":"data_loader/data_helper.py","file_url":"https://github.com/hadarser/ProvablyPowerfulGraphNetworks_torch/blob/HEAD/data_loader/data_helper.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5ffb58ac4245a0f8"}},{"code_sha256_prefix":"6b4ad4ea61b1611e","entry":"load_qm9_aux","repo":"hadarser/ProvablyPowerfulGraphNetworks_torch","repo_kind":"listed","path":"data_loader/data_helper.py","file_url":"https://github.com/hadarser/ProvablyPowerfulGraphNetworks_torch/blob/HEAD/data_loader/data_helper.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6b4ad4ea61b1611e"}},{"code_sha256_prefix":"a5ee96b6f2c405a2","entry":"process_config","repo":"hadarser/ProvablyPowerfulGraphNetworks_torch","repo_kind":"listed","path":"utils/config.py","file_url":"https://github.com/hadarser/ProvablyPowerfulGraphNetworks_torch/blob/HEAD/utils/config.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a5ee96b6f2c405a2"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}