自然语言处理(NLP)基础知识——机器翻译Metrics(PPL、BLEU、ROUGE)

Metrics for Neural Machine Translation

机器翻译评价指标

Perplexity(PPL)

困惑度

  • 用于衡量一个分布的不确定性,对于离散随机变量 X ∈ X X \in \mathcal{X} XX,其概率分布为 p ( x ) p(x) p(x),困惑度为

    2 H ( p ) = 2 − ∑ x ∈ x p ( x ) log ⁡ 2 p ( x ) 2^{H(p)}=2^{-\sum_{x \in x} p(x) \log _{2} p(x)} 2H(p)=2xxp(x)log2p(x)
    其中 H ( p ) H(p) H(p)为分布 p p p的熵

  • 也可用于衡量两个分布之间的差异,对于一个未知的数据分布 p r ( x ) p_r(x) pr(x)和一个模型分布 p θ ( x ) p_{\theta}(x) pθ(x),我们从 p r ( x ) p_r(x) pr(x)中采样出一组测试样本 x ( 1 ) , ⋯   , x ( N ) x^{(1)}, \cdots, x^{(N)} x(1),,x(N),模型分布 p θ ( x ) p_{\theta}(x) pθ(x)的困惑度为

    2 H ( p r , p θ ) = 2 − 1 N ∑ n = 1 N log ⁡ 2 p θ ( x ( n ) ) 2^{H\left(p_{r}, p_{\theta}\right)}=2^{-\frac{1}{N} \sum_{n=1}^{N} \log _{2} p_{\theta}\left(x^{(n)}\right)} 2H(pr,pθ)=2N1n=1Nlog2pθ(x(n))
    其中 H ( p ~ r , p θ ) \boldsymbol{H}\left(\tilde{p}_{r}, p_{\theta}\right) H(p~r,pθ)为样本的经验分布 p ~ r \tilde{p}_{r} p~r与模型分布 p θ p_{\theta} pθ之间的交叉熵

    • 困惑度可以衡量模型分布与样本经验分布之间的契合程度。困惑度越低则两个分布越接近。因此,模型分布 p θ ( x ) p_{\theta}(x) pθ(x)的好坏可以用困惑度来评价
  • 假设测试集合有 N N N个独立同分布的序列 { x 1 : T n ( n ) } n = 1 N \left\{\boldsymbol{x}_{1: T_{n}}^{(n)}\right\}_{n=1}^{N} {x1:Tn(n)}n=1N。我们可以用模型 p θ ( x ) p_{\theta}(x) pθ(x)对每个序列计算其概率 p θ ( x 1 : T n ( n ) ) p_{\theta}\left(x_{1: T_{n}}^{(n)}\right) pθ(x1:Tn(n)),整个测试集的联合概率为

    ∏ n = 1 N p θ ( x 1 : T n ( n ) ) = ∏ n = 1 N ∏ t = 1 T n p θ ( x t ( n ) ∣ x 1 : ( t − 1 ) ( n ) ) \prod_{n=1}^{N} p_{\theta}\left(\boldsymbol{x}_{1: T_{n}}^{(n)}\right)=\prod_{n=1}^{N} \prod_{t=1}^{T_{n}} p_{\theta}\left(x_{t}^{(n)} \mid \boldsymbol{x}_{1:(t-1)}^{(n)}\right) n=1Npθ(x1:Tn(n))=n=1Nt=1Tnpθ(xt(n)x1:(t1)(n))

    • 模型 p θ ( x ) p_{\theta}(x) pθ(x)的困惑度定义为

    PPL ⁡ ( θ ) − 2 − 1 τ ∑ n = 1 N log ⁡ 2 p θ ( x 1 : T n ( n ) ) = 2 − 1 T ∑ n = 1 N ∑ t = 1 T n log ⁡ 2 p θ ( x t ( n ) ∣ x 1 : ( t − 1 ) ( n ) ) = ( ∏ n = 1 N ∏ t = 1 T n p θ ( x t ( n ) ∣ x 1 : ( t − 1 ) ( n ) ) ) − 1 / T \begin{aligned} \operatorname{PPL}(\theta) &-2^{-\frac{1}{\tau} \sum_{n=1}^{N} \log _{2} p_{\theta}\left(x_{1: T_{n}}^{(n)}\right)} \\ &=2^{-\frac{1}{T} \sum_{n=1}^{N} \sum_{t=1}^{T_{n}} \log _{2} p_{\theta}\left(x_{t}^{(n)} \mid x_{1:(t-1)}^{(n)}\right)} \\ &=\left(\prod_{n=1}^{N} \prod_{t=1}^{T_{n}} p_{\theta}\left(x_{t}^{(n)} \mid x_{1:(t-1)}^{(n)}\right)\right)^{-1 / T} \end{aligned} PPL(θ)2τ1n=1Nlog2pθ(x1:Tn(n))=2T1n=1Nt=1Tnlog2pθ(xt(n)x1:(t1)(n))=(n=1Nt=1Tnpθ(xt(n)x1:(t1)(n)))1/T
    其中 T = ∑ n = 1 N T n T=\sum_{n=1}^{N} T_{n} T=n=1NTn为测试数据集中序列的总长度。测试集中所有序列的概率越大,困惑度越小,模型越好

