BERT 作为Transformer的Encoder 为什么采用可学习的位置编码

摘要

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 在工业界广泛落地的需求。


参考文献

  1. Vaswani A. et al., Attention Is All You Need, 2017. 【sinusoidal vs learned】 

  2. Why BERT use learned positional embedding?, Cross Validated, 2019. 

  3. Cheng YQ, 位置编码(positional encoding), CSDN, 2018. 

  4. dzljoy2, 大模型位置编码_bert位置编码, CSDN, 2023. 

  5. Why use learnable positional encoding instead of sinusoids?, AI.StackExchange, 2023. 

  6. Why positional embeddings are implemented as embeddings, Hugging Face Discuss, 2019. 

  7. Tavares G., Sinusoidal Embeddings, Medium, 2024. 

  8. muyuu, Learned Positional Embedding, CSDN, 2019. 

  9. nn.Embedding layer for positional encoding, StackOverflow, 2022. 

  10. Comparing positional encodings, apxml.com, 2023. 

  11. Understanding BERT Embeddings, Tinkerd, 2022. 

  12. On Position Embeddings in BERT, OpenReview, 2019. 

  13. Transformer 通俗笔记, 集智斑图, 2022. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值