LLM 指标 | PPL vs. BLEU vs. ROUGE-L vs. METEOR vs. CIDEr

LLM 指标 | PPL vs. BLEU vs. ROUGE-L vs. METEOR vs. CIDEr

困惑度(Perplexity, PPL)↓

PPL的意义非常明了,用于测量模型对生成文本的不确定程度,不确定程度越低,模型的表现就越好。其计算方法是计算句子每个token的平均对数似然,再过一个指数函数。

定义

给定一个长度为(n)的token序列:

[S=(w_1,w_2,cdots,w_n) ]

那么该序列的PPL为:

[PPL(S)=expbig(-frac{1}{N}sum^N_{i=1}log P(w_i|w_1,cdots,w_{i-1}big) ]

BLEU(Bilingual Evaluation Understudy)↑

BLEU出自文章BLEU: a Method for Automatic Evaluation of Machine Translation."
Proceedings of the 40th Annual Meeting of the Association for Computational Linguistics
,主要用以评估翻译任务中生成文本与参考文本的匹配程度。其更具体的形式BLEU@N用以定义在(1,2,cdots,N)-gram情况下,生成文本与参考文本的匹配程度,再通过一个长度惩罚项(brevity penalty, BP)避免模型的生成文本过短。

定义

给定生成文本为(C),参考文本为({R_1,R_2,cdots,R_m})

首先我们定义modified n-gram precision:

给定N-gram (g_n)(Count_S(g_n))表示在序列(S)(g)出现的次数,那么我们可以定义modified N-gram precision:

[p_n = frac{sum_{g_nin C}min(Count_C(g_n), max_j Count_{R_i}(g_n))}{sum_{g_nin C}Count_C(g)} ]

通俗解释(p_n)定义了生成文本与参考文本之间的重叠程度,并且设定了每个词的出现次数上界为参考文本中出现次数上界。

接下来我们计算(1,2,cdots,N)-gram的几何平均值(通常取(n=1,2,3,4)

有:

[P=exp(frac{1}{N}sum^N_{n=1}log p_n) ]

接下来计算长度惩罚项BP

[text{BP} = begin{cases} 1 & text{if } c > r \[2mm] expleft(1 - frac{r}{c}right) & text{if } c leq r end{cases} ]

其中(c)为生成文本的长度,(r)为与生成文本(c)长度最接近的参考文本的长度

最后相乘得到BLEU

[BLEU=Pcdot BP ]

ROUGE-L ↑

ROUGE-L(Recall-Oriented Understudy for Gisting Evaluation - LCS)通过计算最长公共子串LCS评估生成文本与参考文本之间的匹配程度,为此给定生成文本(C)和参考文本(R),我们可以模仿混淆矩阵定义其precison,recall以及F1-score:

ROUGE- L Precison

[P_{LCS} = frac{LCS(C,R)}{|C|} ]

recall

[R_{LCS}=frac{LCS(C, R)}{|R|} ]

F1-scoure

[F_{LCS}=frac{2cdot R_{LCS}cdot {P_{LCS}}}{R_{LCS}+P_{LCS}} ]

METEOR

METEOR出自文章Meteor: An Automatic Metric for MT Evaluation with High Levels of Correlation with Human Judgments,为了解决BLEU指标不能处理非精确匹配以及语序不敏感的两个缺陷,加入了语义对齐以及碎片化惩罚因子两个步骤。

语义对齐

首先通过贪心算法对所有的词语进行一一匹配,这种匹配考虑精确匹配、词干匹配或同义词匹配

PS:细节再补上去

计算recall和precision

给定生成文本(C)以及参考文本(R)(m)为成功匹配的词语数量,我们分别可以计算其precision和recall

[P=frac{m}{|C|},R=frac{m}{|R|} ]

计算F-score

通过上一步计算的precision和recall

[F_{mean} = frac{Pcdot R}{(1-alpha)cdot R + alpha cdot P} ]

其中(alpha)为平衡recall和precision的权重,一般取(alpha = 0.9)

计算碎片化惩罚项(fragmentation penalty)

生成文本中连续的匹配词会被同一个块(chunk)中,块的数量越多说明语序越不匹配,我们可以给出其定义:

[FP =gamma bigg(frac{#text{chunks}}{m}bigg)^beta ]

其中(beta)定义了惩罚项函数的形状,(gamma)定义了惩罚项的相对权重,一般取(beta = 3, gamma=0.5)

最后我们可以计算METEOR:

[METEOR = F_{mean}*(1-FP) ]

CIDEr

CIDEr(Consensus-based Image Description Evaluation)出自文章CIDEr: Consensus-based Image Description Evaluation,主要用于Image Captioning任务中,评估生成文本与参考文本的匹配程度

通过计算TF-IDF N-gram向量的余弦相似度评估生成样本与评估样本的匹配程度

TF-IDF N-gram向量

给定生成文本(C)以及参考文本({R_1,R_2,cdots,R_m}),我们可以计算每个文本(S)的TF-IDF向量:

[g_n(S)=[w_S(g_1),w_S(g_2),cdots,w_S(g_k)] ]

其中(w_S(g_k))为N-gram (g_k)在文本(S)中的TF-IDF权重,定义为:

[w_S(g_k)=TF(g_k,S)cdotlogfrac{m}{sum^m_{i=1}mathbf{1}(g_kin R_i)} ]

其中(sum^m_{i=1}mathbf{1}(g_kin R_i))表示在N-gram (g_k)在多少个参考文本中出现了

N-gram向量余弦相似度

接下来我们可以计算生成文本(C)和所有参考文本之间的N-gram向量余弦相似度

[sim_n(C,R_i)=frac{g_n(S)cdot g_n(R_i)}{||g_n(S)|| ||g_n(R_i)||} ]

对所有参考文本取平均得到(CIDEr_n)

[CIDEr_n(C,R) = frac{1}{m}sum^m_{i=1}sim_n(C,R_i) ]

计算CIDEr

接下来我们计算(1,2,cdots,N)-gram情况的平均值(通常取(n=1,2,3,4)

[CIDEr = sum^N_{n=1}w_ncdot CIDEr_n(C,R) ]

其中(w_n)为不同的N-gram情况的权重,一般取(w_n=frac{1}{N})

发表评论

评论已关闭。

相关文章