生成式语言模型的文本生成评价指标(从传统的基于统计到现在的基于语义)
文本生成评价指标
- 以 BLEU 为代表的基于统计的文本评价指标
- 基于 BERT 等预训练模型的文本评价指标
1.以 BLEU 为代表的基于统计的文本评价指标
1.BLEU(Bilingual Evaluation Understudy, 双语评估辅助工具)
所有评价指标的鼻祖,核心思想是比较 候选译文 和 参考译文 里的 n-gram 的重合程度,重合程度越高就认为译文质量越高。
unigram 用于衡量单词翻译的准确性,高阶 n-gram 用于衡量句子翻译的流畅性。
-
一般取 N = 1 ~ 4,然后加权平均
B L E U = B P × e x p ( ∑ n = 1 N W n × P n ) B P = { 1 e x p ( 1 − l r / l c ) l c = 机器翻译候选译文的长度 l r = 最短的参考译文长度 BLEU=BP \times exp(\sum_{n=1}^N W_n \times P_n)\\ \begin{aligned} BP= \begin{cases} 1 \\ exp(1-lr/lc) \end{cases} \end{aligned}\\ lc=机器翻译候选译文的长度\\ lr=最短的参考译文长度 BLEU=BP×exp(n=1∑NWn×Pn)BP={1exp(1−lr/lc)lc=机器翻译候选译文的长度lr=最短的参考译文长度
- W n W_n Wn 指的是 n-gram 权重,默认是均匀权重
- BP 是惩罚因子,如果译文的长度小于最短参考译文,则 BP 小于 1
- BLEU 的 1-gram 精确度表示译文忠于原文的程度,其他的 n-gram 表示翻译的流畅度
-
优点
- 易于计算,速度快。
- 应用范围广泛
-
缺点
- 不考虑语义、句子结构
- 不能很好的处理形态丰富的句子(所以论文中建议配备 4 条参考译文)
- BLEU 偏向于较短的翻译结果
2.ROUGE(Recall-Oriented Understudy for Gisting Evaluation)
ROUGE 是 BLEU 的改进版,从名字上可以看出,他专注于召回率而非精确率。
即,他会查看有多少个参考译文中的 n 元词组出现在输出中。
- ROUGE 大致分为四种(前两种常用)
- ROUGE-N(将 BLEU 的精确率优化为召回率)
- ROUGE-L(将 BLEU 的 n-gram 优化为公共子序列)
- ROUGE-W(将 ROUGE-L 的连续匹配给予更高的奖励)
- ROUGE-S(允许 n-gram 出现跳词(skip))
- 初衷
- 在 SMT(统计机器翻译) 时代,机器翻译效果很差,需要同时评价翻译的准确度和流畅度。
- 在 NMT(神经网络机器翻译) 时代,神经网络能力很强,翻译的结果大多都是通顺的,但是可能会一本正经的胡说八道
- ROUGE 的出现是为了解决 NMT 的漏翻问题(低召回率)。所以 ROUGE 只适合评价 NMT,不适用于 SMT,因为他不评价译文的流畅与否。
- ROUGE-N
-
N 指 N-gram,计算方式与 BLEU 类似,但是基于召回率
-
ROUGE-N 主要统计 N-gram 上的召回率,对于 N-gram ,可以计算得到 ROUGE-N 的分数
R O U G E − N = ∑ S ∈ { R e f e r e n c e S u m m a r i e s } g r a m N ∈ S ∑ g r a m N ∈ S C o u n t m a t c h ( g r a m N ) ∑ S ∈ { R e f e r e n c e S u m m a r i e s } g r a m N ∈ S ∑ g r a m N ∈ S C o u n t ( g r a m n ) ROUGE-N=\frac{\sum_{S\in \{ReferenceSummaries\}gram_N\in S}\sum_{gram_N\in S} Count_{match}(gram_N)} {\sum_{S\in \{ReferenceSummaries\}gram_N \in S}\sum_{gram_N \in S} Count(gram_n)} ROUGE−N=∑S∈{ReferenceSummaries}gramN∈S∑gramN∈SCount(gramn)∑S∈{ReferenceSummaries}gramN∈S∑gramN∈SCountmatch(gramN)
- 分母是统计参考译文中的 N-gram 的个数;分子是统计参考译文与机器译文共有的 N-gram 个数
-
- ROUGE-L
-
ROUGE-L 中的 L 指最长公共子序列(Longest Common Subsequence, LCS),ROUGE-L 计算的时候使用了 机器译文 C 和 参考译文 S 的最长公共子序列。
R L C S = L C S ( C , S ) l e n ( S ) P L C S = L C S ( C , S ) l e n ( C ) F L C S = ( 1 + β 2 ) R L C S P L C S R L C S + β 2 P L C S R_{LCS}=\frac{LCS(C,S)}{len(S)}\\ P_{LCS}=\frac{LCS(C,S)}{len(C)}\\ F_{LCS}=\frac{(1+\beta^2)R_{LCS}P_{LCS}}{R_{LCS}+\beta^2P_{LCS}} RLCS=len(S)LCS(C,S)PLCS=len(C)LCS(C,S)FLCS=RLCS+β2PLCS(1+β2)RLCSPLCS
- R L C S R_{LCS} RLCS 表示 召回率, P L C S P_{LCS} PLCS 表示精确率, F L C S F_{LCS} FLCS 就是 ROUGE-L
- 一般 β \beta β 会设置一个很大的数,因此 F L C S F_{LCS} FLCS 几乎只考虑 R L C S R_{LCS} RLCS(召回率)
-
- ROUGE-W
- ROUGE-S
2.基于语言模型的方法
1.PPL(困惑度)
它也可以用来比较两个语言模型在预测样本上的优劣。
低困惑度的概率分布模型或概率模型能更好地预测样本。
P P L ( W ) = P ( w 1 w 2 . . . w N ) − 1 N PPL(W)=P(w_1w_2...w_N)^{-\frac1N} PPL(W)=P(w1w2...wN)−N1
- 在对模型进行损失计算的时候,直接对损失去个指数就是 PPL 了
2.基于 BERT 的评分指标 → B E R T S C O R E BERT_{SCORE} BERTSCORE
-
核心思想:对两个 生成句 和 参考句(WordPiece 进行 tokenize) 分别用 BERT 提取特征,然后对两个句子的每个词分别计算内积,得到一个相似性矩阵。基于这个矩阵,可以分别对参考句和生成句做一个最大相似性得分的累加然后归一化,得到 B E R T s c o r e BERT_{score} BERTscore 的 precision 、 recall 和 F1
R B E R T = 1 ∣ x ∣ ∑ x i ∈ x max x ^ j ∈ x ^ x i T x ^ j P B E R T = 1 ∣ x ^ ∣ ∑ x ^ j ∈ x ^ max x i ∈ x x i T x ^ j F B E R T = 2 P B E R T ⋅ R B E R T P B E R T + R B E R T R_{BERT}=\frac1{|x|}\sum_{x_i \in x} \max_{\hat{x}_j \in \hat{x}}x_i^T\hat{x}_j\\ P_{BERT}=\frac1{|\hat x|}\sum_{\hat x_j \in \hat x} \max_{x_i \in x}x_i^T \hat x_j\\ F_{BERT}=2\frac{P_{BERT}·R_{BERT}}{P_{BERT}+R_{BERT}} RBERT=∣x∣1xi∈x∑x^j∈x^maxxiTx^jPBERT=∣x^∣1x^j∈x^∑xi∈xmaxxiTx^jFBERT=2PBERT+RBERTPBERT⋅RBERT
3.总结
- BLEU
- 优点:计算速度,适合评估机器翻译等文本生成任务的准确性。依赖于 n-gram 匹配,所以对短文本评价友好
- 缺点:无法衡量语义,容易惩罚语义合理的表示;对自由度较高的生成任务表现不佳
- 使用场景:机器翻译、文本摘要,尤其是目标文本相对固定的情形
- ROUGE
- 优点:对文本摘要任务适用,尤其是 ROUGE-L 可识别长的匹配序列,适合评估摘要生成中较长的语义片段
- 缺点:依赖表层匹配,缺乏对语义的深层次理解
- 使用场景:在摘要生成任务中表现良好
- PPL
- 优点:可量化生成文本的流畅度,适合语言模型的评估
- 缺点:与人类理解不直接相关;低的 PPL 不保证高质量文本。
- 使用场景:适用于评估语言模型在训练数据上的拟合程度,对生成模型的流畅度 衡量有效
-
B
E
R
T
s
c
o
r
e
BERT_{score}
BERTscore
- 优点:基于 BERT 等预训练模型,能捕获词汇和语义的相似度,弥补了传统表层指标的不足;对重组、同义表达的容忍度更高
- 缺点:计算较慢,依赖模型的复杂度;性能依赖于使用的预训练模型
- 使用场景:适合需要语义理解的生辰任务,如开放式问答和文本生成任务,在多样化表达中优异。
- 总结
- B L E U BLEU BLEU 和 R O U G E ROUGE ROUGE 更适合传统的,较为结构化的生成任务
- PPL 适合流畅度的评估
- B E R T s c o r e BERT_{score} BERTscore 适合更深层次的语义对齐场景