第 2 题:位置编码——绝对与相对

题目

什么是位置编码?对比绝对位置编码和相对位置编码的优缺点。

一、为什么必须有位置编码?

Self-Attention 对输入做的是集合运算:打乱 token 顺序, 的结果完全不变。所以 Transformer 本身无法区分“谁在前、谁在后”,必须显式注入位置信息,否则“我吃苹果”和“苹果吃我”在模型眼里可以一样。这就是**位置编码(Positional Encoding)**要解决的问题。

两种思路:

  • 绝对位置编码:给每个位置 一个向量 ,和 token 嵌入相加(或拼接)后再进 Attention,回答“这是第几个位置”。
  • 相对位置编码:不在输入上加向量,而是在 Attention 的分数或 Value 里编码“位置 相差多少”(),回答“这两个 token 相距多远”。

面试常问:“为什么 Transformer 需要位置编码?”——因为 Self-Attention 是置换不变的,没有位置信息就丢失了顺序。

二、绝对位置编码

1. 正弦/余弦(Sinusoidal)——原始 Transformer

对维度 用不同频率的正弦和余弦:

  • 优点:不增加参数、可外推(训练时没见过更长序列也能插值)、不同维度不同周期,能表示多种尺度。
  • 缺点:和词向量简单相加可能干扰语义;外推远超过训练长度时效果会变差。

2. 可学习绝对位置(Learned)

把位置 当 id,查 embedding 表得到 ,再加到 token 上。BERT 等 Encoder 常用。

  • 优点:完全数据驱动,在训练长度内通常比正弦更贴合数据。
  • 缺点:长度固定,不能外推; 越大参数量越大。

3. 绝对位置编码的共性问题

  • 实现简单(加或拼到输入即可),但更关注“第几个位置”,而不是“两个 token 相距多远”。
  • 很多任务(语法、指代、局部依赖)更依赖相对距离;绝对位置的外推也普遍不如相对位置(尤其可学习型)。

三、相对位置编码

核心思想:不编码“位置 是多少”,而编,即 的函数。

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

Ai Agent:面试300问 文章被收录于专栏

《AI Agent 300 问》专为备战 AI Agent 相关岗位的求职者打造,适配校招、社招全场景,覆盖算法研发、产品、解决方案等全岗位。专栏汇总 300 道大厂高频面试真题,全维度覆盖提示工程、智能体规划推理、记忆机制、工具调用、多智能体协作、框架落地、行业应用等核心领域,拆解考点底层逻辑,分享一线实战经验,助你一站式通关高薪面试。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务