{"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/hierarchical-representation-learning-in-graph","title":"Hierarchical Representation Learning in Graph Neural Networks with Node Decimation Pooling","arxiv_id":"1910.11436","date":"2019-10-24","proceeding":null,"authors":["Filippo Maria Bianchi","Daniele Grattarola","Lorenzo Livi","Cesare Alippi"],"abstract":"In graph neural networks (GNNs), pooling operators compute local summaries of input graphs to capture their global properties, and they are fundamental for building deep GNNs that learn hierarchical representations. In this work, we propose the Node Decimation Pooling (NDP), a pooling operator for GNNs that generates coarser graphs while preserving the overall graph topology. During training, the GNN learns new node representations and fits them to a pyramid of coarsened graphs, which is computed offline in a pre-processing stage. NDP consists of three steps. First, a node decimation procedure selects the nodes belonging to one side of the partition identified by a spectral algorithm that approximates the \\maxcut{} solution. Afterwards, the selected nodes are connected with Kron reduction to form the coarsened graph. Finally, since the resulting graph is very dense, we apply a sparsification procedure that prunes the adjacency matrix of the coarsened graph to reduce the computational cost in the GNN. Notably, we show that it is possible to remove many edges without significantly altering the graph structure. Experimental results show that NDP is more efficient compared to state-of-the-art graph pooling operators while reaching, at the same time, competitive performance on a significant variety of graph classification tasks.","url_abs":"https://arxiv.org/abs/1910.11436v3","url_pdf":"https://arxiv.org/pdf/1910.11436v3.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":"hierarchical-representation-learning-in-graph","repo_url":"https://github.com/danielegrattarola/decimation-pooling","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"tf","reach":null}],"tasks":[{"task_slug":"graph-classification","task_name":"Graph Classification"},{"task_slug":"representation-learning","task_name":"Representation Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/graph-classification-on-5pt-bench-easy","task":"Graph Classification","dataset":"5pt. Bench-Easy","model":"NDP","rank_in_archive_order":1,"of":1,"metrics":{"Accuracy":"97.9"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-bench-hard","task":"Graph Classification","dataset":"Bench-hard","model":"NDP","rank_in_archive_order":1,"of":1,"metrics":{"Accuracy":"72.6"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-collab","task":"Graph Classification","dataset":"COLLAB","model":"NDP","rank_in_archive_order":18,"of":39,"metrics":{"Accuracy":"79.1%"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-dd","task":"Graph Classification","dataset":"D&D","model":"NDP","rank_in_archive_order":51,"of":53,"metrics":{"Accuracy":"72%"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-enzymes","task":"Graph Classification","dataset":"ENZYMES","model":"NDP","rank_in_archive_order":45,"of":54,"metrics":{"Accuracy":"43.9%"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-mutag","task":"Graph Classification","dataset":"MUTAG","model":"NDP","rank_in_archive_order":62,"of":74,"metrics":{"Accuracy":"84.7%"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-mutagenicity","task":"Graph Classification","dataset":"Mutagenicity","model":"NDP","rank_in_archive_order":5,"of":5,"metrics":{"Accuracy":"78.1"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-nci1","task":"Graph Classification","dataset":"NCI1","model":"NDP","rank_in_archive_order":55,"of":69,"metrics":{"Accuracy":"73.5%"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-proteins","task":"Graph Classification","dataset":"PROTEINS","model":"Graph2Vec","rank_in_archive_order":88,"of":103,"metrics":{"Accuracy":"73.3%"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-reddit-b","task":"Graph Classification","dataset":"REDDIT-B","model":"NDP","rank_in_archive_order":9,"of":12,"metrics":{"Accuracy":"84.3"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/1910.11436","atlas_url":"https://app.syntology.ai/?focus=1910.11436","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1910.11436"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/danielegrattarola/decimation-pooling","reach":null}],"summary":{"ran_violates":1},"by_repo_kind":{"official":{"samples":1,"ran":1,"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":1,"samples":[{"code_sha256_prefix":"af487075aab12678","entry":"eval_cut","repo":"danielegrattarola/decimation-pooling","repo_kind":"official","path":"utils/pooling.py","file_url":"https://github.com/danielegrattarola/decimation-pooling/blob/HEAD/utils/pooling.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"af487075aab12678"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}