{"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/tabdiff-a-multi-modal-diffusion-model-for","title":"TabDiff: a Multi-Modal Diffusion Model for Tabular Data Generation","arxiv_id":"2410.20626","date":"2024-10-27","proceeding":null,"authors":["Juntong Shi","Minkai Xu","Harper Hua","Hengrui Zhang","Stefano Ermon","Jure Leskovec"],"abstract":"Synthesizing high-quality tabular data is an important topic in many data science tasks, ranging from dataset augmentation to privacy protection. However, developing expressive generative models for tabular data is challenging due to its inherent heterogeneous data types, complex inter-correlations, and intricate column-wise distributions. In this paper, we introduce TabDiff, a joint diffusion framework that models all multi-modal distributions of tabular data in one model. Our key innovation is the development of a joint continuous-time diffusion process for numerical and categorical data, where we propose feature-wise learnable diffusion processes to counter the high disparity of different feature distributions. TabDiff is parameterized by a transformer handling different input types, and the entire framework can be efficiently optimized in an end-to-end fashion. We further introduce a multi-modal stochastic sampler to automatically correct the accumulated decoding error during sampling, and propose classifier-free guidance for conditional missing column value imputation. Comprehensive experiments on seven datasets demonstrate that TabDiff achieves superior average performance over existing competitive baselines across all eight metrics, with up to $22.5\\%$ improvement over the state-of-the-art model on pair-wise column correlation estimations. Code is available at https://github.com/MinkaiXu/TabDiff.","url_abs":"https://arxiv.org/abs/2410.20626v2","url_pdf":"https://arxiv.org/pdf/2410.20626v2.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":"tabdiff-a-multi-modal-diffusion-model-for","repo_url":"https://github.com/minkaixu/tabdiff","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"imputation","task_name":"Imputation"},{"task_slug":"tabular-data-generation","task_name":"Tabular Data Generation"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2410.20626","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2410.20626"}},"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/minkaixu/tabdiff","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":9},"by_repo_kind":{"official":{"samples":9,"ran":0,"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":"4f4e2f7296660ddd","entry":"calculate_rmse","repo":"minkaixu/tabdiff","repo_kind":"official","path":"src/metrics.py","file_url":"https://github.com/minkaixu/tabdiff/blob/HEAD/src/metrics.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":"4f4e2f7296660ddd"}},{"code_sha256_prefix":"4d744cd924d61d6f","entry":"get_category_sizes","repo":"minkaixu/tabdiff","repo_kind":"official","path":"src/data.py","file_url":"https://github.com/minkaixu/tabdiff/blob/HEAD/src/data.py","link_basis":"plan_row","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":"4d744cd924d61d6f"}},{"code_sha256_prefix":"0a6d3b3a16b9f56c","entry":"get_column_name_mapping","repo":"minkaixu/tabdiff","repo_kind":"official","path":"process_dataset.py","file_url":"https://github.com/minkaixu/tabdiff/blob/HEAD/process_dataset.py","link_basis":"plan_row","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":"0a6d3b3a16b9f56c"}},{"code_sha256_prefix":"eac7b341abfe7944","entry":"get_path","repo":"minkaixu/tabdiff","repo_kind":"official","path":"src/env.py","file_url":"https://github.com/minkaixu/tabdiff/blob/HEAD/src/env.py","link_basis":"plan_row","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":"eac7b341abfe7944"}},{"code_sha256_prefix":"170e57097113c6f4","entry":"get_relative_path","repo":"minkaixu/tabdiff","repo_kind":"official","path":"src/env.py","file_url":"https://github.com/minkaixu/tabdiff/blob/HEAD/src/env.py","link_basis":"plan_row","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":"170e57097113c6f4"}},{"code_sha256_prefix":"0110658cf954b46a","entry":"recover_data","repo":"minkaixu/tabdiff","repo_kind":"official","path":"tabdiff/trainer.py","file_url":"https://github.com/minkaixu/tabdiff/blob/HEAD/tabdiff/trainer.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":"0110658cf954b46a"}},{"code_sha256_prefix":"d8b268750aea91e4","entry":"reorder","repo":"minkaixu/tabdiff","repo_kind":"official","path":"tabdiff/metrics.py","file_url":"https://github.com/minkaixu/tabdiff/blob/HEAD/tabdiff/metrics.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":"d8b268750aea91e4"}},{"code_sha256_prefix":"75eed0dcd137f0e0","entry":"split_num_cat_target","repo":"minkaixu/tabdiff","repo_kind":"official","path":"tabdiff/trainer.py","file_url":"https://github.com/minkaixu/tabdiff/blob/HEAD/tabdiff/trainer.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":"75eed0dcd137f0e0"}},{"code_sha256_prefix":"e034defca8827e6c","entry":"train_val_test_split","repo":"minkaixu/tabdiff","repo_kind":"official","path":"process_dataset.py","file_url":"https://github.com/minkaixu/tabdiff/blob/HEAD/process_dataset.py","link_basis":"plan_row","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":"e034defca8827e6c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}