[Q]
検索の方法(フルテキスト検索、ベクトル、セマンティック)の使い分けについて教えてください。
[A]
Azure AI Searchでは、フルテキスト検索、ベクトル検索、セマンティック検索という三つの検索機能が用意されています。それぞれの検索機能の概要は以下の通りです。
■フルテキスト検索
インテックスに登録されているテキスト情報に対して検索を行う基本的な機能です。フルテキスト検索の内部処理の流れは「クエリ解析」⇒「字句解析」⇒「文章検索」⇒「ポイントの計算」の順になります。各処理の概要は以下の通りです。
- クエリ解析:クエリテキストを解析し、検索語と演算子を抽出します。
- 字句解析:検索の精度を上げるためになくでも意味の通じる単語(ストップワード)を削除します。
- 文章検索:インデックスに保存されたデータから文章検索します。
- ポイントの計算:クエリに対する検索結果の一致の度合いをスコアとして計算します。
■ベクトル検索
ベクトル検索は生成AIシステムでは特に重要な検索機能となります。ベクトル検索では、検索対象のドキュメントとそれに対するクエリをプレーンテキストではなくベクトルとして表される情報に変換した上で検索します。Azure AI Searchのベクトル検索では、AI Search上のベクトルデータとベクトル化した質問文の方向性が類似しているものを探し出します。
ベクトル検索の流れは、「ベクトルデータ登録」⇒「クエリのベクトル化」⇒「ベクトル検索結果の回答」の順になります。
■セマンティック検索
セマンティック検索では、単語やキーワードでの検索ではなく、「文章の意味」を認識し、検索を行う機能です。セマンティック検索の流れは、「キーワードの初期検索」⇒「セマンティック再ランク付け」⇒「要約キャプションとハイライト」⇒「セマンティック回答」の順になります。
Azure AI Searchの検索機能の比較
項目 | フルテキスト検索 | ベクトル検索 | セマンティック検索 |
概要 | 単語やフレーズに基づいて文章を検索する方法 | 高次元ベクトルを用いて検索する方法 | 文脈や意味を理解して検索する方法 |
利点 | 高速で特定の単語やフレーズを含む文章を簡単に見つけられる | 類似性に基づいて文章検索を見つけられる。特に画像や音声等の非テキストデータに対して強い | 単語の意味を理解し、それに基づいて関連性の高い文章を見つけられる |
欠点 | 文脈や意味を理解できないため、関連性の低い結果を返す可能性がある | データをベクトル化して取り扱うため、一般的な用語を異なる意味合いで使用する場合や組織内の用語する場合、正しい意味合いで認識されない可能性がある | 初期検索の検索結果に対して、文脈や意味を解析するために、初期検索の結果が悪い場合は、文脈や意味での検索ができない可能性がある |
利用シナリオ | フルテキスト検索は、文書やデータベース内の全文を対象に検索を行う方法です。キーワードに一致する文書やレコードを検索し、検索クエリと完全一致または部分一致するものを返します。 フルテキスト検索は、一般的な情報検索やデータベース検索に広く使用されます。 検索対象のデータがテキストであり、キーワードに基づいて検索する場合に適しています。 |
ベクトル検索は、テキストや画像などのデータをベクトル空間にマッピングし、類似性を計算して検索結果を生成する方法です。文書や画像をベクトル化し、そのベクトル間の距離や類似性を計算して関連性の高いアイテムを返します。ベクトル検索は、類似性に基づいて検索結果を提供するため、意味的に近いアイテムが見つかりやすい特徴があります。 テキストや画像などの非構造化データに対して有効であり、検索対象が複雑な関連性を持つ場合に適しています。 |
セマンティック検索は、単語や文書の意味や意図を理解して検索する方法です。 自然言語理解(NLU)や知識グラフなどの技術が利用され、文脈や意味の一致を考慮して検索結果を生成します。 ベクトル検索とは異なり、類似性だけでなく意味の一致も考慮されます。 セマンティック検索は、ユーザーの意図を理解し、その意図に合致する結果を提供するため、より高度な検索結果が得られる場合があります。 検索対象が文脈や意味の豊かな情報であり、ユーザーの意図やニュアンスを正確に捉える必要がある場合に適しています。 これらの検索方法は、検索対象のデータの性質や検索要件に応じて使い分けることが重要です。例えば、単純なキーワードに基づく検索で十分な場合はフルテキスト検索を使用し、意味の関連性を重視する場合はセマンティック検索を検討すると良いでしょう。 |