{"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/discrete-state-continuous-time-diffusion-for","title":"Discrete-state Continuous-time Diffusion for Graph Generation","arxiv_id":"2405.11416","date":"2024-05-19","proceeding":null,"authors":["Zhe Xu","Ruizhong Qiu","Yuzhong Chen","Huiyuan Chen","Xiran Fan","Menghai Pan","Zhichen Zeng","Mahashweta Das","Hanghang Tong"],"abstract":"Graph is a prevalent discrete data structure, whose generation has wide applications such as drug discovery and circuit design. Diffusion generative models, as an emerging research focus, have been applied to graph generation tasks. Overall, according to the space of states and time steps, diffusion generative models can be categorized into discrete-/continuous-state discrete-/continuous-time fashions. In this paper, we formulate the graph diffusion generation in a discrete-state continuous-time setting, which has never been studied in previous graph diffusion models. The rationale of such a formulation is to preserve the discrete nature of graph-structured data and meanwhile provide flexible sampling trade-offs between sample quality and efficiency. Analysis shows that our training objective is closely related to generation quality, and our proposed generation framework enjoys ideal invariant/equivariant properties concerning the permutation of node ordering. Our proposed model shows competitive empirical performance against state-of-the-art graph generation solutions on various benchmarks and, at the same time, can flexibly trade off the generation quality and efficiency in the sampling phase.","url_abs":"https://arxiv.org/abs/2405.11416v2","url_pdf":"https://arxiv.org/pdf/2405.11416v2.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":"discrete-state-continuous-time-diffusion-for","repo_url":"https://github.com/pricexu/disco","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"drug-discovery","task_name":"Drug Discovery"},{"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=2405.11416","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.11416"}},"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/pricexu/disco","reach":{"status":"ok"}}],"summary":{"ran":6,"ran_honours":1,"unverified":6},"by_repo_kind":{"official":{"samples":13,"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":13,"samples":[{"code_sha256_prefix":"1361abf23cb3974c","entry":"CELoss","repo":"pricexu/disco","repo_kind":"official","path":"losses.py","file_url":"https://github.com/pricexu/disco/blob/HEAD/losses.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":"1361abf23cb3974c"}},{"code_sha256_prefix":"c7bdc4563efb6a54","entry":"batch_diagonal","repo":"pricexu/disco","repo_kind":"official","path":"auxiliary_features.py","file_url":"https://github.com/pricexu/disco/blob/HEAD/auxiliary_features.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":"c7bdc4563efb6a54"}},{"code_sha256_prefix":"5c7a2bca5382b3de","entry":"batch_trace","repo":"pricexu/disco","repo_kind":"official","path":"auxiliary_features.py","file_url":"https://github.com/pricexu/disco/blob/HEAD/auxiliary_features.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":"5c7a2bca5382b3de"}},{"code_sha256_prefix":"d6daf535b19d5c59","entry":"clustering_worker","repo":"pricexu/disco","repo_kind":"official","path":"eval_spectre.py","file_url":"https://github.com/pricexu/disco/blob/HEAD/eval_spectre.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":"d6daf535b19d5c59"}},{"code_sha256_prefix":"b4b44764a0fb2340","entry":"compute_cycles","repo":"pricexu/disco","repo_kind":"official","path":"auxiliary_features.py","file_url":"https://github.com/pricexu/disco/blob/HEAD/auxiliary_features.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":"b4b44764a0fb2340"}},{"code_sha256_prefix":"9c5d2bddf8007e99","entry":"get_dataset_info","repo":"pricexu/disco","repo_kind":"official","path":"dataset_info.py","file_url":"https://github.com/pricexu/disco/blob/HEAD/dataset_info.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":"9c5d2bddf8007e99"}},{"code_sha256_prefix":"039fc6561a9516bc","entry":"l2","repo":"pricexu/disco","repo_kind":"official","path":"dist_helper.py","file_url":"https://github.com/pricexu/disco/blob/HEAD/dist_helper.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"039fc6561a9516bc"}},{"code_sha256_prefix":"2830d89cd6960c9d","entry":"degree_worker","repo":"pricexu/disco","repo_kind":"official","path":"eval_spectre.py","file_url":"https://github.com/pricexu/disco/blob/HEAD/eval_spectre.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":"2830d89cd6960c9d"}},{"code_sha256_prefix":"1717b7476aced94e","entry":"masked_softmax","repo":"pricexu/disco","repo_kind":"official","path":"digress_models.py","file_url":"https://github.com/pricexu/disco/blob/HEAD/digress_models.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":"1717b7476aced94e"}},{"code_sha256_prefix":"dfdb772a9ed383b3","entry":"masked_softmax","repo":"pricexu/disco","repo_kind":"official","path":"models.py","file_url":"https://github.com/pricexu/disco/blob/HEAD/models.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":"dfdb772a9ed383b3"}},{"code_sha256_prefix":"c9deab4d534bd6fd","entry":"normalize","repo":"pricexu/disco","repo_kind":"official","path":"digress_utils.py","file_url":"https://github.com/pricexu/disco/blob/HEAD/digress_utils.py","link_basis":"plan_row","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":"c9deab4d534bd6fd"}},{"code_sha256_prefix":"f8f656160d633d0b","entry":"to_dense","repo":"pricexu/disco","repo_kind":"official","path":"digress_utils.py","file_url":"https://github.com/pricexu/disco/blob/HEAD/digress_utils.py","link_basis":"plan_row","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":"f8f656160d633d0b"}},{"code_sha256_prefix":"1710d35360c8aadf","entry":"unnormalize","repo":"pricexu/disco","repo_kind":"official","path":"digress_utils.py","file_url":"https://github.com/pricexu/disco/blob/HEAD/digress_utils.py","link_basis":"plan_row","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":"1710d35360c8aadf"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}