
视频元信息
- 课程:吴恩达深度学习专项课程 · 序列模型(Sequence Models)· 第三周 序列模型与注意力机制
- 小节:3.2 选择最有可能的句子(Picking the Most Likely Sentence)
- 主题:机器翻译建模为条件语言模型,以及为什么不能用贪心搜索
内容摘要(TL;DR)
本节把机器翻译建模为条件语言模型:编码器(绿色)读取法语输入并输出表示,解码器(紫色)结构与语言模型几乎相同,只是不再以全零向量起步,而是以输入句子的编码表示起步。因此模型估计的是 P(英文翻译 | 法语输入)。做翻译时不能随机采样,而应寻找使该条件概率最大的句子 y。因为句子组合数呈指数级爆炸,无法穷举;而贪心搜索(每步只选当前最优词)并不保证全局最优,所以需要束搜索(beam search)这类近似搜索算法。
一、回顾:语言模型 [00:00]
要点:
- 语言模型的作用是估计一个句子的概率,也可以用来生成新的句子。
- 在生成式结构里,前一步的输出会作为下一步的输入(反馈连接)。
详细说明:
- 转录中提到
X1、X2等输入符号,其中X2实际上等于Y1(或Y2),即 Y1 是反馈回来的上一步输出。 - 为了让幻灯片更简洁,吴恩达把
X1简化为全零向量,X2、X3等则直接使用上一步生成的前一个输出。 - 理解:这就是标准的自回归(autoregressive)生成方式——把已生成的词不断喂回网络,逐个预测下一个词。
基础事实:语言模型 P(y1, y2, …, yTy) 通常被分解为各步条件概率的乘积,每一步都依赖之前已生成的词。
二、机器翻译模型:条件语言模型 [01:08]
要点:
- 机器翻译模型与语言模型结构几乎相同,差别只在初始输入。
- 语言模型从全零向量起步;机器翻译模型从编码网络对输入句子的表示起步。
- 因此它被称为条件语言模型(conditional language model)。
详细说明:
- 用颜色区分两部分:绿色表示编码器(encoder)网络,紫色表示解码器(decoder)网络。
- 转录明确指出:紫色的解码网络看起来和上面的语言模型几乎一模一样。
- 唯一区别:不再总是用全零向量起步,而是先有一个编码网络,对输入句子求出某种表示,然后用输入句子的表示来启动解码网络,而不是用全零表示。
推导:
- 普通语言模型建模的是 P(任意英文句子)。
- 机器翻译模型建模的是 P(英文翻译 | 法语输入),例如 P("Jane is visiting Africa in September" | "Jane visite l'Afrique en Septembre")。
- 因为概率是在给定输入条件下求的,所以叫"条件"语言模型。
考点:条件语言模型与普通语言模型的唯一结构差异 = 解码器初始状态来自编码器对输入句子的表示,而非全零向量。
三、翻译时应该做什么:最大化而非采样 [02:42]
要点:
- 给定法语输入,模型给出不同英文翻译各自的概率。
- 不应该随机采样输出,而应寻找使条件概率最大的英文句子 y。
- 采样可能得到不同质量的结果,甚至偶尔得到很差的翻译。
详细说明:
- 设 X = 法语句子 "Jane visite l'Afrique en Septembre",模型给出各个英文翻译对应的概率。
- 若从分布 P(y|x) 中随机采样:
- 有时得到较好的翻译,如 "Jane is visiting Africa in September";
- 有时得到略显生硬但不算太糟的翻译;
- 有时纯属运气得到语序混乱的句子;
- 偶尔甚至采样出非常糟糕的翻译。
- 因此翻译任务的目标不是"随机生成一句话",而是找到一个英文句子 y,使该条件概率最大化。
理解:语言模型可以用于"生成"(采样,追求多样性),而机器翻译用于"求解"(搜索,追求最优)。同一个模型,两种使用范式。
易错点:把机器翻译当成"随机生成句子"来用,是常见误解。翻译的目标是 argmax P(y|x),而不是 sample。
四、为什么不用贪心搜索 [04:39]
要点:
- 贪心搜索(greedy search)思路:每一步都选当前最可能的那个词。
- 但逐步选最优 ≠ 整体最优,贪心搜索在序列生成中通常不奏效。
- 真正想要的是整句联合概率最大的序列。
详细说明:
- 贪心搜索是计算机科学中的经典算法:生成第一个词时,直接选条件语言模型下最可能的第一个词;选定后再选最可能的第二个词;再选最可能的第三个词,依此类推。
- 我们真正想要的,是选出整段序列 y1, y2, …, yTy(带帽表示预测值),使整句的联合概率最大。
- 但"先选最好的第一个词,再选最好的第二个词,再选最好的第三个词"这种做法并不真正有效。
推导(反例):
- 考虑两句翻译:
- "Jane is visiting Africa in September."(更好、更简洁)
- "Jane is going to be visiting Africa in September."(不算太糟,但啰嗦,有多余的词)
- 理想情况下,模型对第一句的 P(y|x) 更高。
- 但如果算法已经选了前两个词 "Jane is":由于 "going" 是更常见的英文词,"Jane is going" 的概率可能反而高于 "Jane is visiting"。
- 于是仅依据"前三个词概率最大"来选第三个词,很可能选中选项 2 的路径,最终得到整体更差的句子(以 P(y|x) 衡量)。
考点:贪心搜索的失败根源——局部最优不等于全局最优;常见词(如 going)的高频性会误导逐步决策。
思考:这是一个"短视"(myopic)问题的典型例子。每一步只看眼前一步的收益,忽略了这一步对后续所有步的影响。
五、组合爆炸与近似搜索 [07:18]
要点:
- 英文句子的词组合数是天文数字(指数级)。
- 因此穷举所有句子求最优 y 不可行。
- 实际做法是使用近似搜索算法:不保证一定找到最优,但通常足够好。
详细说明:
- 假设词典有 10000 个词,考虑长度最多 10 个词的翻译,则长度为 10 的句子共有 10000^10 种可能。
- 这是一个巨大的句子空间,不可能逐一评估。
- 因此最常见的做法是使用近似搜索算法(approximate search algorithm):
- 它不保证成功,但会尝试选出使条件概率最大的句子 y;
- 即使不保证找到真正最大化的 y,通常效果已经足够好。
考点:10000 词表 × 10 词长 → 10000^10 种句子,组合爆炸是必须用近似搜索的根本原因。
理解:束搜索(beam search)就是下一节要讲的近似搜索算法。它保留每步若干个最优候选(束宽 B),在计算量和搜索质量之间折中。
六、本节总结 [08:19]
要点:
- 机器翻译可以表述为条件语言建模问题。
- 与普通语言建模的关键区别:不是随机生成句子,而是寻找最可能的英文翻译。
- 某语言的全部句子集合太大,无法穷举,必须借助搜索算法。
- 下一节将学习束搜索(beam search)。
详细说明:
- 本节核心逻辑链:语言模型 → 条件语言模型(编码器提供初始表示)→ 目标是 argmax P(y|x) → 采样不可取 → 贪心不可靠 → 组合爆炸 → 需要近似搜索 → 引出束搜索。
考点:本节是束搜索的前置铺垫,务必理解"为什么需要搜索算法"这一动机,而非死记结论。
关键术语对照
| 中文 | 英文 | 说明 |
|---|---|---|
| 语言模型 | Language Model | 估计句子概率,可生成新句子 |
| 条件语言模型 | Conditional Language Model | 给定输入条件下建模输出句子概率 |
| 编码器 | Encoder | 绿色部分,把输入句子编码为表示 |
| 解码器 | Decoder | 紫色部分,结构同语言模型 |
| 贪心搜索 | Greedy Search | 每步选当前最优词,不保证全局最优 |
| 束搜索 | Beam Search | 下一节的近似搜索算法 |
| 近似搜索算法 | Approximate Search Algorithm | 不保证最优,但通常足够好 |
关键标签 / 关键词
吴恩达深度学习 #序列模型 #机器翻译 #条件语言模型 #编码器解码器 #贪心搜索 #束搜索 #近似搜索 #组合爆炸 #argmax #P(y|x) #SequenceModels #BeamSearch #GreedySearch #ConditionalLanguageModel
生成时间:2026-10-11 00:21:40 生成平台:VideoNote www.xygy.top