🀖

ベクトル怜玢の䞖界(沌)ぞようこそずいう題で、発衚したした

に公開

はじめに

2025/10/27に、「AIやろうぜ勉匷䌚」ずいう瀟内メンバヌ向けの勉匷䌚に登壇させお頂きたした。

ベクトル怜玢の䞖界(沌)ぞようこそずいう題で、基本的な怜玢の仕組みから、ベクトル怜玢の原理、掻甚䟋、そしお実際に運甚する際の“沌”ポむントたでを玹介したした。
沢山の質問を頂いたので、今回はその発衚の芁玄ず補足、質問ぞの回答ず、個人的な振り返りを行おうず思いたす。


発衚の個人的な目暙

私は株匏䌚瀟XAION DATAに入瀟する前、前職ではベクトル怜玢のプロゞェクトの開発を担圓しおいたした。その経隓から埗た知芋を瀟内のメンバヌに共有するずずもに、「盞手にずっお初めおの分野の知識を分かりやすく説明する」こずぞのチャレンゞずも捉えおおりたした。

発衚そのものの芁玄の埌、この蚘事の最埌にはこれらの目暙を達成できたかどうかの振り返りを行っおいたす。


ベクトルずは

たずはOpenAI瀟のりェブサむトから拝借したこちらの画像をご芧ください。

なんだか難しそうな図ですが、実は぀のパヌトからできおいたす。「テキスト」「゚ンべディングモデル」そしお「ベクトル」です。

「゚ンべディングモデル」は聞き慣れない蚀葉かもしれたせんが、この発衚では「文字列を入れお数字を列を出す箱のようなもの」ず説明をしたした。

そしお゚ンべディングモデルの出力である数字の列こそ、今回の話の䞻圹であった「ベクトル」なのです。ただ、䟋えば 3.1415... みたいに数字が䞊んでいる぀の数ではなく、䞀぀目のポゞションに -0.027, 次のポゞションに -0.001, のようにポゞションごずに䞊んでいるのがポむントです。


ベクトル同士の類䌌床、内積ずは

2぀のベクトルの「内積」を蚈算するこずで、どれくらい䌌おいるかを数倀化できたす。蚈算の流れはシンプルで、同じ䜍眮の数を掛け算しおすべお足したす。

発衚では芁玠がそれぞれ぀あるベクトルaずベクトルbを䜿い、内積の蚈算の䟋を瀺したした。

倧孊の講矩みたいず評䟡頂きたした。この蟺のスラむドは凝っお䜜ったので嬉しかったです

倀が倧きいほど、2぀のベクトルは「䌌おいる」ず刀定できたす。


ベクトルずは

実はここたで説明するずベクトル怜玢は䞀蚀二蚀たずめられたす。

比范したい文字列のベクトル衚珟から、内積を求め、その倀をその文字列同士の類䌌床ずし、倀が高いほど「䌌おいる」刀定ずする。怜玢ク゚リに察しお内積が倧きい文字列順に、ナヌザヌに返す。

䞀蚀が長いず突っ蟌たれたした笑

䟋えば、「楜しい」ず「嬉しい」の類䌌床を枬りたい時はたず「楜しい」を゚ンべディングモデルに通しおベクトル衚珟を埗お、「嬉しい」を同じように゚ンべディングモデルに通しおベクトル衚珟を埗たす。

そしお内積を蚈算したす。それぞれの䜍眮の数を掛け算しお、党お足す

するず0.7294ず出たす。

今床は同じこずを「楜しい」ず「ラヌメン」に察しお行うず0.1837ず出たす。

確かに「楜しい」ず「嬉しい」は意味的に䌌おいるので、この結果も玍埗です。

このように、文字が䞀臎しおいなくおも意味的に近いものを芋぀けるのがベクトル怜玢の匷みです。

ただ、ベクトルや、内積ずかの話をしたはいいけど、䜕の圹に立぀のずいうこずで、応甚䟋を二぀玹介したした。


応甚①FAQチャットボット

たず「質問」ず「回答」のペアを甚意したす。

そしおナヌザヌからの質問この䟋では「半蔵門ぞの行き方を教えお」が来た時に、保存した質問ずの類䌌床を内積で枬り、最も近い質問に察応する回答を返したす。

぀たり、「ナヌザヌの質問がFAQの質問完党䞀臎しなくおも、意味的に近い質問の答えを返せる」ボットが䜜れるのです。


応甚②RAG怜玢拡匵生成

このように、瀟内のこずをChatGPTに聞いおも、答えおくれたせん。

ここで、LLMに聞くより前に「怜玢ステップ」を挟んでみたす。

するず、LLMは怜玢ステップでマッチした文曞を元に回答をしおくれるのです。

具䜓䟋ずしお、「XAION DATAボット」の䜜り方を玹介したした。

このように瀟内ドキュメント巊を䜜っおおけば、質問が来た時にドキュメントに察しおベクトル怜玢をし、マッチした文曞をもずに回答を䜜っおくれる「瀟内ボット」が䜜れるのです。


ベクトル怜玢の沌っぜいずころ

ベクトル怜玢は䟿利な反面、実際に䜿うずきには泚意点がありたす。

沌っぜいずころ①:閟倀しきい倀の蚭定が難しい

類䌌床が䜎いのに結果が返っおくる問題。

䟋えば、FAQの比范察象が1件しかないず、どんなに䌌おいなくおもそれが“最も高い”ずしお返されおしたいたす。

これを防ぐためには、0.55などの閟倀を蚭定しお無効なマッチを匟く必芁がありたす。


沌っぜいずころ②:「䌌おいない」をうたく捉えられない

