【ベクトル検索アプリ開発①】導入編

自分専用の検索アプリで、資料探しをもっとスマートに

今まで有効な検索手段がなく探すのをあきらめていた情報へ、ベクトル検索でアクセスできます。
この記事では、ベクトル検索アプリの導入背景や完成イメージを紹介します。

この記事でわかること

  • ベクトル検索とは何か、なぜ必要なのか
  • 導入の背景(業務での困りごと)
  • 最終的な完成イメージ
  • 完成までの連載で扱う内容の予告

なぜベクトル検索が必要なのか

一般的に使われているキーワード検索は「完全一致」で探す仕組みです。そのため「規格の許容誤差」と検索しても、「公差」「誤差範囲」と書かれた資料は見つからないことがあります。

一方、ベクトル検索はテキストを数値ベクトルに変換し、「意味の近さ」で検索を行います。これにより、言い回しが異なっても関連情報を見つけ出すことが可能です。

  • テキストを数値ベクトルに変換する
    通常の検索は「文字の一致」で探すのに対して、ベクトル検索では 単語や文章を数百次元の数値ベクトルに変換 します。
    この変換を行うのが「埋め込みモデル(Embedding Model)」です。
     例)「公差」→ [0.12, -0.83, 0.57, …] のようなベクトルに。
    これにより、言葉そのものではなく 意味の近さ を扱えるようになります。
  • 意味の近さを計算する
    変換後は、検索キーワードとデータのベクトルを比較します。
    代表的な計算方法は コサイン類似度(Cosine Similarity)
     ベクトル同士の「角度の近さ」を測るイメージ
     同じ方向を向いていれば「意味が近い」と判定
    その結果、「規格の許容誤差」と「公差」「誤差範囲」も、数値的に近ければ関連性があると判断されます。
  • AIが知らない言葉の扱い
    モデルが「公差」という単語を直接学習していない場合でも、
    文脈的に似たデータ(例:「誤差」「精度」)を学習しているため、部分的に関連づけられる
    ただし完全一致ではなく、曖昧さが残る
  • 通常検索との違い
    通常検索(全文検索)
     ・「規格」「誤差」というキーワードが本文に含まれているかどうかでマッチング
     ・表現のゆらぎ(公差/誤差範囲/許容値など)には弱い
    ベクトル検索
     ・「意味的に近いか」で探すため、言い換えや類義語でもヒットする
     ・特にドキュメントが大量にある場合に力を発揮

導入の背景(困りごと)

組織内でよくある課題は「必要な情報を探すのに時間がかかること」です。

  • 「あれ?あの資料どこだっけ?」と探す手間
  • キーワード検索ではうまくヒットしない、もしくは絞り込めない

こうした状況は日常業務に小さなストレスを積み重ね、効率を下げる要因となっていました。

解決アプローチ(どう取り組んだか)

そこで、AIを活用した検索の仕組みを取り入れることにしました。

  • ベクトル検索を導入
    キーワードの一致ではなく、文章の「意味の近さ」に基づいて検索結果を返す仕組みを採用しました。
    これにより、同じ内容でも表現が異なる資料を見つけやすくなります。
  • 汎用的な検索アプリを開発
    自身で用意したExcelデータベースを検索対象とする専用アプリを作成しました。
    これにより、社内の様々な情報を対象とした検索ができます。
  • ローカル環境で動く検索システムを採用
    完全ローカル環境で動作可能な構成にしました。
    これにより、機密情報を含んだ内容についても検索することができます。

ベクトル検索を行うためには、構造化されたデータベースが必要になります。
今回は構造化されたデータベースがある前提で解説します。データベースを用意する方法についても今後触れたいと思います。

完成イメージ

実際に開発した検索アプリの完成イメージがこちらです。
検索キーワードを入力すると、関連性の高い資料が「スコア付き」で表示され、さらに絞り込み検索からデータベースのメタデータによって絞り込むことも可能です。
これにより、「探す」作業が大幅に効率化され、必要な資料にすぐアクセスできるようになりました。

今後の連載内容

  • 導入編(今回)
  • 設計編(データベース構造や検索フローの設計)
  • 実装編-全体構成
  • 実装編-ベクトルストア作成-
  • 実装編-ベクトル検索-
  • 実装編-検索GUI-
  • 運用編(使い方や管理方法)