Skip to content

第二章:NLP 发展史

NLP 的发展经历了多个阶段,从最初的手工规则到如今的大语言模型。理解这段历史,有助于我们把握技术演进的脉络,理解每项技术诞生的背景和动机。


第一阶段:规则系统时代(1950s-1980s)

时代背景

在 20 世纪 50 年代至 80 年代初,自然语言处理主要依赖人工编写的语言规则。这些规则由语言学家和程序员手动制定,基于语法规则和词典来处理语言。

代表系统

Georgetown-IBM 实验(1954)

这是人类历史上第一次公开演示的机器翻译系统。由乔治城大学和 IBM 联合开发,实验演示了将 60 多个俄语句子完全自动翻译成英语。

输入(俄语):Мы хотим видеть советскую Америку.
输出(英语):We would like to see Soviet America.

局限性

该实验仅覆盖了 6 个语法规则和 250 个词汇条目,只能处理非常有限的句子结构。但它的意义在于证明了机器翻译的可能性

ELIZA 聊天机器人(1966)

ELIZA 由 MIT 的约瑟夫·魏岑鲍姆(Joseph Weizenbaum)开发,是世界上最早的聊天机器人之一。它模拟了一位心理治疗师,通过模式匹配替换规则来生成回复。

用户:我感觉很不开心。
ELIZA:你为什么感觉不开心?

用户:因为我考试没考好。
ELIZA:考试没考好让你有什么感受?

ELIZA 的工作原理非常简单:它使用一系列的模板规则,例如:

规则:我感觉 <X>
回复:你为什么感觉 <X>?

优缺点

优点缺点
精确可控需要大量人工编写规则
可解释性强无法处理歧义和新情况
在特定领域表现良好扩展性差,维护成本高

第二阶段:统计方法时代(1990s)

时代背景

90 年代,随着计算能力的提升和大规模语料库的出现,统计方法逐渐取代规则系统成为主流。核心思想是:不再人工编写规则,而是让机器从大量文本数据中自动学习语言的模式和规律。

核心方法

N-gram 模型

N-gram 是最早出现的统计语言模型之一。它的核心思想是:一个词出现的概率只取决于它前面的 N-1 个词

Bigram(2-gram)示例

假设我们要计算句子"今天 天气 很好"的概率:

P(今天 天气 很好)=P(今天)×P(天气|今天)×P(很好|天气)

Trigram(3-gram)示例

P(今天 天气 很好)=P(今天)×P(天气|今天)×P(很好|今天 天气)

其中:

  • P(天气|今天) 表示在"今天"出现的条件下,下一个词是"天气"的概率
  • 这些概率通过统计语料库中词语出现的频率来估计

N-gram 的局限

问题说明
数据稀疏当 N 增大时,很多 N-gram 组合在语料中从未出现
无法捕捉长距离依赖只能看前 N-1 个词,无法理解长距离的语义关系
存储开销大需要存储所有可能的 N-gram 及其频率

隐马尔可夫模型(HMM)

HMM 是一种概率图模型,广泛应用于词性标注语音识别。它假设:

  1. 当前状态只依赖于前一个状态(马尔可夫假设)
  2. 当前的观测只依赖于当前的状态(输出独立性假设)
隐藏状态序列:名词 → 动词 → 形容词 → 名词
观测序列:    我   → 爱   → 美丽   → 花朵

优缺点

优点缺点
从数据中自动学习需要大量标注数据
能处理一定程度的歧义特征工程复杂
有坚实的数学基础难以捕捉复杂的语言现象

第三阶段:机器学习时代(2000s)

时代背景

进入 21 世纪,NLP 技术逐步引入传统机器学习方法。这一阶段的特征工程成为关键环节——研究者需要设计大量手工特征来提升模型性能。

核心方法

逻辑回归(Logistic Regression)

逻辑回归是最基础的分类模型之一,广泛应用于文本分类任务。

给定输入特征向量 x,逻辑回归的预测公式为:

P(y=1|x)=σ(wTx+b)=11+e(wTx+b)

其中:

  • x 是输入的特征向量(如词频向量)
  • w 是模型的权重向量
  • b 是偏置项
  • σ 是 Sigmoid 函数,将输出映射到 [0, 1] 区间

支持向量机(SVM)

SVM 的核心思想是找到一个最优超平面,使得不同类别的样本之间的间隔最大化

minw,b12w2s.t.yi(wTxi+b)1,i

其中:

  • w 是超平面的法向量
  • b 是偏置
  • yi 是第 i 个样本的标签(+1 或 -1)
  • w2 是权重的 L2 范数,用于控制模型复杂度

条件随机场(CRF)

CRF 是一种判别式概率图模型,特别适合序列标注任务(如命名实体识别、词性标注)。

CRF 定义了给定观测序列 x 时,标签序列 y 的条件概率:

P(y|x)=1Z(x)exp(i,tλtft(yi1,yi,x,i))

其中:

  • ft 是特征函数,描述相邻标签之间的关系
  • λt 是特征函数的权重
  • Z(x) 是归一化因子(配分函数)

词袋模型的局限

这一阶段常用的文本表示方法是词袋模型(Bag of Words),它通过统计词频来表示文本。但词袋模型有一个明显的局限——完全忽略了词语的顺序

示例

评论分词结果
"服务很好但味道差劲"["服务", "很", "好", "但", "味道", "差劲"]
"味道很好但服务差劲"["味道", "很", "好", "但", "服务", "差劲"]

这两条评论在词袋模型中的特征向量是完全相同的,但它们表达的情感完全相反

为了解决这个问题,引入了 N-gram 特征。使用 trigram(3-gram)后:

