{"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/boosting-graph-pooling-with-persistent","title":"Boosting Graph Pooling with Persistent Homology","arxiv_id":"2402.16346","date":"2024-02-26","proceeding":null,"authors":["Chaolong Ying","Xinjian Zhao","Tianshu Yu"],"abstract":"Recently, there has been an emerging trend to integrate persistent homology (PH) into graph neural networks (GNNs) to enrich expressive power. However, naively plugging PH features into GNN layers always results in marginal improvement with low interpretability. In this paper, we investigate a novel mechanism for injecting global topological invariance into pooling layers using PH, motivated by the observation that filtration operation in PH naturally aligns graph pooling in a cut-off manner. In this fashion, message passing in the coarsened graph acts along persistent pooled topology, leading to improved performance. Experimentally, we apply our mechanism to a collection of graph pooling methods and observe consistent and substantial performance gain over several popular datasets, demonstrating its wide applicability and flexibility.","url_abs":"https://arxiv.org/abs/2402.16346v3","url_pdf":"https://arxiv.org/pdf/2402.16346v3.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":"boosting-graph-pooling-with-persistent","repo_url":"https://github.com/LOGO-CUHKSZ/TIP","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2402.16346","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2402.16346"}},"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/LOGO-CUHKSZ/TIP","reach":{"status":"ok"}}],"summary":{"ran":3,"unverified":2},"by_repo_kind":{"official":{"samples":5,"ran":3,"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":5,"samples":[{"code_sha256_prefix":"f917af2fe35634a6","entry":"fetch_assign_matrix","repo":"LOGO-CUHKSZ/TIP","repo_kind":"official","path":"utils.py","file_url":"https://github.com/LOGO-CUHKSZ/TIP/blob/HEAD/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":"f917af2fe35634a6"}},{"code_sha256_prefix":"781e954b504ee49a","entry":"knn_filter","repo":"LOGO-CUHKSZ/TIP","repo_kind":"official","path":"utils.py","file_url":"https://github.com/LOGO-CUHKSZ/TIP/blob/HEAD/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":"781e954b504ee49a"}},{"code_sha256_prefix":"cf6d0f0abb024cd2","entry":"rwr_filter","repo":"LOGO-CUHKSZ/TIP","repo_kind":"official","path":"utils.py","file_url":"https://github.com/LOGO-CUHKSZ/TIP/blob/HEAD/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":"cf6d0f0abb024cd2"}},{"code_sha256_prefix":"a5495ebb1d60c00f","entry":"batch_to_tensor","repo":"LOGO-CUHKSZ/TIP","repo_kind":"official","path":"topolayer/coord_transforms.py","file_url":"https://github.com/LOGO-CUHKSZ/TIP/blob/HEAD/topolayer/coord_transforms.py","link_basis":"harvester_set","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":"a5495ebb1d60c00f"}},{"code_sha256_prefix":"f3e500537071b00e","entry":"wasserstein_distance","repo":"LOGO-CUHKSZ/TIP","repo_kind":"official","path":"distance.py","file_url":"https://github.com/LOGO-CUHKSZ/TIP/blob/HEAD/distance.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":"f3e500537071b00e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}