4 hours ago · Tech · hide · 0 comments

Intro At serving time, a model only ever sees a feature’s most recent value. So when training rows are reconstructed from history, each row has to carry the feature value that existed at that moment, not the value the feature holds today. A join that respects this is point-in-time correct: for a label at time T, every feature resolves to the latest value known at or before T. A join that ignores it just grabs whatever’s newest in the table, which for a label sitting in the past is a value from that label’s future. The figures below should make this concrete: one customer, one feature (total_spend), and three prediction times sitting at different points in its history. Jan 1 Jan 6 Jan 21 Feb 6 Feb 15 Jan 11 Jan 25 Feb 10 120 USD 340 USD 690 USD total_spend (line height = value) A B C The setup: total_spend's real update history, with three prediction times (A, B, C) marked on the axis. Jan 11 (A) Jan 25 (B) Feb 6 Feb 10 (C) 690 USD latest value A B C reaching into the future Naive:…

No comments yet. Log in to reply on the Fediverse. Comments will appear here.