Personalizing Airbnb search by learning from the guest journey
Decoupling sequence encoding as a daily batch job — encoding seven years of sparse booking history and three weeks of dense listing views separately, then routing each search to the cached embedding at query time — adds deep personalization without adding serving latency.
Bleeding edge ML engineering with production specifics. The dual-sequence design is the key architectural decision: short-term listing views (21 days, 200 events) are kept separate from long-term booking signals (7 years, 80 events) because merging them would let views drown out the rarer booking signals that actually indicate intent. The 4x training throughput improvement is equally concrete — batching multiple searches per encoder forward pass, plus length bucketization and sparse calculation over padded positions, are replicable tricks. The serving architecture (batch encoder, query-time lookup) shows how to deploy a Transformer over multi-year history without paying inference cost per request. Real system with named components, published metrics, and named tradeoffs.