{"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/efficient-and-degree-guided-graph-generation","title":"Efficient and Degree-Guided Graph Generation via Discrete Diffusion Modeling","arxiv_id":"2305.04111","date":"2023-05-06","proceeding":null,"authors":["Xiaohui Chen","Jiaxing He","Xu Han","Li-Ping Liu"],"abstract":"Diffusion-based generative graph models have been proven effective in generating high-quality small graphs. However, they need to be more scalable for generating large graphs containing thousands of nodes desiring graph statistics. In this work, we propose EDGE, a new diffusion-based generative graph model that addresses generative tasks with large graphs. To improve computation efficiency, we encourage graph sparsity by using a discrete diffusion process that randomly removes edges at each time step and finally obtains an empty graph. EDGE only focuses on a portion of nodes in the graph at each denoising step. It makes much fewer edge predictions than previous diffusion-based models. Moreover, EDGE admits explicitly modeling the node degrees of the graphs, further improving the model performance. The empirical study shows that EDGE is much more efficient than competing methods and can generate large graphs with thousands of nodes. It also outperforms baseline models in generation quality: graphs generated by our approach have more similar graph statistics to those of the training graphs.","url_abs":"https://arxiv.org/abs/2305.04111v4","url_pdf":"https://arxiv.org/pdf/2305.04111v4.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":"efficient-and-degree-guided-graph-generation","repo_url":"https://github.com/tufts-ml/graph-generation-edge","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"graph-generation","task_name":"Graph Generation"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2305.04111","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2305.04111"}},"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/tufts-ml/graph-generation-EDGE","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/tufts-ml/graph-generation-edge","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":2,"ran":3,"ran_honours":2,"unverified":8},"by_repo_kind":{"official":{"samples":15,"ran":7,"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":0,"samples":[{"code_sha256_prefix":"e88509f231bb3519","entry":"dec2bin","repo":"tufts-ml/graph-generation-EDGE","repo_kind":"official","path":"datasets/data_utils.py","file_url":"https://github.com/tufts-ml/graph-generation-EDGE/blob/HEAD/datasets/data_utils.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e88509f231bb3519"}},{"code_sha256_prefix":"d232e453e386a533","entry":"elbo_nats","repo":"tufts-ml/graph-generation-EDGE","repo_kind":"official","path":"diffusion/loss.py","file_url":"https://github.com/tufts-ml/graph-generation-EDGE/blob/HEAD/diffusion/loss.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d232e453e386a533"}},{"code_sha256_prefix":"479771b269fc5883","entry":"log_1_min_a","repo":"tufts-ml/graph-generation-EDGE","repo_kind":"official","path":"diffusion/diffusion_base.py","file_url":"https://github.com/tufts-ml/graph-generation-EDGE/blob/HEAD/diffusion/diffusion_base.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"479771b269fc5883"}},{"code_sha256_prefix":"032c0dece6594020","entry":"log_add_exp","repo":"tufts-ml/graph-generation-EDGE","repo_kind":"official","path":"diffusion/diffusion_base.py","file_url":"https://github.com/tufts-ml/graph-generation-EDGE/blob/HEAD/diffusion/diffusion_base.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"032c0dece6594020"}},{"code_sha256_prefix":"9bff0117086fa0a0","entry":"loglik_nats","repo":"tufts-ml/graph-generation-EDGE","repo_kind":"official","path":"diffusion/loss.py","file_url":"https://github.com/tufts-ml/graph-generation-EDGE/blob/HEAD/diffusion/loss.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9bff0117086fa0a0"}},{"code_sha256_prefix":"38d8ef27c0f4b98a","entry":"sum_except_batch","repo":"tufts-ml/graph-generation-EDGE","repo_kind":"official","path":"diffusion/diffusion_base.py","file_url":"https://github.com/tufts-ml/graph-generation-EDGE/blob/HEAD/diffusion/diffusion_base.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"38d8ef27c0f4b98a"}},{"code_sha256_prefix":"9dbb5a4e5682531e","entry":"time_function","repo":"tufts-ml/graph-generation-EDGE","repo_kind":"official","path":"eval_utils/evaluation/graph_structure_evaluation.py","file_url":"https://github.com/tufts-ml/graph-generation-EDGE/blob/HEAD/eval_utils/evaluation/graph_structure_evaluation.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9dbb5a4e5682531e"}},{"code_sha256_prefix":"01915861e1beb2e7","entry":"average_degree","repo":"tufts-ml/graph-generation-EDGE","repo_kind":"official","path":"eval_utils/graph_statistics.py","file_url":"https://github.com/tufts-ml/graph-generation-EDGE/blob/HEAD/eval_utils/graph_statistics.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"01915861e1beb2e7"}},{"code_sha256_prefix":"0cd35d87234319bf","entry":"bin2dec","repo":"tufts-ml/graph-generation-EDGE","repo_kind":"official","path":"datasets/data_utils.py","file_url":"https://github.com/tufts-ml/graph-generation-EDGE/blob/HEAD/datasets/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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0cd35d87234319bf"}},{"code_sha256_prefix":"6d93506952890317","entry":"get_data_id","repo":"tufts-ml/graph-generation-EDGE","repo_kind":"official","path":"datasets/data.py","file_url":"https://github.com/tufts-ml/graph-generation-EDGE/blob/HEAD/datasets/data.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6d93506952890317"}},{"code_sha256_prefix":"cd2cc3898c2d46b1","entry":"get_model_id","repo":"tufts-ml/graph-generation-EDGE","repo_kind":"official","path":"model.py","file_url":"https://github.com/tufts-ml/graph-generation-EDGE/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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cd2cc3898c2d46b1"}},{"code_sha256_prefix":"d66af0285754f521","entry":"loglik_bpd","repo":"tufts-ml/graph-generation-EDGE","repo_kind":"official","path":"diffusion/loss.py","file_url":"https://github.com/tufts-ml/graph-generation-EDGE/blob/HEAD/diffusion/loss.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d66af0285754f521"}},{"code_sha256_prefix":"647b90fa4777e970","entry":"max_degree","repo":"tufts-ml/graph-generation-EDGE","repo_kind":"official","path":"eval_utils/graph_statistics.py","file_url":"https://github.com/tufts-ml/graph-generation-EDGE/blob/HEAD/eval_utils/graph_statistics.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"647b90fa4777e970"}},{"code_sha256_prefix":"ff51060ce7b6c1b4","entry":"min_degree","repo":"tufts-ml/graph-generation-EDGE","repo_kind":"official","path":"eval_utils/graph_statistics.py","file_url":"https://github.com/tufts-ml/graph-generation-EDGE/blob/HEAD/eval_utils/graph_statistics.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ff51060ce7b6c1b4"}},{"code_sha256_prefix":"b3ebcb1272823098","entry":"unpack_deg_matrix","repo":"tufts-ml/graph-generation-EDGE","repo_kind":"official","path":"datasets/data_utils.py","file_url":"https://github.com/tufts-ml/graph-generation-EDGE/blob/HEAD/datasets/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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b3ebcb1272823098"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}