{"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/sparse-training-of-discrete-diffusion-models","title":"Sparse Training of Discrete Diffusion Models for Graph Generation","arxiv_id":"2311.02142","date":"2023-11-03","proceeding":null,"authors":["Yiming Qin","Clement Vignac","Pascal Frossard"],"abstract":"Generative graph models struggle to scale due to the need to predict the existence or type of edges between all node pairs. To address the resulting quadratic complexity, existing scalable models often impose restrictive assumptions such as a cluster structure within graphs, thus limiting their applicability. To address this, we introduce SparseDiff, a novel diffusion model based on the observation that almost all large graphs are sparse. By selecting a subset of edges, SparseDiff effectively leverages sparse graph representations both during the noising process and within the denoising network, which ensures that space complexity scales linearly with the number of chosen edges. During inference, SparseDiff progressively fills the adjacency matrix with the selected subsets of edges, mirroring the training process. Our model demonstrates state-of-the-art performance across multiple metrics on both small and large datasets, confirming its effectiveness and robustness across varying graph sizes. It also ensures faster convergence, particularly on larger graphs, achieving a fourfold speedup on the large Ego dataset compared to dense models, thereby paving the way for broader applications.","url_abs":"https://arxiv.org/abs/2311.02142v2","url_pdf":"https://arxiv.org/pdf/2311.02142v2.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":"sparse-training-of-discrete-diffusion-models","repo_url":"https://github.com/qym7/sparsediff","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=2311.02142","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2311.02142"}},"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/qym7/sparsediff","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_honours":1,"ran_draft_wrong":1,"ran":3,"unverified":2},"by_repo_kind":{"official":{"samples":7,"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":"039fc6561a9516bc","entry":"l2","repo":"qym7/sparsediff","repo_kind":"official","path":"sparse_diffusion/analysis/dist_helper.py","file_url":"https://github.com/qym7/sparsediff/blob/HEAD/sparse_diffusion/analysis/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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"039fc6561a9516bc"}},{"code_sha256_prefix":"70db7c9cbe9e680d","entry":"load_pickle","repo":"qym7/sparsediff","repo_kind":"official","path":"sparse_diffusion/datasets/dataset_utils.py","file_url":"https://github.com/qym7/sparsediff/blob/HEAD/sparse_diffusion/datasets/dataset_utils.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"70db7c9cbe9e680d"}},{"code_sha256_prefix":"938ae36c029d92da","entry":"setup_wandb","repo":"qym7/sparsediff","repo_kind":"official","path":"sparse_diffusion/utils.py","file_url":"https://github.com/qym7/sparsediff/blob/HEAD/sparse_diffusion/utils.py","link_basis":"first_harvest_node","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":"938ae36c029d92da"}},{"code_sha256_prefix":"fbba1d3a8b6cab5a","entry":"to_dense","repo":"qym7/sparsediff","repo_kind":"official","path":"sparse_diffusion/utils.py","file_url":"https://github.com/qym7/sparsediff/blob/HEAD/sparse_diffusion/utils.py","link_basis":"first_harvest_node","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":"fbba1d3a8b6cab5a"}},{"code_sha256_prefix":"861782c3a73e36ba","entry":"to_dense_node","repo":"qym7/sparsediff","repo_kind":"official","path":"sparse_diffusion/utils.py","file_url":"https://github.com/qym7/sparsediff/blob/HEAD/sparse_diffusion/utils.py","link_basis":"first_harvest_node","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":"861782c3a73e36ba"}},{"code_sha256_prefix":"ab10f4ba7e15c9c9","entry":"compare_hash","repo":"qym7/sparsediff","repo_kind":"official","path":"sparse_diffusion/datasets/guacamol_dataset.py","file_url":"https://github.com/qym7/sparsediff/blob/HEAD/sparse_diffusion/datasets/guacamol_dataset.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":"ab10f4ba7e15c9c9"}},{"code_sha256_prefix":"dc5bc1ae656e5ea3","entry":"remove_hydrogens","repo":"qym7/sparsediff","repo_kind":"official","path":"sparse_diffusion/datasets/dataset_utils.py","file_url":"https://github.com/qym7/sparsediff/blob/HEAD/sparse_diffusion/datasets/dataset_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":"dc5bc1ae656e5ea3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}