Assignment 4
Attention Exploration
a
i
注意力权重 αi 是通过对 kiTq 的点积结果进行 softmax 计算得到的。要让 αj 几乎承载所有权重,查询向量 q 和键向量 kj 的点积 kjTq 远大于所有其他点积 kiTq(i=j)。
ii
根据 i 的结论,我们有 αj≈1 且对于所有 i=j,αi≈0。此时:
c≈0⋅v1+0⋅v2+...+1⋅vj+...+0⋅vn=vj输出向量 c 几乎完全等于与 kj 对应的值向量 vj:注意力机制从一系列输入 v 中精准地挑选并输出了 vj。
b
要实现这个目标,我们需要注意力权重 αa≈1/2,αb≈21,并且其他的 αi≈0。一个很自然的想法是让 q 同时与 ka 和 kb 相关。我们尝试 q=ka+kb。
由于所有键向量 ki 相互正交 (kiTkj=0) 且范数为 1 (∣∣ki∣∣=1),有:
kaT⋅q=kaT⋅(ka+kb)=kaT⋅ka+kaT⋅kb=∣∣ka∣∣2+0=1。 kbT⋅q=kbT⋅(ka+kb)=kbT⋅ka+kbT⋅kb=0+∣∣kb∣∣2=1。 kiT⋅q=kiT⋅(ka+kb)=kiT⋅ka+kiT⋅kb=0+0=0(i=a,b)此时有:
αa=αb=exp(1)+exp(1)+∑i=a,bexp(0)exp(1)如果 exp(1) 远大于 exp(0)=1,那么分母主要由 2exp(1) 构成,αa 和 αb 都近似等于 21。为了让这个近似更精确,我们可以放大 q 为 C(ka+kb),其中 C 是一个大常数。
c
正态分布有如下的特点:
- 均值分布的中心点,代表随机变量最可能取到的值。
- 协方差矩阵 (Covariance, Σ):描述了分布的离散程度(胖瘦)和方向。
i
由于键 ki 是从 N(μi,Σi) 中采样的,因此 ki≈μi,μi 之间相互正交且范数为 1。这和 b 中的问题类似,只不过我们现在操作的是均值 μi。因此 q=μa+μb。
ii
ka 的协方差变为 Σα=αI+1/2(μaμaT),这意味着 ka 的方向基本固定,但其长度(范数)随机变化很大。我们可以把 ka 看作 ka≈λ∗μa,其中 λ 是一个均值在 1 附近但方差很大的随机标量。
我们继续使用 q=μa+μb,计算点积如下:
kaTq≈(λμa)T(μa+μb)=λ(μaT⋅μa+μaT⋅μb)=λ⋅(1+0)=λ kbT⋅q≈μbT⋅(μa+μb)=1现在点积序列变成了 (λ,1,0,...),其中 λ 是一个随机数。在不同的采样中,c 会在 va 和 vb之间剧烈摆动,完全取决于 ka 长度的随机性。c 的方差会非常大。这就是单头注意力在试图同时关注多个事物时,面对某些特定噪声时的严重缺陷。
d
ii
我们用两个注意力头来模型上面的过程。我们让 c1 负责“复制” va,让 c2 负责“复制” vb。根据前面的结论,我们只需要让q1 和 q2 跟 μa,μb 对齐。
c1 进行点积的结果如下:
kaT⋅q1≈(λ⋅μa)T⋅μa=λ⋅∣∣μa∣∣2=λ kbT⋅q1≈μbT⋅μa=0点积序列是 (λ,0,0,...)。只要 λ>0(题目让我们忽略 λ<0 的情况),softmax 就会把所有权重都给 αa。因此 c1≈va。这个结果是稳定的,它不依赖于 λ 的具体值。
同理 c2 进行点积的结果如下:
kaT⋅q2≈(λ⋅μa)T⋅μb=λ∗0=0 kbT⋅q2≈μbT⋅μb=1点积序列是 (0,1,0,...)。softmax 会把所有权重都给 αb。c2≈vb。这个结果也是稳定的。
e
多头注意力通过使用多个独立的查询,将复杂的注意力任务分解。它可以让不同的头专注于不同的项目(例如,头1负责 a,头2负责 b)。每个头的注意力决策是独立的,不受其他头或不相关键的噪声影响。头1即使面对 ka 的长度变化,也能稳定地关注 a;头2完全不受 ka 影响,稳定地关注 b。最后将这些稳定的结果组合起来,得到一个稳健、低方差的最终输出。
Position Embeddings Exploration
a
由矩阵乘法的结合律:
- Qperm=XpermWQ=(PX)WQ=P(XWQ)=PQ
- Kperm=XpermWK=(PX)WK=P(XWK)=PK
- Vperm=XpermWV=(PX)WV=P(XWV)=PV
然后计算注意力层输出,由矩阵转置性质及题中提供的等式,有:
- QpermKpermT=(PQ)(PK)T=(PQ)(KTPT)=P(QKT)PT
- softmaxdQpermKpermT=softmaxdP(QKT)PT=P⋅softmaxdQKT⋅PT
最后乘 Vperm:
Hperm=[P⋅softmaxdQKT⋅PT]⋅Vperm=Hperm=[P⋅softmaxdQKT⋅PT]⋅(PV)而 P 为正交矩阵,PPT=I,有:
LHS=P⋅softmaxdQKT(PTP)⋅V=P⋅softmaxdQKT⋅IV而 H=softmaxdQKT⋅V,于是:
Hperm=PHHperm 是前馈网络的输入,我们把它代入 Z 的计算公式:
Zperm=ReLU((PH)⋅W1+b1)⋅W2+b2b1 的操作是把偏置向量 b1 加到 (PH)W1 的每一行。由于 P 只是对 H 的行进行重新排列,所以 P(HW1) 相当于对 HW1 的行进行同样的排列。对排列后的矩阵每一行加 b1,等价于先对原矩阵 HW1 每一行加 b1,再对结果的行进行排列:
ReLU((PH)⋅W1+b1)=ReLU(P⋅(HW1+b1))利用题中等式:
ReLU(P⋅(HW1+b1))=P⋅ReLU(HW1+b1)于是原式变为:
LHS=[P⋅ReLU(HW1+b1)]⋅W2+b2同样地,+b2 的操作也是对每一行加偏置,可以和 P 交换顺序:
LHS=P⋅[ReLU(HW1+b1)⋅W2+b2]而 ReLU(HW1+b1)⋅W2+b2=Z,于是:
LHS=PZb
位置编码 Φ 的定义如下:
- Φ(t,2i)=sin(t/10000(2i/d))
- Φ(t,2i+1)=cos(t/10000(2i/d))
假设存在两个不同的位置 t1=t2,它们的编码向量相同,即 Φ(t1,:)=Φ(t2,:)。
这意味着向量中的每一个元素都必须对应相等。对于任意一个维度索引 i(0≤i<d/2),以下两个等式必须同时成立:
- sin(t1/Ci)=sin(t2/Ci)
- cos(t1/Ci)=cos(t2/Ci)
(其中 Ci=10000(2i/d) 是一个随 i 变化的常数)
由三角函数的基本性质,要让 sin(a)=sin(b) 且 cos(a)=cos(b)同时成立,a 和 b 的差必须是 2π 的整数倍:
(t1/Ci)−(t2/Ci)=2kπ,k∈Z⇒t1−t2=2kπCi这个等式必须对所有的 i 都成立。但是 Ci 的值是随着 i 变化的:
- 当 i=0 时,C0=100000=1。等式为 t1−t2=2k0π。
- 当 i=1 时,C1=10000(2/d)。等式为 t1−t2=2k1π∗10000(2/d)。
因为 t1=t2,所以 t1−t2 是一个非零常数。如果 t1−t2=2k0π,那么 2k0π=2k1π∗10000(2/d),这意味着 k0=k110000(2/d)。由于 10000(2/d) 通常不是1(除非 d 无穷大),并且 k0 和 k1 都必须是整数,这个等式除了 k0=k1=0 的平凡解之外,不可能成立。QED。
g
i.
将二维向量表示为复数:z=x1+ix2,旋转角度tθ对应复数:e(itθ)=cos(tθ)+i⋅sin(tθ)。因此:
z⋅e(itθ)=(x1+ix2)(costθ+isintθ)=x1costθ+ix1sintθ+ix2costθ−x2sintθ=(x1costθ−x2sintθ)+i(x1sintθ+x2costθ)这与矩阵旋转结果一致。
ii.
RoPE(z1,t1)=z1⋅e(it1θ),RoPE(z2,t2)=z2⋅e(it2θ),于是:
⟨RoPE(z1,t1),RoPE(z2,t2)⟩=Re(z1eit1θ⋅z2e−it2θ)=Re(z1z2ei(t1−t2)θ)=⟨RoPE(z1,t1−t2),RoPE(z2,0)⟩
Comments