什么是 Transformer
Transformer 是 Google 在 2017 年提出的神经网络架构,彻底改变了 NLP 领域。它完全基于注意力机制,摒弃了传统的 RNN 和 CNN 结构。
Self-Attention 机制
Self-Attention 的核心思想是让序列中的每个 token 都能够直接关注到序列中的所有其他 token:
def self_attention(Q, K, V):
scores = Q @ K.T / math.sqrt(d_k)
attention_weights = softmax(scores)
return attention_weights @ V
Multi-Head Attention
多头注意力将 Q、K、V 投影到多个低维子空间,让模型能够同时关注来自不同位置的不同表示子空间的信息。
位置编码
由于 Transformer 没有递归结构,需要通过位置编码注入序列顺序信息。原始论文使用正弦位置编码。
注意力机制深入理解 对注意力的数学原理做了更深入的分析。