BLEU

Bilingual Evaluation Understudy

  • BLEU是一种衡量模型生成序列和参考序列之间的N元词组(N-Gram)重合度的算法

  • x x x为从模型分布 p θ p_{\theta} pθ中生成的一个候选(Candidate)序列, s ( 1 ) , ⋯   , s ( K ) \boldsymbol{s}^{(1)}, \cdots, \boldsymbol{s}^{(K)} s(1),,s(K)为从真实数据分布中采集的一组参考(Reference)序列, W \mathcal{W} W为从生成的候选序列中提取所有N元组合的集合,这些N元组合的精度(Precision)

    P N ( x ) = ∑ w ∈ W min ⁡ ( c w ( x ) , max ⁡ k = 1 K c w ( s ( k ) ) ) ∑ w ∈ W c w ( x ) P_{N}(\boldsymbol{x})=\frac{\sum_{w \in \mathcal{W}} \min \left(c_{w}(\boldsymbol{x}), \max _{k=1}^{K} c_{w}\left(\boldsymbol{s}^{(k)}\right)\right)}{\sum_{w \in \mathcal{W}} c_{w}(\boldsymbol{x})} PN(x)=wWcw(x)wWmin(cw(x),maxk=1Kcw(s(k)))
    其中 c w ( x ) c_w(x) cw(x)是N元组合 w w w在生成序列 x x x中出现的次数, c w ( s ( k ) ) c_w(s^{(k)}) cw(s(k))是N元组合 w w w在参考序列 s ( k ) s^{(k)} s(k)中出现的次数。N元组合的精度 P N ( x ) P_N(x) PN(x)计算生成序列中的N元组合有多少比例在参考序列中出现

  • 由于精度只衡量生成序列中的N元组合是否在参考序列中出现,生产序列越短,其精度会越高,因此引入长度惩罚因子(Brevity Penalty)。如果生产序列的长度短于参考序列,就对其进行惩罚

    b ( x ) = { 1  if  l x > l s exp ⁡ ( 1 − l s / l x )  if  l x ≤ l s b(\boldsymbol{x})=\left\{\begin{array}{ccc} 1 & \text { if } & l_{x}>l_{s} \\ \exp \left(1-l_{s} / l_{x}\right) & \text { if } & l_{x} \leq l_{s} \end{array}\right. b(x)={1exp(1ls/lx) if  if lx>lslxls
    其中 l x l_x lx为生成序列 x x x的长度, l s l_s ls为参考序列的最短长度

  • BLEU是通过计算不同长度的N元组合(N=1,2,3…)的精度,并进行几何加权平均得到

    BLEU ⁡ − N ( x ) = b ( x ) × exp ⁡ ( ∑ N = 1 N ′ α N log ⁡ P N ) \operatorname{BLEU}-\mathrm{N}(\boldsymbol{x})=b(\boldsymbol{x}) \times \exp \left(\sum_{N=1}^{N^{\prime}} \alpha_{N} \log P_{N}\right) BLEUN(x)=b(x)×exp N=1NαNlogPN
    其中, N ′ N' N为最长N元组合的长度, α N {\alpha}_N αN为不同N元组合的权重,一般设为 1 N ′ \frac{1}{N'} N1。BLEU的值域为 [ 0 , 1 ] [0,1] [0,1],越大表明生成的质量越好。但是BLEU算法只计算精度,而不关心召回率。

ROUGE

Recall-Oriented Understudy for Gisting Evaluation

  • ROUGE和BLEU算法类似,但ROUGE计算的是召回率

  • x x x为从模型分布 p θ p_{\theta} pθ中生成的一个候选序列, s ( 1 ) , ⋯   , s ( K ) \boldsymbol{s}^{(1)}, \cdots, \boldsymbol{s}^{(K)} s(1),,s(K)为从真实数据分布中采样出的一组参考序列, W \mathcal{W} W为从参考序列中提取N元组合的集合,ROUGE-N算法定义为

    ROUGE-N ⁡ ( x ) = ∑ k = 1 K ∑ w ∈ W min ⁡ ( c w ( x ) , c w ( s ( k ) ) ) ∑ k = 1 K ∑ w ∈ W c w ( s ( k ) ) \operatorname{ROUGE-N}(\boldsymbol{x})=\frac{\sum_{k=1}^{K} \sum_{w \in \mathcal{W}} \min \left(c_{w}(\boldsymbol{x}), c_{w}\left(s^{(k)}\right)\right)}{\sum_{k=1}^{K} \sum_{w \in \mathcal{W}} c_{w}\left(\boldsymbol{s}^{(k)}\right)} ROUGE-N(x)=k=1KwWcw(s(k))k=1KwWmin(cw(x),cw(s(k)))
    其中 c w ( x ) c_w(x) cw(x)是N元组合 w w w在生成序列 x x x中出现的次数, c w ( s ( k ) ) c_w(s^{(k)}) cw(s(k))是N元组合 w w w在参考序列 s ( k ) s^{(k)} s(k)中出现的次数

  • 26
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值