原文链接:Datawhale-学用 AI,从此开始

# 一、Intro

## 1. Seq2Seq模型
### 1.1 基本概念
- **定义**:处理可变长度输入输出序列的模型
- **核心标记**:
  - `<bos>`:序列开始符
  - `<eos>`:序列结束符
- **处理优势**:
  - 减少对填充的依赖
  - 动态识别序列边界

### 1.2 发展背景
- **前身局限**:
  - 固定长度输入输出
  - 依赖填充(padding)处理
  - 掩码机制引入计算复杂度
- **突破方向**:
  - 机器翻译
  - 语音识别
  - 对话系统

### 1.3 模型评价
#### 优势:
✅ 端到端学习  
✅ 处理变长序列  
✅ 信息压缩表示  
✅ 架构可扩展性

#### 劣势:
❌ 上下文向量信息压缩  
❌ RNN短期记忆限制  
❌ 暴露偏差(Exposure Bias)

此处特别理解了暴露偏差的含义如下:

暴露偏差(Exposure Bias)是序列生成模型(如Seq2Seq)中的一种训练与推理不一致问题,具体可通过以下类比和分步解释理解:

---

### 核心问题:**训练与推理的输入差异**
#### 1. **训练阶段(Teacher Forcing策略)**
- **操作方式**:每个时间步的解码器输入都是**真实的标签数据**(正确答案)。
- **示例**:  
  假设要生成句子 "I love cats"。  
  解码器在生成第2个词时,输入是真实的前一个词 "I",而不是模型预测的词。

- **优点**:  
  ✅ 训练稳定,避免错误累积  
  ✅ 收敛速度快

#### 2. **推理阶段(自回归生成)**
- **操作方式**:每个时间步的输入是**模型自己生成的词**。
- **示例**:  
  如果模型错误生成第1个词为 "He",后续输入将基于错误的 "He" 继续生成。

- **问题**:  
  ❌ 模型从未在训练中见过自己生成的错误输入  
  ❌ 错误会像多米诺骨牌一样逐级传播

---

### 暴露偏差的本质
**如同“开卷考试 vs 闭卷考试”的差异**:  
- 学生(模型)在平时练习(训练)时,老师总在耳边提示正确答案(Teacher Forcing),但考试(推理)时却要独立作答。一旦首次答错,后续可能全盘皆错。

---

### 数学视角的解释
设解码器在第 \( t \) 步生成词的概率为:  
\[ P(y_t | y_{1:t-1}, C) \]  
- **训练时**:使用真实序列 \( y_{1:t-1}^* \)  
- **推理时**:使用预测序列 \( \hat{y}_{1:t-1} \)  

当 \( \hat{y}_{1:t-1} \neq y_{1:t-1}^* \) 时,模型在训练阶段从未学习过如何基于错误前缀生成后续内容。

---

### 实际影响案例
**机器翻译任务**:  
- 训练时:解码器始终接收正确的前缀(如 "Je suis étudiant")  
- 推理时:若首词误译为 "I am",后续可能生成 "I am a student"(正确),但也可能因错误累积生成 "I am a banana"(荒谬结果)。

---

### 解决方案
1. **计划采样(Scheduled Sampling)**  
   - 逐步混合使用真实标签与模型预测作为输入  
   - 例如:训练初期100%用真实数据,后期逐渐增加使用模型预测的比例

2. **强化学习(Reinforcement Learning)**  
   - 直接优化生成序列的整体质量(如BLEU得分)  
   - 使用策略梯度方法(如REINFORCE算法)

3. **波束搜索(Beam Search)**  
   - 推理时保留多个候选序列,减少单一路径错误的影响

4. **课程学习(Curriculum Learning)**  
   - 从简单样本开始训练,逐步增加难度

> **小故事类比**:  
> 优势:像能自动压缩百科全书的智能翻译笔  
> 劣势:如同用记忆卡片记长篇小说会丢失细节

## 2. Encoder-Decoder架构
### 2.1 概念区分
| 概念 | 特点 | 关系 |
|------|------|------|
| Seq2Seq | 强调输入输出形式 | 应用场景 |
| Encoder-Decoder | 强调实现方法 | 具体实现 |

### 2.2 工作流程
#### 编码器阶段:
1. 词嵌入转换(Word Embedding)
2. 序列处理(RNN/LSTM/GRU)
3. 生成上下文向量

#### 解码器阶段:
1. 参数初始化(Xavier/He)
2. 输入要素:
   - 上下文向量
   - `<bos>`起始符
   - 前步输出
3. 自回归生成

> **训练类比**:  
> 教师指导学生复述故事:  
> 1. 数据准备 → 翻译故事书  
> 2. 参数初始化 → 学生大脑初始化  
> 3. 编码处理 → 教师讲解故事  
> 4. 解码训练 → 学生复述练习

### 2.3 应用场景
```mermaid
graph LR
A[文本类] --> B(机器翻译)
A --> C(对话系统)
A --> D(文本摘要)
E[跨模态] --> F(语音识别)
E --> G(图像描述)

2.4 核心缺陷

  • 信息瓶颈:固定长度上下文向量

  • 类比:高分辨率图片强制压缩导致模糊

3. 注意力机制

3.1 发展历程

时间线 里程碑 突破点
2014 Seq2Seq 编解码框架
2015 Attention 动态上下文
2017 Transformer 自注意力
2018 BERT 预训练范式

3.2 核心机制

改进方案:
  • 动态上下文向量序列(C1,C2,C3...)

  • 注意力权重计算三要素:

    1. Query(当前解码状态)

    2. Key(编码器隐藏状态)

    3. Value(编码器输出)

类型矩阵:
维度 具体类型
计算区域 Global/Local/Hard
信息类型 General/Self
权值计算 点乘/矩阵/Cos

3.3 核心优势

  1. 并行计算:突破RNN时序限制

  2. 长程依赖:直接捕捉远距离关联

  3. 可解释性:可视化注意力权重

视觉类比
类似人类观看图片时聚焦主体(熊猫),自动忽略背景细节

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