{"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/graph-contrastive-learning-automated","title":"Graph Contrastive Learning Automated","arxiv_id":"2106.07594","date":"2021-06-10","proceeding":null,"authors":["Yuning You","Tianlong Chen","Yang shen","Zhangyang Wang"],"abstract":"Self-supervised learning on graph-structured data has drawn recent interest for learning generalizable, transferable and robust representations from unlabeled graphs. Among many, graph contrastive learning (GraphCL) has emerged with promising representation learning performance. Unfortunately, unlike its counterpart on image data, the effectiveness of GraphCL hinges on ad-hoc data augmentations, which have to be manually picked per dataset, by either rules of thumb or trial-and-errors, owing to the diverse nature of graph data. That significantly limits the more general applicability of GraphCL. Aiming to fill in this crucial gap, this paper proposes a unified bi-level optimization framework to automatically, adaptively and dynamically select data augmentations when performing GraphCL on specific graph data. The general framework, dubbed JOint Augmentation Optimization (JOAO), is instantiated as min-max optimization. The selections of augmentations made by JOAO are shown to be in general aligned with previous \"best practices\" observed from handcrafted tuning: yet now being automated, more flexible and versatile. Moreover, we propose a new augmentation-aware projection head mechanism, which will route output features through different projection heads corresponding to different augmentations chosen at each training step. Extensive experiments demonstrate that JOAO performs on par with or sometimes better than the state-of-the-art competitors including GraphCL, on multiple graph datasets of various scales and types, yet without resorting to any laborious dataset-specific tuning on augmentation selection. We release the code at https://github.com/Shen-Lab/GraphCL_Automated.","url_abs":"https://arxiv.org/abs/2106.07594v2","url_pdf":"https://arxiv.org/pdf/2106.07594v2.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":"graph-contrastive-learning-automated","repo_url":"https://github.com/Shen-Lab/GraphCL_Automated","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"graph-contrastive-learning-automated","repo_url":"https://github.com/chao1224/graphmvp","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"contrastive-learning","task_name":"Contrastive 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"},{"method_slug":"graphcl","method_name":"GraphCL"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2106.07594","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2106.07594"}},"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/Shen-Lab/GraphCL_Automated","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/chao1224/graphmvp","reach":null}],"summary":{"ran":2,"ran_honours":1,"unverified":3},"by_repo_kind":{"official":{"samples":5,"ran":2,"repositories":1},"listed":{"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":5,"samples":[{"code_sha256_prefix":"0b0d72d70fed5ac3","entry":"Encoder","repo":"Shen-Lab/GraphCL_Automated","repo_kind":"official","path":"unsupervised_TU/joao.py","file_url":"https://github.com/Shen-Lab/GraphCL_Automated/blob/HEAD/unsupervised_TU/joao.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0b0d72d70fed5ac3"}},{"code_sha256_prefix":"b822dd00427403bf","entry":"cycle_index","repo":"shen-lab/graphcl_automated","repo_kind":"official","path":"transferLearning_MoleculeNet_PPI/bio/pretrain_joao.py","file_url":"https://github.com/shen-lab/graphcl_automated/blob/HEAD/transferLearning_MoleculeNet_PPI/bio/pretrain_joao.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b822dd00427403bf"}},{"code_sha256_prefix":"a2d3c0ee16ce7cc9","entry":"graphcl","repo":"chao1224/graphmvp","repo_kind":"listed","path":"src_classification/pretrain_JOAOv2.py","file_url":"https://github.com/chao1224/graphmvp/blob/HEAD/src_classification/pretrain_JOAOv2.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a2d3c0ee16ce7cc9"}},{"code_sha256_prefix":"c0a9a5dc5a28a4a4","entry":"GcnInfomax","repo":"Shen-Lab/GraphCL_Automated","repo_kind":"official","path":"unsupervised_TU/joao.py","file_url":"https://github.com/Shen-Lab/GraphCL_Automated/blob/HEAD/unsupervised_TU/joao.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":"c0a9a5dc5a28a4a4"}},{"code_sha256_prefix":"169c3379d3f0bda6","entry":"train","repo":"shen-lab/graphcl_automated","repo_kind":"official","path":"semisupervised_OGB/code/main_pretrain_graphcl_joao.py","file_url":"https://github.com/shen-lab/graphcl_automated/blob/HEAD/semisupervised_OGB/code/main_pretrain_graphcl_joao.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":"169c3379d3f0bda6"}},{"code_sha256_prefix":"4a1d1036ace0997f","entry":"train","repo":"shen-lab/graphcl_automated","repo_kind":"official","path":"transferLearning_MoleculeNet_PPI/bio/pretrain_joao.py","file_url":"https://github.com/shen-lab/graphcl_automated/blob/HEAD/transferLearning_MoleculeNet_PPI/bio/pretrain_joao.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":"4a1d1036ace0997f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}