引言
自然语言处理(NLP)是 AI 领域的重要分支,而语言模型(Language Model, LM)是 NLP 的核心技术。语言模型经历了从 统计方法 到 RNN(循环神经网络),再到 Transformer 的演进,每一步都在提升模型的表达能力和计算效率。
本文从技术角度详细分析三种方法的核心原理、优缺点,并探讨 Transformer 如何在 AI 大模型(如 GPT-4)中发挥关键作用。
1. 统计方法(N-gram)
1.1 方法原理
统计方法基于 马尔可夫假设(Markov Assumption),认为当前词的出现仅依赖于前面 n-1 个词,而不是整个句子历史。常见的 N-gram 语言模型如下:
- Unigram(1-gram): 仅考虑每个词的单独概率 P(w)。
- Bigram(2-gram): 仅考虑当前词的前一个词 P(w_t | w_{t-1})。
- Trigram(3-gram): 仅考虑当前词的前两个词 P(w_t | w_{t-2}, w_{t-1})。
语言模型的计算方式如下:
[
P(W) = P(w_1, w_2, …, w_T) = \prod_{t=1}^{T} P(w_t | w_{t-n+1}, …, w_{t-1})
]
1.2 优缺点
✅ 优点:
- 计算简单,易于实现。
- 适用于小型数据集,能快速计算概率。
❌ 缺点:
- 长距离依赖问题:N-gram 只能考虑有限的上下文,忽略远距离词的影响。
- 数据稀疏性:高阶 N-gram 需要大量数据,罕见短语可能无统计数据。
- 无法泛化:仅能处理训练数据中见过的词汇,对新词无能为力。
2. RNN(循环神经网络)
2.1 方法原理
RNN 通过隐藏状态 h_t 记忆过去的信息,解决了 N-gram 只能处理短上下文的问题。RNN 的核心计算公式如下:
[
h_t = f(W_h h_{t-1} + W_x x_t + b)
]
[
y_t = W_y h_t + b_y
]
其中:
- ( h_t ) 是当前的隐藏状态,包含了过去的信息。
- ( W_h, W_x, W_y ) 是权重矩阵,( b ) 是偏置项。
- ( x_t ) 是输入,( y_t ) 是输出。
2.2 变体(LSTM & GRU)
(1) LSTM(长短时记忆网络)
LSTM 通过 遗忘门(Forget Gate)、输入门(Input Gate)、输出门(Output Gate) 控制信息流动,使其能够记住长期依赖信息:
[
f_t = \sigma(W_f [h_{t-1}, x_t] + b_f)
]
[
i_t = \sigma(W_i [h_{t-1}, x_t] + b_i)
]
[
o_t = \sigma(W_o [h_{t-1}, x_t] + b_o)
]
[
c_t = f_t \odot c_{t-1} + i_t \odot \tilde{c_t}
]
[
h_t = o_t \odot \tanh(c_t)
]
其中:
- ( f_t, i_t, o_t ) 分别为遗忘门、输入门和输出门。
- ( c_t ) 是细胞状态,存储长期信息。
(2) GRU(门控循环单元)
GRU 结构比 LSTM 更简单,合并了输入门和遗忘门:
[
z_t = \sigma(W_z [h_{t-1}, x_t])
]
[
r_t = \sigma(W_r [h_{t-1}, x_t])
]
[
\tilde{h_t} = \tanh(W_h [r_t \odot h_{t-1}, x_t])
]
[
h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h_t}
]
2.3 优缺点
✅ 优点:
- 能处理任意长度的序列,比 N-gram 适应更长的上下文。
- LSTM/GRU 解决了普通 RNN 的梯度消失问题。
❌ 缺点:
- 训练速度慢,难以并行化(序列计算依赖前一步)。
- 对长序列仍存在信息遗忘问题。
3. Transformer(自注意力机制)
3.1 方法原理
Transformer 彻底抛弃了 RNN,使用 自注意力机制(Self-Attention) 计算词与词之间的关系,并行处理整个句子。
(1) 自注意力机制
给定输入序列 ( X = [x_1, x_2, …, x_n] ),我们计算每个词的 查询(Q)、键(K)、值(V):
[
Q = XW_Q, \quad K = XW_K, \quad V = XW_V
]
计算注意力权重:
[
\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V
]
(2) 多头注意力
多个注意力头(Multi-Head Attention)并行计算:
[
\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, …, \text{head}_h) W_O
]
(3) 位置编码
由于 Transformer 没有 RNN 的时序结构,需要 位置编码(Positional Encoding) 引入位置信息:
[
PE_{(pos, 2i)} = \sin(pos / 10000^{2i/d})
]
[
PE_{(pos, 2i+1)} = \cos(pos / 10000^{2i/d})
]
3.2 优缺点
✅ 优点:
- 并行计算,提高训练速度。
- 处理长序列时效果优于 RNN,没有梯度消失问题。
❌ 缺点:
- 计算量大,对硬件要求高。
- 长文本处理成本较高(注意力计算复杂度为 ( O(n^2) ))。
总结
方法 | 核心原理 | 优点 | 缺点 |
---|---|---|---|
N-gram | 统计词频概率 | 计算简单 | 不能处理长距离依赖 |
RNN | 记住前面信息逐步预测 | 适合短文本 | 训练慢,长句信息遗忘 |
Transformer | 关注整个句子,注意力机制 | 并行计算,高效处理长文本 | 计算量大,训练成本高 |
目前,Transformer 是大模型(如 GPT-4、BERT)的核心技术,未来 NLP 发展仍围绕自注意力机制展开。
📌 如果你想深入学习,可以研究 Transformer 细节,如多头注意力、Feedforward 层等。