一文全解Image Captioning中常用的自动度量

一文全解Image Captioning中常用的自动度量

为了高效度量image captioning模型的效果,我们需要引入各种自动度量,这些有的是从机器翻译中借鉴的,有的是为了image captioning专门提出的,本文主要介绍几个常用的image captioning metric,它们是BLEU、ROUGE、METEOR、CIDEr和SPICE

Terminology

我们规定将captioner生成的句子称为candidate,将ground truth句子称为reference,并且默认每张图片有多个references(就像COCO数据集中一样),自动度量就是根据算法程序来自动评估candidate和reference的一致性,从而评判模型的优劣

BLEU

BLEU是2002年提出的一个自动度量,它本身是一个机器翻译的自动度量方法

Approach

简单来说BLEU就是一个n-gram precision的度量,它关注的是candidate出现的n-gram是否在reference中出现(即precision),而不关注reference中出现的n-gram,是否在candidate中出现(也就是recall),原文循循善诱,从各种特例一步步引出了最后的BLEU度量,这里简单地重述一下

v1

一个好的candidate,无疑是与所有reference共享很多n-gram的,于是candidate中更多地出现reference中的n-gram,我们就认为它是一个好的candidate,因此,我们选择precision来度量candidate,具体的,对于某个n,先把candidate分成多个n-gram,假设candidate是一句10个词的句子,那么就能分成10-n+1=11-n个n-gram,对于11-n中的每个n-gram,如果它在任何一个reference中出现,则它算是一个正确的n-gram,最后正确的n-gram数除以总的11-n则是最终的结果,比如

  • reference1: The cat is playing on the desk.
  • reference2: The cat is on the table.
  • candidate: The cat is playing on the table.

假设n=2,那么可见candidate中的每个2-gram都在reference中出现过,所以最后的BLEU得分是6/6=1

v2

我们在做二分类的时候就知道,准确率高的模型并不一定好,比如一个癌症二分类模型,99%的数据都是阴性的话,模型只需要全部分类成阴性就能达到99%的准确率,但这显然并不是一个好的模型,所以,仅仅度量准确率是存在很大的问题的,比如

  • reference1: The cat is playing on the desk.
  • reference2: The cat is on the table.
  • candidate: the the the the the the the

显然,在n=1时,BLEU的计算结果是1,但这个candidate显然是不合理的,因此v2的BLEU限制了一个n-gram词(组)被计为正确的最大次数,即不能超过单个reference中该n-gram出现的最大次数,以上面为例就是“the”这个词在单个reference中出现的最大次数是2,因此,candidate中仅有两个“the”被计算为正确,因此,当n=1时,BLEU值为2/7,这在原文中称为modified n-gram precisions

v3

另一个问题就是

  • reference1: The cat is playing on the desk.
  • reference2: The cat is on the table.
  • candidate: the

因为句子太短,这样计算出的BLEU也是1,此时我们想到引入recall来解决这个问题,但是原文中指出了这种方法的困难之处,就是当有多个reference的时候如何度量recall的问题,如果简单要求reference中出现的n-gram在candidate中都要出现,就会遇到下面的情况

  • reference1: I always do.
  • reference2: I invariably do.
  • reference3: I perpetually do.
  • candidate1:I always invariably perpetually do.
  • candidate2: I always do.

显然candidate1的recall比candidate2的recall要大的多的多,但它仅仅是将所有reference中的词都用上了,而一个合理的candidate,应该仅仅选择这些近义词中的一个就可以了

