{"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/improving-self-supervised-molecular-1","title":"Improving Self-supervised Molecular Representation Learning using Persistent Homology","arxiv_id":"2311.17327","date":"2023-11-29","proceeding":"NeurIPS 2023 11","authors":["Yuankai Luo","Lei Shi","Veronika Thost"],"abstract":"Self-supervised learning (SSL) has great potential for molecular representation learning given the complexity of molecular graphs, the large amounts of unlabelled data available, the considerable cost of obtaining labels experimentally, and the hence often only small training datasets. The importance of the topic is reflected in the variety of paradigms and architectures that have been investigated recently. Yet the differences in performance seem often minor and are barely understood to date. In this paper, we study SSL based on persistent homology (PH), a mathematical tool for modeling topological features of data that persist across multiple scales. It has several unique features which particularly suit SSL, naturally offering: different views of the data, stability in terms of distance preservation, and the opportunity to flexibly incorporate domain knowledge. We (1) investigate an autoencoder, which shows the general representational power of PH, and (2) propose a contrastive loss that complements existing approaches. We rigorously evaluate our approach for molecular property prediction and demonstrate its particular features in improving the embedding space: after SSL, the representations are better and offer considerably more predictive power than the baselines over different probing tasks; our loss increases baseline performance, sometimes largely; and we often obtain substantial improvements over very small datasets, a common scenario in practice.","url_abs":"https://arxiv.org/abs/2311.17327v1","url_pdf":"https://arxiv.org/pdf/2311.17327v1.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":"improving-self-supervised-molecular-1","repo_url":"https://github.com/luoyk1999/molecular-homology","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"molecular-property-prediction","task_name":"Molecular Property Prediction"},{"task_slug":"property-prediction","task_name":"Property Prediction"},{"task_slug":"representation-learning","task_name":"Representation Learning"},{"task_slug":"self-supervised-learning","task_name":"Self-Supervised Learning"},{"task_slug":"molecular-representation","task_name":"molecular representation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2311.17327","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2311.17327"}},"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/LUOyk1999/Molecular-homology","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/luoyk1999/molecular-homology","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":4,"unverified":7},"by_repo_kind":{"official":{"samples":11,"ran":4,"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":"4813598288997a46","entry":"eval","repo":"LUOyk1999/Molecular-homology","repo_kind":"official","path":"finetune/PI_SSVM.py","file_url":"https://github.com/LUOyk1999/Molecular-homology/blob/HEAD/finetune/PI_SSVM.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4813598288997a46"}},{"code_sha256_prefix":"2231da93609b1a63","entry":"eval","repo":"LUOyk1999/Molecular-homology","repo_kind":"official","path":"finetune/finetune_PI.py","file_url":"https://github.com/LUOyk1999/Molecular-homology/blob/HEAD/finetune/finetune_PI.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2231da93609b1a63"}},{"code_sha256_prefix":"f2033d144dea2f7d","entry":"pearson_correlation","repo":"LUOyk1999/Molecular-homology","repo_kind":"official","path":"finetune/finetune_PI.py","file_url":"https://github.com/LUOyk1999/Molecular-homology/blob/HEAD/finetune/finetune_PI.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f2033d144dea2f7d"}},{"code_sha256_prefix":"a5d7dc316a22678a","entry":"train","repo":"LUOyk1999/Molecular-homology","repo_kind":"official","path":"finetune/finetune_PI.py","file_url":"https://github.com/LUOyk1999/Molecular-homology/blob/HEAD/finetune/finetune_PI.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a5d7dc316a22678a"}},{"code_sha256_prefix":"78fd2b56af04527d","entry":"eval","repo":"luoyk1999/molecular-homology","repo_kind":"official","path":"finetune/finetune.py","file_url":"https://github.com/luoyk1999/molecular-homology/blob/HEAD/finetune/finetune.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"78fd2b56af04527d"}},{"code_sha256_prefix":"9e1ab9842a6eae20","entry":"eval","repo":"LUOyk1999/Molecular-homology","repo_kind":"official","path":"finetune/finetune_concat.py","file_url":"https://github.com/LUOyk1999/Molecular-homology/blob/HEAD/finetune/finetune_concat.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9e1ab9842a6eae20"}},{"code_sha256_prefix":"90e631aaf0ae4800","entry":"eval","repo":"LUOyk1999/Molecular-homology","repo_kind":"official","path":"finetune/finetune_individual.py","file_url":"https://github.com/LUOyk1999/Molecular-homology/blob/HEAD/finetune/finetune_individual.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"90e631aaf0ae4800"}},{"code_sha256_prefix":"1bdbcd220ba6eefe","entry":"eval","repo":"LUOyk1999/Molecular-homology","repo_kind":"official","path":"finetune/finetune_subset.py","file_url":"https://github.com/LUOyk1999/Molecular-homology/blob/HEAD/finetune/finetune_subset.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1bdbcd220ba6eefe"}},{"code_sha256_prefix":"33289ea7fc2c396c","entry":"eval","repo":"LUOyk1999/Molecular-homology","repo_kind":"official","path":"finetune/knn.py","file_url":"https://github.com/LUOyk1999/Molecular-homology/blob/HEAD/finetune/knn.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"33289ea7fc2c396c"}},{"code_sha256_prefix":"d674bc77f0d11cae","entry":"loss_topo","repo":"luoyk1999/molecular-homology","repo_kind":"official","path":"pretrain_PI/pretrain_graphcl_TDL.py","file_url":"https://github.com/luoyk1999/molecular-homology/blob/HEAD/pretrain_PI/pretrain_graphcl_TDL.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d674bc77f0d11cae"}},{"code_sha256_prefix":"dd6b2ab1d9d8e062","entry":"sigmoid","repo":"luoyk1999/molecular-homology","repo_kind":"official","path":"finetune/finetune.py","file_url":"https://github.com/luoyk1999/molecular-homology/blob/HEAD/finetune/finetune.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"dd6b2ab1d9d8e062"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}