27
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Embeddingモデルを䜿ったベクトル怜玢

27
Last updated at Posted at 2024-02-18

はじめに

ベクトル怜玢の䞀連の流れを確認し、各プロセスの凊理内容ず登堎する甚語の意味を解説したす。次に、各プロセスで䜿甚される機械孊習モデルやアルゎリズムの䟋を挙げ、それらの特城に぀いお䞀芧化したした。
この蚘事の続きずしお埌日、玹介した機械孊習モデルずアルゎリズムの䞀郚を䜿った実隓の結果を共有しようず思いたす。

ベクトル怜玢ずは

ベクトル怜玢はテキストや画像、音声などの非構造化デヌタを分散衚珟ベクトルに倉換するこずによっお、関連性の高いコンテンツを探し出す怜玢手法の䞀぀です。埓来のキヌワヌド怜玢ではその事柄を説明でき、理解しおいたずしおも、語圙が分からない堎合に怜玢粟床が思うように出ない可胜性がありたす。䞀方、ベクトル怜玢は意味内容からコンテンツを怜玢できるこずから、これらの制玄を受けづらいずいう特城がありたす。

ベクトル怜玢のフロヌ

image.png

  1. 非構造化デヌタのベクトル化
    テキストや画像、音声ずいった非構造化デヌタを分散衚珟ベクトルに倉換する凊理のこずをEmbeddingず呌びたす。このプロセスでは予めむンデックスに登録するためのデヌタに察しおベクトル化Embeddingしたす。Embeddingの凊理にはそれ専甚の機械孊習モデルEmbeddingモデルが必芁で、モデルによっおベクトルの次元数が異なる堎合もありたす。この工皋で䜜成したベクトルをここでは"コンテンツベクトル"ず呌ぶこずにしたす。
  2. むンデックスの定矩
    むンデックスずは、情報怜玢を効率化するためのデヌタ構造です。DBや怜玢゚ンゞンなど、膚倧なデヌタの䞭から玠早くデヌタを探し出したいずきに登堎したす。今回もベクトル化Embeddingしたテキストや画像、音声はむンデックスに登録し、怜玢時に利甚したす。
  3. 怜玢ク゚リの䜜成
    ナヌザが該圓デヌタを探すためのヒントずなる情報を䜜成したす。ベクトル怜玢のナヌスケヌスずしお有名な RAGRetrieval Augmented Generationなどではチャットボットぞの質問文がこれにあたりたす。
  4. 怜玢ク゚リをベクトルに倉換する
    ナヌザが入力した怜玢ク゚リをEmbeddingしお分散衚珟ベクトルに倉換したす。ここで䜿甚するEmbeddingモデルはむンデックスに登録するデヌタに察しお䜿甚したものず同じものを䜿いたす。この工皋で䜜成したベクトルはむンデックスに登録しおあるコンテンツベクトルず区別するために"ク゚リベクトル"ず呌ぶこずにしたす。
  5. むンデックスから該圓デヌタを探す
    ク゚リベクトルず類䌌性の高いコンテンツベクトルをむンデックスの䞭から探したす。この類䌌性を枬るための尺床ず、該圓デヌタをむンデックスの䞭から効率的に探玢するアルゎリズムを䜵せお、最近某探玢ずいう最適化の問題ずしお孊術的に扱われおいたす。類䌌性の高いコンテンツベクトルがどれか分かれば、元の非構造化デヌタの䞭のどれを指し瀺しおいるかは明癜です。

ベクトル怜玢を支える技術

Embeddingモデル

前述のずおり、Embeddingモデルを䜿っお、非構造化デヌタを分散衚珟ベクトルに倉換しおいきたす。このEmbeddingモデル遞びはベクトル怜玢の粟床ず性胜に倧きく関わっおきたす。

No. モデル名 詳现
1 Word2Vec Googleのトマス・ミコロフらによっお2013幎に提案された、単語の分散衚珟を埗るためのモデル矀である。浅い2局ニュヌラルネットワヌクを䜿っお倧きなコヌパスから1぀のベクトル空間を生成する。
2 GloVe GloVeはスタンフォヌド倧孊のマニングらの研究宀から提案された、より局所的な単語間の共起関係ず、倧域的な単語間の共起関係の䞡方を考慮できる孊習モデルである。
3 BERT 2018幎にGoogleが公開した自然蚀語凊理モデルである。Transformerず呌ばれる深局孊習モデルを採甚し、双方向タスクを可胜したこずで話題ずなった。
4 SimCSE Dropout局を利甚した察象孊習ず呌ばれる孊習手法が特城的な蚀語モデルである。BERTの抱える異方性の問題を解決するアむデアが孊習時に斜されおいたす。
5 text-embedding-ada-002 OpenAI瀟が提䟛するEmbeddingモデルであり、以前たで提䟛されおいた「davinci」よりも倚くのタスクで性胜が䞊回っおいる。

類䌌性尺床

Embeddingモデルによっお分散衚珟になったデヌタを、䌌おいるか䌌おいないか刀断するためには 類䌌性尺床 ずいうものを䜿いたす。䟋えば、分散衚珟によっお数倀化されたデヌタをそれぞれ぀の点ずしお考え、デヌタ点がお互いにどのくらい近しいかによっお刀断する方法がありたす。

No. 名称 詳现
1 ナヌクリッド距離 2぀のデヌタをそれぞれ点ずしお考え、いわゆる「通垞の」2点間の距離を蚈算する。2぀のデヌタA、Bの距離は、AずBの分散衚珟の各次元の差を二乗和平方根にしお蚈算する。
2 コサむン類䌌床 2぀のデヌタをベクトルずしお考え、2぀のベクトルのなす角を蚈算する。扱えるベクトルは零でないものに限り、ずりえる倀の範囲は-11たでず決たっおいる。

探玢アルゎリズム

むンデックスに登録した膚倧なデヌタすべおに察しお類䌌性尺床の蚈算するのはずおもコストがかかっおしたいたす。なるべく効率的に所望デヌタを芋぀けるためのアむデアが探玢アルゎリズムです。

No. 名称 詳现
1 HNSW 階局型のグラフ構造を持たせたむンデックスによっお効率的にク゚リベクトルず近しいコンテンツベクトルを探玢するアルゎリズムである。階局の䞊䜍レむダヌを䜿っお目的のコンテンツベクトルたで倧たかに接近し、䞋䜍レむダヌで詳现に迫るずいう手順を螏む。
2 IVF ベクトル空間をセル分割し、各セルの代衚倀もしくは代衚ずなるベクトルずク゚リベクトルずの類䌌性を比范するこずで倧たかに察象を絞り蟌む。その埌、察象セル内のコンテンツベクトルから詳现に所望のコンテンツベクトルを探玢する。

たずめ

ベクトル怜玢は、 Embeddingモデル によっお分散衚珟ベクトル化されたデヌタを、 類䌌性尺床 ず 探玢アルゎリズム によっお効率的に怜玢する仕組みのこずでした。この蚘事で玹介した芁玠技術の組み合わせによっおベクトル怜玢の粟床は倉化したす。
こうしたベクトル怜玢の仕組みを実際に詊しおみるずきは、ぜひこの蚘事で玹介したような芁玠技術に察しお、パラメヌタをちょうせいしおみたり、採甚するアルゎリズムやモデルを倉曎しおみるなど詊行錯誀を加えおみおください。

27
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?