{"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/tackling-negative-transfer-on-graphs","title":"Subgraph Pooling: Tackling Negative Transfer on Graphs","arxiv_id":"2402.08907","date":"2024-02-14","proceeding":null,"authors":["Zehong Wang","Zheyuan Zhang","Chuxu Zhang","Yanfang Ye"],"abstract":"Transfer learning aims to enhance performance on a target task by using knowledge from related tasks. However, when the source and target tasks are not closely aligned, it can lead to reduced performance, known as negative transfer. Unlike in image or text data, we find that negative transfer could commonly occur in graph-structured data, even when source and target graphs have semantic similarities. Specifically, we identify that structural differences significantly amplify the dissimilarities in the node embeddings across graphs. To mitigate this, we bring a new insight in this paper: for semantically similar graphs, although structural differences lead to significant distribution shift in node embeddings, their impact on subgraph embeddings could be marginal. Building on this insight, we introduce Subgraph Pooling (SP) by aggregating nodes sampled from a k-hop neighborhood and Subgraph Pooling++ (SP++) by a random walk, to mitigate the impact of graph structural differences on knowledge transfer. We theoretically analyze the role of SP in reducing graph discrepancy and conduct extensive experiments to evaluate its superiority under various settings. The proposed SP methods are effective yet elegant, which can be easily applied on top of any backbone Graph Neural Networks (GNNs). Our code and data are available at: https://github.com/Zehong-Wang/Subgraph-Pooling.","url_abs":"https://arxiv.org/abs/2402.08907v2","url_pdf":"https://arxiv.org/pdf/2402.08907v2.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":"tackling-negative-transfer-on-graphs","repo_url":"https://github.com/zehong-wang/subgraph-pooling","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"transfer-learning","task_name":"Transfer Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2402.08907","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2402.08907"}},"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/zehong-wang/subgraph-pooling","reach":{"status":"ok"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/Zehong-Wang/Subgraph-Pooling","reach":{"status":"ok"}}],"summary":{"ran_draft_wrong":1,"ran_fixture":1,"ran":8,"ran_honours":1,"unverified":6},"by_repo_kind":{"official":{"samples":17,"ran":11,"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":17,"samples":[{"code_sha256_prefix":"98148369810a06c2","entry":"edges_to_adj","repo":"zehong-wang/subgraph-pooling","repo_kind":"official","path":"pre_data/datasets.py","file_url":"https://github.com/zehong-wang/subgraph-pooling/blob/HEAD/pre_data/datasets.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"98148369810a06c2"}},{"code_sha256_prefix":"ed1c637003e09152","entry":"gcn_norm","repo":"Zehong-Wang/Subgraph-Pooling","repo_kind":"official","path":"model.py","file_url":"https://github.com/Zehong-Wang/Subgraph-Pooling/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ed1c637003e09152"}},{"code_sha256_prefix":"daf55c979a3ffd35","entry":"get_n_params","repo":"zehong-wang/subgraph-pooling","repo_kind":"official","path":"utils.py","file_url":"https://github.com/zehong-wang/subgraph-pooling/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":"daf55c979a3ffd35"}},{"code_sha256_prefix":"32b454f2035d61f4","entry":"load_nc_dataset","repo":"zehong-wang/subgraph-pooling","repo_kind":"official","path":"pre_data/pre_arxiv.py","file_url":"https://github.com/zehong-wang/subgraph-pooling/blob/HEAD/pre_data/pre_arxiv.py","link_basis":"harvester_set","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":"32b454f2035d61f4"}},{"code_sha256_prefix":"2d2a8de7147f5a42","entry":"load_ogb_arxiv","repo":"zehong-wang/subgraph-pooling","repo_kind":"official","path":"pre_data/pre_arxiv.py","file_url":"https://github.com/zehong-wang/subgraph-pooling/blob/HEAD/pre_data/pre_arxiv.py","link_basis":"harvester_set","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":"2d2a8de7147f5a42"}},{"code_sha256_prefix":"6098bb77dfa6ae0d","entry":"read_edges","repo":"zehong-wang/subgraph-pooling","repo_kind":"official","path":"pre_data/datasets.py","file_url":"https://github.com/zehong-wang/subgraph-pooling/blob/HEAD/pre_data/datasets.py","link_basis":"plan_row","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":"6098bb77dfa6ae0d"}},{"code_sha256_prefix":"b73ef0ea4c1728ba","entry":"source_sampling","repo":"zehong-wang/subgraph-pooling","repo_kind":"official","path":"utils.py","file_url":"https://github.com/zehong-wang/subgraph-pooling/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":"b73ef0ea4c1728ba"}},{"code_sha256_prefix":"75b35bd6fdaaf274","entry":"take_second","repo":"zehong-wang/subgraph-pooling","repo_kind":"official","path":"pre_data/pre_arxiv.py","file_url":"https://github.com/zehong-wang/subgraph-pooling/blob/HEAD/pre_data/pre_arxiv.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"75b35bd6fdaaf274"}},{"code_sha256_prefix":"eb06c3ed47978a35","entry":"target_sampling","repo":"zehong-wang/subgraph-pooling","repo_kind":"official","path":"utils.py","file_url":"https://github.com/zehong-wang/subgraph-pooling/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":"eb06c3ed47978a35"}},{"code_sha256_prefix":"7e85cbb79f6726cb","entry":"to_planetoid","repo":"zehong-wang/subgraph-pooling","repo_kind":"official","path":"data_utils.py","file_url":"https://github.com/zehong-wang/subgraph-pooling/blob/HEAD/data_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":"7e85cbb79f6726cb"}},{"code_sha256_prefix":"e7dafa34c4dede31","entry":"train","repo":"zehong-wang/subgraph-pooling","repo_kind":"official","path":"main_multi.py","file_url":"https://github.com/zehong-wang/subgraph-pooling/blob/HEAD/main_multi.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":"e7dafa34c4dede31"}},{"code_sha256_prefix":"52ee9c9202618df7","entry":"Aggregator","repo":"Zehong-Wang/Subgraph-Pooling","repo_kind":"official","path":"model.py","file_url":"https://github.com/Zehong-Wang/Subgraph-Pooling/blob/HEAD/model.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":"52ee9c9202618df7"}},{"code_sha256_prefix":"dbc3453ab0b65dd2","entry":"GCNAggr","repo":"Zehong-Wang/Subgraph-Pooling","repo_kind":"official","path":"model.py","file_url":"https://github.com/Zehong-Wang/Subgraph-Pooling/blob/HEAD/model.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":"dbc3453ab0b65dd2"}},{"code_sha256_prefix":"c3106d3ca59accef","entry":"GNN_SP","repo":"Zehong-Wang/Subgraph-Pooling","repo_kind":"official","path":"model.py","file_url":"https://github.com/Zehong-Wang/Subgraph-Pooling/blob/HEAD/model.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":"c3106d3ca59accef"}},{"code_sha256_prefix":"919cb6dbf2c173bb","entry":"even_quantile_labels","repo":"zehong-wang/subgraph-pooling","repo_kind":"official","path":"data_utils.py","file_url":"https://github.com/zehong-wang/subgraph-pooling/blob/HEAD/data_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":"919cb6dbf2c173bb"}},{"code_sha256_prefix":"13234652741e2264","entry":"rand_train_test_idx","repo":"zehong-wang/subgraph-pooling","repo_kind":"official","path":"data_utils.py","file_url":"https://github.com/zehong-wang/subgraph-pooling/blob/HEAD/data_utils.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":"13234652741e2264"}},{"code_sha256_prefix":"585e4181a8ac620f","entry":"train","repo":"zehong-wang/subgraph-pooling","repo_kind":"official","path":"main_elliptic.py","file_url":"https://github.com/zehong-wang/subgraph-pooling/blob/HEAD/main_elliptic.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":"585e4181a8ac620f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}