摘要
BERT 在位置編碼上與原始 Transformer 論文中的 sin/cos 公式不同,選擇了可學習(learned)的位置嵌入方案。本文將從 Transformer 原始位置編碼選項入手,分析 BERT 選擇 learned positional embeddings 的四大核心原因,并通過實驗和社區實證對比兩者的性能差異,最后對比其他主流模型的做法。全文引用了業界高質量文獻和社區討論,共計 13 條引用,幫助讀者全面理解這一設計抉擇。
1. Transformer 原始位置編碼選項
1.1 Sinusoidal vs. Learned
在《Attention Is All You Need》中,作者同時提出了固定正弦/余弦編碼(sinusoidal)和可學習查表編碼(learned embedding)兩種方案,并在實驗中發現二者性能相當,無明顯優劣
-
Sinusoidal 編碼:根據位置和頻率預計算,不參與訓練;
-
Learned 編碼:將位置號作為索引,初始化為隨機向量,隨模型一同更新。
2. BERT 選擇可學習位置編碼的主要原因
2.1 實現與推理效率
Sinusoidal 編碼需在推理時頻繁計算三角函數,而 Learned 編碼只需一次向量查表相加,更省時
2.2 固定最大長度
BERT 在預訓練階段就將最大序列長度(如512)固定下來,不需要對超出訓練長度的情況做泛化處理,查表方式只要裁剪到最大長度即可,無需 sin/cos 的“無限外推”功能
2.3 領域自適應能力
BERT 后續需針對不同領域或下游任務做多次微調(fine-tune)。Learned 編碼能根據下游語料分布動態更新位置表示,比固定公式更具靈活性和表達力
2.4 參數代價微小
即便最大長度設為512,位置嵌入表也僅有 512×HiddenSize(如768)≈40萬維參數,在千億級模型中占比幾乎可以忽略,卻換來更靈活的表達
3. 實踐效果對比
-
多項實驗證明,Learned 和 Sinusoidal 在下游任務(分類、問答、序列標注等)上的性能幾乎不分伯仲,甚至略有優勢;同時 Learned 方案在訓練和推理的整體資源消耗上也更可控【
-
Hugging Face 社區反饋:Learned embeddings 在某些場景下收斂更快,且不需要針對不同任務手動設計位置函數,可實現“一次預訓練,多次微調”流程的高效落地
4. 與其他模型對比
-
GPT 系列 同樣采用 Learned 位置嵌入,原因與 BERT 類似:固定最大長度,追求生成時的高效與靈活
-
對超長文本支持(如 Transformer-XL、Longformer)則更傾向使用相對位置編碼或稀疏注意力等技術,以兼顧泛化和效率,解決 Learned 編碼不能外推到新序列長度的問題
小結
盡管 BERT 架構來源于 Transformer 的編碼器部分,但在位置編碼的實現上,BERT 以“一次預訓練、多次微調”“固定最大長度”“極小參數開銷”以及“推理高效” 為考量,果斷選擇了可學習查表(訓練的位置編碼)的方式,而非 sin/cos 固定公式。此設計既保證了性能,又簡化了工程實現,契合 BERT 在工業界廣泛落地的需求。
參考文獻
-
Vaswani A. et al., Attention Is All You Need, 2017. 【sinusoidal vs learned】?
-
Why BERT use learned positional embedding?, Cross Validated, 2019.?
-
Cheng YQ, 位置編碼(positional encoding), CSDN, 2018.?
-
dzljoy2, 大模型位置編碼_bert位置編碼, CSDN, 2023.?
-
Why use learnable positional encoding instead of sinusoids?, AI.StackExchange, 2023.?
-
Why positional embeddings are implemented as embeddings, Hugging Face Discuss, 2019.?
-
Tavares G., Sinusoidal Embeddings, Medium, 2024.?
-
muyuu, Learned Positional Embedding, CSDN, 2019.?
-
nn.Embedding layer for positional encoding, StackOverflow, 2022.?
-
Comparing positional encodings, apxml.com, 2023.?
-
Understanding BERT Embeddings, Tinkerd, 2022.?
-
On Position Embeddings in BERT, OpenReview, 2019.?
-
Transformer 通俗筆記, 集智斑圖, 2022.?