詞語化為數字(分詞與嵌入)

綁定輸入輸出嵌入(tied input-output embeddings)

語言模型要做兩件互為鏡像的工作。在輸入端,它把每個詞元變成一個向量;在最尾端,它把最終向量再變回詞彙表中每個詞元的分數,好預測下一個詞。這兩件工作都牽涉到一張形狀為「詞彙表大小乘維度」的表。權重綁定(weight tying)的做法很簡單,就是兩邊重複用同一張矩陣,而不是各學一張。

這很自然,因為兩件工作其實都關乎詞元與同一個向量空間之間的關係。共用權重省下大量參數——對大型詞彙表來說,嵌入表非常龐大——實務上還常因為讓兩半保持一致而提升品質。輸出這一步會用輸入嵌入矩陣的轉置,為每個詞元產生一個分數,叫做 logit,再由 softmax 把它轉成機率。並非每個模型都會綁定嵌入,但很多都會。

\text{logits} = E^{\top} h

同一張嵌入矩陣 E 取轉置後,把最終隱藏向量 h 映成各詞元的分數。

又称
weight tying