VIPSHOPのEコマース・レコメンダーをMilvusで10倍速くした方法
レコメンダーシステムは、ユーザー体験を向上させ、顧客エンゲージメントを刺激し、ビジネス収益を高める戦略的触媒として機能し、eコマースの成功に不可欠なものとなっている。VIPSHOPは、中国におけるオンライン小売の先駆者であるが、重大な岐路に直面していた。顧客数が5,200万人を突破し、年間2億7,000万件の注文が殺到する中、従来のElasticsearchベースのレコメンダーシステムでは動作が重く、不十分であることが判明しました。VIPSHOPでは、より高速でパーソナライズされたソリューションを求める声が高まっていました。この投稿では、VIPSHOPが直面した課題と、Milvusの採用がレコメンデーションシステムをどのように改善したかを掘り下げます。 ;
効率的なベクトル検索エンジンの探求
俊敏なレコメンデーションシステムの基盤は、そのベクトル検索機能にあり、意味的に類似した結果を迅速に提供するために極めて重要である。VIPSHOPは当初、ベクトル検索にElasticsearchを利用していたが、製品レンジの拡大に伴い、すぐに課題に直面した。レガシーシステムは、レスポンスタイムの長期化とメンテナンスコストの高騰という2つの大きな障害に直面しました。
レスポンスの低下は、Top-Kの検索結果を取得する際のElasticsearchの待ち時間が平均300ミリ秒と長かったことが原因でした。最終的なレスポンスタイムは数秒に及び、その後の処理段階と相まってユーザーエクスペリエンスに悪影響を及ぼしていました。加えて、共有インデックスは複雑な迷宮と化し、構築とメンテナンスのコストをエスカレートさせた。ハッシュ化プラグインでElasticsearchを活性化させようと試みましたが、結果は不十分でした。新しいベクトル検索スタックの探求は、応答性の高いレコメンダーシステムのためのチームのアンコールとなった。
VIPSHOP はレコメンダーシステムのアップグレードにMilvusを選んだ。
Milvusはオープンソースのベクトルデータベースで、数十億のベクトル埋め込みを処理できるスピードと機能のシンフォニーを約束する。また、分散デプロイメント、多言語SDK、読み書きの分離という魅力もあり、Elasticsearchや他のベクトル検索技術を凌駕する構成となっていた。慎重な検討と評価の結果、VIPSHOPはレコメンダーシステムの再構築にMilvusを選択した。
VIPSHOPのレコメンダーシステムにおけるMilvusの機能
図は、Milvusを利用したVIPSHOPのレコメンデーションシステムのアーキテクチャを垣間見ることができる。
ディープラーニング・モデルは、商品の特徴をベクトル埋め込みに変換する。これらのエンベッディングは、Milvusに取り込まれ、MySQLとETLツールを使って保存・検索される。
同時に、消費者のクエリと購入嗜好も同様にベクトル埋め込みに変換され、Milvus内で類似検索が開始される。ここでMilvusは、消費者と商品ベクトル間の空間的距離を評価することによって近似最近傍(ANN)検索を実行し、最も関連性の高いトップKの結果を提供する。最後に、この結果が消費者に提示される。
Milvusは、データ更新とリコールの両プロセスにおいて顕著な効率性を示した。
データの更新と呼び出しは、この複雑なオーケストレーションの中で、迅速なベクトル検索とパーソナライズされたレコメンデーションにとって極めて重要である。データ更新の手順では、ベクトルデータの書き込み、データボリュームの検出、インデックスの構築、インデックスのプリロード、エイリアス管理などのタスクが含まれ、シームレスな同期が保証される。一方、商品推薦に不可欠なリコールプロセスでは、消費者のクエリや購買行動に関連するベクトルを検索し、それらの距離を計算し、結果をマージします。
Milvusは、データ更新とリコールの両プロセスにおいて、平均待ち時間わずか10msという驚異的な効率性と俊敏性を示しました。以下の表は、データの更新と呼び出しに関連する3つの主要なMilvusサービスのパフォーマンス指標を示しています。
| サービス|役割|入力パラメータ|出力パラメータ|応答待ち時間 | ------------------------ | -------------------------------------------------------- | ------------------------------------------------------------ | ----------------- | ---------------- | | ユーザーベクトル取得|ユーザーベクトル取得|ユーザー情報+クエリ|ユーザーベクトル|10ms | Milvus Search|ベクトルの類似度を計算し、Top-Kの結果を返す|ユーザーベクトル|アイテムベクトル|10ms|。 | スケジューリングロジック|結果の同時呼び出しとマージ|多チャンネルで呼び出されたアイテムベクトルと類似度スコア|Top-Kアイテム|10ms||。
10倍高速なレコメンデーションと膨大なコスト削減でユーザー体験を向上させる
VIPSHOPのレコメンダーシステムにMilvusを統合することで、ユーザー体験の新時代を切り開き、その景観を再構築しました。
全体的なレスポンスの10倍高速化: Milvusは全体的なベクトルクエリー時間を30ms以下に短縮しました。この驚異的な速度は、以前のElasticsearchソリューションの10倍の加速であり、ユーザは電光石火の速さでレコメンデーションを受け取ることができます。
**Milvusの分散デプロイメントと水平スケーリング機能により、VIPSHOPのレコメンダーシステムは、増大するデータ量とユーザークエリを難なく管理できるようになりました。VIPSHOPの進化するニーズにシームレスに対応し、コンピューティングとストレージを拡張できる独立性により、比類のない柔軟性を提供します。
メンテナンスコストの削減:合理化されたクエリメカニズムを持つMilvusは、VIPSHOPがレコメンダーシステムのメンテナンスコストを削減するのに役立ちました。このコスト削減は運用効率を高め、プラットフォーム全体の費用対効果に貢献します。
Milvusの課題と教訓
VIPSHOPのチームもMilvusを導入する過程でいくつかの課題に直面したが、Zillizのテクニカルサポートチームの助けを借りて解決した。このセクションでは、彼らが学んだ教訓とシステムパフォーマンスを最適化するために得た洞察を共有する。* 読み取りと書き込みの分離展開戦略を採用することで、読み取り操作が優先される場合、システム全体のパフォーマンスを向上させることができます。
MilvusのJavaクライアントは、リコールサービス内のメモリに存在するため、固有の再接続メカニズムがない。VIPSHOPチームは、Javaクライアントとサーバー間のハートビートテストを実装し、一貫した接続性を確保するために専用の接続プールを作成した。
Milvusで時折発生する遅いクエリは、新しいコレクションのウォームアップが不十分であることが原因である。この課題に取り組むため、VIPSHOPチームは新しく作成されたコレクションに対するクエリをシミュレートする戦略を実施した。
検索性能と精度の適切なバランスを達成することは非常に重要である。VIPSHOPチームは、特定のビジネスシナリオに合わせた綿密な圧力テスト実験を行うことを推奨している。これらのパラメータを効果的に最適化するためには、妥当な閾値の設定が不可欠である。
静的なデータを含むシナリオでは、効率的なアプローチは、最初にすべてのデータをコレクションにインポートし、インデックス構築プロセスを後の段階に延期することを含む。
読み続けて

VDBBench Adds Cost-Aware Benchmarking for Vector Databases
Compare Zilliz Cloud, Pinecone, and turbopuffer with VDBBench cost-aware vector database benchmarks across latency, freshness, multitenancy, and cold starts.

Vector Databases vs. Graph Databases
Use a vector database for AI-powered similarity search; use a graph database for complex relationship-based queries and network analysis.

3 Key Patterns to Building Multimodal RAG: A Comprehensive Guide
These multimodal RAG patterns include grounding all modalities into a primary modality, embedding them into a unified vector space, or employing hybrid retrieval with raw data access.



