
从 Q/K/V、位置编码、decoder mask 到 BLEU 表格,读懂 Transformer 用全局注意力换取并行训练时付出的计算代价。
t 个隐藏状态依赖第 t-1 个隐藏状态。训练一个样本时,即使整句话已经放进显存,位置之间的计算仍被串成一条链;序列越长,这条链越长。卷积把同一层的多个位置并行算出来,但一个小卷积核只能看局部邻域,远距离信息必须沿多层网络传递。论文用三个字段比较这些层:每层复杂度、必须串行执行的最少操作数、任意两个位置之间的最长路径。2| 层类型 | 每层复杂度 | 最少串行操作 | 最长路径 |
|---|---|---|---|
| RNN | O(n·d²) | O(n) | O(n) |
| 卷积 | O(k·n·d²) | O(1) | O(log_k n)(扩张卷积) |
| 全局自注意力 | O(n²·d) | O(1) | O(1) |
n 是序列长度,d 是表示维度,k 是卷积核宽度。表格不表示自注意力在任何长度上都更便宜:当 n 小于 d 时,论文认为它在句子级表示上可能比 RNN 更快;当 n 变得很大,n² 反而会成为主要负担。自注意力真正消掉的是串行路径,而不是所有计算成本。2Q、K、V:Q(query,查询)表示「我现在想找什么」;K(key,键)表示「我能被什么样的查询找到」;V(value,值)表示「找到我之后,真正取走什么信息」。q,模型把它与每个键 k_j 做点积。点积越大,说明两者在当前表示空间里越匹配。把所有匹配分数送进 softmax,就得到一组和为 1 的权重;最后用这组权重对所有 v_j 加权求和:Attention(Q, K, V) = softmax(QKᵀ / √d_k)VQKᵀ:计算每个位置对所有位置的匹配分数,得到一个位置到位置的矩阵;/ √d_k:把分数缩小到合适的尺度;softmax:把分数变成注意力权重;...V:按权重混合信息,生成新的位置表示。√d_k?如果 q 和 k 的各个分量独立、均值为 0、方差为 1,那么它们的点积方差会随 d_k 增长。分数过大时,softmax 容易挤到接近 one-hot 的区域,梯度变得很小;缩放是在训练稳定性和匹配分辨率之间做的数值处理。2Q、K、V 都来自同一个序列。于是每个词都能直接读取同一序列中其他位置的信息。比如某个位置需要判断一个代词指向谁,它不必等待一个隐藏状态从句首传过来,而是可以在这一层直接给候选位置分配权重。PE(pos, 2i) = sin(pos / 10000^(2i / d_model))PE(pos, 2i+1) = cos(pos / 10000^(2i / d_model))d_model 维空间里做一次注意力,不同关系会被迫共用同一套匹配与混合方式。多头注意力先把 Q、K、V 分别投影到多个较小的子空间,在每个子空间独立计算注意力,再把结果拼接并投影回原维度:MultiHead(Q, K, V) = Concat(head₁, ..., head_h)Wᴼhead_i = Attention(QWᵢQ, KWᵢK, VWᵢV)h = 8 个 head,d_model = 512,每个 head 的 d_k = d_v = 64。多个 head 不是把同一张注意力图复制八遍,而是允许不同投影空间学习不同的关系;论文的消融实验也显示,单头设置比最佳多头设置低 0.9 BLEU,但 head 过多同样会让质量下降。2
FFN(x) = max(0, xW₁ + b₁)W₂ + b₂;d_model 为 512,FFN 的中间维度为 2048。2i 个预测只能依赖已知的目标前缀。2| 任务 | Transformer big 的 BLEU | 读法 |
|---|---|---|
| WMT 2014 英译德 | 28.4 | 论文称其超过此前包括集成模型在内的最佳结果 2 BLEU 以上。 |
| WMT 2014 英译法 | 41.8 | 摘要和表 2 把它列为单模型结果;论文同一小节的叙述段落另写成 41.0,阅读原文时应保留这个版本内部不一致。 |
d_k:减小它会伤害质量,说明匹配本身需要足够的表示维度;n 时,每层要形成一个 n × n 的位置关系矩阵,复杂度是 O(n²·d)。序列越长,显存和计算增长越快。论文已经提出把 attention 限制在局部邻域,以降低长输入的成本,但把它作为未来工作,并没有在这篇论文里解决全局 attention 的长序列瓶颈。2Q、K、V 分别来自哪里,attention 允许哪些位置互相读取?n × n 关系矩阵,长序列时成本如何变化?QKᵀ 决定信息从哪里来,用位置编码告诉模型这些信息处在什么顺序,用 FFN 在每个位置加工结果,再用残差与归一化把这套操作堆叠起来。This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.