1.Perplexity
Perplexity(困惑度)是衡量语言模型预测能力的指标。它是给定一个测试集后,模型为了预测该测试集上的下一个词,所需要的平均困惑度。困惑度越低,模型的预测效果越好。
公式:
P
e
r
p
l
e
x
i
t
y
=
2
−
1
N
∑
i
=
1
N
l
o
g
2
P
(
w
i
∣
w
1
,
w
2
,
.
.
.
,
w
i
−
1
)
Perplexity = 2^{-\frac{1}{N}\sum_{i=1}^{N}log_2P(w_i|w_1,w_2,…,w_{i-1})}
P
er
pl
e
x
i
t
y
=
2
−
N
1
∑
i
=
1
N
l
o
g
2
P
(
w
i
∣
w
1
,
w
2
,
…
,
w
i
−
1
)
其中,
N
N
N
为测试集中的词数,
P
(
w
i
∣
w
1
,
w
2
,
.
.
.
,
w
i
−
1
)
P(w_i|w_1,w_2,…,w_{i-1})
P
(
w
i
∣
w
1
,
w
2
,
…
,
w
i
−
1
)
是给定前
i
−
1
i-1
i
−
1
个词的条件下预测第
i
i
i
个词的概率。
举例:假设测试集中有100个词,我们的语言模型在预测这些词时,平均每个词的困惑度为10。则该模型的Perplexity为
2
−
1
100
∑
i
=
1
100
l
o
g
2
P
(
w
i
∣
w
1
,
w
2
,
.
.
.
,
w
i
−
1
)
=
2
10
=
1024
2^{-\frac{1}{100}\sum_{i=1}^{100}log_2P(w_i|w_1,w_2,…,w_{i-1})} = 2^{10} = 1024
2
−
100
1
∑
i
=
1
100
l
o
g
2
P
(
w
i
∣
w
1
,
w
2
,
…
,
w
i
−
1
)
=
2
10
=
1024
。
2.BLEU
BLEU(双语评估下的语言理解度)是用于自然语言生成任务的评估指标。它通过计算生成的句子与参考答案之间的n-gram重叠度来衡量生成结果的质量。BLEU的值越高,表示生成结果越接近参考答案。
公式:
B
L
E
U
=
B
P
⋅
e
x
p
(
∑
n
=
1
N
w
n
l
o
g
p
n
)
BLEU = BP \cdot exp(\sum_{n=1}^Nw_nlogp_n)
B
L
E
U
=
BP
⋅
e
x
p
(
∑
n
=
1
N
w
n
l
o
g
p
n
)
其中,
B
P
BP
BP
是长度惩罚项,用于惩罚过长或过短的句子。
w
n
w_n
w
n
是n-gram的权重,
p
n
p_n
p
n
是生成句子与参考答案中n-gram的匹配度。
举例:假设生成的句子为”the cat is on the mat”,参考答案为”there is a cat on the mat”。假设n-gram权重为
(
0.25
,
0.25
,
0.25
,
0.25
)
(0.25,0.25,0.25,0.25)
(
0.25
,
0.25
,
0.25
,
0.25
)
,则BLEU为
e
x
p
(
0.25
l
o
g
0.5
+
0.25
l
o
g
(
1
4
)
+
0.25
l
o
g
(
1
4
)
+
0.25
l
o
g
(
1
4
)
)
=
0.386
exp(0.25log0.5 + 0.25log(\frac{1}{4}) + 0.25log(\frac{1}{4}) + 0.25log(\frac{1}{4})) = 0.386
e
x
p
(
0.25
l
o
g
0.5
+
0.25
l
o
g
(
4
1
)
+
0.25
l
o
g
(
4
1
)
+
0.25
l
o
g
(
4
1
))
=
0.386
。
3.ROUGE
ROUGE(Recall-Oriented Understudy for Gisting Evaluation)是用于自然语言生成任务的评估指标。它通过计算生成的句子与参考答案之间的n-gram重叠度来衡量生成结果的质量。ROUGE与BLEU的计算方法类似,但是ROUGE更注重召回率,因此它更适合于评估生成的文本质量。
公式:
R
O
U
G
E
n
=
∑
r
∈
R
∑
g
∈
G
l
c
s
n
(
r
,
g
)
∑
r
∈
R
∑
g
∈
G
(
∣
r
∣
+
1
−
n
)
⋅
[
l
c
s
n
(
r
,
g
)
>
0
]
ROUGE_n = \frac{\sum_{r \in R}\sum_{g \in G}lcs_n(r,g)}{\sum_{r \in R}\sum_{g \in G}(|r|+1-n) \cdot [lcs_n(r,g) > 0]}
RO
U
G
E
n
=
∑
r
∈
R
∑
g
∈
G
(
∣
r
∣
+
1
−
n
)
⋅
[
l
c
s
n
(
r
,
g
)
>
0
]
∑
r
∈
R
∑
g
∈
G
l
c
s
n
(
r
,
g
)
其中,
R
R
R
为参考答案的集合,
G
G
G
为生成结果的集合,
l
c
s
n
(
r
,
g
)
lcs_n(r,g)
l
c
s
n
(
r
,
g
)
为参考答案和生成结果中n-gram的最长公共子序列的长度。
举例:假设参考答案为”the cat is on the mat”,生成结果为”there is a cat sleeping on the mat”,并且
n
=
2
n=2
n
=
2
。则lcs为”the cat on the mat”,长度为5。参考答案和生成结果中所有长度大于等于2的n-gram共有8个,因此ROUGE2为
5
8
=
0.625
\frac{5}{8}=0.625
8
5
=
0.625
。
4.METEOR
METEOR(Metric for Evaluation of Translation with Explicit ORdering)是用于自然语言生成任务的评估指标。它通过计算生成的句子与参考答案之间的词汇、语法和语义等多个方面的相似度来衡量生成结果的质量。
公式:
M
E
T
E
O
R
=
α
⋅
p
r
e
c
+
(
1
−
α
)
⋅
r
e
c
a
l
l
β
⋅
p
r
e
c
+
(
1
−
β
)
⋅
r
e
c
a
l
l
METEOR = \frac{\alpha \cdot prec + (1-\alpha) \cdot recall}{\beta \cdot prec + (1-\beta) \cdot recall}
METEOR
=
β
⋅
p
rec
+
(
1
−
β
)
⋅
rec
a
ll
α
⋅
p
rec
+
(
1
−
α
)
⋅
rec
a
ll
其中,
p
r
e
c
prec
p
rec
和
r
e
c
a
l
l
recall
rec
a
ll
分别为精确率和召回率,
α
\alpha
α
和
β
\beta
β
为权重。
举例:假设参考答案为”the cat is on the mat”,生成结果为”there is a cat sleeping on the mat”,并且
α
=
0.5
\alpha=0.5
α
=
0.5
,
β
=
3
\beta=3
β
=
3
。则精确率为
3
6
=
0.5
\frac{3}{6}=0.5
6
3
=
0.5
,召回率为
3
4
=
0.75
\frac{3}{4}=0.75
4
3
=
0.75
,METEOR为
0.5
⋅
0.5
+
0.5
⋅
0.75
3
⋅
0.5
+
0.75
=
0.39
\frac{0.5 \cdot 0.5 + 0.5 \cdot 0.75}{3 \cdot 0.5 + 0.75} = 0.39
3
⋅
0.5
+
0.75
0.5
⋅
0.5
+
0.5
⋅
0.75
=
0.39
。
5.CIDEr
CIDEr(Consensus-based Image Description Evaluation)是用于图像描述任务的评估指标。它通过计算生成的句子与参考答案之间的n-gram相似度来衡量生成结果的质量。
公式:
C
I
D
E
r
=
1
M
∑
i
=
1
M
1
∣
D
i
∣
∑
j
=
1
∣
D
i
∣
∑
n
=
1
N
m
i
n
(
c
(
w
n
,
d
i
j
)
,
k
)
∣
w
n
∣
CIDEr = \frac{1}{M} \sum_{i=1}^M \frac{1}{|D_i|} \sum_{j=1}^{|D_i|} \sum_{n=1}^N\frac{min(c(w_n,d_{ij}),k)}{|w_n|}
C
I
D
E
r
=
M
1
∑
i
=
1
M
∣
D
i
∣
1
∑
j
=
1
∣
D
i
∣
∑
n
=
1
N
∣
w
n
∣
min
(
c
(
w
n
,
d
ij
)
,
k
)
其中,
M
M
M
为测试集中的图像数,
D
i
D_i
D
i
为第
i
i
i
个图像的参考答案集合,
d
i
j
d_{ij}
d
ij
为第
i
i
i
个图像的第
j
j
j
个参考答案,
c
(
w
n
,
d
i
j
)
c(w_n,d_{ij})
c
(
w
n
,
d
ij
)
为第
i
i
i
个图像的第
j
j
j
个参考答案和生成结果中n-gram的数量,
k
k
k
为截断因子。
举例:假设有一张图像和两个参考答案:“the cat is on the mat”和”the cat is sleeping on the mat”,生成结果为”there is a cat sleeping on the mat”,并且
n
=
2
n=2
n
=
2
,
k
=
6
k=6
k
=
6
。则共有5个2-gram,其中2个在第一个参考答案中出现,2个在第二个参考答案中出现,1个在生成结果中出现。因此,
c
(
w
n
,
d
i
j
)
c(w_n,d_{ij})
c
(
w
n
,
d
ij
)
的值为
(
2
,
2
,
0
)
(2,2,0)
(
2
,
2
,
0
)
。由于
k
=
6
k=6
k
=
6
,因此
m
i
n
(
c
(
w
n
,
d
i
j
)
,
k
)
min(c(w_n,d_{ij}),k)
min
(
c
(
w
n
,
d
ij
)
,
k
)
的值为
(
2
,
2
,
0
)
(2,2,0)
(
2
,
2
,
0
)
。假设生成结果中共有8个词汇,因此
∣
w
n
∣
|w_n|
∣
w
n
∣
的值为
7
7
7
。则CIDEr为
1
1
⋅
1
2
⋅
(
2
7
+
2
7
+
0
7
)
=
0.286
\frac{1}{1} \cdot \frac{1}{2} \cdot (\frac{2}{7} + \frac{2}{7} + \frac{0}{7}) = 0.286
1
1
⋅
2
1
⋅
(
7
2
+
7
2
+
7
0
)
=
0.286
。
6.MoverScore
MoverScore是用于评估生成的文本和参考答案之间语义距离的评估指标。它将文本看做是由一组语义单元组成的序列,并计算生成结果中需要重新排序的最小单元数。
公式:
M
o
v
e
r
S
c
o
r
e
=
1
N
∑
i
=
1
N
min
j
=
1
M
d
(
s
i
,
t
j
)
MoverScore = \frac{1}{N}\sum_{i=1}^N \min_{j=1}^M d(s_i, t_j)
M
o
v
er
S
core
=
N
1
∑
i
=
1
N
min
j
=
1
M
d
(
s
i
,
t
j
)
其中,
N
N
N
为生成结果中语义单元的数量,
M
M
M
为参考答案中语义单元的数量,
d
(
s
i
,
t
j
)
d(s_i, t_j)
d
(
s
i
,
t
j
)
为从生成结果中的语义单元
s
i
s_i
s
i
到参考答案中的语义单元
t
j
t_j
t
j
的最小编辑距离。
举例:假设参考答案为”the cat is on the mat”,生成结果为”there is a cat sleeping on the mat”,并且参考答案和生成结果中均存在3个语义单元,即”the cat”, “is on”, “the mat”。假设将”there is a cat”看做一个语义单元,则生成结果中共有3个语义单元。参考答案中仅有1个语义单元与生成结果中的语义单元匹配,即”the cat”。因此,MoverScore为
1
3
⋅
min
(
d
(
”
t
h
e
c
a
t
”
,
”
t
h
e
c
a
t
”
)
,
d
(
”
i
s
o
n
t
h
e
m
a
t
”
,
”
t
h
e
c
a
t
”
)
,
d
(
”
i
s
o
n
t
h
e
m
a
t
”
,
”
t
h
e
m
a
t
”
)
)
=
1
3
⋅
1
=
0.333
\frac{1}{3} \cdot \min(d(“the cat”, “the cat”), d(“is on the mat”, “the cat”), d(“is on the mat”, “the mat”)) = \frac{1}{3} \cdot 1 = 0.333
3
1
⋅
min
(
d
(
”
t
h
ec
a
t
”
,
”
t
h
ec
a
t
”
)
,
d
(
”
i
so
n
t
h
e
ma
t
”
,
”
t
h
ec
a
t
”
)
,
d
(
”
i
so
n
t
h
e
ma
t
”
,
”
t
h
e
ma
t
”
))
=
3
1
⋅
1
=
0.333
。
总结:以上五种指标都有其优缺点,应该根据具体任务和应用场景选择合适的指标进行评估。同时,不同指标之间也存在一定的相关性,可以通过综合多个指标来评估生成结果的质量。