JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

把語意化為幾何:靜態向量與脈絡向量

一旦詞變成向量,語意就成了距離與方向。我們會看到著名的 king − man + woman 把戲,理解為什麼「每個詞一個固定向量」不夠用,以及注意力如何把靜態嵌入升級成懂得看脈絡的向量。

一個「靠近就代表相似」的空間

當每個 token 都是一串,比方說 4096 個數字,你可以把每個 token 想成 4096 維空間裡的一個——也就是語意向量空間(semantic vector space)。我們無法想像 4096 維,但二維的直覺仍然成立:靠得近的點相似,離得遠的點無關。因為訓練會把用法相似的 token 推向相似的向量,這個空間自己就按語意整理好了。` cat`、` dog`、` hamster` 形成一小撮寵物聚落;` Paris`、` Tokyo`、` Berlin` 聚成首都群,離寵物老遠。

\cos\theta=\frac{\mathbf{a}\cdot\mathbf{b}}{\lVert\mathbf{a}\rVert\,\lVert\mathbf{b}\rVert}

余弦相似度:词义的接近程度取决于两个向量之间的夹角,而非它们的原始长度。

king − man + woman 的把戲

「詞可以是有用的向量」這個想法,是由 2013 年的 word2vec 發揚光大的。它最驚豔的一點:不只相似的詞會靠近,連方向也帶有意義。拿 king 的向量,減去 man,加上 woman——結果最接近的 token 竟然是 queen。「男 → 女」的變化和「單數 → 複數」的變化,各自對應一個你可以加減的固定方向。語意,變成了算術。

vec("king") - vec("man") + vec("woman")  ~=  vec("queen")
vec("Paris") - vec("France") + vec("Japan")  ~=  vec("Tokyo")
詞語類比就這樣從向量算術中掉出來——意義住在「方向」裡,不只是「位置」。
词向量把语义编码在方向上——king − man + woman 的结果落在 queen 附近。

word2vec 类比示意图,展示 king 减 man 加 woman 约等于 queen。

這跟第 3 篇嵌入矩陣裡的嵌入(embedding)想法是同一類——只是單獨拿出來示範而已。語言模型的輸入層,確實就是這樣開始編碼語意的。

「一詞一向量」的致命缺陷

但有個問題就明擺在眼前。嵌入表給每個 token 恰好一個固定向量。這些叫做靜態嵌入(static embeddings)bank 永遠對應到同一個點,不管你指的是河,還是幫你保管錢的銀。這個可憐的向量只好變成兩種意思的模糊平均。水果的 Apple 和公司的 Apple 也塌縮成同一個。對真實語言來說,詞義會隨脈絡漂移,「一個詞一個凍結的向量」根本不夠用。

脈絡嵌入:讓鄰居來投票

現代大型語言模型用脈絡嵌入(contextual embeddings)來修正這件事。表裡的靜態向量只是起點。當它往上穿過 Transformer 時,每個 token 的向量會不斷透過觀察句子裡的其他 token 而被更新——這個過程叫做脈絡混合(context mixing),由自注意力(self-attention)驅動。到了較高的層,「sat on the river bank」裡 bank 的向量,和「deposit at the bank」裡 bank 的向量,已經移動到空間中兩個完全不同的點。同一個起始 token,兩種不同的意思——終於做到了。

点击一个词,观察注意力如何让邻居们投票,把静态向量变成语境向量。

交互式自注意力组件,高亮显示被点击的词关注了哪些其他词。

所以你在第 3 篇認識的嵌入層,並不是語意的最終定論——它是種子。靜態嵌入把一個 token 放上地圖;脈絡嵌入則讓句子的其餘部分把它拖到剛剛好的位置。這個交棒,正是從本主題通往「Transformer 究竟如何運作」的橋樑。