トラベルテックでレコメンドシステムを5週間で構築する方法:フィーチャーストアの代わりにKafkaとMongoDBを使う
Tutu
Tutu社のMLOpsエンジニアが、Kafka、MongoDB、ClickHouseを使って、レコメンドシステムをゼロから5週間で構築した方法を説明します。スピードを優先するため、フィーチャーストアを意図的に避けました。このシステムは、交通チケット購入後にホテルを提案し、Kafkaからのリアルタイム注文データとClickHouseからの夜間バッチフィーチャーを使用し、高速な推論のためにすべてMongoDBに保存します。
Tutu社のMLOpsエンジニアであるChristina氏は、彼女のチームが繁忙期の締め切りに間に合わせるために、レコメンデーションシステム(RecSys v1)をわずか5週間で立ち上げた方法について説明しています。数ヶ月かかる本格的なフィーチャーストアを構築する代わりに、彼らはMongoDBを一時的なオンラインストアとして使用し、Kafkaからのリアルタイム注文とClickHouseからのナイトリーバッチ特徴量を、ユーザーごとの単一のドキュメントに書き込みました。主なエンジニアリング上の課題は、特定の旅行のコンテキスト(目的地の都市、日程、ゲスト数)を扱うことであり、協調フィルタリングだけではそれを捉えることができませんでした。彼らは、ユーザーの購入履歴から対象の注文を受け入れるAPI契約を設計し、UTC日付を到着都市の現地時間に変換して、正確なチェックイン/チェックアウト日を保証しました。推論中、サービスはMongoDBからのみ読み取り、ALSベクトルが欠落している場合には、注文数上位のホテルにフォールバックします。その後、ランキング用にCatBoostへアップグレードし、サービス起動時にオブジェクトストレージからモデルを読み込みました。また、スナップショットのKafkaトピックを介して過去の注文をバックフィルし、ウォームパスのユーザーに履歴があることを保証し、order_idで重複注文をマージしました。この実用的なアプローチにより、完璧なアーキテクチャなしで、ライブトラフィックで仮説を検証できました。
出典: Habr — хаб ML —
原文
