在自然语言处理(NLP)和机器翻译领域,有一个你绝对绕不开的名字:BLEU (BiLingual Evaluation Understudy)。
原文链接-BLEU: a Method for Automatic Evaluation of Machine Translation
自从 2002 年被提出以来,它就成了评估机器翻译质量的“黄金标准”。BLEU 的核心思想极其直白:机器翻译的结果越接近专业人类译者的翻译,它的得分就应该越高。
听起来很简单?但要让计算机自动化地、公平地打分,其实藏着非常巧妙的数学设计。今天,我们将化身为一名“英语老师”,带你一层层揭开机器作弊的套路,并看看数学家是如何用公式将其逐一击破的。
预备知识:老师是怎么改 AI 作业的?
假设你是一名英语老师,今天要批改小明(AI 翻译模型)的作业。
- 原句: 猫在垫子上。
- 标准答案(参考译文):
the cat is on the mat
最简单的打分办法就是看小明写的词,有多少命中了“标准答案”。这在数学上叫精确率(Precision)。但仅仅看词对不对是不够的,为了防止 AI 作弊,BLEU 设立了三重严密的关卡。
第一关:不仅要词对,还要“说人话” (N-gram 精度)
💡 通俗比喻:
如果只看单个单词有没有命中,小明如果写成:mat on the is cat the。虽然词全对(命中率 100%),但这根本不是人话!所以老师规定,不能只看单个词,还得看“词块”(短语搭配)。
⚙️ 硬核机制:N-gram
BLEU 引入了 N-gram(n元语法)来全面评估翻译质量:
- 1-gram(单词): 评估“词汇充分性”(有没有用对词)。
- 2-gram 到 4-gram(短语): 评估“表达流畅性”(语序对不对)。
只有当机器给出的 4-gram 也能在参考答案中找到时,才能证明它不仅单词拼对了,语序也是高度通顺的。这四个级别的精度,我们分别记为 p 1 , p 2 , p 3 , p 4 p_1, p_2, p_3, p_4 p1,p2,p3,p4。
第二关:防“复读机”作弊 (截断机制 Clipping)
💡 通俗比喻:
小明发现了漏洞。既然按命中率算,那他交的作业是:the the the the the the。
按照普通的算法,小明写了 6 个 the,标准答案里也有 the,命中率又是 100%!这就叫“复读机作弊”。
老师怒了,掏出了“截断机制”:不管你写了多少个 the,我只承认标准答案里 the 出现的最高次数!标准答案里只有 2 个 the,所以你的有效词汇只有 2 个。真实得分:2 / 6 = 33.3%。
⚙️ 硬核公式:修改后的精度 (Modified Precision)
在数学上,BLEU 统计某个 N-gram 在候选句中的出现次数(
C
o
u
n
t
Count
Count),并找出它在所有参考句中的最高频次(
M
a
x
_
R
e
f
_
C
o
u
n
t
Max\_Ref\_Count
Max_Ref_Count)。
计算时,强制将有效次数截断:
C
o
u
n
t
c
l
i
p
=
min
(
C
o
u
n
t
,
M
a
x
_
R
e
f
_
C
o
u
n
t
)
Count_{clip} = \min(Count, Max\_Ref\_Count)
Countclip=min(Count,Max_Ref_Count)
最终的
p
n
p_n
pn = 截断后的有效匹配总数 / 候选句包含的 N-gram 总数。
第三关:木桶效应与神秘的 exp 公式 (综合得分)
现在,机器在 1-gram 到 4-gram 上分别得到了四个分数(比如 p 1 = 0.9 , p 2 = 0.5 , p 3 = 0.2 , p 4 = 0.01 p_1=0.9, p_2=0.5, p_3=0.2, p_4=0.01 p1=0.9,p2=0.5,p3=0.2,p4=0.01)。该怎么算总分呢?
不能直接加起来算平均分! 翻译有“木桶效应”。如果 4-gram 极低,说明这句翻译完全不连贯。用加法算平均,这句狗屁不通的翻译还能拿高分。
必须用乘法(几何平均数)! 只要有一项极差,总分瞬间拉垮。这逼迫 AI 必须在词汇和语序上全面发展。
💡 终极疑问:既然是乘法,为什么经典的 BLEU 公式里写的是 exp 和 相加?
综合精度 = exp ( ∑ n = 1 N w n log p n ) \text{综合精度} = \exp \left( \sum_{n=1}^{N} w_n \log p_n \right) 综合精度=exp(n=1∑Nwnlogpn)
⚙️ 硬核解密:拯救计算机的下溢出 (Underflow)
计算机是个“偏科生”,它非常讨厌把好几个极小的零点零几的小数乘在一起,这会导致底层硬件发生“浮点数下溢”,直接把结果变成 0。
为了拯救计算机,数学家玩了一个迂回战术:
- 取对数 ( log \log log): 根据数学定律,乘积的对数 = 对数的相加( log ( A × B ) = log A + log B \log(A \times B) = \log A + \log B log(A×B)=logA+logB)。算法先用 log \log log 把乘法变成了计算机擅长的加法( ∑ \sum ∑)。
- 指数还原 ( exp \exp exp): 算完加法后,再用对数的逆运算——指数函数 exp \exp exp(即 e x e^x ex),把结果从对数空间重新拉回现实世界的 0~1 分数域。
一句话总结:公式里的 exp 和 相加,不过是计算机为了安全计算“连乘”而走的技术捷径,它完全等价于
p
1
×
p
2
×
p
3
×
p
4
p_1 \times p_2 \times p_3 \times p_4
p1×p2×p3×p4。
第四关:防“少说少错” (简短惩罚因子 BP)
💡 通俗比喻:
被教训后,小明又想出了一招:“少说少错”。标准答案有 6 个词,小明只翻译了 1 个词:the,然后交卷。
系统一查:字虽然少,但 100% 命中,挑不出毛病,又是满分!
老师彻底无语,祭出了最后的大招:简短惩罚因子(BP)。字数必须写够,字数越少,扣分越狠!
⚙️ 硬核公式:Brevity Penalty
设
c
c
c 为候选翻译的长度,
r
r
r 为最接近的参考翻译长度:
- 当 c > r c > r c>r (机器翻译比标准答案长或相等):无需惩罚, B P = 1 BP = 1 BP=1。
- 当 c ≤ r c \le r c≤r (机器翻译太短):施加指数级惩罚, B P = e ( 1 − r / c ) BP = e^{(1 - r/c)} BP=e(1−r/c)。
终局:BLEU 的完整形态
将所有的关卡结合在一起,我们终于看到了主宰 NLP 翻译界二十多年的完整公式:
B L E U = B P × exp ( ∑ n = 1 N w n log p n ) BLEU = BP \times \exp \left( \sum_{n=1}^{N} w_n \log p_n \right) BLEU=BP×exp(n=1∑Nwnlogpn)
- p 1 p_1 p1:管住用词的准确性(充分性)。
- p 2 ∼ p N p_2 \sim p_N p2∼pN:管住语序的连贯性(流畅性)。
- min ( ) \min() min() 截断:管住复读机作弊。
- B P BP BP 惩罚:管住少说少错作弊。
🚀 附录:实战演算手把手推导
为了让你彻底吃透 BLEU,我们用两个具体案例,手工计算一遍 1-gram 到 4-gram 的得分。你将看到 BLEU 是如何精准打击各种翻译错误的。
通用参考译文 (Reference): the cat is on the mat (长度
r
=
6
r = 6
r=6)
(词汇表:the:2次, cat:1次, is:1次, on:1次, mat:1次)
案例 1:普通的错词扣分演示
-
机器翻译 (Candidate):
the cat is on a mat(仅仅错翻了一个词,把the翻成了a,长度 c = 6 c = 6 c=6) -
1-gram ( p 1 p_1 p1):
a没有命中。命中 5 个,总数 6 个。 p 1 = 5 / 6 ≈ 0.833 p_1 = 5 / 6 \approx 0.833 p1=5/6≈0.833 -
2-gram ( p 2 p_2 p2):
on a,a mat没有命中。命中 3 个,总数 5 个。 p 2 = 3 / 5 = 0.600 p_2 = 3 / 5 = 0.600 p2=3/5=0.600 -
3-gram ( p 3 p_3 p3): 命中
the cat is,cat is on。 p 3 = 2 / 4 = 0.500 p_3 = 2 / 4 = 0.500 p3=2/4=0.500 -
4-gram ( p 4 p_4 p4): 仅命中
the cat is on。 p 4 = 1 / 3 ≈ 0.333 p_4 = 1 / 3 \approx 0.333 p4=1/3≈0.333 -
惩罚因子 (BP): c = 6 , r = 6 c=6, r=6 c=6,r=6, B P = 1 BP = 1 BP=1。
最终得分:
1
×
(
5
6
×
3
5
×
2
4
×
1
3
)
1
/
4
=
0.537
1 \times ( \frac{5}{6} \times \frac{3}{5} \times \frac{2}{4} \times \frac{1}{3} )^{1/4} = 0.537
1×(65×53×42×31)1/4=0.537
(点评:错一个小词引发连环雪崩,分数平滑衰减,非常合理。)
案例 2:“口吃作弊”与截断机制的无情制裁
- 机器翻译 (Candidate):
the cat the cat on a mat(触发了机翻常见的重复生成现象,长度 c = 7 c = 7 c=7)
这次推导,我们将见证 BLEU 杀手级机制的威力:
-
1-gram ( p 1 p_1 p1) —— 触发截断! 机器写了 2 个
cat,但标准答案只有 1 个!强制截断,只承认 1 次有效。a同样没命中。
实际命中:2(the)+1(cat)+1(on)+0(a)+1(mat) = 5 个。总数 7 个。 p 1 = 5 / 7 ≈ 0.714 p_1 = 5 / 7 \approx 0.714 p1=5/7≈0.714 -
2-gram ( p 2 p_2 p2) —— 语序暴露问题
词组拆解:the cat,cat the,the cat,cat on,on a,a mat
机器写了 2 个the cat,但参考答案里只有 1 个!再次截断。其余全错。
命中 1 个,总数 6 个。 p 2 = 1 / 6 ≈ 0.167 p_2 = 1 / 6 \approx 0.167 p2=1/6≈0.167 -
3-gram ( p 3 p_3 p3) —— 彻底崩盘
词组拆解:the cat the,cat the cat,the cat on,cat on a,on a mat
在参考答案中一个都找不到!全军覆没。
p 3 = 0 / 5 = 0 p_3 = 0 / 5 = 0 p3=0/5=0 -
4-gram ( p 4 p_4 p4) —— 毫无悬念
p 4 = 0 / 4 = 0 p_4 = 0 / 4 = 0 p4=0/4=0 -
惩罚因子 (BP): c = 7 > r = 6 c=7 > r=6 c=7>r=6,字数够长, B P = 1 BP = 1 BP=1。
最终得分:
1
×
(
5
7
×
1
6
×
0
×
0
)
1
/
4
=
0
1 \times ( \frac{5}{7} \times \frac{1}{6} \times 0 \times 0 )^{1/4} = 0
1×(75×61×0×0)1/4=0
(点评:绝杀!虽然单词对了一大半,但由于连 3-gram 都无法匹配,证明这句翻译逻辑断裂。连乘公式冷酷地执行了“一票否决”:只要某个级别语序为 0 分,整句翻译直接判定为不可读的 0 分!)
这就是 BLEU 的全部魅力。它将极其复杂的主观语言感受,巧妙、严密地转化为了冰冷的数学逻辑,让 AI 翻译的每一次进步,都有了清晰可见的刻度!

205

被折叠的 条评论
为什么被折叠?



