vector embeddingsってなんだろう?

embeddingとは、あるオブジェクト(単語、文章、画像など)を数値の配列(ベクトル)としてまとめたものです。これらの数値は、分析された項目とその注目すべき特徴に関する情報を一緒に捉えます。GPT4などのモデルを使用して、オブジェクトに関してかさばる表現を数値で表すことで、膨大な量の情報を効率的に検索できるようになります。このような検索は、私たちに情報を与え、指導してくれます。
しかし、それは何なのか?どのようなものなのか? について今回はまとめていきます。

vector1 = [ 34.5, 832.89, 21.41 ]
vector2 = [ 98.45, 145.03, 21.42 ]

上記は、2つのベクトルで、それぞれに3つの値が埋め込まれています。ベクトルは浮動小数点数の配列です。埋め込みは数値です。この限られた例でも、各配列が数値的に近いことが分かります。つまり、これらのベクトルは関連しているということを意味します。ここで想像してほしいのですが、実際には各ベクトルは何百もの数値を持ち、何億ものベクトルが存在します。
具体的な例でもっと考えてみましょう。

上記にカサブランカでロケを行ったファッション撮影の男性の画像があったとします。その画像から生成されたvector embeddingsをvector indexに挿入すると、浮動小数点数が近いので、この画像はすぐにカサブランカの街や写真撮影に関連付けられます。しかし、この画像から生成された他のvector embeddingsは、インデックス内のどのような既存のデータと自動的に関連付けられるのでしょうか?モロッコ、アフリカ、1940年代のハリウッド映画などなど様々あります。

さて、AIモデルがテキストや画像などからどのようにvector embeddingsを作成するかはお分かりいただけたと思います。
あなたやあなたのお客様が類似検索から恩恵を受けそうなデータは何がありますか?
例えば、「マヤ・アンジェロウによって書かれた文章に似ているリストを教えてください。」など。

このデータをすべて格納するvector indexがあるとしたら、あなたは何を作りますでしょうか?

この記事は Kirk Kirkconnell によって書かれたWhat are vector embeddings?の日本語訳です。翻訳は、Momento Community Advocateの小板橋 由誉が担当しました。