Azure Cognitive Search第4弾~Qdrantを用いた文章ベクトル検索の方法~

初めまして、みずぺーといいます。
このnoteを機に初めて私を知った方のために、箇条書きで自己紹介を記述します。

  • 年齢:28歳

  • 出身:長崎

  • 大学:中堅国立大学

  • 専門:河川、河川計画、河道計画、河川環境

  • IT系の資格:R5.4基本情報技術者試験合格💮、R5.5G資格

本日はQdrantを用いた文章ベクトル化の方法について解説。

今回が第4回ですが、これまでの振り返りをサラッと。


Azure Cognitive Searchの軌跡

第1回はRAGの解説及びその中でAzure Cognitive Searchがどのように使用されるのかについて解説しました。

RAGの構造

さらに第二弾記事ではRAGの中で使用されるツールの1つである、Azure Cognitive Searchの仕組みとその流れについて解説しました。

第二回記事の解説範囲

さらに第三弾では、ベクトル化の手法の例としてGiNZAV5.1を用いた文章のベクトル化を解説しました。

第3回記事の対象範囲

そして第4回はベクトル検索について解説します。

第四回の今回はベクトル検索について解説

ベクトル検索とは

キーワードをあなたが知っている場合には、キーワード検索で知ることができます。

ただし、

  • キーワードがわからない

  • 文字以外の、動画、画像等を検索したい

このような場合にはベクトル検索が役に立ちます。

ベクトル検索はセマンティック検索とも言われており、文章全体の意味を考慮して文章を検索する手法です。

入力した文章と、事前に読み込ませてある文章をベクトルがしておくことで類似度検索を行うことが出来るようになります。

文章ベクトル検索にはコサイン類似度

文章検索の場合にはコサイン類似度が用いられます。

コサイン類似度ではベクトルの方向を類似度とみなして比較する子ができます。

アナログ時計をイメージしてもらうと、短針と長針としては同じ方向なら似ている文章、違う文章なら違う方向を針が向いていると思っていただけたらいいです。

「だったらキーワード検索じゃなくて、全部コサイン類似度検索すればいいじゃん!」と思う方もいるかもしれません。

実際にベクトル検索は

  • Google検索

  • かな英変換

など身近な場所で用いられていますが、デメリットも大きいのです。

例えば、総当たりでベクトルを比較すると計算量が膨大になります。ドキュメントの数が1000万あれば、1000万回もループ処理することになります。

そこで、今回のベクトル検索ですが、近似的に行うQdrantを用いて行います。

ベクトル検索のアルゴリズム

ベクトル検索はいくつかのアルゴリズムが存在しております。

これから紹介するQdrantしかりベクトル検索に実装されるライブラリとして代表的なHNSW(Hierachical Navigable Small World)があります。

ぜひ興味ある方は論文をお読みいただければと思います。

Qdrantにおけるベクトル検索方法

Qdrantアーキテクチャは以下になります。

Qdrantのアーキテクチャ

軽い登場人物でも紹介しておきます。

Collections

RDBのテーブルになります。

Collections

Points

RDBのレコードになります

Points

Payload

メタ情報としてフィルター検索等に利用ができます。

例えば、パブリッシャー、記事のタイムスタンプ、記事の本文(原型)などをメタ情報としてポイントに付与することが可能です。

Payload

上記の三種類の登場人物を覚えておきましょう。

ここから先は

4,664字 / 1画像

¥ 500

この記事が気に入ったらサポートをしてみませんか?