CNN、RNN与Self-Attention:定义、原理、复杂度与对比
一、序列建模的背景与核心挑战
在自然语言处理、语音识别、时间序列预测 等场景中,数据均以有序序列 形式存在,模型需要完成「输入序列→输出序列」的映射。
典型示例:语句 X=(x1,x2,x3,x4)X=(x_1,x_2,x_3,x_4)X=(x1,x2,x3,x4),分别对应单词 I、love、deep、learning。
序列建模两大核心难题:
- 长距离依赖 :序列远端元素存在语义关联(如代词
it指代前文animal),模型需捕捉远距离依赖关系; - 计算效率:序列长度增大时,计算量易爆炸,要求网络兼顾速度、可训练性与长依赖建模能力。
二、卷积神经网络 CNN
2.1 定义与应用
卷积神经网络(Convolutional Neural Network, CNN)依托局部感受野 +参数共享提取局部特征,最早用于图像领域,后拓展至NLP、语音、时序分析。
2.2 核心思想
序列中单个元素的语义主要由相邻局部窗口决定,仅聚焦周边少量元素即可完成特征提取。
2.3 一维卷积计算逻辑
设卷积核尺寸为 kkk,卷积窗口在序列上滑动,逐窗口计算输出:
yi=∑j=0k−1wj⋅xi+j y_i = \sum_{j=0}^{k-1} w_j \cdot x_{i+j} yi=j=0∑k−1wj⋅xi+j
wjw_jwj 为卷积核参数,kkk 为窗口大小。
2.4 时间复杂度:O(knd2)\boldsymbol{O(knd^2)}O(knd2)
- 单窗口计算:输入维度 kdkdkd,权重矩阵运算复杂度 O(kd2)O(kd^2)O(kd2);
- 整条序列共 nnn 个计算位置,整体复杂度为 O(knd2)O(knd^2)O(knd2)。
2.5 优缺点
- 优点:支持并行计算、训练速度快、参数共享、参数量小;
- 缺点:感受野受卷积核限制,天生难以建模长距离依赖,需堆叠多层卷积扩大视野。
三、循环神经网络 RNN
3.1 定义与核心思想
循环神经网络(Recurrent Neural Network, RNN)通过递归隐藏状态逐时序处理序列,当前时刻输出同时依赖当前输入与历史记忆。
隐藏状态更新核心式:
ht=f(xt,ht−1) h_t = f(x_t, h_{t-1}) ht=f(xt,ht−1)
3.2 计算公式
ht=Whht−1+Wxxt h_t = W_h h_{t-1} + W_x x_t ht=Whht−1+Wxxt
Wh∈Rd×dW_h\in\mathbb{R}^{d\times d}Wh∈Rd×d、Wx∈Rd×dW_x\in\mathbb{R}^{d\times d}Wx∈Rd×d 为可学习权重,ddd 为隐藏层维度。
3.3 时间复杂度:O(nd2)\boldsymbol{O(nd^2)}O(nd2)
- 单时间步隐藏状态更新:矩阵运算复杂度 O(d2)O(d^2)O(d2);
- 序列共 nnn 个时序步,整体复杂度 O(nd2)O(nd^2)O(nd2)。
3.4 核心缺陷
信息沿时序单向递归传递,权重矩阵反复连乘,极易引发梯度消失/梯度爆炸 ,长距离依赖建模能力极差;同时串行执行,无法并行计算,推理训练速度慢。
四、自注意力机制 Self-Attention
4.1 定义与设计初衷
自注意力机制直接计算序列任意两个元素 的关联度,让每个元素全局感知整个序列。
设计目标:解决CNN局部视野受限、RNN信息传递路径过长的问题。
4.2 Q/K/V 映射
将输入序列线性变换得到三组向量:
Q=XWQ,K=XWK,V=XWV Q=XW_Q,\quad K=XW_K,\quad V=XW_V Q=XWQ,K=XWK,V=XWV
- Query(Q):当前元素要匹配的内容;
- Key(K):序列元素的标识特征;
- Value(V):序列元素承载的语义信息。
4.3 三步计算流程
- 计算相关性 :S=QKTS = QK^\mathrm{T}S=QKT,得到元素间原始相似度矩阵;
- 缩放+归一化 :A=Softmax(QKTd)A = \mathrm{Softmax}\left(\frac{QK^\mathrm{T}}{\sqrt{d}}\right)A=Softmax(d QKT),得到注意力权重分布;
- 加权融合 :O=AVO = AVO=AV,依据权重聚合全局信息。
4.4 时间复杂度:O(n2d)\boldsymbol{O(n^2d)}O(n2d)
Q,K∈Rn×dQ,K\in\mathbb{R}^{n\times d}Q,K∈Rn×d,矩阵乘法 QKTQK^\mathrm{T}QKT 输出 n×nn\times nn×n 矩阵:
- 序列共 nnn 个元素,两两交互总计 n2n^2n2 组关系;
- 每组关系为 ddd 维向量点积,整体复杂度 O(n2d)O(n^2d)O(n2d)。
4.5 特点
具备全局建模能力 ,元素间信息传播路径最短;但复杂度随序列长度 nnn 平方增长,长序列下计算开销极大。
五、信息最长传播路径对比
路径长度:信息从一个元素传递到另一元素所需的计算步数
| 模型 | 信息传播路径长度 | 说明 |
|---|---|---|
| CNN | O(n/k)O(n/k)O(n/k) | 局部逐层传递,依赖多层卷积叠加扩大范围 |
| RNN | O(n)O(n)O(n) | 时序串行传递,距离越远路径越长 |
| Self-Attention | O(1)O(1)O(1) | 元素直接相连,全局一步互通 |
六、三大模型综合对比表
| 模型 | 信息传播方式 | 时间复杂度 | 最长传播路径 | 核心特性 |
|---|---|---|---|---|
| CNN | 局部窗口传播 | O(knd2)O(knd^2)O(knd2) | O(n/k)O(n/k)O(n/k) | 并行快、视野局部、难学长依赖 |
| RNN | 时序递归传播 | O(nd2)O(nd^2)O(nd2) | O(n)O(n)O(n) | 保留时序、无法并行、易梯度问题 |
| Self-Attention | 全局全连接传播 | O(n2d)O(n^2d)O(n2d) | O(1)O(1)O(1) | 全局建模强、长依赖最优、长序列算力高 |
七、整体总结
-
建模视野差异
- CNN:仅关注相邻 kkk 个局部元素;
- RNN:沿时序单向承接前序状态,视野随时间逐步累积;
- Self-Attention:直接关联序列所有元素,实现全局视野。
-
取舍与应用
- CNN:适合短序列、侧重局部特征、追求计算速度的场景;
- RNN/LSTM/GRU:适合强时序逻辑、序列长度适中的场景;
- 自注意力(Transformer):全局建模能力最强,是 BERT、GPT、Llama、通义千问等主流大语言模型的核心架构,也是当前NLP领域的主流方案。