よくAIの仕事をしていると Embedding という言葉が出てきます。
ややこしいやつです。
このややこしいEmbeddingを知らない人にもわかるように説明する試みです。
Embedding(エンベディング)とは、言葉の意味を、数字の並びに変換する仕組みです。
たとえば、
- 「犬」
- 「猫」
- 「自動車」
という言葉があるとします。
コンピュータはそのままだと「犬の意味」「猫の意味」を理解できません。そこで、それぞれをこんな数字に変えます。
犬 → [0.8, 0.7, 0.1, 0.2]
猫 → [0.75, 0.72, 0.12, 0.18]
自動車 → [0.1, 0.05, 0.9, 0.8]この数字の並びがEmbeddingです。
重要なのは数字そのものではなく、意味が似ているものほど、数字の並びも似ることです。
だから、
犬 ←→ 猫は近くなり、
犬 ←────────→ 自動車は遠くなります。
地図だと思うとわかりやすい
Embeddingは、意味の世界の地図上に、言葉を配置するようなイメージです。
たとえば2次元で無理やり表すと、
猫 ●
● 犬
● 自動車犬と猫は意味が近いので近所にいます。
でも実際のEmbeddingは、この地図が2次元ではなく、768次元とか1536次元みたいな、とんでもなく多い次元になります。
※空間の次元ではない。
文章でも同じです。
「今日は暑いですね」
「気温が高いですね」文字はかなり違いますが、意味が似ているのでEmbeddingでは近くなります。
逆に、
「今日は暑いですね」
「AWSでサーバーを構築します」は意味が違うので遠くなります。
つまりEmbeddingの本質は、
文章や単語を「意味を保ったまま数字に変換する」
ことです。
これができると、RAGや関連記事検索で、文字が一致する記事ではなく意味が似ている記事を探せるようになります。
ここまで読んでいただき、ありがとうございます。もしこの記事の技術や考え方に少しでも興味を持っていただけたら、ネクストのエンジニアと気軽に話してみませんか。
- 選考ではありません
- 履歴書不要
- 技術の話が中心
- 所要時間30分程度
- オンラインOK