{"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/why-does-dropping-edges-usually-outperform","title":"Why Does Dropping Edges Usually Outperform Adding Edges in Graph Contrastive Learning?","arxiv_id":"2412.08128","date":"2024-12-11","proceeding":null,"authors":["Yanchen Xu","Siqi Huang","Hongyuan Zhang","Xuelong Li"],"abstract":"Graph contrastive learning (GCL) has been widely used as an effective self-supervised learning method for graph representation learning. However, how to apply adequate and stable graph augmentation to generating proper views for contrastive learning remains an essential problem. Dropping edges is a primary augmentation in GCL while adding edges is not a common method due to its unstable performance. To our best knowledge, there is no theoretical analysis to study why dropping edges usually outperforms adding edges. To answer this question, we introduce a new metric, namely Error Passing Rate (EPR), to quantify how a graph fits the network. Inspired by the theoretical conclusions and the idea of positive-incentive noise, we propose a novel GCL algorithm, Error-PAssing-based Graph Contrastive Learning (EPAGCL), which uses both edge adding and edge dropping as its augmentations. To be specific, we generate views by adding and dropping edges based on the weights derived from EPR. Extensive experiments on various real-world datasets are conducted to validate the correctness of our theoretical analysis and the effectiveness of our proposed algorithm. Our code is available at: https://github.com/hyzhang98/EPAGCL.","url_abs":"https://arxiv.org/abs/2412.08128v4","url_pdf":"https://arxiv.org/pdf/2412.08128v4.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":"why-does-dropping-edges-usually-outperform","repo_url":"https://github.com/hyzhang98/epagcl","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"contrastive-learning","task_name":"Contrastive Learning"},{"task_slug":"graph-representation-learning","task_name":"Graph Representation Learning"},{"task_slug":"representation-learning","task_name":"Representation Learning"},{"task_slug":"self-supervised-learning","task_name":"Self-Supervised Learning"}],"methods":[{"method_slug":"contrastive-learning","method_name":"Contrastive Learning"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2412.08128","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2412.08128"}},"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/hyzhang98/epagcl","reach":{"status":"ok"}}],"summary":{"unverified":6},"by_repo_kind":{"official":{"samples":6,"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":6,"samples":[{"code_sha256_prefix":"2e52e3eb2910f615","entry":"ac","repo":"hyzhang98/epagcl","repo_kind":"official","path":"Linear_evaluation.py","file_url":"https://github.com/hyzhang98/epagcl/blob/HEAD/Linear_evaluation.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":"2e52e3eb2910f615"}},{"code_sha256_prefix":"4c7a48033e0e2bdb","entry":"add_edge_random","repo":"hyzhang98/epagcl","repo_kind":"official","path":"Augmentation.py","file_url":"https://github.com/hyzhang98/epagcl/blob/HEAD/Augmentation.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":"4c7a48033e0e2bdb"}},{"code_sha256_prefix":"3a6071037c437fd2","entry":"add_edge_weights","repo":"hyzhang98/epagcl","repo_kind":"official","path":"Augmentation.py","file_url":"https://github.com/hyzhang98/epagcl/blob/HEAD/Augmentation.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":"3a6071037c437fd2"}},{"code_sha256_prefix":"bd7987d9c0580d1f","entry":"add_edges","repo":"hyzhang98/epagcl","repo_kind":"official","path":"Augmentation.py","file_url":"https://github.com/hyzhang98/epagcl/blob/HEAD/Augmentation.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":"bd7987d9c0580d1f"}},{"code_sha256_prefix":"506aca657ecef682","entry":"dataset_split","repo":"hyzhang98/epagcl","repo_kind":"official","path":"Linear_evaluation.py","file_url":"https://github.com/hyzhang98/epagcl/blob/HEAD/Linear_evaluation.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":"506aca657ecef682"}},{"code_sha256_prefix":"7e94915c3b426976","entry":"get_optim","repo":"hyzhang98/epagcl","repo_kind":"official","path":"Utils.py","file_url":"https://github.com/hyzhang98/epagcl/blob/HEAD/Utils.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":"7e94915c3b426976"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}