文本生成评估指标

  • Post author:
  • Post category:其他




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





总结:以上五种指标都有其优缺点,应该根据具体任务和应用场景选择合适的指标进行评估。同时,不同指标之间也存在一定的相关性,可以通过综合多个指标来评估生成结果的质量。



版权声明:本文为Weirdo3原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。