快轉到主要內容

白話文告訴你 - 什麼是 Embedding

Embedding 在 ML / AI 是很重要的技巧,你可能聽過 embedding 的解釋

每個東西都用一串數字向量 embedding 來代表;相似的東西,他們的向量也相近

但這到底是什麼意思?這些數字是怎麼來的?其實你我都體驗過

  • 剛上高中新班級,每個人都不認識,但一起玩一起讀書以後,班上就有要好的小團體,跟你想遠離的同學。
  • 你是新創的老闆,不知道某個新人適不適合,但經過試用期以後,你就知道有沒有臭味相投。

想要 Embedding,要先有「共同的任務」


深入看個例子:想像你是新創的老闆或人資,你要怎麼知道一個人適不適合這個團隊呢?

「看在校成績、看工作幾年、…」 這些的確是一個人的特徵,是顯見、能解釋的,不過也是人類智慧選擇的。

有另一種方式是:試用期,直接請他來一起工作,有一個「任務目標」,為了達到這個目標,你們團隊一起同甘共苦,逐漸建立某種「做事的模式」。經過磨合、試煉,久而久之在達到目標的同時,你們也知道哪些人臭味相投,哪些道不同不相為謀。

當公司成熟以後,有新人來,讓他經歷相同的任務與模式,就能知道他的「特質」。這特質你好像也形容不出來,不是幾個單方面的數值,而是有眾多「隱性」的因素

這個,就是這人的 “embedding”

Embedding 的確是把每個「東西」變成一串「數字」特質。但是,這些數字不是特定的性質(體重、顏色、速度…)。雖然這些數字無法解釋,也不是你精心挑選的,但仍然能代表兩個東西相似與否

A metaphor of how embeddings are created, by working towards a common task

回到技術一點講法,embedding 是:每個東西都有個向量 (vector) 代表;兩個東西像不像,可以拿這兩個向量座標的距離遠不遠來表示。

Embedding, 或 xxx2vec (向量化),能把圖片、字、句子、購物歷程… 等等的變成一串數字。只要是數字就好處理,能夠做各種運算,然後達成各種應用像是推薦、分類、檢索擷取等等。

例如最近正夯的 RAG (Retrieval Augmented Generation) 就是把你的知識轉成向量,把使用者的問題也變成向量,就能找到跟問題相近、相關的知識

A 3D space illustration to demo embedding; some objects such as dogs and cats are closer than the others, and a question regarding to animals can be related to those objects

Embedding 是怎麼變出來的呢?在一開始公司試煉的例子

  • 做事的模式 = 某個類神經網路模型
  • 任務目標 = model objective / loss
  • 同甘共苦磨合試煉 = training the model
  • 隱性特質 = embedding = 類神經網路的某一層

所以,embedding 不是憑空變出來或人類指定的。embedding 要有「任務」,把任務做好好的途中,機器學出來的

An illustration about embedding, which is a hidden layer in an NN

Embedding 是一種 representation (表示, 代表),這個 representation 在這模型當中參與了 objective 的運算。也可說是一種副作用吧:原本模型只是想要分類貓狗、或預測前後文等等,但為了想要做好這個任務,不知不覺就把「東西」變成了有代表性的數字,也就是向量。因為要達成任務,這些向量能光靠彼此的遠近就能表示原來東西的相似度,真的能夠 “represent”


而也有模型的目的,是特地為了生出 embedding 而不是日常生活的應用。OpenAI 在 2022 的論文就是其中一個例子。他們怎麼產生 embedding 呢?請看 下一篇文章

若您覺得有趣, 請 追蹤我的Facebook 或  Linkedin, 讓你獲得更多資訊!