← 返回首頁
LESSON 021AI 開發9 分鐘

Embedding 是什麼?像把每句話放到一張『意思地圖』上,意思越接近,位置通常也越靠近

Embedding 常被翻成嵌入,它會把文字、圖片等內容轉成一串數字,讓電腦可以比較『意思有多接近』。第 21 篇從地圖座標開始理解向量與語意相似度。

今天用這個比喻把每段內容放到一張看不見的意思地圖上,意思相近的東西通常會靠得比較近

你在公司文件裡搜尋:

「筆電沒電怎麼辦?」

但文件真正寫的是:

「Notebook battery is depleted. Please connect the charger.」

如果系統只會找一模一樣的字,可能一篇都找不到。

因為「筆電沒電」和「battery is depleted」字面完全不同,意思卻很接近。

那電腦到底怎麼比較「意思」?

一個很重要的方法,就是嵌入(Embedding)。

先想像一張「意思地圖」

假設世界上有一張超大的地圖,但上面放的不是台北、東京、巴黎,而是句子和概念。

「柴犬」可能在「狗」附近。

「黃金獵犬」也在那一區。

「貓」可能稍微遠一點,但還是在「動物」這一大片區域。

「所得稅申報」就會離得很遠。

這張地圖不是人手畫的,而是模型根據大量資料學出來的一種數值表示。

Embedding 做的事情,可以先理解成:

把文字、圖片或其他內容,轉成一串能拿來比較的數字。

這串數字叫 Vector

Embedding 的輸出通常是一個向量(Vector)。

名字聽起來很數學,但入門時先把它想成「一組座標」就可以。

例如,為了方便理解,我們假裝只有三個數字:

「柴犬」      → [0.82, 0.14, 0.63]
「黃金獵犬」  → [0.79, 0.18, 0.61]
「所得稅」    → [0.05, 0.91, 0.12]

真實的 Embedding 通常不只三個數字,可能有數百甚至更多個數值。

每一個位置可以稱為一個維度(Dimension)。

但要注意:你通常不能直接說「第 17 維就是狗、第 23 維就是金融」。這些數字是模型共同學出的表示,不是人類事先幫每一格貼好標籤。

為什麼變成數字就有用?

因為電腦非常擅長比較數字之間的距離或方向。

如果兩段內容的向量很接近,我們就可以把它當成一個訊號:

它們的語意可能也很接近。

這種比較常被用在語意相似度(Semantic Similarity)。

例如:

「如何重設密碼?」

和

「我忘記登入密碼,要怎麼重新設定?」

字面不完全相同,但 Embedding 後通常應該比「如何申請公司停車位?」更接近。

這和前面學過的 Token 不一樣

如果忘了,可以回看 Lesson 004:Token 是什麼?。一句話 recap:Token 是模型處理文字時使用的小單位,文字會先被拆成一小塊一小塊來處理。

Embedding 則是在做另一件事:

把一段內容轉成可比較的數值表示。

所以不要把「Token」和「Embedding」當成同義詞。

一段文字可能先被拆成 Token,再經過模型處理,最後得到可以代表整段內容的 Embedding。

Embedding 不是把一句話壓縮成一個關鍵字

例如:

「我想找一間可以帶狗、安靜、離捷運近的咖啡店。」

如果只抽一個關鍵字「咖啡店」,很多條件都不見了。

Embedding 的目的不是簡單抓一個字,而是讓整段內容的特徵被編碼進一串數字裡。

當然,它也不是完美保存所有細節。

兩段文字很接近,不代表每一個事實都一樣。

例如:

「今天東京下雨。」

和

「今天大阪下雨。」

語意結構非常像,但城市不同。

所以 Embedding 很適合拿來找「相關內容」,卻不能單靠相似度就判定兩句話完全等價。

最常見的用途之一:語意搜尋

傳統關鍵字搜尋比較像:

「有沒有出現我輸入的這些字?」

語意搜尋則更像:

「有沒有內容的意思跟我現在問的東西很接近?」

例如使用者搜尋:

「公司電腦被鎖住了」

文件裡可能寫:

「帳號連續登入失敗後,裝置會進入鎖定狀態。」

兩邊沒有完全一樣的句子,但 Embedding 可以幫系統把它們放到相近的位置,再找出相關文件。

圖片也可以有 Embedding

Embedding 不只屬於文字。

圖片、聲音、影片、商品、使用者偏好,都可以被模型轉成向量表示。

例如電商可以把商品圖片轉成 Embedding,讓你上傳一張米白色帆布包,再去找「看起來相似」的商品。

多模態系統甚至可能把不同資訊放進可比較的表示空間。

如果忘了什麼是多模態,可以回看 Lesson 012:多模態 AI 是什麼?。一句話 recap:多模態 AI 能在同一個任務裡處理文字、圖片、聲音、影片等不同形式的資訊。

那到底怎麼判斷兩個向量近不近?

有很多數學方法。

你之後可能會看到餘弦相似度(Cosine Similarity)、歐幾里得距離(Euclidean Distance)或點積(Dot Product)。

這一篇先不用背公式。

只要先抓住直覺:

把內容變成向量後,系統就能用數學方式比較它們的距離或方向,找出最接近的候選。

不同 Embedding 模型可能適合不同的比較方法,所以實作時不能隨便混用模型、向量和距離設定。

Embedding 不等於生成答案

這點很重要。

Embedding 模型通常不是拿來直接回答:

「台北明天天氣如何?」

它的主要工作是把內容轉成向量。

真正負責產生回答的,可能是前面談過的語言模型。

你可以把它們想成兩種不同職位:

之後你會看到這兩種能力常常一起工作。

下一步:有一百萬筆向量,放哪裡?

現在問題來了。

假設公司有 50 萬份文件,每一段都做成 Embedding。

你不可能每次搜尋都把所有向量一個一個慢慢比到底。

我們需要一種更適合保存、索引和搜尋向量的系統。

這就會接到下一篇:向量資料庫(Vector Database)。

今天只要記住一句話

Embedding 就是把內容轉成一串數字,讓電腦可以在一個數值空間裡比較『哪些東西意思比較接近』。

正式資料來源

比喻是理解入口;正式定義與細節請以原始資料為準。

  1. OpenAI — Vector embeddings ↗
  2. Weaviate — Vector Search Concepts ↗
← 上一章020AI Agent 是什麼?像從只會回答問題的顧問,變成會自己叫工具、查資料、完成工作的助理
下一章 →022Vector Database 是什麼?像一座不只照書名找書,還能照『內容意思』找資料的圖書館
COMMUNITY

留言

有想法、疑問或想補充的地方,都可以留在這裡。

0 / 1200