深度学习进阶(二十一)跨窗口的 RPE

[复制链接]
发表于 2026-5-17 15:26:15 | 显示全部楼层 |阅读模式
上一篇我们先容了 Transformer-XL 的段级递归和影象缓存机制,也留下了一个标题:
Memory 让差别 segment 可以相互看到,但配套的位置编码逻辑却并不美满。
这一篇就来睁开 Transformer-XL 配套的改进方案:跨窗口的相对位置编码。
1. 为什么要提出跨窗口的 RPE?

1.1 正余弦绝对编码的范围

我们还是用上一篇的例子来睁开这个标题:假设模子上下文窗口长度为 4,一段长文本被切成了两个 segment:
Segment 1Segment 2Position 1AEPosition 2BFPosition 3CGPosition 4DH引入 Memory 后,Segment 2 中的 token 可以看到 Segment 1 的编码信息。
但模子无法区分 位置 4 到底是指 D(第一个 segment 的末了),还是 H(第二个 segment 的末了)。
那可不可以如许:
利用正余弦的无穷外推本领,直接让位置编码跨 segment 递增不就行了?Segment 1 用位置 1~4,Segment 2 用位置 5~8?
但标题在于:
正余弦位置编码固然可以理论上无穷天生,却并不意味着模子真的具备无穷长度泛化本领。
要明白这一点,我们须要明白的是:PE 只是资助学习的一环。
注意力真正的学习是词嵌入、位置编码、QKV 矩阵等综合实现的,这些实际上都是在训练长度范围内形成的。
假设模子训练的上下文长度为 512,那么模子恒久打仗的位置范围实在只有 0 ~ 512,它会在这个空间内形成比力稳固的分布。
但假如接纳跨 segment 递增,出现了一个 PE(512000),模子没有在这种位置分布上训练过,导致无法泛化。
从专业名词上说,这叫:extrapolation degradation(外推退化)。
这时就像让一个每天训练正常测验题的门生没有任何防备的去做比赛题。巨大的差别会直接影响本来已经稳固的“解题思绪”。
从而导致KQV 矩阵投影非常、注意力得分漂移等标题。
总结来说就是:
强利用用看似公道实际却不适配的配件,外貌上办理了标题,但实际却带来了更多 bug。
因此,单纯利用全局递增的绝对位置编码,实际上并不能真正跨段的长上下文建模。
1.2 可学习绝对编码的范围

相比正余弦绝对编码,可学习绝对编码的范围就更显着了:
完全没有外推本领。
睁开来说,Transformer 中的可学习绝对位置编码本质上实在是一张位置查找表,当我们设置上下文长度为 512 时, 它就为每个位置初始化一组向量作为位置编码并注入,在反向流传中不停更新。
它不是位置越大,主动推导,而只是:“训练时记取了这个位置应该长什么样”。
以是,当接纳跨 segment 递增,出现了一个 PE(512000),但可学习绝对编码只到PE(512)。而要增长就又回到了最初的窗口巨细和盘算量标题。
终极,可学习绝对位置编码由于本质上无法支持无穷长度扩展,不实用于 Transformer-XL 。
1.3 原始 RPE 的范围

在原始 RPE中,我们先容了 Shaw 等人提出的相对位置编码:引入可学习的 \(\mathbf{r}^K\) 和 \(\mathbf{r}^V\),分别加到 Key 和 Value 上。
从逻辑上说,相对位置天然就是跨窗口的,但已往的水救不了现在的火,原始 PRE 存在两个待优化标题:

  • 可学习的相对位置表有长度限定。 假如训练时最大相对间隔是 10,而须要分段的长序列相对间隔大概到达几千,这时间查表查不到,只能截断,信息丢失严峻。
  • "K/V 加法注入"的方式过于粗糙。 它只是简单地把位置信息线性叠加到语义表现上,无法形成更丰富的交互。
因此,Transformer-XL 并没有直接用原始 RPE,而是重新计划了一套相对位置编码方案。
2.正余弦相对位置编码

现在我们知道了 Transformer-XL 必须利用 RPE ,在正式睁开其注入逻辑前,我们须要先相识 Transformer-XL 自己对编码逻辑的计划:正余弦相对位置编码。
一个标题是:
“继承相沿原始 RPE 的相对位置表不可以吗?”
就像如许:
相对间隔编码-1\(r_{-1}\)-2\(r_{-2}\)-3\(r_{-3}\)缘故原由就是我们上面提到的:
可学习的相对位置表有长度限定,外推本领不敷。
于是 Transformer-XL 做了一个非常关键的决定:
重新利用正余弦函数天生相对编码。
详细来说,对于相对间隔:

\[\Delta=i-j  \]
Transformer-XL 会直接利用正余弦函数天生对应位置编码:

\[R_{\Delta}^{(2k)}=\sin\left(  \frac{\Delta}{10000^{2k/d}}  \right)  \]