所以为了解决短句问题,同时也避免使用recall,BLEU就增加了一个短句惩罚项(sentence brevity penalty),首先根据candidate的长度 c c c,选择一个最相近的reference句的长度 r r r,计算
B P = { 1 if c>r e ( 1 − r / c ) else BP= \begin{cases} 1& \text{if c>r}\\ e^{(1-r/c)}& \text{else} \end{cases} BP={1e(1r/c)if c>relse
仅在candidate比reference短的时候有惩罚,最后BLEU的计算公式为
B L E U = B P exp ⁡ ( ∑ n = 1 N w n log ⁡ p n ) BLEU = BP\exp\big(\sum_{n=1}^Nw_n\log p_n\big) BLEU=BPexp(n=1Nwnlogpn)
N通常取4, w n w_n wn取1/4,其中 p n p_n pn就是n-gram的precision,注意到这里并不是不同的 p n p_n pn简单相加,而是取了一个log,这是因为作者发现 p n p_n pn随着n的增加大致以指数函数的形式下降,所以使用对数来均衡不同n-gram precision对最终BLEU的影响

ROUGE-L

ROUGE是2004年出来的一篇文章,也是机器翻译的自动度量,文中介绍了很多种不同的ROUGE计算方法,其中在image captioning中主要用到的就是ROUGE-L

Approach

recall

与BLEU相对的,ROUGE是一个recall的度量,首先看单个reference的recall计算,与BLEU的计算方式相似,只不过计算的分母变成了reference中的n-gram总数

  • reference: The cat is on the table.
  • candidate: The cat is playing on the table.

当n=1时,reference中有6个unigram,而candidate中正确的有6个,所以最终的recall值为6/6=1,此时的precision为6/7

当面对多个reference的时候,BLEU的作者认为简单计算recall并不合理,ROUGE的作者用一种简单的方法解决了这个问题,就是拿candidate和每个reference计算recall,取其中最大的一个作为最终的recall值,注意到在这种计算方法下,更多的reference句可能会让ROUGE更大

ROUGE-L

然而,ROUGE-L并没有采用n-gram的recall计算方式,而是采用了最长公共子列,两个sequence的最长公共子列的定义详见网上,ROUGE-L的计算公式为
R l c s = L C S ( X , Y ) m R_{lcs}=\dfrac{LCS(X,Y)}{m}\\ Rlcs=mLCS(X,Y)

P l c s = L C S ( X , Y ) n P_{lcs}=\dfrac{LCS(X,Y)}{n}\\ Plcs=nLCS(X,Y)

F l c s = ( 1 + β 2 ) R l c s P l c s R l c s + β 2 P l c s F_{lcs}=\dfrac{(1+\beta^2)R_{lcs}P_{lcs}}{R_{lcs}+\beta^2P_{lcs}} Flcs=Rlcs+β2Plcs(1+β2)RlcsPlcs
其中 L C S ( X , Y ) LCS(X,Y) LCS(X,Y)就是X和Y的最长公共子列, β = P l c s / R l c s \beta=P_{lcs}/R_{lcs} β=Plcs/Rlcs m m m是reference的长度, n n n是candidate的长度

优点

  • ROUGE-L 使用的是最长公共子列,因此它不需要n-gram的完全匹配,且无需像BLEU中一样预先定义匹配的n-gram的长度
  • ROUGE-L 能够捕捉到句子中的结构特点,因为最大公共子列的匹配是需要参考词序的,这与n-gram简单的相同即匹配的无须匹配方法相比更加合理

缺点

  • ROUGE-L仅仅参考了最长的公共子列,candidate和reference中的其他相同的部分都被省略掉了

METEOR

METEOR是2005年提出的一个机器翻译的自动度量

BLEU的缺点

METEOR开篇就提出了BLEU存在的种种问题,比如

  • 没有recall
  • 使用高阶n-gram来度量语法的合理性是一种indirect的方法
  • 缺少word-to-word matching,两个词只要相同就匹配成功,而不考虑这两个词在两个句子中的位置、组成成分和功能是否一样
  • 使用n-grams评估结果的几何平局,任何一个n-gram的precision为0时,几何平均的结果就是0

而METEOR就为了解决这些问题而生

Approach

METEOR的主要思想就是在candidate和reference之间做一个word-to-word matching,每个word与0个或1个word进行匹配,这个matching的过程主要分为两个步骤

  • 第一步,列出所有可能的matching,有的词可能在candidate中出现了一次,而在reference中出现了两次,那么这个词就有两种可能的matching方法
  • 第二步,在所有可能的matching中选择一个匹配成功词最多的,如果两个matching匹配成功的词一样多,就选择其中crosses最少的那个,crosses被定义为将两个句子写在纸上然后将matching的词连线,最后交叉的线的数量,选择交叉线更少的matching就时认为两句话中matching的词在各自句子中的位置应该尽可能相近

而两个词matching的原则有三种

  • exact,词完全匹配
  • porter stem,词根匹配
  • WN synonymy,同义词

整个matching的过程就分别按照上面的三个原则进行matching,首先进行exact匹配,经过matching的两个步骤后,剩下的没有匹配的词再进行porter stem匹配,以此类推,直到三个步骤执行完毕

匹配完成后,METEOR就计算precision和recall,然后计算Fmean
F m e a n = 10 P R R + 9 P Fmean=\dfrac{10PR}{R+9P} Fmean=R+9P10PR

为了考虑到匹配的长度,作者引入了一个penalty
P e n a l t y = 0.5 × ( # c h u n k s # u n i g r a m s _ m a t c h e d ) Penalty=0.5\times\bigg(\dfrac{\#chunks}{\#unigrams\_matched}\bigg) Penalty=0.5×(#unigrams_matched#chunks)
若candidate中相邻的匹配成功的词在reference中也相邻,则它们组成一个chunk, # c h u n k s \#chunks #chunks代表candidate中chunk数的最小值(因为一个更长的chunk包含短的chunk,所以要取最小值),比如

  • candidate: the president spoke to the audience
  • reference: the president then spoke to the audience

这里candidate的 # c h u n k = 2 \#chunk=2 #chunk=2,一个是"the president"另一个是"spoke to the audience"

# c h u n k s \#chunks #chunks越小时,penalty就越小,这是因为作者不仅希望candidate和reference的匹配成功的词多,而且要有尽可能长的连续的匹配

最终METEOR的计算公式为
S c o r e = F m e a n × ( 1 − P e n a l t y ) Score=Fmean\times(1-Penalty) Score=Fmean×1Penalty

对于多个reference,METEOR选择得分最高的那个

优点

  • METEOR使用word-to-word的unigram匹配方式,考虑到了词在句子中的成分因素和位置因素,比BLEU中单纯的相同词的计数更加合理,在单个词的方面衡量了两个句子的相似程度
  • METEOR引入了chunk计数来进行任意长度的n-gram匹配,在句子结构上衡量了两个句子的相似程度
  • METEOR通过candidate和reference的一对一匹配规避了多reference下recall计算的问题,从而可以计算recall
  • METEOR使用chunk的数量来确定的n-gram匹配,无需指定n的具体值,METEOR的chunk某种程度上对一句话进行了不同n-gram匹配的融合,且可以对任意n实现匹配,从而有很高的灵活性,同时,unigram一对一的关系避免了常用词组在BLEU中多次参与匹配的问题
  • METEOR对unigram采用三个阶段的匹配步骤,从完全匹配到词根匹配再到词义匹配,避免了BLEU中在语义上不同源的常见词多次匹配成功造成的影响

缺点

  • METEOR的第三阶段匹配方式引入了词向量,在实际运行的时候偏慢

CIDEr

CIDEr是2015CVPR的文章,相对BLEU和ROUGE的简单匹配而言,CIDEr的结果参考价值更高

Approach

CIDEr是image captioning特有的自动度量方法,它的基本原理也是n-gram匹配,但它引入了TP-IDF对不同的n-gram加权,先对所有句子进行stemming,将词变成词根的形式,对于不同的n,首先计算n-gram w k w_k wk在整个reference集合上的TF-IDF值
g k ( s i j ) = h k ( s i j ) ∑ w l ∈ Ω h l ( s i j ) log ⁡ ( ∣ I ∣ ∑ I p ∈ I min ⁡ ( 1 , ∑ q h k ( s p q ) ) ) g_k(s_{ij})=\dfrac{h_k(s_{ij})}{\sum_{w_{l}\in\Omega}h_l(s_{ij})}\log\bigg( \dfrac{|I|}{\sum_{I_p\in I}\min(1,\sum_qh_k(s_{pq}))}\bigg) gk(sij)=wlΩhl(sij)hk(sij)log(IpImin(1,qhk(spq))I)
上面就是一个TF-IDF的计算公式,左边是TF,右边是IDF,其中 s i j s_{ij} sij表示第 i i i幅图的第 j j j个reference caption, h k ( s i j ) h_k(s_{ij}) hk(sij),表示 w k w_k wk s i j s_{ij} sij中的出现次数, Ω \Omega Ω是n-gram的vocabulary, I I I是所有图片的集合,对于不同的 w k w_k wk按照上式计算可以得到一个维度和n-gram vocabulary大小一样的向量,这个向量就是第 i i i幅图第 j j j个reference的一个表示,对于生成的candidate计算也是相同,于是对于每个n,我们可以得到一个candidate的向量表示和几个reference的向量表示,然后我们计算它们的平均cosine相似度
C I D E r n ( c i , S i ) = 1 m ∑ j g n ( c i ) ⋅ g n ( s i j ) ∥ g n ( c i ) ∥ ∥ g n ( s i j ) ∥ CIDEr_n(c_i,S_i)=\dfrac{1}{m}\sum_j\dfrac{\mathbf{g^n}(c_i)\cdot\mathbf{g^n}(s_{ij})}{\|\mathbf{g^n}(c_i)\|\|\mathbf{g^n}(s_{ij})\|} CIDErn(ci,Si)=m1jgn(ci)gn(sij)gn(ci)gn(sij)
其中 m m m是reference的个数,于是对于n,我们就求出了reference和candidate的相似度

论文中最终的CIDEr度量综合考虑了1、2、3、4 gram的匹配结果,综合的方法就是求一个平均值
CIDEr ( c i , S i ) = ∑ n = 1 N w n CIDEr n ( c i , S i ) \text{CIDEr}(c_i,S_i)=\sum_{n=1}^{N}w_n\text{CIDEr}_n(c_i,S_i) CIDEr(ci,Si)=n=1NwnCIDErn(ci,Si)
N取4, w n w_n wn 1 4 \dfrac{1}{4} 41

优点

与普通的n-gram匹配方法不同的是,CIDEr引入了TF-IDF为n-gram进行加权,这样就避免评价caption时因为一些常见却不够informative的n-gram打上高分,比如

  • Reference:The book is on the top of the desk.
  • Candidate:The cat is on the top of the shelf.

如果按照普通的n-gram匹配方法,比如bleu或者ROUGE,因为is on the top of 这个很长的短语的存在,自动度量会给candidate打很高的分数,而重要的信息book和desk被改成了cat和shelf对分数的减益并不多,而在CIDEr中,可能因为is on the top of在整个corpus中的出现次数过多,IDF值很低,所以对于最终的评分结果的正向影响会下降

缺点

当我们讨论自动度量时,需要充分分析度量会不会碰到潜在的漏洞,这被称为一个metric的"gaming",一个candidate如果在度量上得分很高但在人类看来有很大的问题,它就是这个度量的一个"gaming",论文最后作者就提出了CIDEr的两个问题

  • CIDEr取词根的操作会让一些动词的原型和名词匹配成功
  • 高confidence的词重复出现的长句的CIDEr得分也很高

为了解决这两个问题,作者提出了CIDEr-D

CIDEr-D

CIDEr-D采用不同的方法来分别解决上面的两个问题

  • 对于动词原形和名词匹配成功的问题,CIDEr-D不再取词根
  • 对于包括高confidence的词的长句,CIDEr-D引入了gaussian penlty来惩罚candidate和reference的句长差别,并且通过对n-gram计数的clip操作不再计算candidate中出现次数超过reference的n-gram

CIDEr-D n ( c i , S i ) = 10 m ∑ j e − ( l ( c i ) − l ( s i j ) ) 2 2 σ 2 × min ⁡ ( g n ( c i ) , g n ( s i j ) ) ⋅ g n ( s i j ) ∥ g n ( c i ) ∥ ∥ g n ( s i j ) ∥ \text{CIDEr-D}_n(c_i,S_i)=\dfrac{10}{m}\sum_je^{\frac{-(l(c_i)-l(s_{ij}))^2}{2\sigma^2}}\times\dfrac{\min(\mathbf{g^n}(c_i),\mathbf{g^n}(s_{ij}))\cdot\mathbf{g^n}(s_{ij})}{\|\mathbf{g^n}(c_i)\|\|\mathbf{g^n}(s_{ij})\|} CIDEr-Dn(ci,Si)=m10je2σ2(l(ci)l(sij))2×gn(ci)gn(sij)min(gn(ci),gn(sij))gn(sij)

CIDEr-D的最终综合计算方法和CIDEr一样,都是1、2、3、4 gram的平均值

其他缺点

这是在SPICE文章中提出的,CIDEr因为引入了TF-IDF而受到整个数据集规模的影响

SPICE

SPICE是2016年ECCV的一篇文章,也是与CIDEr一样的专属于image captioning的、参考意义相对其他度量更高的metric

Approach

SPICE是一个以名词为中心的度量,因此它仅仅适合用于image captioning中,而不是机器翻译度量,SPICE通过度量candidate和reference的scene graph相似度来做到两个句子semantic的匹配

SPICE首先利用semantic parser将candidate和reference转化为scene graph,具体的就是利用Stanford Scene Graph Parser的一个变种从句子中提取出objects,relations和attributes,最终组成一个scene graph,scene graph就是一个图,图上有三类结点,分别是objects、relations和attributes,object与它的attribute相连,object通过relation和其他object相连,如图所示

一文全解Image Captioning中常用的自动度量_第1张图片
每个scene graph的objects、attributes和relations都会分别转化为一元、二元、三元组组成的集合,比如上图,最终会转化为
{(girl),(court),(girl,young),(girl,standing),(court,tennis),(girl,on-top-of,court)}

然后,比较candidate和reference集合中元组的precision、recall,最终计算出F1 score

优点

  • 不再是仅仅度量n-gram,而是更加注重semantic的一致性
  • 每个句子映射到scene graph后可以从中提取出caption model关于某些relationship或者attribute的识别能力

缺点

  • 缺少n-gram来度量句子的流畅性(fluency)
  • 度量的准确性受到semantic parser的制约,同时给了SPICE提升空间

总结

metric year paper key idea multiple reference
BLEU 2002 ACL n-gram precision precision根据所有reference计算
ROUGE-L 2004 Longest common subsequence 逐个匹配,取最大的
METEOR 2005 word-to-word mapping 逐个匹配,取最大的
CIDEr 2015 CVPR TF-IDF n-gram vector cosine similarity Average
SPICE 2016 ECCV scene graph similarity

references

1.BLEU: a Method for Automatic Evaluation of Machine Translation
2.ROUGE: A Package for Automatic Evaluation of Summaries
3.METEOR: An Automatic Metric for MT Evaluation with Improved Correlation with Human Judgments
4.CIDEr: Consensus-based Image Description Evaluation
5.SPICE: Semantic Propositional Image Caption Evaluation

你可能感兴趣的:(一文全解Image Captioning中常用的自动度量)