自然语言处理(NLP)研究范式经历了从浅层到深层、从局部到整体、从特定到通用的演进过程。下面我们来详细回顾这一过程。
一、早期的统计机器学习方法(20世纪90年代 - 21世纪初)
-
词袋模型(Bag-of-Words)
- 将文本表示为词频向量,忽略词序和语法
- 应用:文本分类、情感分析等
-
N-gram语言模型
- 基于词的共现频率,计算一个词序列的概率
- 应用:语音识别、机器翻译、文本生成等
- 例如,基于Bi-gram的概率计算公式:
P ( w 1 , w 2 , . . . , w n ) = ∏ i = 1 n P ( w i ∣ w i − 1 ) P(w_1, w_2, ..., w_n) = \prod_{i=1}^n P(w_i | w_{i-1}) P(w1,w2,...,wn)=∏i=1nP(wi∣wi−1)
-
词向量(Word Embedding)
- 将词映射为低维稠密向量,如Word2Vec、GloVe
- 词向量可以刻画词之间的语义关系
- 例如,Word2Vec的Skip-gram模型的目标函数:
J ( θ ) = 1 T ∑ t = 1 T ∑ − c ≤ j ≤ c , j ≠ 0 log P ( w t + j ∣ w t ) J(\theta) = \frac{1}{T} \sum_{t=1}^T \sum_{-c \leq j \leq c, j \neq 0} \log P(w_{t+j} | w_t) J(θ)=T1∑t=1T∑−c≤j≤c,j=0logP(wt+j∣wt)
二、深度学习时代(2013年 - 2018年)
-
循环神经网络(RNN)
- 适合处理序列数据,如语言模型、机器翻译
- 存在梯度消失和梯度爆炸问题
- 一个简单的RNN前向传播公式:
h t = tanh ( W h h h t − 1 + W x h x t ) h_t = \tanh(W_{hh} h_{t-1} + W_{xh} x_t) ht=tanh(Whhht−1+Wxhxt)
y t = W h y h t y_t = W_{hy} h_t yt=Whyht
-
长短期记忆网络(LSTM)
- 通过引入门控机制,缓解了RNN的梯度问题
- 广泛应用于序列建模任务
- LSTM的核心公式:
f t = σ ( W f ⋅ [ h t − 1 , x t ] + b f ) f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) ft=σ(Wf⋅[ht−1,xt]+bf)
i t = σ ( W i ⋅ [ h t − 1 , x t ] + b i ) i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i) it=σ(Wi⋅[ht−1,xt]+bi)
C ~ t = tanh ( W C ⋅ [ h t − 1 , x t ] + b C ) \tilde{C}t = \tanh(W_C \cdot [h{t-1}, x_t] + b_C) C~t=tanh(WC⋅[ht−1,xt]+bC)
C t = f t ∗ C t − 1 + i t ∗ C ~ t C_t = f_t * C_{t-1} + i_t * \tilde{C}t Ct=ft∗Ct−1+it∗C~t
o t = σ ( W o ⋅ [ h t − 1 , x t ] + b o ) o_t = \sigma(W_o \cdot [h{t-1}, x_t] + b_o) ot=σ(Wo⋅[ht−1,xt]+bo)
h t = o t ∗ tanh ( C t ) h_t = o_t * \tanh(C_t) ht=ot∗tanh(Ct)
-
注意力机制(Attention Mechanism)
- 让模型能够聚焦于输入的关键部分
- 广泛应用于机器翻译、阅读理解等任务
- 例如,Bahdanau Attention:
e i j = v a ⊤ tanh ( W a s i − 1 + U a h j ) e_{ij} = v_a^\top \tanh(W_a s_{i-1} + U_a h_j) eij=va⊤tanh(Wasi−1+Uahj)
α i j = exp ( e i j ) ∑ k = 1 T x exp ( e i k ) \alpha_{ij} = \frac{\exp(e_{ij})}{\sum_{k=1}^{T_x} \exp(e_{ik})} αij=∑k=1Txexp(eik)exp(eij)
c i = ∑ j = 1 T x α i j h j c_i = \sum_{j=1}^{T_x} \alpha_{ij} h_j ci=∑j=1Txαijhj
-
变形金刚(Transformer)
- 基于自注意力机制(Self-Attention),摆脱了RNN的序列依赖
- 并行计算,训练效率高,成为大模型的基础架构
- Self-Attention的计算公式:
Q = X W Q , K = X W K , V = X W V Q = X W_Q, K = X W_K, V = X W_V Q=XWQ,K=XWK,V=XWV
A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k ) V Attention(Q, K, V) = softmax(\frac{QK^T}{\sqrt{d_k}})V Attention(Q,K,V)=softmax(dk QKT)V
三、预训练语言模型(2018年 - 至今)
-
GPT(Generative Pre-training Transformer)
- 基于Transformer的单向语言模型
- 在大规模无监督语料上预训练,再针对下游任务微调
- 开启了预训练语言模型的新时代
-
BERT(Bidirectional Encoder Representations from Transformers)
- 基于Masked Language Model(MLM)和Next Sentence Prediction(NSP)的双向预训练
- 在11项NLP任务上取得SOTA成绩
- 掀起了预训练语言模型的热潮
-
轻量级预训练模型
- 如DistilBERT、ALBERT、TinyBERT等
- 在保持性能的同时,大幅减小模型尺寸和推理时间
- 利于预训练模型的工业落地
-
大语言模型(Large Language Model)
-
如GPT-3、PaLM、ChatGPT等
-
模型参数规模高达数百亿甚至上千亿
-
展现出惊人的语言理解和生成能力
-
In-context Learning:无需微调,直接向模型输入少量样本即可执行新任务
-
赋予NLP更加通用、开放、强大的能力
-
大模型示意图:
┌─────────────────────────────────────────────────────────────────┐ │ │ │ Pre-training │ │ │ │ ┌──────────────────────────────────────────────────┐ │ │ │ Unsupervised Text Corpora │ │ │ └──────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌──────────────────────────────────────────────────┐ │ │ │ Large Language Model │ │ │ │ (Billions) │ │ │ └──────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ │ │ Downstream Tasks │ │ │ │ ┌─────────┐ ┌───────────┐ ┌─────────────┐ ┌──────────┐ │ │ │ ChatBot │ │ Summarize │ │ Translate │ │ Classify │ │ │ └─────────┘ └───────────┘ └─────────────┘ └──────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘
-
NLP研究范式的演进,反映了人工智能技术的不断进步。从早期的统计机器学习,到深度学习,再到预训练语言模型和大模型,每一次范式的突破都极大地推动了NLP的发展。未来,NLP有望与知识表示、因果推理等技术进一步结合,实现更加强大、智能、可解释的自然语言理解和生成。