\[R_{\Delta}^{(2k+1)}=\cos\left(  \frac{\Delta}{10000^{2k/d}}  \right)  \]
公式自己的盘算逻辑和原始 Transformer的正余弦绝对编码没有任何区别,只是把绝对位置 \(pos\) 变成了相对间隔 \(\Delta=i-j\) 。
假设位置编码维度:\(d=4\),\(\Delta=i-j=-2\):
维度公式盘算结果\(R_{-2}^{(0)}\)\(\sin\left(\frac{-2}{10000^0}\right)=\sin(-2)\)\(\approx -0.909\)\(R_{-2}^{(1)}\)\(\cos\left(\frac{-2}{10000^0}\right)=\cos(-2)\)\(\approx -0.416\)\(R_{-2}^{(2)}\)\(\sin\left(\frac{-2}{10000^{2/4}}\right)=\sin(-0.02)\)\(\approx -0.020\)\(R_{-2}^{(3)}\)\(\cos\left(\frac{-2}{10000^{2/4}}\right)=\cos(-0.02)\)\(\approx 0.999\)终极得到:

\[R_{-2}  \approx  [-0.909,-0.416,-0.020,0.999]  \]
这就是 “相对间隔为 -2” 对应的相对位置编码,它美满了长序列中的位置编码,相比绝对编码具有更好的泛化性。
不外这里须要注意的是,这种编码仍然存在上面提到的正余弦绝对编码的范围。
由于模子中的QKV 投影矩阵、Attention 模式等本质上仍然是在有限上下文范围内训练得到的,不能通过单独的编码计划就完全办理这些标题。
因此也催生了后续的更多改进。
3. 跨窗口的 RPE

现在,我们通过正余弦相对位置编码办理了原始 RPE 可学习的相对位置表有长度限定的标题,一下个标题就是:"K/V 加法注入"的方式过于粗糙。
而 Transformer-XL 的做法并不是继承修补原始 RPE,而是重新推导 Relative Attention 的盘算情势。
还是先回想一下平凡 Self-Attention 公式:

\[Attention(Q,K,V)=softmax\left(\frac{QK^T}{\sqrt d}\right)V  \]
此中盘算注意力分数的部分是:

\[A_{i,j}=Q_i^T K_j  \]
但标题在于原始的它只包罗“内容”,没有真正包罗“位置关系”,以是原始 RPE 才会把 RPE 注入到 Attention 中。
而现在,这部分再次被重新改写为:

\[A_{i,j}^{rel}=Q_i^T K_j  +  Q_i^T R_{i-j}  +  u^T K_j  +  v^T R_{i-j}  \]
这也是 Transformer-XL 最焦点的 Relative Attention 公式。
看起来很复杂,但它实在只是把“内容”和“位置”举行了分开建模。
我们分点来看:
3.1 内容项和位置项

先来看前两项:

\[Q_i^T K_j + Q_i^T R_{i-j}  \]
此中:

\[Q_i^T K_j  \]
实在就是平凡 Self-Attention 的逻辑:Query 和 Key 的语义相似度。
但还是老标题:
Attention 不光须要“内容信息”,还须要“位置信息”。
于是 Transformer-XL 额外到场了:

\[Q_i^T R_{i-j}  \]
这项的语义是: “当前 Query 更倾向关注什么间隔的位置”。
通过反向流传,模子会徐徐把这些 “间隔规律” 也学习进 Attention 中。
3.2 内容偏置和位置偏置

在上一项完成后还没竣事,由于作者发现:
仅仅让 Query 感知位置,实在还不敷。
于是 Transformer-XL 又进一步到场了:

\[u^T K_j + v^T R_{i-j}  \]
这两项全局偏置。
先来看:

\[u^T K_j  \]
这里的 \(u\) 是一个可学习向量。它不再依赖于个详细位置的 Query,而是在像偏置一样,是盘算中的全局偏好。
可以把它明白成:
这个自注意力头天然更喜欢关注什么范例的信息。
同理,对于:

\[v^T R_{i-j}  \]
这里的 \(v\) 同样是一个可学习向量,它学习的是:
这个自注意力头天然更偏好什么间隔。
这便是跨窗口的 RPE 的完备逻辑。
起首,它通过正余弦相对编码改善了原始 RPE 的建表巨细标题,让编码拥有从理论上无穷外推的本领,又相对绝对编码进步了泛化本领。
其次,它不再把位置信息简单的注入 K/V ,而是让其真正加入注意力盘算,让位置不再只是辅助信息,而是真正开始影响注意力构成。
别的,Transformer-XL 删除了原始 RPE 中对 Value 的位置注入。缘故原由在于作者以为位置真正须要影响的,实在是“关注谁”,而不是“转达什么内容”。
但实在后续也有别的模子又把 V 加归去了,以是这只是选择和讲故事标题,不再多说了。
末了,另有一点须要提到的是,原论文还提到了一种工程优化本领,叫做 Relative Shift,是为了在实际运算中高效盘算 \(Q_i^T R_{i-j}\),但由于其只是一种盘算本领,在后续也出现了许多代替方案,就不再睁开了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表