语言模型评价指标
1. BLEU(Bilingual Evaluation Understudy)
目标:衡量生成文本和参考文本之间的词汇相似性。
计算步骤:
-
N-gram 匹配:
- 将生成文本和参考文本分解成 1-gram、2-gram、…、N-gram(通常取到 4-gram)。
- 统计生成文本中的 N-gram 是否出现在参考文本中。
-
精确匹配率:
- 对每个 N-gram,计算生成文本中匹配的数量与总数量的比值:
Precision n = 生成文本中匹配的 N-gram 数 生成文本中的 N-gram 总数 \text{Precision}_n = \frac{\text{生成文本中匹配的 N-gram 数}}{\text{生成文本中的 N-gram 总数}} Precisionn=生成文本中的 N-gram 总数生成文本中匹配的 N-gram 数
- 对每个 N-gram,计算生成文本中匹配的数量与总数量的比值:
-
加权平均:
- 对不同的 N-gram 精确率取加权几何平均(权重通常相等):
BLEU N = exp ( ∑ n = 1 N w n ⋅ log ( Precision n ) ) \text{BLEU}_N = \exp\left(\sum_{n=1}^N w_n \cdot \log(\text{Precision}_n)\right) BLEUN=exp(n=1∑Nwn⋅log(Precisionn))
其中, w n = 1 N w_n = \frac{1}{N} wn=N1。
- 对不同的 N-gram 精确率取加权几何平均(权重通常相等):
-
长度惩罚:
- 如果生成文本的长度与参考文本长度差距过大,BLEU 分数会受到惩罚:
BP = { 1 , 生成文本长度 > 参考文本长度 exp ( 1 − 参考文本长度 生成文本长度 ) , 否则 \text{BP} = \begin{cases} 1, & \text{生成文本长度} > \text{参考文本长度} \\ \exp\left(1 - \frac{\text{参考文本长度}}{\text{生成文本长度}}\right), & \text{否则} \end{cases} BP={1,exp(1−生成文本长度参考文本长度),生成文本长度>参考文本长度否则
- 如果生成文本的长度与参考文本长度差距过大,BLEU 分数会受到惩罚:
-
最终公式:
BLEU = BP ⋅ exp ( ∑ n = 1 N w n ⋅ log ( Precision n ) ) \text{BLEU} = \text{BP} \cdot \exp\left(\sum_{n=1}^N w_n \cdot \log(\text{Precision}_n)\right) BLEU=BP⋅exp(n=1∑Nwn⋅log(Precisionn))
2. ROUGE(Recall-Oriented Understudy for Gisting Evaluation)
目标:衡量生成文本覆盖参考文本的程度,更关注召回率。
主要变体:
-
ROUGE-N(基于 N-gram 的召回率):
- 计算生成文本中匹配的 N-gram 占参考文本中 N-gram 的比例:
ROUGE-N = 匹配的 N-gram 数量 参考文本中的 N-gram 总数 \text{ROUGE-N} = \frac{\text{匹配的 N-gram 数量}}{\text{参考文本中的 N-gram 总数}} ROUGE-N=参考文本中的 N-gram 总数匹配的 N-gram 数量
- 计算生成文本中匹配的 N-gram 占参考文本中 N-gram 的比例:
-
ROUGE-L(基于最长公共子序列的匹配):
- 计算生成文本与参考文本的最长公共子序列(LCS),然后基于 LCS 的长度计算召回率和精确率:
R = LCS 参考文本长度 , P = LCS 生成文本长度 R = \frac{\text{LCS}}{\text{参考文本长度}}, \quad P = \frac{\text{LCS}}{\text{生成文本长度}} R=参考文本长度LCS,P=生成文本长度LCS
ROUGE-L = ( 1 + β 2 ) ⋅ P ⋅ R R + β 2 ⋅ P \text{ROUGE-L} = \frac{(1 + \beta^2) \cdot P \cdot R}{R + \beta^2 \cdot P} ROUGE-L=R+β2⋅P(1+β2)⋅P⋅R
其中, β \beta β 是召回权重。
- 计算生成文本与参考文本的最长公共子序列(LCS),然后基于 LCS 的长度计算召回率和精确率:
-
ROUGE-S(基于跳跃的二元词对):
- 计算生成文本和参考文本中,所有词对的匹配情况。
3. METEOR(Metric for Evaluation of Translation with Explicit ORdering)
目标:解决 BLEU 无法捕获语义相似性和顺序的重要性问题。
计算步骤:
-
匹配策略:
- 包括词形匹配(exact)、同义词匹配(synonymy)、词干匹配(stemming)。
- 对生成文本中的每个词,找出参考文本中最优匹配。
-
精确率与召回率:
- 计算生成文本与参考文本的匹配精度(P)和召回率(R):
P = 匹配的词数 生成文本的总词数 , R = 匹配的词数 参考文本的总词数 P = \frac{\text{匹配的词数}}{\text{生成文本的总词数}}, \quad R = \frac{\text{匹配的词数}}{\text{参考文本的总词数}} P=生成文本的总词数匹配的词数,R=参考文本的总词数匹配的词数
- 计算生成文本与参考文本的匹配精度(P)和召回率(R):
-
调和平均:
- 对 P 和 R 使用 F1 分数加权:
F = ( 1 + β 2 ) ⋅ P ⋅ R R + β 2 ⋅ P F = \frac{(1 + \beta^2) \cdot P \cdot R}{R + \beta^2 \cdot P} F=R+β2⋅P(1+β2)⋅P⋅R
- 对 P 和 R 使用 F1 分数加权:
-
惩罚因子:
- 考虑词序对齐情况,加入惩罚因子 (P_{\text{penalty}}),对不连贯的匹配施加惩罚:
Penalty = γ ⋅ ( chunk 数量 匹配词数 ) 3 \text{Penalty} = \gamma \cdot \left(\frac{\text{chunk 数量}}{\text{匹配词数}}\right)^3 Penalty=γ⋅(匹配词数chunk 数量)3
- 考虑词序对齐情况,加入惩罚因子 (P_{\text{penalty}}),对不连贯的匹配施加惩罚:
-
最终分数:
METEOR = F ⋅ ( 1 − Penalty ) \text{METEOR} = F \cdot (1 - \text{Penalty}) METEOR=F⋅(1−Penalty)
4. Perplexity
目标:衡量语言模型生成文本的连贯性和预测能力,表示模型对句子的不确定性。
计算公式:
- 对于语言模型给定的句子
w
1
,
w
2
,
…
,
w
N
w_1, w_2, \ldots, w_N
w1,w2,…,wN,Perplexity 定义为:
Perplexity = 2 − 1 N ∑ i = 1 N log 2 P ( w i ∣ w 1 , … , w i − 1 ) \text{Perplexity} = 2^{-\frac{1}{N} \sum_{i=1}^N \log_2 P(w_i | w_1, \ldots, w_{i-1})} Perplexity=2−N1∑i=1Nlog2P(wi∣w1,…,wi−1)
解释:
-
概率计算:
- P ( w i ∣ w 1 , … , w i − 1 ) P(w_i | w_1, \ldots, w_{i-1}) P(wi∣w1,…,wi−1) 表示模型预测第 i i i 个词的概率。
- 高概率(模型更确定)对应低 Perplexity。
-
直观意义:
- Perplexity 越低,说明模型越能有效预测文本。
- Perplexity 是对数似然的指数变换:
Perplexity = exp ( − 1 N ∑ i = 1 N log P ( w i ) ) \text{Perplexity} = \exp\left(-\frac{1}{N} \sum_{i=1}^N \log P(w_i)\right) Perplexity=exp(−N1i=1∑NlogP(wi))