MissPath-FM: Flow Matching with Structured Priors for Partially Observed Time Series
Organizations: Department of Computer Sciences, University of Wisconsin–Madison
Abstract
Flow matching has emerged as a powerful alternative to diffusion models for generative modeling, but standard conditional flow matching is fundamentally misaligned with partially observed time series: starting from an uninformed Gaussian source forces the model to transport even already-observed entries from noise to the target, wasting capacity on trivially known regions. We propose MissPath-FM, a partial-observation-aware flow matching framework that redesigns the source prior and probability path for incomplete time series. MissPath-FM employs structured source priors (interpolation priors and Gaussian process posterior priors) to initialize the flow close to the observed signal, paired with a missingness-aware smooth path that allocates transport asymmetrically between observed and missing regions. We evaluate systematically across four datasets, four missingness mechanisms (MCAR, block, MNAR, irregular), two missing ratios, and three sequence lengths (T in {24, 48, 96}), totaling 48 settings against eight baselines. MissPath-FM wins 29 of 32 settings at T=48 and 45 of 48 overall (93.8%). Our ablations reveal a regime-dependent design hierarchy in which no single component suffices: under random missingness the source prior yields a large initial gain, but under structured block missingness it can fail entirely and the learned flow becomes indispensable; the missingness-aware path contributes a further 12%-26% across all regimes. Mechanistically, structured priors shorten observed-region transport by up to 15x, concentrating the velocity field on genuinely uncertain entries. Project page: https://zgp110.github.io/misspath-fm/
Figures & tables
| Data and context | Source prior (choose one) | ||
| complete series | Option A: interpolation (default) | ||
| mask, = observed | Option B: GP posterior (optional) | ||
| time since last observation | prior noise scales | ||
| conditioning context | |||
| Flow matching | Path schedule | ||
| source endpoint ( ) | transport speeds | ||
| Transport-based | Deterministic / Generative | ||||||||||
| Dataset | Mechanism | Rate | FlowTS | CLWF | TSFlow | PSW-I | SAITS | BRITS | CSDI | GP-VAE | Ours |
| ETTm1 | MCAR | 30% | 0.393 | 0.190 | 0.121 | 0.144 | 0.096 | 0.103 | 0.159 | 0.454 | 0.075 |
| MCAR | 50% | 0.431 | 0.224 | 0.132 | 0.162 | 0.109 | 0.122 | 0.203 | 0.583 | 0.085 | |
| Block | 30% | 0.396 | 0.197 | 0.245 | 0.265 | 0.152 | 0.160 | 0.248 | 0.511 | 0.106 | |
| Block | 50% | 0.450 | 0.249 | 0.267 | 0.320 | 0.199 | 0.238 | 0.358 | 0.572 | 0.145 | |
| MNAR | 30% | 0.439 | 0.366 | 0.186 | 0.243 | 0.143 | 0.186 | 0.219 | 0.746 | 0.117 | |
| Prior-Only | Incremental Flow | |||||||
| Dataset | Setting | (A) Gaussian +Flow | (B) Interpolation Prior | (C) GP Prior | (D) +Flow Matching | (E) +Context Encoding | (F) +Missingness- Aware Path | |
| ETTm1 | MCAR 30% | 0.7387 | 0.1091 | 0.1214 | 0.0918 | 0.0856 | 0.0751 | |
| Block 30% | 0.7248 | 0.2162 | 0.4150 | 0.1335 | 0.1253 | 0.1057 | ||
| Synthetic | MCAR 30% | 0.8165 | 0.1614 | 0.1089 | 0.1208 | 0.1182 | 0.0981 | |
| Block 30% | 0.8056 | 0.8574 | 0.6326 | 0.5578 | 0.4938 | 0.3737 | ||
| Electricity | MCAR 30% | 0.4028 | 0.1897 | 0.2230 | 0.1238 | 0.1137 | 0.0910 | |
| Dataset | History | SAITS | BRITS | CSDI | GP-VAE | FlowTS | CLWF | TSFlow | Ours |
| ETTm1 | Clean | 0.489 | 0.692 | 0.763 | 0.694 | 0.702 | 0.483 | 0.355 | 0.266 |
| 30% MCAR | 0.528 | 0.692 | 0.593 | 0.704 | 0.679 | 0.480 | 0.365 | 0.264 | |
| Synthetic | Clean | 0.791 | 0.781 | 1.084 | 0.787 | 0.850 | 0.825 | 0.566 | 0.511 |
| 30% MCAR | 0.806 | 0.778 | 1.071 | 0.794 | 0.850 | 0.837 | 0.573 | 0.572 | |
| Electricity | Clean | 1.040 | 0.873 | 0.861 | 0.937 | 0.935 | 0.947 | 0.226 | 0.149 |
| 30% MCAR | 0.871 | 0.821 | 1.056 | 0.907 | 0.918 | 0.953 | 0.237 | 0.153 |
| Synthetic | ETTm1 | Electricity | |||||||
| Method | Disc. | Pred. | Spec. | Disc. | Pred. | Spec. | Disc. | Pred. | Spec. |
| CSDI | 0.500 | 0.925 | 1.540 | 0.474 | 0.745 | 1.313 | 0.500 | 0.631 | 1.294 |
| GP-VAE | 0.500 | 0.809 | 1.657 | 0.500 | 0.887 | 1.062 | 0.477 | 0.581 | 1.341 |
| FlowTS | 0.275 | 0.266 | 0.126 | 0.184 | 0.214 | 0.045 | 0.250 | 0.279 | 0.112 |
| TSFlow | 0.500 | 0.929 | 1.538 | 0.500 | 0.906 | 1.699 | 0.500 | 0.734 | 1.655 |
| Gauss.+Std | 0.300 | 0.240 | 0.155 | 0.198 | 0.286 | 0.256 | 0.182 | 0.201 | 0.113 |
Appendix figures & tables15 assets
Supplementary material from the paper’s appendix.
Appendix
| Dataset | Samples | Description | ||
| Synthetic | 2,000 | 48 | 8 | Multivariate sinusoidal (freq. 0.5–2.0, amp. 0.5–2.0, noise ) |
| ETTm1 | 1,451 | 48 | 7 | Electricity transformer temperatures |
| Electricity | 3,000 | 48 | 20 | UCI Electricity; 20 highest-variance clients |
| PhysioNet | 4,000 | 48 | 36 | ICU clinical variables (set-a); 48h hourly bins |
| Transport-based | Deterministic / Generative | ||||||||||
| Mechanism | Rate | FlowTS | CLWF | TSFlow | PSW-I | SAITS | BRITS | CSDI | GP-VAE | Ours | |
| = 24 | MCAR | 30% | 0.338 | 0.155 | 0.127 | 0.175 | 0.096 | 0.117 | 0.162 | 0.427 | 0.079 |
| MCAR | 50% | 0.361 | 0.181 | 0.140 | 0.195 | 0.106 | 0.141 | 0.186 | 0.582 | 0.090 | |
| Block | 30% | 0.396 | 0.203 | 0.237 | 0.339 | 0.181 | 0.196 | 0.325 | 0.560 | 0.122 | |
| Block | 50% | 0.400 | 0.207 | 0.254 | 0.364 | 0.235 | 0.264 | 0.365 | 0.609 | 0.145 | |
| MNAR | 30% | 0.319 | 0.253 | 0.176 | 0.262 | 0.127 | 0.200 | 0.215 | 0.632 | 0.118 | |
| CRPS | ACE | |||||||
| Setting | Ours | CSDI | TSFlow | GP-VAE | Ours | CSDI | TSFlow | GP-VAE |
| ETTm1 MCAR30 | 0.053 | 0.075 | 0.081 | 0.524 | 0.018 | 0.073 | 0.123 | 0.500 |
| ETTm1 Block30 | 0.076 | 0.121 | 0.173 | 0.559 | 0.050 | 0.167 | 0.025 | 0.500 |
| Synth MCAR30 | 0.069 | 0.079 | 0.089 | 0.798 | 0.046 | 0.064 | 0.249 | 0.500 |
| Synth Block30 | 0.245 | 0.324 | 0.475 | 0.799 | 0.104 | 0.111 | 0.203 | 0.500 |
| Electr MCAR30 | 0.065 | 0.106 | 0.110 | 0.349 | 0.052 | 0.091 | 0.288 | 0.500 |
| Dataset | Setting | A B (Prior) | B F (Flow) |
| ETTm1 | MCAR 30% | ||
| ETTm1 | Block 30% | ||
| Synthetic | MCAR 30% | ||
| Synthetic | Block 30% | ||
| Electricity | MCAR 30% | ||
| Electricity | Block 30% |
| Axis | Value | MAE | Dataset / Setting |
| Solver | Euler-10 | 0.550 | Synthetic Block 50% |
| Euler-20 | 0.470 | ||
| Euler-50 | 0.476 | ||
| Euler-100 | 0.482 | ||
| Adaptive RK23 | 0.481 | ||
| GP | 2.0 | 0.517 | Synthetic Block 50% |
| Prior+Path | Medium gaps | Long gaps |
| Gaussian+Std | 0.890 | 0.877 |
| Interp+Std | 0.456 | 0.684 |
| GP+Std | 0.297 | 0.618 |
| GP+MA | 0.296 | 0.607 |
| Setting | Seed 42 | Seed 123 | Seed 456 | Mean Std |
| ETTm1 MCAR 30% | 0.075 | 0.078 | 0.077 | |
| Synth. Block 50% | 0.470 | 0.453 | 0.473 | |
| Electr. MCAR 30% | 0.091 | 0.092 | 0.089 |
| Setting | Full | Prior | MA path | Context | RandomRate |
| ETTm1 MCAR30 | 0.0754 | 0.7437 (+886%) | 0.0862 (+14%) | 0.0895 (+19%) | 0.0860 (+14%) |
| ETTm1 Block30 | 0.1072 | 0.6953 (+548%) | 0.1292 (+21%) | 0.1332 (+24%) | 0.1293 (+21%) |
| Synth. MCAR30 | 0.0999 | 0.8056 (+706%) | 0.1191 (+19%) | 0.1088 (+9%) | 0.1262 (+26%) |
| Synth. Block30 | 0.3586 | 0.8090 (+126%) | 0.4869 (+36%) | 0.4911 (+37%) | 0.5659 (+58%) |
| Electr. MCAR30 | 0.0920 | 0.4177 (+354%) | 0.1112 (+21%) | 0.1101 (+20%) | 0.1184 (+29%) |
| Electr. Block30 | 0.2241 | 0.4027 (+80%) | 0.2454 (+10%) | 0.2751 (+23%) | 0.2181 ( 3%) |
| Observed-entry MAE | Mean on observed entries | |||
| Setting | Gaussian source | Ours | Gaussian source | Ours |
| ETTm1 MCAR30 | 0.7418 | 0.0229 | 0.9536 | 0.0394 |
| ETTm1 Block30 | 0.7663 | 0.0236 | 0.9661 | 0.0398 |
| Electr. MCAR30 | 0.3993 | 0.0247 | 1.0313 | 0.0371 |
| Physio Art10 | 0.6153 | 0.0253 | 0.8068 | 0.0362 |
| Setting | SAITS | SAITS+RR | TSFlow | TSFlow+RR | Ours |
| ETTm1 MCAR30 | 0.0942 | 0.0950 | 0.1190 | 0.1173 | 0.0751 |
| ETTm1 Block30 | 0.1432 | 0.1468 | 0.2401 | 0.3092 | 0.1067 |
| Electr. MCAR30 | 0.1583 | 0.1599 | 0.1584 | 0.1465 | 0.0920 |
| Electr. Block30 | 0.1836 | 0.1905 | 0.3412 | 0.5414 | 0.2241 |
| Physio Art10 | 0.2336 | 0.2346 | – | – | 0.2271 |
| Physio MNAR50 | 0.3138 | 0.3162 | – | – | 0.3283 |
| MCAR | Block | ||||||
| Dataset | Rate | Ours | Gauss. | SAITS | Ours | Gauss. | SAITS |
| ETTm1 | 10% | 0.069 | 0.752 | 0.085 | 0.084 | 0.671 | 0.120 |
| 30% | 0.076 | 0.751 | 0.098 | 0.106 | 0.709 | 0.149 | |
| 50% | 0.086 | 0.742 | 0.110 | 0.144 | 0.712 | 0.210 | |
| 70% | 0.103 | 0.738 | 0.132 | 0.219 | 0.714 | 0.252 | |
| 90% | 0.189 | 0.740 | 0.212 | 0.389 | 0.728 | 0.302 | |
| Dataset | SAITS | ||||
| ETTm1 | 0.0 | 0.0754 | 0.0812 | 0.0861 | 0.1055 |
| 0.1 | 0.0902 | 0.0961 | 0.0990 | 0.1109 | |
| 0.2 | 0.1256 | 0.1325 | 0.1363 | 0.1323 | |
| 0.3 | 0.1731 | 0.1794 | 0.1862 | 0.1712 | |
| 0.5 | 0.2888 | 0.2944 | 0.2963 | 0.2557 | |
| Electricity | 0.0 | 0.0921 | 0.1033 | 0.1114 | 0.1557 |
| Method | MCAR | Block | MNAR | Train (s) | Peak memory |
| SAITS | 0.1222 | 0.1846 | 0.2032 | 95 | 565 MB |
| BRITS | 0.1180 | 0.2294 | 0.2020 | 1541 | 242 MB |
| TSFlow | 0.1149 | 0.2727 | 0.1967 | 696 | 306 MB |
| Ours | 0.0775 | 0.1181 | 0.1235 | 466 | 1037 MB |
| Length | GP posterior prior | Interpolation prior | Ratio |
| 48 | 601 ms | 15.5 ms | |
| 192 | 1316 ms | 56.5 ms |
| Design choice | Outcome |
| OT-like path | No improvement over MA path |
| Gap-aware loss | ; disrupts velocity field |
| Adaptive solver (RK23) | higher NFE, no improvement |
| Matérn kernels | Worse than RBF at matched |
| EMA (exp. moving avg.) | Neutral or negative |
| Hybrid prior (Interp+GP) | Worse than either pure prior |
Flow Matching
Flow matching learns continuous-time vector fields that transport simple noise distributions into data for efficient generative modeling.
See all 658 papers