自然语言处理(NLP)基础知识——机器翻译Metrics(PPL、BLEU、ROUGE)
Metrics for Neural Machine Translation
机器翻译评价指标
Perplexity(PPL)
困惑度
-
用于衡量一个分布的不确定性,对于离散随机变量X∈XX \in \mathcal{X}X∈X,其概率分布为p(x)p(x)p(x),困惑度为
2H(p)=2−∑x∈xp(x)log2p(x) 2^{H(p)}=2^{-\sum_{x \in x} p(x) \log _{2} p(x)} 2H(p)=2−∑x∈xp(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=1Nlog2pθ(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θ)=2−N1∑n=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=1∏Npθ(x1:Tn(n))=n=1∏Nt=1∏Tnpθ(xt(n)∣x1:(t−1)(n))
- 模型pθ(x)p_{\theta}(x)pθ(x)的困惑度定义为
PPL(θ)−2−1τ∑n=1Nlog2pθ(x1:Tn(n))=2−1T∑n=1N∑t=1Tnlog2pθ(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−τ1∑n=1Nlog2pθ(x1:Tn(n))=2−T1∑n=1N∑t=1Tnlog2pθ(xt(n)∣x1:(t−1)(n))=(n=1∏Nt=1∏Tnpθ(xt(n)∣x1:(t−1)(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),maxk=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)=∑w∈Wcw(x)∑w∈Wmin(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(1−ls/lx) if if lx>lslx≤ls
其中lxl_xlx为生成序列xxx的长度,lsl_sls为参考序列的最短长度 -
BLEU是通过计算不同长度的N元组合(N=1,2,3…)的精度,并进行几何加权平均得到
BLEU−N(x)=b(x)×exp(∑N=1N′αNlogPN) \operatorname{BLEU}-\mathrm{N}(\boldsymbol{x})=b(\boldsymbol{x}) \times \exp \left(\sum_{N=1}^{N^{\prime}} \alpha_{N} \log P_{N}\right) BLEU−N(x)=b(x)×expN=1∑N′αNlogPN
其中,N′N'N′为最长N元组合的长度,αN{\alpha}_NαN为不同N元组合的权重,一般设为1N′\frac{1}{N'}N′1。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=1K∑w∈Wcw(s(k))∑k=1K∑w∈Wmin(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)中出现的次数
更多推荐
所有评论(0)