セマンティック検索
キーワードの文字列一致ではなく、意味の近さで情報を検索する技術。埋め込みを使って、クエリと文書の意味的類似度を計算する。
従来のキーワード検索との違い
キーワード検索(Grep):
- クエリ: 「エラー対処法」
- 検索:
errorという文字列を含む文書のみヒット - 限界: 「例外処理」「リトライロジック」「フォールバック」は見逃す
セマンティック検索:
- クエリ: 「エラー対処法」
- 検索: 意味が近い文書を発見
- 「例外処理」「リトライロジック」「フォールバック」なども取得可能
仕組み
- 文書を埋め込みモデルでベクトル化
- ベクトルデータベースに保存
- クエリも同じモデルでベクトル化
- ベクトル空間で類似度計算(コサイン類似度など)
- 最も近いTop-K件を返す
利点
- キーワードが不明でも検索可能: ユーザーが正確な用語を知らなくても意味で見つかる
- 同義語・言い換えに対応: 「認証」と「ログイン」を同じ意味として扱える
- 多言語対応: 埋め込みモデルによっては言語を超えた検索が可能
限界
- 専門用語の扱い: 社内用語、業界特有の略語は汎用モデルで対応できない
- 文脈依存: 「Apple」が「リンゴ」か「企業名」か判断が難しい
- 否定の扱い: 「認証は不要」と「認証は必要」が近いベクトルになる場合がある
- 完全一致の劣化: 固有名詞やIDの検索では従来の検索が優れる
対策
- ドメイン特化モデル: 医療、法律など専門分野向けの埋め込みモデルを使用
- ファインチューニング: 自社データに適応させる
- ハイブリッド検索: キーワード検索と併用して弱点を補完
主な用途
- RAGシステムの検索エンジン
- カスタマーサポートボット
- 社内ナレッジベース検索
- コード検索・補完
関連
参照
- PageIndex - ベクトルレスRAGの新しいアプローチ - セマンティック検索の限界と推論ベース検索の利点を解説