{"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/going-beyond-persistent-homology-using","title":"Going beyond persistent homology using persistent homology","arxiv_id":"2311.06152","date":"2023-11-10","proceeding":"NeurIPS 2023 11","authors":[],"abstract":"Representational limits of message-passing graph neural networks (MP-GNNs), e.g., in terms of the Weisfeiler-Leman (WL) test for isomorphism, are well understood. Augmenting these graph models with topological features via persistent homology (PH) has gained prominence, but identifying the class of attributed graphs that PH can recognize remains open. We introduce a novel concept of color-separating sets to provide a complete resolution to this important problem. Specifically, we establish the necessary and sufficient conditions for distinguishing graphs based on the persistence of their connected components, obtained from filter functions on vertex and edge colors. Our constructions expose the limits of vertex- and edge-level PH, proving that neither category subsumes the other. Leveraging these theoretical insights, we propose RePHINE for learning topological features on graphs. RePHINE efficiently combines vertex- and edge-level PH, achieving a scheme that is provably more powerful than both. Integrating RePHINE into MP-GNNs boosts their expressive power, resulting in gains over standard PH on several benchmarks for graph classification.","url_abs":"https://arxiv.org/abs/2311.06152v1","url_pdf":"https://arxiv.org/pdf/2311.06152v1.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":[],"tasks":[{"task_slug":"graph-classification","task_name":"Graph Classification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2311.06152","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2311.06152"}},"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/Aalto-QuML/RePHINE","reach":{"status":"ok"}}],"summary":{"unverified":4},"by_repo_kind":{"found_in_text":{"samples":4,"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":4,"samples":[{"code_sha256_prefix":"17eb2746c0fdb30c","entry":"get_parameters","repo":"Aalto-QuML/RePHINE","repo_kind":"found_in_text","path":"experiment.py","file_url":"https://github.com/Aalto-QuML/RePHINE/blob/HEAD/experiment.py","link_basis":"plan_row","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":"17eb2746c0fdb30c"}},{"code_sha256_prefix":"4f7d6a722ad2d8a7","entry":"hks_signature","repo":"Aalto-QuML/RePHINE","repo_kind":"found_in_text","path":"experiment.py","file_url":"https://github.com/Aalto-QuML/RePHINE/blob/HEAD/experiment.py","link_basis":"plan_row","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":"4f7d6a722ad2d8a7"}},{"code_sha256_prefix":"3797eacbdc5375e2","entry":"image_layer","repo":"Aalto-QuML/RePHINE","repo_kind":"found_in_text","path":"layers/permutation_equivariant_layer.py","file_url":"https://github.com/Aalto-QuML/RePHINE/blob/HEAD/layers/permutation_equivariant_layer.py","link_basis":"plan_row","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":"3797eacbdc5375e2"}},{"code_sha256_prefix":"97f1faefc830a74c","entry":"permutation_equivariant_layer","repo":"Aalto-QuML/RePHINE","repo_kind":"found_in_text","path":"layers/permutation_equivariant_layer.py","file_url":"https://github.com/Aalto-QuML/RePHINE/blob/HEAD/layers/permutation_equivariant_layer.py","link_basis":"plan_row","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":"97f1faefc830a74c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}