こんにちは。ManagedValdチームです。
こ の記事では、ベクトル検索を利用したい人に向けて、データセットを使った検証を通じて、最適な検索エンジンの選定基準を考察します。
(注)本記事では、「検索手法」と「検索エンジン」を以下のように使い分けています。
- 検索手法: データをどのように検索するかという方法やアルゴリズム(例:ベクトル検索、全文検索、ハイブリッドサーチ)
- 検索エンジン: 検索手法を実装し、実際に検索を行うためのソフトウェアやシステム(例:OpenSearch、Vald)
はじめに
データが溢れる現代において、良い検索システムを提供することは重要です。
一方で、Baymard Instituteの調査によると、ECサイトの61%がユーザーの意図しない検索結果を表示しているそうです。実際に検索システム改善の必要性を感じている方も多いのではないでしょうか。
しかし、検索領域は日々進化しており、最適な技術選定は簡単ではありません。
まずは近年の検索領域のトピックを通じて、技術選定を複雑にしている要因を紐解いていきましょう。
1. ベクトル検索の利用拡大
ベクトル検索とは、非構造データ(画像・テキストなど)を数値ベクトルに変換し、その類似度に基づいて検索を行う手法です。
データをベクトル化(Embedding)すればあらゆるデータに対して利用可能であり、例えば、Yahoo!ショッピングの類似画像検索などに利用されています。
ベクトル化のためのモデル作成には高度な専門性が必要ですが、近年では汎用的で高性能な事前学習済みモデルやAPIが公開されているため、ベクトル化自体のハードルは下がり、活用事例もさらに増えています。
2. 全文検索エンジンの進化
全文検索とは、テキストデータからキーワードの索引を作成し、高速にキーワード検索を行う手法です。
ベクトル検索よりも長い歴史を持ち、主にテキスト検索に使われてきました。基本的には文章におけるクエリ単語の出現頻度から算出されるBM25というスコアを元にランキング結果を返します。
ベクトル検索の利用拡大の中で全文検索エンジンも進化し、ベクトルを利用した検索がプラグインでサポートされてきています。
3. ハイブリッドサーチの台頭
ハイブリッドサーチとは、ベクトル検索での意味検索と全文検索でのキーワード検索を組み合わせる方法です。
特徴の違う両者のメリットを組み合わせるので、高精度であると言われています。
ベクトル検索の結果と全文検索エンジンの結果を独自に組み合わせることもできますが、近年は多くの全文検索エンジンの標準プラグインとしてサポートしており、簡単に利用できるようになってきています。
検索エンジン選定の難しさ
情報検索領域での選択肢の拡大について述べてきましたが、次は検索エンジンの選定について考えてみます。
検索エンジンは、ベクトル検索に特化したベクトル検索エンジンと主に全文検索を提供する全文検索エンジンの2つに分類できます。(多くの全文検索エンジンも、現在はベクトル検索をプラグインなどで利用可能です)