更改

跳到导航 跳到搜索
添加2,405字节 、 2026年7月1日 (星期三)
无编辑摘要
第122行: 第122行:     
该设计具有多方面优势。首先,不同维度对应不同频率的周期函数,使模型能够在多个尺度上感知位置信息。其次,这种编码方式使得任意相对位置偏移<math>k</math>满足<math>\mathrm{PE}(pos + k)</math>可以表示为<math>\mathrm{PE}(pos)</math>的线性函数,从而有助于模型学习相对位置关系。最后,由于位置编码是确定性函数而非学习参数,它天然具备良好的外推能力,可以推广到比训练时更长的序列长度。
 
该设计具有多方面优势。首先,不同维度对应不同频率的周期函数,使模型能够在多个尺度上感知位置信息。其次,这种编码方式使得任意相对位置偏移<math>k</math>满足<math>\mathrm{PE}(pos + k)</math>可以表示为<math>\mathrm{PE}(pos)</math>的线性函数,从而有助于模型学习相对位置关系。最后,由于位置编码是确定性函数而非学习参数,它天然具备良好的外推能力,可以推广到比训练时更长的序列长度。
 +
 +
==结果==
 +
===自注意力、RNN 与 CNN 的比较===
 +
 +
与循环神经网络(RNN)和卷积神经网络(CNN)相比,自注意力机制在多个维度上具有显著优势。在复杂度方面,当序列长度<math>n < d</math>(这一情况在自然语言处理任务中较为常见)时,自注意力的计算效率更具优势。此外,自注意力机制可以在所有位置上并行计算,而 RNN 必须按照时间步顺序执行,从而限制了训练速度。
 +
 +
在建模依赖关系方面,自注意力允许任意两个位置之间通过一次注意力计算直接建立联系,其路径长度为<math>O(1)</math>;相比之下,RNN 的路径长度为<math>O(n)</math>,而 CNN 即使采用膨胀卷积,其路径长度也为<math>O(\log_k n)</math>。因此,自注意力在捕获长距离依赖时更加高效且稳定。
 +
 +
===计算复杂度分析===
 +
 +
设序列长度为<math>n</math>,表示维度为<math>d=512</math>,卷积核大小为<math>k</math>。
 +
 +
对于自注意力机制,其主要计算开销来自于矩阵乘法:
 +
 +
<math>
 +
QK^\top \in \mathbb{R}^{n \times n}, \quad
 +
(n \times d)(d \times n) = O(n^2 d)
 +
</math>
 +
 +
例如,当<math>n = 50<math>时,有:
 +
 +
<math>
 +
n^2 = 2500, \quad d = 512 \;\Rightarrow\; 2500 \times 512 \approx 1.28 \times 10^6
 +
</math>
 +
 +
对于 RNN,其递推形式为:
 +
 +
<math>
 +
h_t = f(h_{t-1}, x_t)
 +
</math>
 +
 +
该结构必须按时间步顺序执行<math>n</math>次,无法进行并行计算。
 +
 +
对于卷积神经网络(尤其是膨胀卷积),为了覆盖整个序列,需要:
 +
 +
<math>
 +
O(\log_k n)
 +
</math>
 +
 +
层,每一层的计算复杂度为:
 +
 +
<math>
 +
O(n \cdot d^2)
 +
</math>
 +
 +
因此总体计算复杂度为:
 +
<math>
 +
O(n \cdot d^2 \cdot \log_k n)
 +
</math>
 +
 +
===可解释性===
 +
 +
多头注意力机制使得模型能够在不同子空间中学习多样化的表示。不同的注意力头往往会关注不同类型的语言模式,例如:
 +
 +
一些注意力头主要捕捉句法结构关系(如主谓一致),一些关注语义关系(如指代消解),还有一些则对特定位置模式(如句首或句尾)表现出较强关注。
 +
 +
注意力权重的分布在一定程度上反映了语言的内在结构,在实际可视化中,常可以观察到类似句法树的模式。这种特性为模型的决策过程提供了重要的可解释性依据,使研究者能够更直观地理解模型的行为。
558

个编辑

导航菜单