{"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/dynamic-transfer-learning-across-graphs","title":"EvoluNet: Advancing Dynamic Non-IID Transfer Learning on Graphs","arxiv_id":"2305.00664","date":"2023-05-01","proceeding":null,"authors":["Haohui Wang","Yuzhen Mao","Yujun Yan","Yaoqing Yang","Jianhui Sun","Kevin Choi","Balaji Veeramani","Alison Hu","Edward Bowen","Tyler Cody","Dawei Zhou"],"abstract":"Non-IID transfer learning on graphs is crucial in many high-stakes domains. The majority of existing works assume stationary distribution for both source and target domains. However, real-world graphs are intrinsically dynamic, presenting challenges in terms of domain evolution and dynamic discrepancy between source and target domains. To bridge the gap, we shift the problem to the dynamic setting and pose the question: given the label-rich source graphs and the label-scarce target graphs both observed in previous T timestamps, how can we effectively characterize the evolving domain discrepancy and optimize the generalization performance of the target domain at the incoming T+1 timestamp? To answer it, we propose a generalization bound for dynamic non-IID transfer learning on graphs, which implies the generalization performance is dominated by domain evolution and domain discrepancy between source and target graphs. Inspired by the theoretical results, we introduce a novel generic framework named EvoluNet. It leverages a transformer-based temporal encoding module to model temporal information of the evolving domains and then uses a dynamic domain unification module to efficiently learn domain-invariant representations across the source and target domains. Finally, EvoluNet outperforms the state-of-the-art models by up to 12.1%, demonstrating its effectiveness in transferring knowledge from dynamic source graphs to dynamic target graphs.","url_abs":"https://arxiv.org/abs/2305.00664v6","url_pdf":"https://arxiv.org/pdf/2305.00664v6.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":"dynamic-transfer-learning-across-graphs","repo_url":"https://github.com/wanghh7/evolunet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"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=2305.00664","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2305.00664"}},"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/wanghh7/EvoluNet","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/wanghh7/evolunet","reach":{"status":"ok"}}],"summary":{"ran":7,"ran_draft_wrong":2,"unverified":5},"by_repo_kind":{"official":{"samples":14,"ran":9,"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":14,"samples":[{"code_sha256_prefix":"d9faf5d7973ad371","entry":"EncoderBlock","repo":"wanghh7/evolunet","repo_kind":"official","path":"model/model.py","file_url":"https://github.com/wanghh7/evolunet/blob/HEAD/model/model.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":"d9faf5d7973ad371"}},{"code_sha256_prefix":"8b45ad308015a342","entry":"GNN","repo":"wanghh7/evolunet","repo_kind":"official","path":"model/model.py","file_url":"https://github.com/wanghh7/evolunet/blob/HEAD/model/model.py","link_basis":"first_harvest_node","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":"8b45ad308015a342"}},{"code_sha256_prefix":"10004f26c7642fef","entry":"GradientReversalLayer","repo":"wanghh7/evolunet","repo_kind":"official","path":"model/model.py","file_url":"https://github.com/wanghh7/evolunet/blob/HEAD/model/model.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":"10004f26c7642fef"}},{"code_sha256_prefix":"0838369745d53cad","entry":"MultiheadAttention","repo":"wanghh7/evolunet","repo_kind":"official","path":"model/model.py","file_url":"https://github.com/wanghh7/evolunet/blob/HEAD/model/model.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":"0838369745d53cad"}},{"code_sha256_prefix":"ddfd16bde0ae3976","entry":"PositionalEncoding","repo":"wanghh7/evolunet","repo_kind":"official","path":"model/model.py","file_url":"https://github.com/wanghh7/evolunet/blob/HEAD/model/model.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":"ddfd16bde0ae3976"}},{"code_sha256_prefix":"dee6e09cb646e93c","entry":"TransformerEncoder","repo":"wanghh7/evolunet","repo_kind":"official","path":"model/model.py","file_url":"https://github.com/wanghh7/evolunet/blob/HEAD/model/model.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":"dee6e09cb646e93c"}},{"code_sha256_prefix":"ebffabb81ce29e7b","entry":"TransformerPredictor","repo":"wanghh7/evolunet","repo_kind":"official","path":"model/model.py","file_url":"https://github.com/wanghh7/evolunet/blob/HEAD/model/model.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":"ebffabb81ce29e7b"}},{"code_sha256_prefix":"8d4b93288e64fc96","entry":"scaled_dot_product","repo":"wanghh7/evolunet","repo_kind":"official","path":"model/Transformer.py","file_url":"https://github.com/wanghh7/evolunet/blob/HEAD/model/Transformer.py","link_basis":"first_harvest_node","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":"8d4b93288e64fc96"}},{"code_sha256_prefix":"bfb059e5bf53dd8a","entry":"scaled_dot_product","repo":"wanghh7/evolunet","repo_kind":"official","path":"model/model.py","file_url":"https://github.com/wanghh7/evolunet/blob/HEAD/model/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bfb059e5bf53dd8a"}},{"code_sha256_prefix":"1a91488ba132deac","entry":"GINConv","repo":"wanghh7/evolunet","repo_kind":"official","path":"model/model.py","file_url":"https://github.com/wanghh7/evolunet/blob/HEAD/model/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":"1a91488ba132deac"}},{"code_sha256_prefix":"44a98324fdea4b59","entry":"TransNet","repo":"wanghh7/evolunet","repo_kind":"official","path":"model/model.py","file_url":"https://github.com/wanghh7/evolunet/blob/HEAD/model/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":"44a98324fdea4b59"}},{"code_sha256_prefix":"2af86964d73cd0a7","entry":"test","repo":"wanghh7/evolunet","repo_kind":"official","path":"evolunet.py","file_url":"https://github.com/wanghh7/evolunet/blob/HEAD/evolunet.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":"2af86964d73cd0a7"}},{"code_sha256_prefix":"cf837bb00eaeb9b7","entry":"test_source","repo":"wanghh7/evolunet","repo_kind":"official","path":"evolunet.py","file_url":"https://github.com/wanghh7/evolunet/blob/HEAD/evolunet.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":"cf837bb00eaeb9b7"}},{"code_sha256_prefix":"3bdc3e19017c4172","entry":"train_epoch","repo":"wanghh7/evolunet","repo_kind":"official","path":"evolunet.py","file_url":"https://github.com/wanghh7/evolunet/blob/HEAD/evolunet.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":"3bdc3e19017c4172"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}