1. 注意力机制的本质:从直觉到数学
Transformer模型之所以能在自然语言处理领域掀起革命,关键在于其独特的注意力机制设计。要真正理解这一机制,我们需要从最基础的向量运算开始讲起。
想象你正在阅读一本小说,当看到"他举起杯子喝了一口水"这句话时,你的大脑会自然地将"喝"与"杯子"、"水"关联起来,而忽略与"他"的关联。这种选择性关注的能力,正是注意力机制要模拟的核心功能。
1.1 点积的几何意义
注意力分数的计算基础是向量点积。从几何角度看,两个向量的点积可以表示为:
code复制A·B = ||A|| × ||B|| × cos(θ)
其中θ是向量间的夹角。当两个向量方向一致时(θ=0°),点积最大;垂直时(θ=90°),点积为零;相反时(θ=180°),点积最小。
在实际计算中,假设我们有两个4维向量:
code复制Q = [1.2, -0.5, 0.3, 2.1]
K = [0.8, 1.1, -0.2, 1.9]
它们的点积计算过程是:
code复制1.2×0.8 + (-0.5)×1.1 + 0.3×(-0.2) + 2.1×1.9
= 0.96 - 0.55 - 0.06 + 3.99
= 4.34
关键提示:在Transformer实现中,点积结果通常会除以√d_k(d_k是向量维度)进行缩放,防止梯度消失。这是原始论文中的重要技巧。
1.2 注意力得分的生物学类比
人脑的注意力机制与Transformer的注意力有着惊人的相似性。当我们看到"苹果"这个词时:
- 视觉皮层(相当于Query)会激活相关概念
- 长期记忆中的"水果"、"红色"等特征(相当于Key)会被检索
- 最终整合出的"苹果"概念(相当于Value)是加权综合的结果
这种并行处理模式与多头注意力机制异曲同工。Transformer通过多个"头"同时关注不同的特征子空间,就像人脑可以同时处理形状、颜色、语义等不同维度的信息。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 注意力计算的全流程拆解
2.1 输入表示的三重变换
原始词嵌入需要经过三个独立的线性变换:
code复制Q = XW_Q
K = XW_K
V = XW_V
其中W_Q, W_K, W_V是可训练的参数矩阵。以"cat"这个词为例:
- 原始嵌入可能是
