
视频元信息
- 课程:吴恩达深度学习专项课程 — 序列模型(Sequence Models)第三周
- 章节:3.6 Bleu分数(Bleu Score,选修)
- 时长:约 8~9 分钟
- 性质:选修课(Optional Video)
- 主题:机器翻译与图像描述生成中的自动评估指标 —— Bleu 分数
本视频为选修内容,吴恩达明确指出「很少有人会从零实现 Bleu 分数」,实际工作中直接使用开源实现即可。但理解其原理对于理解序列生成模型的评估方式非常重要。
内容摘要(TL;DR)
本视频介绍了 Bleu(Bilingual Evaluation Understudy)分数的计算原理。Bleu 是一种用于评估机器翻译和图像描述等文本生成任务的单一数值评估指标。其核心思想是:将机器生成的翻译与多个人工参考翻译进行 n-gram 重叠度比较,通过修正精确度(Modified Precision)避免重复词刷分,再结合简洁惩罚(Brevity Penalty)防止过短翻译获得虚高分数,最终综合 P1~P4 得到 Bleu 分数。
1. 背景引入:为什么需要 Bleu 分数 [00:25]
1.1 问题背景
在机器翻译(Machine Translation)任务中,给定一个法语句子(如 "Le chat est sur le tapis"),系统需要输出英文翻译。但问题是:
同一个句子的正确翻译往往不止一种。
例如:
- 参考翻译 1:The cat is on the mat
- 参考翻译 2:There is a cat on the mat
这两种翻译都是合理的。那么,如何自动评估机器翻译系统输出的质量呢?
1.2 单一数值评估指标的重要性
吴恩达强调,在之前的课程中已经讲过单一实数评估指标(Single Real Number Evaluation Metric)的重要性:
理解:在机器学习项目中,你需要一个能够快速判断模型 A 是否比模型 B 更好的指标。如果每次评估都需要人工判断多个维度,迭代速度会极慢。
Bleu 分数的革命性意义在于:它为机器翻译领域提供了一个相当好(虽不完美)的自动评估指标,从而极大加速了整个领域的发展。
考点:Bleu 分数的定位 —— 它是一种单一数值评估指标,用于衡量机器生成的文本与人工参考文本之间的相似度。它不是完美的,但足够好用。
2. 最朴素的精确度度量及其缺陷 [03:27]
2.1 基本精确度(Basic Precision)的定义
最直观的想法是:看机器翻译输出中的每个词是否出现在参考翻译中。
示例:
- 机器翻译输出(MT Output):the cat the cat on the mat(共 7 个词)
- 参考翻译 1:the cat is on the mat
- 参考翻译 2:there is a cat on the mat
逐个检查:
- "the" → 出现在两个参考中 ✓
- "cat" → 出现在两个参考中 ✓
- "the" → ✓
- "cat" → ✓
- "on" → ✓
- "the" → ✓
- "mat" → ✓
结果:7/7 的词都出现在参考中,精确度 = 7/7 = 1.0
2.2 问题:这个度量不可靠
易错点:基本精确度会被"重复词"欺骗。
上面的翻译 "the cat the cat on the mat" 明显是一个糟糕的翻译("the cat" 重复了),但由于所有词都出现在参考中,基本精确度给出了满分 1.0。这说明逐词检查的精确度不是一个有用的度量。
理解:这个问题的本质是——参考翻译中 "the" 只出现了 1~2 次,但机器输出中 "the" 出现了 3 次。多出来的 "the" 不应该被计入得分。
3. 修正精确度(Modified Precision)—— 一元词组(Unigram)层面 [04:27]
3.1 核心思想:截断计数(Clipped Count)
为了解决上述问题,Bleu 引入了修正精确度的概念:
每个词获得的信用(credit),最多不超过它在任何一个参考翻译中出现的最大次数。
3.2 计算示例
- 在参考翻译 1 中,"the" 出现了 2 次
- 在参考翻译 2 中,"the" 出现了 1 次
- 取最大值:max(2, 1) = 2
- 因此,"the" 最多获得 2 次信用(而不是机器输出中的 3 次)
修正精确度计算:
$$ \text{Modified Precision} = \frac{\text{截断后的匹配词数}}{\text{机器输出中的总词数}} = \frac{2}{7} $$
推导:分子是截断计数(count_clip),即每个词在参考中的最大出现次数之和;分母是机器输出中的总词数。
3.3 形式化定义
对于一元词组(unigram),修正精确度定义为:
$$ p_1 = \frac{\sum_{\text{unigram} \in \hat{y}} \text{count}{\text{clip}}(\text{unigram})}{\sum $$} \in \hat{y}} \text{count}(\text{unigram})
其中:
- $\hat{y}$ 表示机器翻译输出
- $\text{count}_{\text{clip}}$ 表示截断后的计数(不超过参考中的最大出现次数)
- $\text{count}$ 表示机器输出中的实际计数
考点:修正精确度的分子使用 count_clip,分母使用原始 count。 这是 Bleu 分数的核心机制之一。
4. 二元词组(Bigram)层面的修正精确度 [05:36]
4.1 为什么要看词组?
理解:只看单个词是不够的。一个好的翻译不仅要词对,还要词的顺序和搭配也对。例如 "the cat on the mat" 和 "the mat on the cat" 单词完全一样,但意思完全不同。
因此,Bleu 分数不仅看单个词(unigram),还看相邻词对(bigram)、三元词组(trigram)甚至更长的 n-gram。
4.2 Bigram 的定义
Bigram(二元词组) :两个相邻出现的词组成的词组。
4.3 Bigram 计算示例
机器翻译输出:the cat the cat on the mat
可能的 bigram:
- "the cat" → 出现 2 次
- "cat the" → 出现 1 次
- "the cat" → (已计)
- "cat on" → 出现 1 次
- "on the" → 出现 1 次
- "the mat" → 出现 1 次
参考翻译 1:the cat is on the mat 参考翻译 2:there is a cat on the mat
4.4 Bigram 的截断计数
| Bigram | 机器输出计数 | 参考中最大出现次数 | 截断计数(count_clip) |
|---|---|---|---|
| the cat | 2 | 1 | 1 |
| cat the | 1 | 0 | 0 |
| cat on | 1 | 1 | 1 |
| on the | 1 | 1 | 1 |
| the mat | 1 | 1 | 1 |
修正 Bigram 精确度:
$$ p_2 = \frac{1 + 0 + 1 + 1 + 1}{2 + 1 + 1 + 1 + 1} = \frac{4}{6} = \frac{2}{3} $$
易错点: "cat the" 这个 bigram 在参考翻译中不存在(参考中 "cat" 后面跟的是 "is" 或 "on"),所以截断计数为 0。这就是 bigram 层面能够捕捉词序问题的原因。
5. N-gram 修正精确度的通用公式 [07:00]
5.1 通用定义
对于任意 n-gram,修正精确度定义为:
$$ p_n = \frac{\sum_{\text{n-gram} \in \hat{y}} \text{count}{\text{clip}}(\text{n-gram})}{\sum $$} \in \hat{y}} \text{count}(\text{n-gram})
其中:
- $n = 1$:一元词组(单个词)
- $n = 2$:二元词组(词对)
- $n = 3$:三元词组(三个连续词)
- $n = 4$:四元词组(四个连续词)
5.2 重要性质
如果机器翻译输出与某个参考翻译完全相同,则所有 $p_n = 1.0$。
思考:反过来不一定成立——即使不完全等于任何一个参考翻译,也可能通过组合多个参考的优点获得较高的 Bleu 分数。
6. 最终的 Bleu 分数:组合与简洁惩罚 [07:30]
6.1 组合 P1~P4
按照惯例,Bleu 分数计算 P1、P2、P3、P4 四个值,然后取平均:
$$ \text{Bleu} = \exp\left(\frac{1}{4}\sum_{n=1}^{4} p_n\right) \cdot \text{BP} $$
推导:这里使用 exp 和对数平均的原因是——如果任何一个 $p_n = 0$,那么 $\log(p_n) = -\infty$,整个 Bleu 分数会变为 0。这是一种"一票否决"机制,确保翻译在所有 n-gram 层面都不能太差。
考点:Bleu 分数使用几何平均(通过对数空间求平均再取指数),而不是算术平均。 这意味着任何一个 $p_n$ 接近 0 都会严重拉低总分。
6.2 简洁惩罚(Brevity Penalty, BP)
问题:如果机器翻译输出非常短,比如只输出 "the cat",那么:
- $p_1 = 2/2 = 1.0$
- $p_2 = 1/1 = 1.0$
所有精确度都很高!但显然这不是一个好的翻译。
解决方案:引入简洁惩罚因子 BP:
$$ \text{BP} = \begin{cases} 1 & \text{如果机器输出长度} \geq \text{参考长度} \ \exp\left(1 - \frac{\text{参考长度}}{\text{机器输出长度}}\right) & \text{如果机器输出长度} < \text{参考长度} \end{cases} $$
理解:当机器输出比参考短时,BP < 1,对分数进行惩罚。输出越短,惩罚越重。
易错点:BP 只在机器输出比参考短时才起作用。 如果机器输出长度 ≥ 参考长度,BP = 1,不惩罚。
6.3 完整 Bleu 分数公式
$$ \text{Bleu} = \text{BP} \cdot \exp\left(\frac{1}{N}\sum_{n=1}^{N} \log p_n\right) $$
通常 $N = 4$。
7. Bleu 分数的应用场景与局限性 [08:00]
7.1 适用场景
| 任务类型 | 是否适用 Bleu | 原因 |
|---|---|---|
| 机器翻译 | ✓ 适用 | 同一句子有多种合理翻译 |
| 图像描述生成(Image Captioning) | ✓ 适用 | 同一张图有多种合理描述 |
| 语音识别 | ✗ 不适用 | 通常只有一个标准转录,使用 WER 等指标 |
7.2 实际使用建议
吴恩达原话:很少有人会从零实现 Bleu 分数。 实际工作中:
- 直接使用开源实现(如 NLTK、sacreBLEU 等)
- 用于评估机器翻译系统、图像描述系统等文本生成任务
- 作为开发过程中的快速反馈指标
7.3 Bleu 分数的局限性
思考(拓展):Bleu 分数虽然在实践中广泛使用,但也有一些已知的局限性:
- 不考虑语义:只关注表面词汇重叠,不考虑同义词或语义等价
- 对词序敏感但不完全:n-gram 只能捕捉局部词序
- 参考翻译数量影响分数:参考越多,分数通常越高
- 不适合单句评估:通常在语料库级别计算更有意义
【拓展】后续研究中提出了 ROUGE(用于摘要)、METEOR、BERTScore 等替代或补充指标,试图解决 Bleu 的语义盲区问题。BERTScore 使用预训练语言模型的嵌入来计算语义相似度,是近年来的热门替代方案。
8. 课程总结 [08:30]
吴恩达在视频结尾总结:
- Bleu 分数最初为机器翻译设计,是一种单一数值评估指标
- 它通过 n-gram 重叠度(P1~P4)和简洁惩罚(BP)来综合评估翻译质量
- 它加速了整个机器翻译领域的发展
- 实际使用中直接调用开源实现即可
- 同样适用于图像描述生成等文本生成任务
核心记忆点:
- Bleu = BP × exp(平均 log p_n)
- p_n = 截断计数 / 原始计数
- BP 惩罚过短翻译
- 不适用于语音识别(只有一个标准答案)
关键标签 / 关键词
Bleu分数 机器翻译 评估指标 N-gram 修正精确度 截断计数 简洁惩罚 Brevity Penalty 图像描述生成 序列模型 吴恩达 深度学习 单一数值评估指标 Unigram Bigram Trigram 自然语言处理 NLP 文本生成 选修课
生成时间:2026-10-11 00:57:39 生成平台:VideoNote www.xygy.top