评论A:["服务很好", "很好但", "好但味道", "但味道差劲"]
评论B:["味道很好", "很好但", "好但服务", "但服务差劲"]

这样两条评论的特征向量就能区分开了。


第四阶段:深度学习时代(2010s)

时代背景

自 2010 年代中期开始,深度学习在 NLP 中迅速崛起。基于神经网络的模型取代了传统手工特征工程,能够从海量数据中自动学习语义表示。

核心模型

Word2Vec(2013)

Word2Vec 由 Google 的 Tomas Mikolov 团队提出,它通过神经网络为每个词生成一个稠密的、低维的向量表示,使得语义相近的词在向量空间中距离更近。

vec("国王") - vec("男人") + vec("女人") ≈ vec("女王")

RNN / LSTM / GRU

循环神经网络(RNN)及其变体 LSTM 和 GRU,是处理序列数据的经典模型。它们通过循环连接来建模序列中的上下文信息。

时间步1: 输入"我" → 隐藏状态 h₁
时间步2: 输入"爱" → 隐藏状态 h₂ (结合 h₁)
时间步3: 输入"NLP" → 隐藏状态 h₃ (结合 h₂)

ELMo(2018)

ELMo(Embeddings from Language Models)是第一个成功应用于下游任务的上下文相关词向量模型。它基于双向 LSTM 语言模型,同一个词在不同上下文中会有不同的向量表示。

"苹果很好吃" 中的 "苹果" → 向量 A(偏向水果含义)
"苹果发布新手机" 中的 "苹果" → 向量 B(偏向公司含义)

Transformer(2017)

2017 年,Google 团队发表了划时代的论文 "Attention Is All You Need",提出了 Transformer 架构。它完全抛弃了循环结构,仅使用注意力机制来建模序列中的依赖关系。

Transformer 的优势:

  • 并行计算:不像 RNN 需要逐步处理,可以同时处理整个序列
  • 长距离依赖:通过注意力机制直接建模任意两个位置之间的关系
  • 可扩展性:可以通过增加层数和参数量来提升性能

我们将在后续章节中详细讲解 Transformer 的架构。


第五阶段:预训练模型时代(2018-2022)

时代背景

预训练模型的核心思想是:先在大规模无标注文本上进行预训练,学习通用的语言知识,然后在特定下游任务上进行微调(Fine-tuning)。

核心模型

模型年份架构特点
ELMo2018LSTM上下文相关词向量
GPT2018.6Transformer Decoder单向自回归语言模型
BERT2018.10Transformer Encoder双向掩码语言模型
GPT-22019.2Transformer Decoder更大规模的生成模型
T52019.10Transformer Encoder-Decoder统一的文本到文本框架
GPT-32020.5Transformer Decoder1750 亿参数,少样本学习

BERT vs GPT:两种范式

BERT(双向编码器)

  • 使用 Transformer 的编码器部分
  • 通过掩码语言模型(MLM)进行预训练:随机遮盖一些词,让模型预测被遮盖的词
  • 适合理解型任务(分类、问答、NER)
输入:我 爱 [MASK] 语言 处理
输出:我 爱 自然 语言 处理

GPT(单向解码器)

  • 使用 Transformer 的解码器部分
  • 通过自回归语言模型进行预训练:根据前面的词预测下一个词
  • 适合生成型任务(文本生成、对话)
输入:我 爱 自然
输出:我 爱 自然 语言

第六阶段:大语言模型时代(2022-至今)

时代背景

2022 年底,ChatGPT 的发布标志着 NLP 进入了大语言模型(Large Language Model,LLM)时代。这些模型通过海量数据超大规模参数,展现出了前所未有的语言理解和生成能力。

核心模型

模型年份参数量特点
ChatGPT2022.11~1750 亿基于 GPT-3.5,RLHF 对齐
GPT-42023.3未公开多模态能力
LLaMA2023.27B-65BMeta 开源模型
LLaMA 22023.77B-70B改进的开源模型
DeepSeek202467B中国开源模型
GPT-4o2024.5未公开多模态、更快推理

关键技术突破

  1. 规模定律(Scaling Law):模型性能随参数量、数据量和计算量的增加而持续提升
  2. 上下文学习(In-Context Learning):无需微调,仅通过提示就能完成新任务
  3. 思维链(Chain of Thought):通过逐步推理来解决复杂问题
  4. RLHF(人类反馈强化学习):让模型的输出更好地对齐人类偏好

技术演进总览

1950s  规则系统 ──────────────────┐
       Georgetown-IBM, ELIZA      │

1990s  统计方法 ──────────────────┤
       N-gram, HMM, 最大熵        │

2000s  机器学习 ──────────────────┤
       SVM, CRF, 逻辑回归          │

2013   Word2Vec ──────────────────┤
       静态词向量                   │

2017   Transformer ───────────────┤
       注意力机制                   │

2018   预训练模型 ─────────────────┤
       ELMo → GPT → BERT           │

2022   大语言模型 ─────────────────┘
       ChatGPT → GPT-4 → LLaMA

小结

本章回顾了 NLP 从 1950 年代到今天的发展历程。每一代技术的出现都是为了解决前一代技术的局限:

  • 规则系统 → 无法扩展 → 统计方法
  • 统计方法 → 特征工程复杂 → 深度学习
  • 深度学习 → 需要大量标注数据 → 预训练模型
  • 预训练模型 → 任务特定微调 → 大语言模型

理解这段演进历史,有助于我们理解为什么 Transformer、BERT、GPT 等架构被设计成现在这个样子。在后续章节中,我们将逐一深入讲解这些技术的原理和实现。

AI 知识体系 — 从机器学习到大语言模型