参考文献:《CIDEr: Consensus-based Image Description Evaluation》
CIDEr是专门用于评价图像描述(image caption)任务的评价指标,当然用于其他相关文本生成类任务也是可以的。相较于常用于文本翻译的评价指标BLEU、ROUGE来说,CIDEr更接近人类去判断两个句子是否相近的原理,因为它利用了TF-IDF来对不同n-gram去赋予不同的权重,直观的来说,即经常出现的词组的权重具有更低的权重,而不常出现的词组则更特殊(具有更大的权重),人们会更注意这些特殊的单词。
例如:
I go to the garden this afternoon.
上述句子中,类似于go to这样的表达是比较常见的,而garden则不会经常出现,需要重点关注。
CIDEr的一个重要思想就是基于TF-IDF去给不同的n-gram赋予不同的权重,TF-IDF的计算公式如下:
g
k
(
s
i
j
)
=
h
k
(
s
i
j
)
∑
w
l
∈
Ω
log
(
I
∑
I
p
∈
I
min
(
1
,
∑
q
h
k
(
s
p
q
)
)
)
g_k(s_{ij})=\frac{h_k(s_{ij})}{\sum_{w_l\in\Omega}}\log(\frac{I}{\sum_{I_p\in{I}}\min(1,\sum_qh_k(s_{pq})) })
gk(sij)=∑wl∈Ωhk(sij)log(∑Ip∈Imin(1,∑qhk(spq))I)
其中,
用于计算n-gram的CIDEr_n的计算公式如下:
CIDEr
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
∥
\text{CIDEr}_n(c_i,S_i)=\frac{1}{m}\sum_j\frac{g^n(c_i)\cdot g^n(s_{ij})}{\parallel g^n(c_i)\parallel \parallel g^n(s_{ij}\parallel }
CIDErn(ci,Si)=m1∑j∥gn(ci)∥∥gn(sij∥gn(ci)⋅gn(sij)
和BLEU、ROUGE一样,CIDEr也可以计算不同n-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
N=4
N=4.
至此,CIDEr的计算公式就出来了。但是单看上述公式,CIDEr的最大值应该为1对吧,但是很多文献中都出现了CIDEr大于1的情况,这是为什么呢?
因为原作者还额外考虑到了有时候会出现不常见单词重复很多次会得到更高的分数的情况,引入了高斯惩罚,并限制预测结果中多次出现某个单词的次数,得到了CIDEr-D!
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)=\frac{10}{m}\sum_je^{\frac{-(l(c_i)-l(s_{ij}))^2}{2\delta^2}}\cdot \frac{\min(g^n(c_i),g^n(s_{ij}))\cdot g^n(s_{ij})}{\parallel g^n(c_i)\parallel \parallel g^n(s_{ij}\parallel }
CIDEr-Dn(ci,Si)=m10∑je2δ2−(l(ci)−l(sij))2⋅∥gn(ci)∥∥gn(sij∥min(gn(ci),gn(sij))⋅gn(sij)
可以看到由于前面增加了一个10的倍数,所以理论上CIDEr-D的最大值应该是10,而不是1,这也是一些文献中CIDEr的值大于1的原因啦!