02 选择最可能的句子(Picking the Most Likely Sentence)
这一节在讲什么
这一节要解决一个很关键的问题:
模型已经学会“给某个翻译打概率”了,但怎么真正挑出“最好的翻译”?
这一步不是训练问题,而是“搜索问题”。
机器翻译其实是条件语言模型
普通语言模型学的是:
\[P(y)\]也就是一句话本身出现的概率。
而机器翻译学的是:
\[P(y \mid x)\]意思是:给定输入法语句子 $x$,某个英语句子 $y$ 作为翻译有多大概率成立。
这里:
- $x$ 是输入句子
- $y$ 是输出句子
所以机器翻译可以看成“条件语言模型”。
为什么不是随机抽样
课程里举了同一个法语句子的不同翻译候选:
Jane is visiting Africa in September.Jane is going to be visiting Africa in September.In September, Jane will visit Africa.Her African friend welcomed Jane in September.
它们不一样,质量也不一样。
如果你只是从 $P(y\mid x)$ 这个分布里随机采样,可能会抽到不错的句子,也可能抽到很差的句子。
机器翻译真正想做的是:
\[\hat y = \arg\max_y P(y \mid x)\]意思是:
在所有可能的英语句子里,找一个条件概率最大的。
这个概率是怎么分解的
因为句子是逐词生成的,所以:
\[P(y \mid x) = \prod_{t=1}^{T_y} P\left(y^{\langle t \rangle} \mid x, y^{\langle 1 \rangle}, \dots, y^{\langle t-1 \rangle}\right)\]这句话的直白意思是:
- 第 1 个词看输入句子 $x$
- 第 2 个词看 $x$ 和前面已生成的词
- 第 3 个词继续看 $x$ 和更长的历史
- 最后把所有步骤的概率乘起来
为什么贪心搜索不行
贪心搜索(Greedy Search)是:
- 第 1 步选当前最可能的词
- 第 2 步再选当前最可能的词
- 一路选下去
听起来很合理,但有个坑:
“当前最优”不一定能组成“整体最优”。
课程里的直觉例子是:
Jane is visiting Africa in September.更自然、更简洁Jane is going to be visiting Africa in September.虽然也能理解,但更啰嗦
如果只看局部,going 可能在某一步比 visiting 概率更高;
但整句话看下来,反而是 visiting 这条路更好。
所以贪心搜索容易“走错分支”。
为什么这个问题很难
假设:
- 词表大小是 10000
- 句子长度是 10
那么可能的句子数量大约是:
\[10000^{10}\]这个数量巨大到根本不可能暴力枚举。
所以问题不是“会不会算概率”,而是:
候选句子太多,根本试不完。
这就需要一种近似但高效的搜索方法。
这一节真正铺垫了什么
这节最后把问题清楚地变成了:
\[\hat y = \arg\max_y P(y \mid x)\]但又告诉你:
- 不能随机采样
- 贪心搜索不可靠
- 穷举所有句子不现实
因此下一步必须上 Beam Search(束搜索)。
这一节最该记住的要点
要点 1:机器翻译不是生成任意句子
机器翻译是找:
\[\arg\max_y P(y \mid x)\]要点 2:它本质上是条件语言模型
普通语言模型学 $P(y)$,翻译模型学 $P(y\mid x)$。
要点 3:整句概率来自逐词条件概率连乘
\[P(y \mid x) = \prod_t P(y^{\langle t \rangle} \mid x, y^{\langle 1:t-1 \rangle})\]要点 4:贪心搜索容易局部最优
某一步看起来最优,不代表整句最好。
要点 5:真正的困难是搜索空间爆炸
候选句子数量极大,所以必须用近似搜索算法。
这一节一句话总结
这节课把机器翻译重新表述成“在所有输出句子里找条件概率最大的那个”,并说明了为什么随机采样和贪心搜索都不够好,从而自然引出束搜索。