{"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/graphgdp-generative-diffusion-processes-for","title":"GraphGDP: Generative Diffusion Processes for Permutation Invariant Graph Generation","arxiv_id":"2212.01842","date":"2022-12-04","proceeding":null,"authors":["Han Huang","Leilei Sun","Bowen Du","Yanjie Fu","Weifeng Lv"],"abstract":"Graph generative models have broad applications in biology, chemistry and social science. However, modelling and understanding the generative process of graphs is challenging due to the discrete and high-dimensional nature of graphs, as well as permutation invariance to node orderings in underlying graph distributions. Current leading autoregressive models fail to capture the permutation invariance nature of graphs for the reliance on generation ordering and have high time complexity. Here, we propose a continuous-time generative diffusion process for permutation invariant graph generation to mitigate these issues. Specifically, we first construct a forward diffusion process defined by a stochastic differential equation (SDE), which smoothly converts graphs within the complex distribution to random graphs that follow a known edge probability. Solving the corresponding reverse-time SDE, graphs can be generated from newly sampled random graphs. To facilitate the reverse-time SDE, we newly design a position-enhanced graph score network, capturing the evolving structure and position information from perturbed graphs for permutation equivariant score estimation. Under the evaluation of comprehensive metrics, our proposed generative diffusion process achieves competitive performance in graph distribution learning. Experimental results also show that GraphGDP can generate high-quality graphs in only 24 function evaluations, much faster than previous autoregressive models.","url_abs":"https://arxiv.org/abs/2212.01842v1","url_pdf":"https://arxiv.org/pdf/2212.01842v1.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":"graphgdp-generative-diffusion-processes-for","repo_url":"https://github.com/graph-0/graphgdp","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"graph-generation","task_name":"Graph Generation"},{"task_slug":null,"task_name":"Position"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"},{"method_slug":"fail","method_name":"fail"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2212.01842","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2212.01842"}},"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/graph-0/graphgdp","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":4,"ran":1,"unverified":9},"by_repo_kind":{"official":{"samples":14,"ran":5,"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":"6c419026e778dee2","entry":"get_data_inverse_scaler","repo":"graph-0/graphgdp","repo_kind":"official","path":"datasets.py","file_url":"https://github.com/graph-0/graphgdp/blob/HEAD/datasets.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6c419026e778dee2"}},{"code_sha256_prefix":"346d2e6cc8b48a5d","entry":"get_data_scaler","repo":"graph-0/graphgdp","repo_kind":"official","path":"datasets.py","file_url":"https://github.com/graph-0/graphgdp/blob/HEAD/datasets.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"346d2e6cc8b48a5d"}},{"code_sha256_prefix":"4f8e8738883964be","entry":"get_timestep_embedding","repo":"graph-0/graphgdp","repo_kind":"official","path":"models/layers.py","file_url":"https://github.com/graph-0/graphgdp/blob/HEAD/models/layers.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4f8e8738883964be"}},{"code_sha256_prefix":"a53120cd234c1c84","entry":"register_corrector","repo":"graph-0/graphgdp","repo_kind":"official","path":"sampling.py","file_url":"https://github.com/graph-0/graphgdp/blob/HEAD/sampling.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a53120cd234c1c84"}},{"code_sha256_prefix":"abf6bf1442562d4a","entry":"register_predictor","repo":"graph-0/graphgdp","repo_kind":"official","path":"sampling.py","file_url":"https://github.com/graph-0/graphgdp/blob/HEAD/sampling.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"abf6bf1442562d4a"}},{"code_sha256_prefix":"40212f42656d386e","entry":"conv1x1","repo":"graph-0/graphgdp","repo_kind":"official","path":"models/layers.py","file_url":"https://github.com/graph-0/graphgdp/blob/HEAD/models/layers.py","link_basis":"harvester_set","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":"40212f42656d386e"}},{"code_sha256_prefix":"51707ec7a2051aae","entry":"create_model","repo":"graph-0/graphgdp","repo_kind":"official","path":"models/utils.py","file_url":"https://github.com/graph-0/graphgdp/blob/HEAD/models/utils.py","link_basis":"harvester_set","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":"51707ec7a2051aae"}},{"code_sha256_prefix":"fcf5cbfaa8b698a4","entry":"get_act","repo":"graph-0/graphgdp","repo_kind":"official","path":"models/layers.py","file_url":"https://github.com/graph-0/graphgdp/blob/HEAD/models/layers.py","link_basis":"harvester_set","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":"fcf5cbfaa8b698a4"}},{"code_sha256_prefix":"b3e18524b8df81a1","entry":"get_model","repo":"graph-0/graphgdp","repo_kind":"official","path":"models/utils.py","file_url":"https://github.com/graph-0/graphgdp/blob/HEAD/models/utils.py","link_basis":"harvester_set","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":"b3e18524b8df81a1"}},{"code_sha256_prefix":"cd6d1a027522be44","entry":"get_optimizer","repo":"graph-0/graphgdp","repo_kind":"official","path":"losses.py","file_url":"https://github.com/graph-0/graphgdp/blob/HEAD/losses.py","link_basis":"harvester_set","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":"cd6d1a027522be44"}},{"code_sha256_prefix":"a58facb8fe71823a","entry":"get_predictor","repo":"graph-0/graphgdp","repo_kind":"official","path":"sampling.py","file_url":"https://github.com/graph-0/graphgdp/blob/HEAD/sampling.py","link_basis":"harvester_set","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":"a58facb8fe71823a"}},{"code_sha256_prefix":"ed18f42e9ae89218","entry":"networkx_graphs","repo":"graph-0/graphgdp","repo_kind":"official","path":"datasets.py","file_url":"https://github.com/graph-0/graphgdp/blob/HEAD/datasets.py","link_basis":"harvester_set","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":"ed18f42e9ae89218"}},{"code_sha256_prefix":"6d0eb222ef011692","entry":"optimization_manager","repo":"graph-0/graphgdp","repo_kind":"official","path":"losses.py","file_url":"https://github.com/graph-0/graphgdp/blob/HEAD/losses.py","link_basis":"harvester_set","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":"6d0eb222ef011692"}},{"code_sha256_prefix":"e4b39361eb110388","entry":"register_model","repo":"graph-0/graphgdp","repo_kind":"official","path":"models/utils.py","file_url":"https://github.com/graph-0/graphgdp/blob/HEAD/models/utils.py","link_basis":"harvester_set","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":"e4b39361eb110388"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}