预测序列的好坏 - 使用BLEU

BLEU是一种评估机器翻译和文本生成模型输出序列质量的方法,通过惩罚短预测序列和计算n-gram匹配概率来确定分数。K值影响语法匹配的重要性。

BLEU提出最开始是在用于评估机器翻译的结果,但是现在也可以广泛运用在测量输出序列质量上,其具体公式如下,注意输出的结果越大,说明序列质量越好
BLEU_output=exp⁡(min⁡(0,1−lenlabellenpred))∏n=1kpn1/2n BLEU\_output = \exp\left(\min\left(0, 1 - \frac{\mathrm{len}_{\text{label}}}{\mathrm{len}_{\text{pred}}}\right)\right) \prod_{n=1}^k p_n^{1/2^n}BLEU_output=exp(min(0,1lenpredlenlabel))n=1kpn1/2n
前面的指数部分做为一个惩罚项控制着较短的预测序列,其中lenlabellen_{label}lenlabel代表标签序列中的词元数,而lenpredlen_{pred}lenpred代表预测序列中的词元数
如果预测序列过短,那么1-大于1的数最终将会小于0,而指数函数在负数区间内是一个很小的值,可以有效降低序列质量(小的预测集不加这项惩罚的话往往会虚高,达不到想要的效果)


式子中的K代表的是可以匹配的语法个数,而后面的 pn ~p_n~ pn 就定义了预测序列中的任意 𝑛 元语法(n-grams), BLEU的评估都是这个 𝑛 元语法是否出现在标签序列中(概率),下面用例子解释一下

举个例子

假设我们预测序列是 A B C C D D ,而标签序列是 A B C D E F

  •  p1 ~p_1~ p1 就是 4/6 ,因为一共有六个样本,我们只是match到了四个,两个重复的没有在标签中显现!!
  •  p2 ~p_2~ p2 就是 3/5 ,每次看两个词元,不断往下传,可以发现CC和DD没有在标签中match
  •  p3 ~p_3~ p3 就是 1/4 ,每次看三个词元,跟上面一样的,只考虑顺序,发现只有ABC可以match
  •  p4 ~p_4~ p4 就是 0 ,此时四个词元已经无法在标签序列中match到了,所以结果为0,不再继续向下计算(因为结果都是0)

此时根据指定的K值,我们就可以计算出相对于的K元BLEU值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值