跳到主要內容
Foxyko

嵌入向量Embedding

也常被稱為:Embedding、詞嵌入、向量表示

一句話解釋

把文字轉成數字向量,讓語意相近的內容在向量空間中也彼此接近。

基本概念

Embedding 把一段文字變成一串數字——通常是幾百到幾千個維度的向量。關鍵性質是:語意接近的文字,向量也接近

「貓」和「狗」的向量會比「貓」和「電腦」接近,因為它們都是動物、都是寵物、出現的語境類似。這種接近程度可以用數學算出來(通常用餘弦相似度),也就是說「這兩段文字意思像不像」變成了一個可計算的數字。

它讓什麼變成可能

語意搜尋。 傳統搜尋要字面吻合;搜「怎麼取消訂閱」找不到標題寫「終止服務流程」的文件。用 embedding 就找得到,因為兩者語意接近。

RAG 先把文件切段、各自轉成向量存起來,提問時把問題也轉成向量,找出最接近的幾段。這是 RAG 檢索階段的標準做法。

分群與去重。 把幾千則客訴自動分成幾類,或找出實質重複的內容。

推薦。 找出和你讀過的內容語意相近的其他項目。

實務上的注意事項

不能混用不同模型的向量。 不同 embedding 模型產生的向量在不同的空間裡,彼此無法比較。換模型就必須把整個索引重建。

維度不是越高越好。 維度高則表達力強,但儲存和計算成本也高。多數應用在中等維度就有足夠效果。

它看不懂你沒給的脈絡。 一段被切壞的文字,轉成向量之後一樣是壞的。切分品質會直接傳導到檢索品質。

常見問題

Embedding 和 token 有什麼不同?
Token 是把文字切開後的片段,是「切分」的結果;embedding 是把 token 或整段文字轉成向量,是「表示」的結果。順序上是先切成 token,再轉成 embedding。
為什麼語意搜尋有時候找不到明明有的東西?
因為向量相似度衡量的是語意接近,不是字面吻合。專有名詞、產品編號、人名這類「字面就是重點」的查詢,向量搜尋反而不擅長。實務上常見的解法是混合檢索:向量搜尋加上傳統關鍵字搜尋,兩邊結果合併。

更新於 全部術語