AirbnbPengyu HouProblem & solution
The guest journey, updated in real time: extending Airbnb’s sequence recommender with Chronon
Summary
Airbnb’s guest sequence recommender previously refreshed Transformer-based embeddings in a daily batch, leaving activity from earlier the same day unavailable until the following run and creating up to nearly two days of staleness. To close this gap, Airbnb added Push Mode, which emits notifications when streaming feature values commit, and Near-real-time Model Transform, which invokes the deployed sequence encoder inside that streaming pipeline. Each page view or search is merged with the guest’s long-term and short-term sequence data, triggers inference, and writes a fresh embedding to the same low-latency store used by batch serving. The resulting system typically updates embeddings in under a minute, often within 10–30 seconds, improved offline NDCG by 1.67%, and increased uncancelled bookings by approximately one-third of a percent in online A/B tests.
Context
The previous architecture ran sequence encoding as a daily batch job while search retrieval remained real-time, so ranking used the latest completed embedding but could not immediately reflect new guest activity. The post describes the infrastructure changes needed to remove both the batch-schedule delay and the processing lag.
Approach / What changed
Chronon’s streaming job captures activity, merges it with the guest’s existing long-term and short-term sequence data, and uses Push Mode to notify downstream consumers when the updated feature commits. Near-real-time Model Transform then runs the already-deployed Transformer sequence encoder within the streaming flow and writes the resulting embedding to the existing low-latency serving store.
Takeaways
Near-real-time Model Transform lets Chronon call an already-deployed model from a streaming pipeline and write its output as a feature value available for serving.
Push Mode changes downstream processing from polling to event-driven triggering by publishing a notification when a streaming job commits a new feature value.
The independent activity streams must be merged with the guest’s longer-term profile before inference so the resulting embedding remains comparable to the batch-produced representation.
FAQ
Why did the daily batch create nearly two days of embedding staleness?
The encoder ran only once each night on the previous day’s activity. The batch pipeline also had processing lag, so effective staleness could approach two days.
How does the new pipeline preserve the existing serving path?
It writes the newly generated embedding to the same low-latency store used by the batch job. The ranking model still retrieves the embedding in the same way; only the update mechanism is faster.
What evidence showed that fresher embeddings improved ranking?
Offline evaluation reported a 1.67% NDCG improvement over the daily-batch baseline. Online A/B tests reported approximately a one-third of a percent increase in uncancelled bookings.
Source and freshness
- Source
- medium.com
- Published
- Added to Yomu
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.