Metrics for Neural Machine Translation

机器翻译评价指标

Perplexity(PPL)

困惑度

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

    2H(p)=2−∑x∈xp(x)log⁡2p(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)为分布ppp的熵

  • 也可用于衡量两个分布之间的差异,对于一个未知的数据分布pr(x)p_r(x)pr(x)和一个模型分布pθ(x)p_{\theta}(x)pθ(x),我们从pr(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)的困惑度为

    2H(pr,pθ)=2−1N∑n=1Nlog⁡2pθ(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)的好坏可以用困惑度来评价
  • 假设测试集合有NNN个独立同分布的序列{x1:Tn(n)}n=1N\left\{\boldsymbol{x}_{1: T_{n}}^{(n)}\right\}_{n=1}^{N}{x1:Tn(n)}n=1N。我们可以用模型pθ(x)p_{\theta}(x)pθ(x)对每个序列计算其概率pθ(x1:Tn(n))p_{\theta}\left(x_{1: T_{n}}^{(n)}\right)pθ(x1:Tn(n)),整个测试集的联合概率为

    ∏n=1Npθ(x1:Tn(n))=∏n=1N∏t=1Tnpθ(xt(n)∣x1:(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=1Nlog⁡2pθ(x1:Tn(n))=2−1T∑n=1N∑t=1Tnlog⁡2pθ(xt(n)∣x1:(t−1)(n))=(∏n=1N∏t=1Tnpθ(xt(n)∣x1:(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=1NTnT=\sum_{n=1}^{N} T_{n}T=n=1NTn为测试数据集中序列的总长度。测试集中所有序列的概率越大,困惑度越小,模型越好

BLEU

Bilingual Evaluation Understudy

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

  • xxx为从模型分布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)

    PN(x)=∑w∈Wmin⁡(cw(x),max⁡k=1Kcw(s(k)))∑w∈Wcw(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)))
    其中cw(x)c_w(x)cw(x)是N元组合www在生成序列xxx中出现的次数,cw(s(k))c_w(s^{(k)})cw(s(k))是N元组合www在参考序列s(k)s^{(k)}s(k)中出现的次数。N元组合的精度PN(x)P_N(x)PN(x)计算生成序列中的N元组合有多少比例在参考序列中出现

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

    b(x)={1 if lx>lsexp⁡(1−ls/lx) if lx≤ls 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
    其中lxl_xlx为生成序列xxx的长度,lsl_sls为参考序列的最短长度

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

    BLEU⁡−N(x)=b(x)×exp⁡(∑N=1N′αNlog⁡PN) \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)×expN=1NαNlogPN
    其中,N′N'N为最长N元组合的长度,αN{\alpha}_NαN为不同N元组合的权重,一般设为1N′\frac{1}{N'}N1。BLEU的值域为[0,1][0,1][0,1],越大表明生成的质量越好。但是BLEU算法只计算精度,而不关心召回率。

ROUGE

Recall-Oriented Understudy for Gisting Evaluation

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

  • xxx为从模型分布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=1K∑w∈Wmin⁡(cw(x),cw(s(k)))∑k=1K∑w∈Wcw(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)))
    其中cw(x)c_w(x)cw(x)是N元组合www在生成序列xxx中出现的次数,cw(s(k))c_w(s^{(k)})cw(s(k))是N元组合www在参考序列s(k)s^{(k)}s(k)中出现的次数

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