[論文レビュー] SPANN: Highly-efficient Billion-scale Approximate Nearest Neighbor Search
SPANNは、メモリに重心点のみを格納し、大容量のポストリストをディスクに格納するメモリ・ディスクハイブリッドな近似最近傍検索システムを提案する。階層的クラスタリングとクエリに適応したプルーニングを用いることで、低遅延かつ高再現率を実現する。10億スケールのデータセットにおいて、32GBのメモリでDiskANNの2倍の速度を達成し、recall@1およびrecall@10の低遅延(ミリ秒未塔)を実現する。
The in-memory algorithms for approximate nearest neighbor search (ANNS) have achieved great success for fast high-recall search, but are extremely expensive when handling very large scale database. Thus, there is an increasing request for the hybrid ANNS solutions with small memory and inexpensive solid-state drive (SSD). In this paper, we present a simple but efficient memory-disk hybrid indexing and search system, named SPANN, that follows the inverted index methodology. It stores the centroid points of the posting lists in the memory and the large posting lists in the disk. We guarantee both disk-access efficiency (low latency) and high recall by effectively reducing the disk-access number and retrieving high-quality posting lists. In the index-building stage, we adopt a hierarchical balanced clustering algorithm to balance the length of posting lists and augment the posting list by adding the points in the closure of the corresponding clusters. In the search stage, we use a query-aware scheme to dynamically prune the access of unnecessary posting lists. Experiment results demonstrate that SPANN is 2$\ imes$ faster than the state-of-the-art ANNS solution DiskANN to reach the same recall quality $90\\%$ with same memory cost in three billion-scale datasets. It can reach $90\\%$ recall@1 and recall@10 in just around one millisecond with only 32GB memory cost. Code is available at: {\\footnotesize\\color{blue}{\\url{https://github.com/microsoft/SPTAG}}}.
研究の動機と目的
- 100億スケールのベクトルデータセットに対するメモリ内近似最近傍検索(ANNS)の高いメモリコストを解消すること。
- 最小限のメモリと安価なSSDを用いて大規模なベクトル検索を可能にするハイブリッドANNSシステムを開発すること。
- ディスクI/Oを最小限に抑え、ポストリストの品質を向上させることで、低遅延かつ高再現率を達成すること。
- ワークロードのバランスを取ることでホットスポットを回避し、効率的な分散展開を可能にし、スケーラビリティを確保すること。
- 既存のディスクベースのANNSソリューション(例:DiskANNやHM-ANN)と比較して、優れたパフォーマンスとスケーラビリティを示すこと。
提案手法
- 階層的バランス型クラスタリングを用いてベクトルを分割し、ポストリスト長を均等にすることで、負荷分散を向上させ、ディスクアクセスを削減する。
- クラスタの閉包に属する点をポストリストに追加することで、メモリコストを増加させずに検索品質を向上させる。
- メモリに重心点のみを格納し、完全なポストリストをディスクに格納することで、メモリフットプリントを最小限に抑えつつも高再現率を維持する。
- 検索中にクエリに適応した動的プルーニング技術を適用し、ディスクにアクセスするポストリストの数を減らし、I/OおよびCPUコストを制限する。
- 最適なバインディングパッキングアルゴリズムを導入し、各マシンにデータサイズと歴史的クエリアクセスパターンをバランスさせる。これにより、分散環境におけるホットスポットを回避する。
- 分散アーキテクチャを採用し、各マシンがインデックスの一部を保持する。クエリは、クエリに適応したプルーニングに基づいて、最も関連性の高いマシンにルーティングされる。
実験結果
リサーチクエスチョン
- RQ1シンプルなインverted indexベースのアプローチが、最小限のメモリ使用量で100億スケールの近似最近傍検索において最先端のパフォーマンスを達成できるか?
- RQ2メモリ・ディスクハイブリッドANNSシステムにおいて、高再現率を維持しながらディスクI/Oを最小限に抑えるにはどうすればよいか?
- RQ3メモリコストを増加させずに、ポストリストの品質を効果的に向上させるにはどのような技術が有効か?
- RQ4クエリに適応した動的プルーニングにより、各検索における関与するマシン数を著しく削減でき、遅延とスケーラビリティが向上するか?
- RQ5分散ANNSシステムにおいて、マシン間のワークロード配分をどのようにバランスさせればホットスポットを回避し、線形スケーリングを実現できるか?
主な発見
- SPANNは、同じメモリ予算で3つの100億スケールのデータセットにおいて、90%再現率でDiskANNの2倍の速度を達成した。
- SPANNは、わずか32GBのメモリでrecall@1およびrecall@10を約1ミリ秒で達成し、ベースラインと比較してメモリコストを90%削減した。
- マルチ制約クラスタリングとクエリに適応したプルーニングにより、1クエリあたりのマシンの平均発行数を、ランダムパーティショニング時の32から6.3に削減し、I/OおよびCPUコストを80.3%削減した。
- SPANNは分散環境でも優れたスケーラビリティを示し、クエリアクセスとデータサイズがマシン間で均等に分散され、リソース追加に伴い線形にスケーリング可能である。
- ポストリスト拡張におけるクラスターの閉包割り当ての活用により、メモリフットプリントを増加させずに検索品質が向上し、再現率が向上した。
- SPANNはMicrosoft Bingに実際に導入され、数千億件のベクトル検索をサポートしており、実世界での効率性と耐障害性が確認された。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。