@Yusuke Horibe
Embedding-Based Retrieval for Airbnb Search | Airbnb Engineering & Data Science
TL;DR
巨大な候補集合(人気エリアでは数万件)から、低レイテンシで質の高い候補を絞り込む EBR(Embedding-Based Retrieval) を two-tower で構築。A/B テストで予約コンバージョンが有意に改善し、その伸びは過去2年の最大級のランキング改善に匹敵した。
背景・課題
物件・クエリの組み合わせが膨大で、柔軟な日程検索などで候補数がさらに増加。 重いランキングモデルにかける前に、候補を「速く・賢く」絞る retrieval 層が必要に。 ただし一般的な IR と違い、在庫が動的(毎秒1万件規模の更新、インデックス遅延に敏感)で、ほぼ全クエリに地理フィルタ等の 絞り込み条件が付く。
アプローチ
モデル: two-tower
listing tower(物件側)と query tower(検索側)で同一空間の embedding を学習。 工夫: listing tower はオフラインで日次バッチ計算できるよう特徴量を設計 → サービング時は query tower のみリアルタイム評価でよく、レイテンシを大幅削減。
学習データ: hard negative
ランダム負例は簡単すぎて学習にならない。 ユーザーの1回の検索ジャーニー(検索・クリック・wishlist〜予約)をまとめ、予約物件を正例、同じジャーニーで見たのに選ばなかった物件を hard negative に。似た物件同士の微差を学習させる。
サービング: ANN
HNSW ではなく IVF を採用。更新頻度の高さとフィルタ要件に合うため。 クエリに近いクラスタを取得し、その中で通常の boolean フィルタを適用 → 既存検索基盤と素直に統合。
効いたポイント
結果
通常検索・柔軟日程・マーケメールなど複数用途で本番稼働。 A/B テストで予約が有意に増加
感想
HNSWを使いがちだったがIVFの方がいいケースもあるというのが学びだった
@Higuchi Kokoro
for Designing Systems That Prompt Your Agents
[https://drive.google.com/file/d/1qzKI4DKnyHRpXK1J3ATPqwaqLc0iNu-M/view](https://drive.google.com/file/d/1qzKI4DKnyHRpXK1J3ATPqwaqLc0iNu-M/view)

@MizutaYuki