【深度学习:进阶篇】--4.4.集束搜索(Beam Search)
目录
1.问题引入
2.集束搜索流程
3.BLEU-机器翻译的自动评估方法
3.1.定义
3.2.N-gram Precision(多元精度得分)方法
1. N 的含义
2. 你的例子分析(N=1 时)
候选翻译(Candidate):
参考翻译(Reference):
计算步骤(N=1):
3. 为什么你的例子中结果是 7/7=1?
4. N 的选择对结果的影响
5. 实际应用(BLEU 中的 N-gram Precision)
总结
1.问题引入
我们在找到一个合适的句子的时候,一个很直观的方法是在生成第一个词y1分布之后,根据条件语言模型挑选出最有可能的第一个词y1 ,然后生成第二个词y2的概率分布挑选第二个词y2,依此类推,始终是选择每一个最大概率的词,这种方法在机器翻译领域其实并不管用,我们来举个例子
法语句子"Jane visite l'Afrique en septembre."
翻译1-Jane is visiting Africa in September.
翻译2-Jane is going to be visiting Africa in September.
翻译1显然比翻译2要更好,更加简洁的表达了意思。
如果该算法挑选了 y1,y2, ('Jane' , 'is'),那么在英语中"is going"更加常见,因此在选择 y3 ='going',于是对于合适的句法来说"Jane is visiting"相比"Jane is going"会有更高的概率使用,所以有时候真正需要的是一次性挑选整个单词序列y1,y2,y3,...,yt使得整体的条件概率最大。
2.集束搜索流程
- 定义:在Beam Search中有一个参数B,叫做beam width(集束宽),用来表示在每一次筛选时挑top B的结果。
例子说明:
- 第一次:选出概率最大的三个词
- 第二次:选择上一步三个词,每个词对应三个概率最大的词(可能存在重复)
- ....
假设只有两步,那么得到9个结果。最终我们要从中选出三组结果
- is fine
- in alright
- at alright
那么这三个句子就是我们需要的结果。
3.BLEU-机器翻译的自动评估方法
对于上述筛选的结果我们可以让一些语言专家进行评估选出最合适的。当然有大量人力也是可以这样去做,但是我们希望系统能够自动选择一个最合适的翻译句子。需要提供两个
- 1、衡量机器翻译结果越接近人工翻译结果的数值指标
- 2、一套人工翻译的高质量参考译文
3.1.定义
BLEU的全名为:bilingual evaluation understudy(双语互译质量评估辅助工具),它是用来评估机器翻译质量的工具。
- 判断两个句子的相似程度
3.2.N-gram Precision(多元精度得分)方法
- N-gram Precision(多元精度得分)
这里的N是什么意思,我们通过一个例子来理解一下。
候选翻译: the the the the the the the
参考翻译: the cat is on the mat
参考翻译: there is a cat on the mat
两个句子,S1和S2,S1里头的词出现在S2里头越多,就说明这两个句子越一致。记做number1/number2。上面例子,候选翻译的词7个词the都在参考翻译中出现,记做分子得分7,候选翻译一共就7个词,分母为7。7/7=1,该候选翻译显然不行!!这个时候N=1,选出一个词
- 改进
- 原因:常用词干扰、选词的粒度太小(the)
- 使用N-gram,多元词组:{“the cat”, “cat is”, “is on”, “on the”, “the mat”}
1、同样还是一个词的时候的改进
- 过滤常见词(the on is ...so on)
- 公式计算(分子)
你提到的 N-gram Precision(多元精度得分) 是机器翻译评估中常用的方法(如BLEU score的核心组成部分)。我来详细解释 N 的含义 和这个例子的计算逻辑,并指出问题所在。
1. N 的含义
-
N-gram 表示连续 N 个词的组合:
-
N=1(1-gram):单个词(如
the
,cat
) -
N=2(2-gram):相邻的两个词(如
the cat
,cat is
) -
N=3(3-gram):相邻的三个词(如
the cat is
) -
以此类推。
-
-
N-gram Precision 衡量的是:候选翻译中出现的 N-gram 有多少比例在参考翻译中也出现过。
2. 你的例子分析(N=1 时)
候选翻译(Candidate):
the the the the the the the
(共 7 个词,全部是 the
)
参考翻译(Reference):
-
the cat is on the mat
-
there is a cat on the mat
计算步骤(N=1):
-
统计候选翻译的 1-gram:
-
the
出现 7 次。
-
-
统计参考翻译中的 1-gram:
-
参考翻译 1:
the
,cat
,is
,on
,the
,mat
-
参考翻译 2:
there
,is
,a
,cat
,on
,the
,mat
-
合并后去重:
{the, cat, is, on, mat, there, a}
-
-
匹配情况:
-
候选翻译中的
the
在参考翻译中出现过(但参考翻译中the
只出现 2 次,而候选翻译中重复了 7 次)。 -
修正逻辑:N-gram Precision 通常使用 剪枝计数(clipped count),即每个 N-gram 的匹配次数不超过它在参考翻译中出现的最大次数。
-
参考翻译中
the
最多出现 2 次(在参考翻译 1 中 2 次,参考翻译 2 中 1 次),所以the
的匹配次数最多计为 2。
-
-
-
最终计算:
-
分子(匹配的 1-gram 总数):
min(7, 2) = 2
-
分母(候选翻译的总 1-gram 数):7
-
1-gram Precision = 2/7 ≈ 0.2857
-
3. 为什么你的例子中结果是 7/7=1?
-
你最初的描述可能是 未使用剪枝计数 的原始方法(直接统计候选翻译中所有
the
是否在参考翻译的词表中存在,而不限制重复次数)。 -
这样会导致:
-
候选翻译的
the
在参考翻译的词表中存在 → 所有 7 个the
都算匹配。 -
因此 Precision = 7/7 = 1。
-
-
问题:这种计算显然不合理(候选翻译毫无意义,但得分是满分),因此实际应用中会引入 剪枝计数 来惩罚重复词。
4. N 的选择对结果的影响
-
N=1:只检查单个词是否匹配(无法捕捉词序和短语一致性)。
-
例子中
the the the
和the cat is
的 1-gram Precision 可能相同,但显然后者更好。
-
-
N=2 或更大:能捕捉词序和短语结构。
-
例如:
-
候选翻译:
the the the
-
参考翻译:
the cat is
-
2-gram Precision:
-
候选的 2-gram:
the the
,the the
(无效组合) -
参考的 2-gram:
the cat
,cat is
-
匹配数:0 → Precision = 0/2 = 0
-
-
-
5. 实际应用(BLEU 中的 N-gram Precision)
BLEU 评分综合了 N=1,2,3,4 的 Precision,并通过几何平均计算最终得分。这样可以:
-
惩罚无意义的重复词(通过剪枝计数)。
-
要求翻译在词、短语、长句结构上都接近参考翻译。
总结
-
N 是 N-gram 的长度,表示连续 N 个词的组合。
-
你的例子中:
-
若 不剪枝计数:N=1 Precision=7/7=1(不合理)。
-
剪枝计数后:N=1 Precision=2/7≈0.2857(更合理)。
-
-
N 越大,越能捕捉词序和语法结构,但对罕见短语更敏感。