Rank on what your users did seconds ago
Pinterest, Etsy, and Alibaba have all published what in-session signals are worth. Zipline computes these signals from your event streams and serves them in milliseconds, with training data that matches serving exactly.
What fresh signals are worth
A user's most recent actions — what they just searched, viewed, or added to cart — say more about the next click than any profile computed overnight, and three teams have put numbers on it.
Pinterest also ran the ablation, and dropping the realtime module hurt their metrics about 3.5 times more than dropping the daily-batch user embedding it sat alongside1.
The new architectures run on raw events
For a decade rankers consumed hand-engineered features computed in batch, and the current generation consumes the event stream itself. Meta's generative recommenders, trained on raw action sequences, lifted online metrics 12.4% at billions of users4, and its ads models picked up another 2 to 4% in conversions once they moved from hand-engineered features to learned sequences5. Kuaishou went further still, and its OneRec now serves a quarter of all traffic at roughly a tenth of the old cascade's operating cost6.
YouTube runs Semantic IDs in its production ranker7, and the same shift has reached search, where Etsy's unified embeddings lifted search purchase rate 5.58% on live traffic8. Underneath all of them sits the same requirement: event histories reconstructed point-in-time correct for training, and those same aggregates or sequences served fresh within seconds.
Why a feature takes a quarter to ship
Training features are usually written against the warehouse, while serving features run in a separate stack against live traffic, so a feature proven offline has to be rebuilt by another team before it reaches production, and the two copies drift apart in between.
We built Chronon at Airbnb after measuring what that cost us, which was months per feature and ML engineers spending most of their time on data plumbing rather than modeling9. Even a faithful reimplementation goes stale, and Google's engineering guide tells of a ranking table that sat unrefreshed for six months, where updating it alone was worth 2% of installs10.
How Zipline works
view_sequence = GroupBy(
sources=[item_view_events],
keys=["user_id"],
aggregations=[
Aggregation(operation=Operation.LAST_K(128), input_column="item_id"),
Aggregation(operation=Operation.COUNT, input_column="add_to_cart",
windows=["1h", "1d", "30d"]),
],
accuracy=TEMPORAL,
)Test a ranking idea the day you have it
Sequences and embeddings are first-class
Proof
Sources
- 1. TransAct (Pinterest), KDD 2023
- 2. adSformers (Etsy), 2023
- 3. EdgeRec (Alibaba), CIKM 2020
- 4. HSTU (Meta), ICML 2024
- 5. Sequence learning for ads (Meta), 2024
- 6. OneRec (Kuaishou), 2025
- 7. Semantic IDs (YouTube), RecSys 2024
- 8. Unified embeddings (Etsy), 2023
- 9. Chronon, Airbnb's ML feature platform (Airbnb), 2024
- 10. Rules of ML, Rule #10 (Google)