{"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/arxiv-2609-00696","title":"MUGEN: Generating Unlearnable Graph Examples for Multiple Learning Tasks","arxiv_id":"2609.00696","date":"2026-09-01","proceeding":null,"authors":["Ziyan Liu","Chengshuai Zhao","Huan Liu"],"abstract":"Graph data across diverse domains can expose valuable relational information to unauthorized representation learning, creating a pressing need for protection against such misuse. Unlearnable examples offer a data-level defense by perturbing a training release so that models trained on it fail to generalize to clean data. Existing methods generate unlearnable graph examples for only a specified downstream task. Consequently, a release protected against one task may remain learnable for other plausible uses, including node classification, graph classification, and link prediction, which the data owner cannot anticipate. We introduce MUGEN, to our knowledge the first framework for generating unlearnable graph examples that jointly protect all enabled tasks. From one clean dataset, MUGEN produces a single feature-perturbed release that protects every enabled task through a shared GNN encoder and task-specific heads. We devise a Task-Aligned Separability Objective (TASO), which leverages task prediction and classwise separability to strengthen unlearnability and its transfer across GNN backbones and enabled tasks. We further introduce Type-Adaptive Perturbation (TAP), which tailors perturbation optimization to node-attribute type, with direct search over feasible hard flips that accept only loss-improving updates for discrete node attributes and customized gradient-based updates for continuous node features, thereby enabling strong unlearnability across both settings. Experiments across five benchmarks, four backends and three learning paradigms demonstrate that MUGEN generates transferable unlearnable graph examples across GNN backbones and all three tasks, and remains effective under adversarial training and data augmentation.","url_abs":"https://arxiv.org/abs/2609.00696","url_pdf":"https://arxiv.org/pdf/2609.00696","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2609.00696","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2609.00696"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/ZiyanLiu16/MUGEN","reach":{"status":"ok"}}],"summary":{"ran_draft_wrong":1,"unverified":5},"by_repo_kind":{"found_in_text":{"samples":6,"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":6,"samples":[{"code_sha256_prefix":"adf3b9c6c22af5ce","entry":"accuracy","repo":"ZiyanLiu16/MUGEN","repo_kind":"found_in_text","path":"mugen/utils.py","file_url":"https://github.com/ZiyanLiu16/MUGEN/blob/HEAD/mugen/utils.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"adf3b9c6c22af5ce"}},{"code_sha256_prefix":"8939a5b1f7f7f533","entry":"assign_edge_weights","repo":"ZiyanLiu16/MUGEN","repo_kind":"found_in_text","path":"mugen/models/edge_perturbation.py","file_url":"https://github.com/ZiyanLiu16/MUGEN/blob/HEAD/mugen/models/edge_perturbation.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":"8939a5b1f7f7f533"}},{"code_sha256_prefix":"c9c9174dc014b586","entry":"get_current_lr","repo":"ZiyanLiu16/MUGEN","repo_kind":"found_in_text","path":"mugen/utils.py","file_url":"https://github.com/ZiyanLiu16/MUGEN/blob/HEAD/mugen/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":"c9c9174dc014b586"}},{"code_sha256_prefix":"f2985ba100d2623c","entry":"get_edge_weights","repo":"ZiyanLiu16/MUGEN","repo_kind":"found_in_text","path":"mugen/models/edge_perturbation.py","file_url":"https://github.com/ZiyanLiu16/MUGEN/blob/HEAD/mugen/models/edge_perturbation.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":"f2985ba100d2623c"}},{"code_sha256_prefix":"6f9bb5eb98ec4887","entry":"sce_loss","repo":"ZiyanLiu16/MUGEN","repo_kind":"found_in_text","path":"mugen/models/loss_func.py","file_url":"https://github.com/ZiyanLiu16/MUGEN/blob/HEAD/mugen/models/loss_func.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":"6f9bb5eb98ec4887"}},{"code_sha256_prefix":"f2502a1d225b3dd3","entry":"sig_loss","repo":"ZiyanLiu16/MUGEN","repo_kind":"found_in_text","path":"mugen/models/loss_func.py","file_url":"https://github.com/ZiyanLiu16/MUGEN/blob/HEAD/mugen/models/loss_func.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":"f2502a1d225b3dd3"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_daily_20260902.json"},"syntology_extracted_results":null}