詞語化為數字(分詞與嵌入)
脈絡嵌入與靜態嵌入(contextual vs. static embeddings)
「bank」這個字在「river bank」(河岸)裡是一個意思,在「savings bank」(儲蓄銀行)裡又是另一個意思,然而像 word2vec 與 GloVe 這類較早的方法,不管在哪個句子裡,都給它同一個固定向量。那些就是靜態嵌入(static embeddings):每個字一個向量,每次都用同樣方式查出來。脈絡嵌入(contextual embeddings)則由 Transformer 模型產生,會給每個詞元一個取決於周圍整句的向量,於是「bank」在不同脈絡裡帶著不同的數字。
在大型語言模型內部,詞元嵌入只是起點。當那個向量往上穿過各層時,注意力機制會把周圍詞元的資訊混進來,於是到了較上層,每個位置的表示都已反映出它的脈絡。這就是為什麼現代模型能分辨靜態向量完全混為一談的詞義。代價在於成本:靜態向量便宜、可以一次預先算好,脈絡向量卻必須對每個新句子重新計算。
另见