Image Captioning常用指标CIDEr原理
本文最后更新于:2023年3月16日 下午
Image Captioning常用指标CIDEr原理
CIDEr是论文CIDEr: Consensus-based Image Description Evaluation提出的一种评价模型生成的一个文本与多个标签文本的相似度的方法,本文对其原理进行介绍。
先定义一些符号:模型对于图像生成的文本,对应的标签为,是n-gram的单词,当n=1时就是单词,n=2时将两个单词看作一个整体作为一个2-gram的单词,以此类推,所有的组成了n-gram词表。
在开始之前,所有文本中的单词都会转换成其最初的形式,比如把“fishes”、“fishing”、“fished”转换成“fish”,这个地方算是预处理。
随后计算文本中每个n-gram的TF-IDF值(后面的叙述把n-gram写作单词):TF-IDF是TF(词频)与IDF(逆文档频率)的乘积。其中TF是当前文本单词出现次数 / 当前文本总词数
,衡量单词的重要性(越常出现的单词越重要)。IDF是log(文本总数量 / 出现了单词的文本数量)
,衡量单词的稀有性(任何地方都会出现的单词不重要,比如“的”、“地”),当某个词出现在了所有文档中时,IDF就是0,特别地当一个词没有出现在任何文本中,那么IDF也为0。
在Caption的计算中,IDF的“文本总数量”是图像的个数。
所以对于每个文本(模型输出和GT)都可以计算出其所包含所有的n-gram对应的TF-IDF,这些组成一个向量,向量的理论长度是所有的n-gram(以1-gram为例,长度是所有出现过的单词的数量),但是其中大部分为0。然后模型输出和每个对应的GT之间计算余弦相似度。
相似度得到之后,就可以在所有GT间平均,然后在所有n-gram的尺度平均,再在所有图像的尺度平均得到最终的指标。
⚠️假如只有一个图像,是无法计算CIDEr的,因为IDF始终为0。
⚠️换言之,CIDEr与评价的数量有关系……
实例
1 |
|
统计Image 1的模型输出词频:a:2
,girl:1
,……,a girl: 1
,……,to upload a music:1
。
对于a
,TF是2,IDF是,因为它出现在了Image1的GT和Image2的GT中所以分母是2,最终TF-IDF是0。
对于girl
,TF是1,IDF是,因为girl没有出现在任何GT中,但为了分母不为0加上了1,最终TF-IDF是。
对于explaining
,出现在了一个GT中,所以IDF的分母是1,和上面一样。
最后得到结果如下(只列出1-gram):
1 |
|
对GT的每一个文本也进行如上的统计,第一个GT的结果如下:
1 |
|
他们之间计算点乘相似性,即对于模型输出里面的每一个词,在GT中找到对应词的权重(没有就是0),然后相乘。上面这个GT是没有相似性的,我们再找一个:
1 |
|
可以发现,explaining
、how
是可以计算相似性的:
所以Image1的输出与第二个GT的1-gram相似度就是0.4472,其余同理。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!