赞
踩
本文介绍自然语言生成任务中的各种评估指标。
因为我是之前做文本摘要才接触到这一部分内容的,所以本文也是以文本摘要任务为中心。
持续更新。
模型生成的句子、预测结果——candidate
真实标签——reference、ground-truth
ROUGE值是文本摘要任务重最常用的机器评估指标,衡量生成文本与真实标签之间的相似程度。
precision:candidate中匹配reference的内容占candidate比例
recall:candidate中匹配reference的内容占reference比例
示例:
Reference: I work on machine learning.
Candidate A: I work.
Candidate B: He works on machine learning.
在这个例子中,用unigram(可以理解为一个词或token)1衡量匹配:A就比B的precision更高(A的匹配内容I work
占candidate 100%,B的on machine learning
占60%),但B的recall更高(60% VS 40%)。
出处论文:(2004 WS) ROUGE: A Package for Automatic Evaluation of Summaries
感觉没有2004年之后的文本摘要论文不使用这个指标的,如果看到有的话我会专门来这里提一嘴的。
分类:ROUGE-N(常用其中的ROUGE-1和ROUGE-2), ROUGE-L,ROUGE-W,ROUGE-S(后两种不常用)
原版论文中ROUGE主要关注recall值,但事实上在用的时候可以用precision、recall和F值。(我看到很多论文都用的是F值)
每种rouge值原本都是计算recall的,主要区别在于这个匹配文本的单位的选择:
ROUGE-N:基于n-grams,如ROUGE-1计算基于匹配unigrams的recall,以此类推。
ROUGE-L:基于longest common subsequence (LCS)
ROUGE-W:基于weighted LCS
ROUGE-S:基于skip-bigram co-occurence statistics(skip-bigram指两个共同出现的单词,不管中间隔了多远。要计算任何bigram的出现可能
C
n
2
C_n^2
Cn2)
以ROUGE-L为例,
A
A
A 是candidate,长度
m
m
m;
B
B
B 是reference,长度
n
n
n:
P
=
L
C
S
(
A
,
B
)
m
P=\frac{LCS(A,B)}{m}
P=mLCS(A,B)
R
=
L
C
S
(
A
,
B
)
n
R=\frac{LCS(A,B)}{n}
R=nLCS(A,B)
F
=
(
1
+
b
2
)
R
P
R
+
b
2
P
F=\frac{(1+b^2)RP}{R+b^2P}
F=R+b2P(1+b2)RP
(2018 EMNLP) A Graph-theoretic Summary Evaluation for ROUGE
批判文学:(2023 ACL) Rogue Scores:喷原包有bug。嘛我之前也喷过2,终于有顶会论文喷了我很欣慰
我(其实是AI)写了一篇BLEU的博文,我写的时候没发现我在这里已经写过了。这两边的一些细节还没有对齐,所以我这边先不删了,先引用一下那篇博文放这里供参考:机器翻译常用指标BLEU
常用于翻译领域。
出处论文:(2002 ACL) Bleu: a Method for Automatic Evaluation of Machine Translation
precision用modified n-gram precision估计,recall用best match length估计。
Modified n-gram precision:
n-gram precision是candidate中与reference匹配的n-grams占candidates的比例。但仅用这一指标会出现问题。
举例来说:
Reference: I work on machine learning.
Candidate 1: He works on machine learning.
Candidate 2: He works on on machine machine learning learning.
candidate 1的unigram precision有60%(3/5),candidate 2的有75%(6/8),但显然candidate 1比2更好。
为了解决这种问题,我们提出了“modified” n-gram precision,仅按照reference中匹配文本的出现次数来计算candidate中的出现次数。这样candidate中的on
、machine
和learning
就各自只计算一次,candidate 2的unigram precision就变成了37.5%(3/8)。
对多个candidate的n-gram precision,求几何平均(因为precision随n呈几何增长,因此対数平均能更好地代表所有数值(这块其实我没看懂)):
P
r
e
c
i
s
i
o
n
=
exp
(
∑
n
=
1
N
w
n
log
p
n
)
,
where
w
n
=
1
/
n
Precision=\exp(\sum_{n=1}^Nw_n\log p_n),\ \text{where} \ w_n=1/n
Precision=exp(n=1∑Nwnlogpn), where wn=1/n
Best match length:
recall的问题在于可能存在多个reference texts,故难以衡量candidate对整体reference的sensitivity(这块其实我也没看懂)。显然长的candidate会包含更多匹配文本,但我们也已经保证了candidate不会无限长,因为这样的precision可能很低。因此,我们可以从惩罚candidate的简洁性(文本短)入手来设计recall指标:
在modified n-gram precision中添加一个multiplicative factor
B
P
BP
BP:
B
P
=
{
1
,
if
c
>
r
exp
(
1
−
r
c
)
,
otherwise
BP={1,if c>rexp(1−rc),otherwise
BP={1,exp(1−cr),if c>rotherwise
其中
c
c
c 是candidates总长度,
r
r
r 是reference有效长度(如reference长度平均值),随着candidate长度(
c
c
c)下降,
B
P
BP
BP 也随之减少,起到了惩罚短句的作用。
常用于翻译领域。
出处:(2005) METEOR: An Automatic Metric for MT Evaluation with Improved Correlation with Human Judgments
BLEU的问题在于 B P BP BP 值所用的长度是平均值,因此单句得分不清晰。而METEOR调整了precision和recall的计算方式,用基于mapping unigrams的weighted F-score和penalty function for incorrect word order来代替。
Weighted F-score:
首先,我们要找到candidate和reference间最大的可以形成对齐(alignment)的映射(mappings)子集(subset)。在经过Porter stemming[^3]、用了WordNet同义词后,假设找到的对齐数是
m
m
m,则precision就是
m
/
c
m/c
m/c(
c
c
c 是candidate长度)、recall是
m
/
r
m/r
m/r(
r
r
r 是reference长度),F就是
F
=
P
R
α
P
+
(
1
−
α
)
R
F=\frac{PR}{\alpha P+(1-\alpha)R}
F=αP+(1−α)RPR
Penalty function:
考虑candidate中的单词顺序:
P
e
n
a
l
t
y
=
γ
(
c
m
)
β
,
where
0
≤
γ
≤
1
Penalty=\gamma(\frac{c}{m})^\beta,\ \text{where}\ 0\leq\gamma\leq1
Penalty=γ(mc)β, where 0≤γ≤1
其中
c
c
c 是matching chunks数,
m
m
m 是matches总数。因此如果大多数matches是连续的,
c
c
c 就会小,penalty就会低。这部分我的理解是:连续的matches组成一个chunk。但我不确定,可能我会去查阅更多资料。
最终METEOR得分的计算方式为:
(
1
−
P
e
n
a
l
t
y
)
F
(1-Penalty)F
(1−Penalty)F
常用于语言模型训练。
困惑度是一种衡量语言模型好坏的统计指标。简单来说,它衡量的是模型对样本数据的预测能力,即模型在预测下一个词时的“困惑”程度。困惑度越低,表示模型对语言的预测能力越强,生成的文本质量越高。
困惑度的计算基于语言模型对序列的概率估计,定义为一个词序列的几何平均逆概率的指数形式。给定一个词序列 W = ( w 1 , w 2 , . . . , w N ) W = (w_1, w_2, ..., w_N) W=(w1,w2,...,wN),模型的困惑度定义为:
P P L ( W ) = P ( w 1 , w 2 , . . . , w N ) − 1 N PPL(W) = P(w_1, w_2, ..., w_N)^{-\frac{1}{N}} PPL(W)=P(w1,w2,...,wN)−N1
其中 P ( w 1 , w 2 , . . . , w N ) P(w_1, w_2, ..., w_N) P(w1,w2,...,wN)是模型给出的词序列的联合概率, N N N是词序列的长度。开N次根意味着几何平均数。
以下是推导公式部分(我全列出来比较清晰):
我们可以将联合概率分解成条件概率的乘积(这个的假设叫啥来着,什么同分布):
P
(
w
1
,
w
2
,
.
.
.
,
w
N
)
=
∏
i
=
1
N
P
(
w
i
∣
w
1
,
.
.
.
,
w
i
−
1
)
P(w_1, w_2, ..., w_N) = \prod_{i=1}^{N} P(w_i | w_1, ..., w_{i-1})
P(w1,w2,...,wN)=i=1∏NP(wi∣w1,...,wi−1)
将联合概率代入困惑度公式:
P
P
L
(
W
)
=
(
∏
i
=
1
N
P
(
w
i
∣
w
1
,
.
.
.
,
w
i
−
1
)
)
−
1
N
PPL(W) = \left(\prod_{i=1}^{N} P(w_i | w_1, ..., w_{i-1})\right)^{-\frac{1}{N}}
PPL(W)=(i=1∏NP(wi∣w1,...,wi−1))−N1
取对数并转换为加法形式:
P
P
L
(
W
)
=
−
1
N
(
exp
∏
i
=
1
N
P
(
w
i
∣
w
1
,
.
.
.
,
w
i
−
1
)
)
=
−
1
N
(
exp
∑
i
=
1
N
log
P
(
w
i
∣
w
1
,
.
.
.
,
w
i
−
1
)
)
=
exp
(
−
1
N
∑
i
=
1
N
log
P
(
w
i
∣
w
1
,
.
.
.
,
w
i
−
1
)
)
PPL(W)=−1N(expN∏i=1P(wi|w1,...,wi−1))=−1N(expN∑i=1logP(wi|w1,...,wi−1))=exp(−1NN∑i=1logP(wi|w1,...,wi−1))
PPL(W)=−N1(expi=1∏NP(wi∣w1,...,wi−1))=−N1(expi=1∑NlogP(wi∣w1,...,wi−1))=exp(−N1i=1∑NlogP(wi∣w1,...,wi−1))
由于计算机中对数通常使用以 2 为底,所以在实际应用中,通常将困惑度表达为:
P P L ( W ) = 2 − 1 N ∑ i = 1 N log 2 P ( w i ∣ w 1 , . . . , w i − 1 ) PPL(W) = 2^{-\frac{1}{N} \sum_{i=1}^{N} \log_2 P(w_i | w_1, ..., w_{i-1})} PPL(W)=2−N1∑i=1Nlog2P(wi∣w1,...,wi−1)
这里, log 2 P ( w i ∣ w 1 , . . . , w i − 1 ) \log_2 P(w_i | w_1, ..., w_{i-1}) log2P(wi∣w1,...,wi−1)是给定前 i − 1 i-1 i−1个词时,第 i i i个词出现的对数概率。
使用该指标的论文:Rewards with Negative Examples for Reinforced Topic-Focused Abstractive Summarization
待补。
文本的流畅程度、对原文的忠实程度、对原文重要内容的包含程度、语句的简洁程度等
出处论文:(2022 AAAI) InfoLM: A New Metric to Evaluate Summarization & Data2Text Generation
待补。
待补
待补。
待补。
BPC(bits-per-character):表示在每个字符上需要多少比特来编码信息
BPC
=
−
1
N
∑
i
=
1
N
log
2
P
(
c
i
∣
c
1
,
.
.
.
,
c
i
−
1
)
\text{BPC} = -\frac{1}{N} \sum_{i=1}^{N} \log_2 P(c_i | c_1, ..., c_{i-1})
BPC=−N1i=1∑Nlog2P(ci∣c1,...,ci−1)
跟PPL等价: Perplexity = 2 BPC \text{Perplexity} = 2^{\text{BPC}} Perplexity=2BPC
BPW(bits-per-word)是语言模型评估中的另一个指标,它与BPC(bits-per-character)类似,但区别在于BPW是基于单词(word)的单位来计算的,而BPC是基于字符(character)的单位。
参考unigram_百度百科
父词条:n-gram
unigram: 1个word
bigram: 2个word
trigram : 3个word
(注意此处的word是英文的概念,在中文中可能会根据需要指代字或词)
中文中如果用字作为基本单位,示例:
西安交通大学:
unigram 形式为:西/安/交/通/大/学
bigram形式为: 西安/安交/交通/通大/大学
trigram形式为:西安交/安交通/交通大/通大学 ↩︎
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。