CTRL-FM: Inference-Time Structural Control for Flow-Based Virtual Sensing under Long-Horizon Node Outages
Organizations: Department of Civil Engineering and Engineering Mechanics Columbia University New York, NY 10027, USA
Abstract
Long-horizon node outages are harder than conventional missing-value imputation because complete sensor trajectories remain unobserved for extended periods, while the usefulness of spatial and temporal dependencies varies across outage locations and operating regimes. Existing graph, diffusion, and flow-based methods typically impose a fixed structural bias, which can oversmooth abrupt changes or propagate errors from unreliable neighbors. We introduce CTRL-FM, an observation-preserving flow-matching framework that treats structural guidance as an outage-conditioned inference-time decision. A missing-only flow-matching backbone learns a conditional velocity field while keeping observed measurements exactly fixed. For each realized outage, CTRL-FM constructs self-supervised proxy outages from surviving measurements and uses their known values to select among uncontrolled, graph-dominant, temporal-dominant, and balanced control policies. The selected policy is locally modulated by graph and temporal reliability estimated exclusively from surviving observations, while boundary-anchored trends provide structural guidance. Control is applied only to missing entries and is rejected when proxy evidence does not sufficiently improve over uncontrolled sampling. Across PeMS08, METR-LA, Air-36, and AQI, CTRL-FM achieves the strongest overall performance under 30% and 60% node outages. Stress tests with up to 75% sensor loss further show graceful degradation and consistent gains over training-time and fixed structural control. These results demonstrate that validating, selecting, and locally adapting structural guidance for each realized outage is more effective than imposing a single global structural prior.
Figures & tables
| Dataset | Valid proxy (%) | Oracle match (%) | |
|---|---|---|---|
| PeMS08 | 98.7 | 0.82 | 88.4 |
| METR-LA | 99.1 | 0.79 | 84.8 |
| Air-36 | 87.4 | 0.68 | 78.6 |
| AQI | 98.9 | 0.76 | 81.6 |
| Variant | PeMS08 Speed | METR-LA Speed | Air-36 PM 2.5 | AQI PM 2.5 | Time | Mem. |
| FM-Base | 3.853 / 0.393 | 3.960 / 0.417 | 28.548 / 3.709 | 25.927 / 3.813 | 1.00 | 1.00 |
| Fixed-CTRL | 2.938 / 0.295 | 3.226 / 0.384 | 17.350 / 2.244 | 14.250 / 2.310 | 1.08 | 1.03 |
| CTRL-FM w/o reliability | 2.796 / 0.252 | 2.818 / 0.299 | 16.758 / 2.195 | 13.210 / 2.223 | 1.15 | 1.04 |
| CTRL-FM w/o abstention | 2.830 / 0.271 | 2.936 / 0.312 | 16.720 / 2.232 | 13.666 / 2.265 | 1.16 | 1.05 |
| CTRL-FM | 2.559 / 0.249 | 2.512 / 0.294 | 16.381 / 2.187 | 12.490 / 2.153 | 1.16 | 1.06 |
| Policy | |||
|---|---|---|---|
| : uncontrolled | 0.00 | 0.00 | 0.00 |
| : weak balanced | 0.50 | 0.50 | 0.50 |
| : graph-dominant | 0.75 | 0.75 | 0.25 |
| : temporal-dominant | 0.75 | 0.25 | 0.75 |
| : strong balanced | 1.00 | 0.50 | 0.50 |
| Dataset | Domain | Nodes | Steps | Resolution | Variables |
|---|---|---|---|---|---|
| PeMS08 | Traffic | 170 | 17,856 | 5 min | Flow, occupancy, speed |
| METR-LA | Traffic | 207 | 34,272 | 5 min | Speed |
| Air-36 | Air quality | 36 | 8,760 | 1 hour | PM 2.5 |
| AQI | Air quality | 437 | 8,760 | 1 hour | PM 2.5 |
| Dataset | Duration | Train stride | Test windows | Masks/window | Main ratios | |
|---|---|---|---|---|---|---|
| PeMS08 | 288 | 24 hours | 12 | 12 | 10 | 30%, 60% |
| METR-LA | 288 | 24 hours | 12 | 23 | 10 | 30%, 60% |
| Air-36 | 168 | 7 days | 24 | 10 | 10 | 30%, 60% |
| AQI | 168 | 7 days | 24 | 10 | 10 | 30%, 60% |
| Quantity | Value or validation candidates |
|---|---|
| Hidden dimension | |
| Graph-attention groups | |
| Optimizer / learning rate | AdamW / |
| Weight decay | |
| Batch size / maximum epochs | |
| Early-stopping patience | epochs |
| Quantity | Value or validation candidates |
|---|---|
| Proxy budget | |
| Graph radius | hops |
| Air-36 proxy search | 3 hops, expanded to all stations if needed |
| Probe length | steps |
| Proxy-node budget | 4 nodes per proxy |
| Candidate policies |
| Method | MAE | RMSE | CRPS | Peak- MAE |
|---|---|---|---|---|
| Flow | ||||
| Historical Average | 48.550 | 74.851 | – | 7.498 |
| Graph Neighbor | 39.950 | 60.851 | – | 6.498 |
| SAITS | 35.960 | 54.855 | – | 6.196 |
| IGNNK | 33.451 | 52.958 | – | 6.298 |
| GRIN | 30.965 | 47.552 | – | 5.840 |
| Method | MAE | RMSE | CRPS | Peak- MAE |
|---|---|---|---|---|
| Flow | ||||
| Historical Average | 65.200 | 100.550 | – | 9.580 |
| Graph Neighbor | 56.560 | 83.500 | – | 8.250 |
| SAITS | 51.600 | 72.880 | – | 6.820 |
| IGNNK | 45.560 | 67.600 | – | 7.580 |
| GRIN | 40.547 | 56.720 | – | 6.680 |
| Method | MAE | RMSE | CRPS | Peak- MAE |
|---|---|---|---|---|
| 30% node outage | ||||
| Historical Average | 7.950 | 12.800 | – | 0.780 |
| Graph Neighbor | 5.956 | 9.515 | – | 0.568 |
| SAITS | 4.982 | 7.850 | – | 0.458 |
| IGNNK | 4.789 | 7.871 | – | 0.475 |
| GRIN | 3.423 | 5.182 | – | 0.321 |
| Method | MAE | RMSE | CRPS | Peak- MAE |
|---|---|---|---|---|
| 30% node outage | ||||
| Historical Average | 33.645 | 48.670 | – | 3.898 |
| Graph Neighbor | 22.628 | 36.345 | – | 3.856 |
| SAITS | 19.624 | 30.939 | – | 2.761 |
| IGNNK | 18.623 | 29.380 | – | 2.655 |
| GRIN | 17.281 | 28.935 | – | 2.424 |
| Method | MAE | RMSE | CRPS | Peak- MAE |
|---|---|---|---|---|
| 30% node outage | ||||
| Historical Average | 34.658 | 50.224 | – | 3.980 |
| Graph Neighbor | 21.356 | 34.658 | – | 3.144 |
| SAITS | 20.684 | 32.546 | – | 3.024 |
| IGNNK | 17.225 | 29.680 | – | 2.658 |
| GRIN | 17.550 | 27.338 | – | 2.569 |
| 65% outage | 75% outage | ||||||
|---|---|---|---|---|---|---|---|
| Dataset | Method | MAE | Peak | Valid proxy (%) | MAE | Peak | Valid proxy (%) |
| PeMS08 | FM-TrainStruct | 3.845 | 0.391 | – | 4.531 | 0.416 | – |
| Fixed-CTRL | 3.391 | 0.337 | – | 3.815 | 0.365 | – | |
| CTRL-FM | 2.77 | 0.291 | 98.1 | 3.363 | 0.323 | 89.3 | |
| METR-LA | FM-TrainStruct | 4.821 | 0.463 | – | 5.683 | 0.589 | – |
| Fixed-CTRL | 3.854 | 0.416 | – | 5.296 | 0.556 | – | |
| Dataset | Uncontrolled | Weak balanced | Graph-dominant | Temporal-dominant | Strong balanced |
|---|---|---|---|---|---|
| PeMS08 | 5.1% | 34.3% | 14.5% | 9.9% | 36.2% |
| METR-LA | 6.5% | 35.2% | 13.3% | 10.7% | 34.3% |
| Air-36 | 7.6% | 33.1% | 10.2% | 13.8% | 35.3% |
| AQI | 6.8% | 34.3% | 10.6% | 11.2% | 37.1% |
Incomplete Data Imputation
Incomplete data imputation estimates unobserved values while accounting for data structure, missingness patterns, and uncertainty.
See all 74 papers