Autoregressive Synthesis of Sparse and Semi-Structured Mixed-Type Data
Organizations: Independent Researcher, Melbourne, Australia · MongoDB, Sydney, Australia
Abstract
Synthetic data generation is an important capability for privacy-preserving data sharing, system benchmarking and test data provisioning. For mixed-type data, existing synthesizers largely target dense, fixed-schema tables, but many modern data systems store and exchange sparse, semi-structured JSON with nested objects, variable-length arrays and optional keys. Applying tabular synthesizers to such data requires flattening records into wide, sparse tables, turning nested structure and arrays into column-layout artifacts. We present ORiGAMi, an autoregressive transformer architecture for modeling and synthesizing semi-structured records without flattening. ORiGAMi serializes JSON records into key, value, and structural tokens, and encodes token positions by their path in the document tree. Grammar and schema constraints enforce syntactically valid JSON and dataset-consistent structure. We evaluate ORiGAMi against VAE, GAN, diffusion, and autoregressive baselines that operate on flattened representations across six datasets ranging from dense tabular benchmarks to large-scale semi-structured collections. Across fidelity, detection, and utility metrics, ORiGAMi achieves the best score in 17 of 18 benchmark comparisons, while maintaining high privacy scores above 96% across all settings. These results establish native record modeling as a strong alternative to tabular synthesis pipelines, preserving structure while achieving state-of-the-art benchmark performance.
Figures & tables
| title | genres.0 | genres.1 | genres.2 | awards.wins | awards.nominations |
|---|---|---|---|---|---|
| Flash Gordon | Action | Adventure | Sci-Fi | 3 | 8 |
| Tron | Action | Sci-Fi | NaN | “unknown” | NaN |
| Dataset | Records | Total cols. | Num. | Discr. | Sparsity |
|---|---|---|---|---|---|
| Adult | 48,842 | 15 | 6 | 104 | 0.0% |
| Diabetes | 81,413 | 37 | 13 | 2,261 | 0.0% |
| Electric Vehicles | 210,011 | 18 | 6 | 5,860 | 11.1% |
| Yelp | 150,346 | 142 | 6 | 26,812 | 77.8% |
| DDXPlus | 1,160,131 | 100 | 50 | 6,527 | 67.1% |
| GitHub Issues | 642,099 | 461 | 18 | 7,523 | 93.0% |
| Model | Params | Time/Epoch | Epochs | Total |
|---|---|---|---|---|
| REalTabFormer | 59.4M | 2,160 sec | 40 | 24h |
| TabDiff | 25.8M | 187 sec | 461 | 24h |
| TabularARGN | 9.0M | 295 sec | 77 | 6.3h |
| Origami | 1.7M | 239 sec | 200 | 13.3h |
| Tabby | TVAE | CTGAN | REaLTabFormer | TabularARGN | TabDiff | origami (ours) | ||
|---|---|---|---|---|---|---|---|---|
| Adult | Overall score | 0.938{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.006} | 0.893{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.876{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.960{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.979{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.990{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | \underline{\mathbf{0.992}}{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} |
| Shapes | 0.946{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.905{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.871{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.967{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.985{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.994{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.996{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | |
| Trends | 0.930{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.011} | 0.881{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.882{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.954{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.973{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.985{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.989{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | |
| Diabetes | Overall score | OOM | 0.860{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.927{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.965{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.982{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.982{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | \underline{\mathbf{0.992}}{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} |
| Shapes | – | 0.890{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.943{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.973{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.988{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.988{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.996{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | |
| Trends | – | 0.830{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.911{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.957{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.976{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.975{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.989{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} |
| Tabby | TVAE | CTGAN | REaLTabFormer | TabularARGN | TabDiff | origami (ours) | ||
|---|---|---|---|---|---|---|---|---|
| Adult | Overall score | 0.948{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.002} | 0.950{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.002} | 0.893{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.004} | 0.994{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.983{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.002} | 0.982{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.002} | \underline{\mathbf{0.994}}{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.002} |
| TSTR | 0.821{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.002} | 0.822{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.002} | 0.773{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.003} | 0.860{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.851{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.002} | 0.850{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.861{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.002} | |
| Diabetes | Overall score | OOM | 0.954{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.011} | 0.926{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.003} | 0.973{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.003} | 0.973{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.006} | 0.976{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.006} | \underline{\mathbf{0.988}}{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.002} |
| TSTR | – | 0.592{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.007} | 0.574{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.002} | 0.603{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.002} | 0.602{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.004} | 0.605{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.004} | 0.612{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | |
| Electric Vehicles | Overall score | OOM | OOM | OOM | 0.955{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.009} | 0.983{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.004} | 0.978{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.003} | \underline{\mathbf{0.999}}{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} |
| TSTR | – | – | – | 0.923{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.009} | 0.950{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.004} | 0.945{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.003} | 0.966{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} |
| Tabby | TVAE | CTGAN | REaLTabFormer | TabularARGN | TabDiff | origami (ours) | ||
|---|---|---|---|---|---|---|---|---|
| Adult | Overall score | 0.587{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.006} | 0.218{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.004} | 0.112{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.807{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.007} | 0.866{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.006} | 0.967{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | \underline{\mathbf{0.979}}{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.002} |
| ROC AUC | 0.707{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.003} | 0.891{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.002} | 0.944{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.596{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.004} | 0.567{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.003} | 0.517{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.511{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | |
| Diabetes | Overall score | OOM | 0.045{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.411{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.004} | 0.696{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.896{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.003} | 0.885{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.003} | \underline{\mathbf{1.000}}{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} |
| ROC AUC | – | 0.978{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.794{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.002} | 0.652{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.552{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.557{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.485{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | |
| Electric Vehicles | Overall score | OOM | OOM | OOM | 0.417{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.640{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.009} | 0.937{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.003} | \underline{\mathbf{1.000}}{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} |
| ROC AUC | – | – | – | 0.791{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.680{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.004} | 0.531{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.497{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.002} |
| Tabby | TVAE | CTGAN | REaLTabFormer | TabularARGN | TabDiff | origami (ours) | ||
|---|---|---|---|---|---|---|---|---|
| Adult | Overall score | \underline{\mathbf{1.000}}{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.967{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.006} | \underline{\mathbf{1.000}}{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.915{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.004} | 0.981{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.006} | 0.831{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.984{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} |
| DCR | 49.204{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.420} | 51.663{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.321} | 49.648{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.276} | 54.231{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.182} | 50.938{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.314} | 58.471{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.070} | 50.805{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.025} | |
| Diabetes | Overall score | OOM | 0.967{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.009} | \underline{\mathbf{1.000}}{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.000} | 0.874{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.963{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.003} | 0.941{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.006} | 0.976{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} |
| DCR | – | 51.643{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.456} | 49.504{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.151} | 56.293{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.068} | 51.869{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.154} | 52.936{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.310} | 51.224{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.054} | |
| Electric Vehicles | Overall score | OOM | OOM | OOM | 0.161{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | 0.958{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.005} | 0.938{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} | \underline{\mathbf{0.965}}{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.001} |
| DCR | – | – | – | 91.951{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.071} | 52.081{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.273} | 53.125{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.056} | 51.770{\color[rgb]{0.5,0.5,0.5}\scriptstyle\,\pm\,0.072} |
Synthetic Data Generation
Synthetic data generation creates artificial examples, simulations, and datasets to train, test, or protect machine-learning systems.
See all 620 papers