Skip to main content
QUICK REVIEW

[論文レビュー] Two simple full-text indexes based on the suffix array

Szymon Grabowski, Marcin Raniszewski|arXiv (Cornell University)|May 22, 2014
Algorithms and Data Compression参考文献 7被引用数 3
ひとこと要約

本稿では、2種類のサフィックス配列ベースのフルテキストインデックスを提案する:SA-hash はハッシュテーブルを用いて初期探索区間を狭めることでパターン検索を高速化するものであり、FBCSA は高速なセル単位アクセスを最適化したコンパクトでブロックベースのサフィックス配列の変種である。SA-hash は標準サフィックス配列に対して 2–3 倍の高速化を達成し、0.2n–1.1n バイトの追加メモリを要する。一方 FBCSA は、同等の圧縮比のもとで、関連するコンパクトインデックスよりも数倍速いセル単位アクセスを実現するが、一括抽出では性能が劣る。

ABSTRACT

We propose two suffix array inspired full-text indexes. One, called SA-hash, augments the suffix array with a hash table to speed up pattern searches due to significantly narrowed search interval before the binary search phase. The other, called FBCSA, is a compact data structure, similar to M{ä}kinen's compact suffix array, but working on fixed sized blocks. Experiments on the Pizza~\&~Chili 200\,MB datasets show that SA-hash is about 2--3 times faster in pattern searches (counts) than the standard suffix array, for the price of requiring $0.2n-1.1n$ bytes of extra space, where $n$ is the text length, and setting a minimum pattern length. FBCSA is relatively fast in single cell accesses (a few times faster than related indexes at about the same or better compression), but not competitive if many consecutive cells are to be extracted. Still, for the task of extracting, e.g., 10 successive cells its time-space relation remains attractive.

研究の動機と目的

  • 検索性能を最優先とする、メモリ圧縮よりも高速なフルテキストインデックスの設計。特に、速度が重要なアプリケーションを想定する。
  • 標準サフィックス配列に補助データ構造を追加することで、実用的な空間-時間トレードオフを探索する。
  • Mäkinen のコンパクトサフィックス配列のコンパクトでブロックアラインされた変種を提示し、個々の SA セルへの効率的なランダムアクセスを可能にする。
  • サフィックス配列ベースのインデックスにおける、速度、空間、アクセスパターン(セル単位 vs. 続きのセルアクセス)の性能トレードオフを評価する。

提案手法

  • SA-hash は、すべての長さ k(例:k=3–4)のプレフィックスについて、サフィックス配列の区間 [l, r] の開始・終了インデックスを保持するハッシュテーブルをサフィックス配列に追加し、二分探索の範囲を迅速に狭める。
  • ハッシュテーブルはテキストのすべての可能な k 長さのプレフィックスを対象とし、各エントリは、そのプレフィックスで始まるサフィックスが配置されるサフィックス配列インデックス区間 [l, r] をマッピングする。
  • FBCSA はサフィックス配列を固定サイズのブロック(bs = 32 または 64)に分割し、サンプリングされた SA 値のみを保存し、圧縮されたレイアウトを用いることで空間効率を高める。
  • 各ブロックについて、サンプリングステップ ss を用いて少数の明示的な SA 値を保存し、補間テーブルを用いて中間の値を再構成することで、高速なランダムアクセスを実現する。
  • この構造は 32 ビット境界に揃えたコンパクトな表現を用いることで、メモリアクセス効率を向上させ、空間使用量を削減する。
  • 両インデックスは、Pizza & Chili の 200 MB データセットを用いて評価され、パターン検索(カウント)、セル単位アクセス、連続セル抽出の時間測定が行われた。

実験結果

リサーチクエスチョン

  • RQ1ハッシュ化を用いることで、サフィックス配列ベースのフルテキストインデックスにおけるパターン検索を、初期探索区間を短縮することで効果的に高速化できるか?
  • RQ2ブロックベースのコンパクトサフィックス配列変種(FBCSA)は、既存のコンパクトインデックスと比較して、セル単位アクセス速度と空間使用量の面でどの程度の性能を示すか?
  • RQ3サフィックス配列クエリにおいて、ハッシュテーブルを用いて区間境界を事前計算することで、空間オーバーヘッドと検索速度のトレードオフはどのように変化するか?
  • RQ4サンプリングステップ(ss)とブロックサイズ(bs)は、FBCSA のランダムアクセスおよび連続アクセスパターンにおける性能と空間使用量にどのように影響を与えるか?
  • RQ5FBCSA は、一括アクセスに最適化されていないものの、小範囲の抽出(例:5–10 個の連続セル)においても、競争力のある性能を達成できるか?

主な発見

  • SA-hash は、データセットや k 値に応じて 0.2n から 1.1n バイトの追加メモリを要するが、標準サフィックス配列と比較して、パターン検索(カウントクエリ)が 2–3 倍高速である。
  • SA-hash の性能向上は、二分探索の前に探索区間が顕著に狭められていることに起因し、必要な比較回数が削減されている。
  • FBCSA は、MakCSA や LCSA/Psi よりもセル単位の SA アクセスで数倍速く、同程度またはより優れた圧縮比のもとで競争力のある性能を示している。
  • 連続セルアクセス(例:5–10 個)では、特に小さなサンプリングステップ(ss)を用いることで、サブ線形時間の成長を示し、FBCSA は競争力を持つが、大範囲の抽出には専用インデックスに劣る。
  • カウントクエリにおいて、FBCSA のバリエーションは DNA および英語データセットでは MakCSA と同等の性能を示すが、XML およびソースコードデータセットでは、特に対数スケーリング下で顕著に遅い。
  • SA-hash の補間テーブル(LUT2, LUT3)の空間オーバーヘッドは、200 MB データセットでは約 4 倍削減された。これは、より大きなテキストに対してもスケーラブルである可能性を示唆している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。