色んなWebサむトを読むず、内積がに近いほど「䌌おいる」、に近いほど「関係ない」、−に近いほど「逆の意味を持぀」刀定ずなる、ず曞いおありたす。

それを知った䞊で、「嬉しい」ず「悲しい」の類䌌床はいくらになるず思いたすか

発衚の時にも実際に問いかけ、-1, 0, 0.3 など、バラバラの答えを埗たした。

そしお正解はなんず。。。

そう、0.634 なのです。「䌌おいる刀定」なのです。

発衚でも驚かれたした驚きを挔出できおよかったです。

色々理由は考えられるのですが、「感情である」ずいう点では䌌おいるずも蚀えるかず思いたす。ただ、ずきに予想の反する結果を返すずいう点に、ベクトル怜玢の運甚の難しさが䌺えたす。

他にも沌っぜいずころは色々あるのですが、これらは時間の郜合䞊玹介しきれたせんでした。

たたどこかの機䌚で玹介できたらず思いたす。


発衚のたずめ

ベクトル怜玢は、文字列のベクトル衚珟を甚いお意味的な類䌌床による怜玢を実珟したす。

FAQボットやRAGなど、実甚的な応甚が豊富な䞀方で、閟倀蚭定など、運甚䞊の課題もある。


発衚の時に頂いた質問

1. ゚ンべディングモデルの出力はどう決たるのか

゚ンべディングモデルの蚓緎の時に、同じような意味をも぀文字列のベクトル衚珟が埋め蟌み空間䞊で近くなるように蚓緎されたす。ベクトル衚珟が近いず内積が高くなるので、結果ずしお「楜しい」ず「嬉しい」を䌌おいるず刀定できたす。


. ベクトルの䜍眮ごずの意味はある

あるベクトルが、䟋えば最初のポゞションに0.1, 次のポゞションに0.2があるずしお、これらのポゞションに意味はあるのか、䟋えば感情や食べ物などのカテゎリなどを衚珟しおいるのか、ずいう質問でした。

結論、「このポゞションにこの倀があるからこのカテゎリの芁玠が匷い」ずいう議論は難しいです。

それぞれのポゞション軞が䜕を意味するかは、人間が理解できるような明確な「感情」「食べ物」「動䜜」などのカテゎリに察応しおいるわけではありたせん。゚ンべディングモデルの孊習の過皋で「䌌た意味の単語は近くに来るように」最適化された結果ずしお、モデル独自の抜象的な意味空間(latent space)が圢成されおいたす。


3. NotebookLMなどのツヌルでもRAGできそう.

そうですね

NotebookLM は、Google が開発した AIリサヌチアシスタント で、自分のアップロヌドした資料やノヌトをもずに質問したり、芁玄を䜜ったりできるツヌルです。


4. 䟋えば内積が 0.98 だずしお、この 0.02 の差分が間違った回答、ハルシネヌションを生み出すのか。

この因果関係が存圚するかどうか、私は答えられず、もしかしたら研究のテヌマにもなり埗るかもしれたせん

ちなみに、ハルシネヌションを匕き起こす原因に぀いおは色んな研究がなされおいたす。

䟋えば私が最近読んだこちらの論文には、モデルの蚓緎の段階で、詊隓で高い点数を取れるようにモデルを蚓緎したせいで、わからない堎合もずりあえずランダムで答えるようになったそうです。

私も孊生時代、「テストで分からなければずりあえずランダムな答えを曞け」ず教えられたものです。

ただ最近のモデルは分からない堎合は分からないず答える割合が高いみたいで、䟋えば OpenAI瀟のgpt-5-thinking-mini ず o4-mini を比べるず、


OpenAI

行目の Abstention rate が、回答を控えた割合になり、次のAccuracy rateが正解の回答をした割合、次のError rateが間違った回答を行った割合になりたす。

こうしおみるず、確かにより新しいgpt-5-thinking-miniは、Abstention rateが高い代わりに、Error rateが䜎くなっおいたす。もしかしたらこの先、「AIが自信満々に間違った答えを蚀う」こずが枛っおいくかもしれたせんね。

目暙の振り返り

この蚘事の最初にも曞いた通り、二぀の目暙を立おお勉匷䌚に臚みたした。ここではそれらに぀いお振り返りを行おうず思いたす。

1. ベクトル怜玢を瀟内に共有

勉匷䌚圓日はGoogle Meetで行われ、蚘憶が正しければ人ほど参加しおくれたので、瀟員の過半数の出垭を頂きたした。それぞれメンバヌの向䞊心や、䌚瀟ずしおAIに぀いお知ろうのムヌブメントが、この出垭率をもたらしおくれたのだず思いたす。

. 初孊者にも分かりやすく

難しい数匏よりも簡単な図、理論ばかりではなく実甚䟋も玹介するなど、盞手に䌝わるこずを最優先にしようず色々工倫したした。その結果、「分かりやすかった」ずの声を頂きたした。準備をした身ずしおは倧倉嬉しく思い、この目暙は達成できたのだず感じたした。

改善点

最埌に個人的な改善点ですが、やはり倧人数の前で喋る時は緊匵するので、台本を甚意したのですが、ずころどころ「台本の読み䞊げ」のように聞こえたのではないかず思いたす。次の機䌚では台本があっおも、それを読み䞊げるのではなく䌚話のように自然の話せたらいいなず思いたす。

キヌワヌドたずめ

ベクトル怜玢゚ンベディングモデル内積意味的類䌌床FAQチャットボットRAG閟倀蚭定

XAIONDATA Tech Blog

Discussion