DataSet

DataSet 分为 Single image generation 的

Image Caption

DataSet Scale categories generations
UIUC Pascal Sentence 1000 20 5
Flickr 8k 8000 - 5
Flickr 30k 8000 - 5
Microsoft CoCo 120000 91 -
Abstract Scence Dataset 10000 - -
Visual Genome Dataset - - -
Krause - - -
Kong - - -

Video Caption

DataSet Scale
TACoS 127
YouCook 88
LSMDC 200

Referring Expression

只介绍了两篇论文:

Modeling Context in Referring Expressions

Generation and Comprehension of Unambiguous Object Descriptions

Measure

首先回忆一下准确率和召回率

其中,P/N 是自己的判断,T/F 是真实的对于判断的衡量

BLEU

n-gram based precision

首先 BLEU 是基于 n-gram 匹配的,也就是对于一个长为 N 的句子,有 $(N-n+1)$ 个 n-gram 组合,提取出这个句子的某个 n-gram 组合,然后计算这个 n-gram 的 precision,一个直观的方法就是计算 n-gram 在目标中也就是 groundtruth(NLP 里面我们称为 reference)是否有出现,然后统计所有的 n-gram 组合。

这个方法其实是有 bug 的。。。我们先来看一个 unigram(也就是 1-gram)的例子:

Candidate(预测结果):the the the the the the the.

Reference 1: The cat is on the mat.

Reference 2: There is a cat on the mat.

用最简单的方法,7 个 1-gram 都出现在了任意一个 reference 中,于是正确率是 $100\%$,但是,这是明显不合理的。。所以我们要把 n-gram 在 Candidate 中的出现次数也考虑进去,并当作分母。同时,取 1-gram 在所有 reference 中出现的最多的次数 $max(1,2) = 2$,之后 reference 中的统计和 candidate 中的统计取一个最小值作为分子 $min(2,7) = 2$,于是最后的正确率就是 $\frac{2}{7}$。

下面给出,总的正确率公式,这个方法论文里面给出的公式真的不忍直视。。。。于是找了一种比较好的公式写法

a:candidate sentence

b:所有的 reference sentence

$w_n$:某个 n-gram 组合

$c_x(y_n)$:在句子 x 中统计 n-gram $y_n$ 出现的次数

$BLEU_n$ 下面的 n 和 n-gram 中的 n 对应

BLEU 是 $BLEU_1$ 到 $BLEU_4$ 平均数

单单上面的公式还有是问题的,对于某个 candidate:

Candidate(预测结果):The cat is on the

这个句子明显是不完整的,但是依然可以计算出是满分。。所以我们要对于短的句子做一个惩罚

$l_c$:是 candidate 的长度

$l_r$:是 reference 中最短句子的长度

我们再对不同的 n-gram 加上一个权值,就是最终的评判公式了:

缺点

  • 对于 n-gram 的出现顺序没有约束
  • 每一个 n-gram 都被相同对待,没有主次之分

Rouge

n-gram based Recall

分母是对于 reference 中所有的 n-gram 的统计

分子是 candidate 中的 n-gram 与 reference 中的匹配

Rouge-L

L 即是 LCS(longest common subsequence,最长公共子序列) 的首字母

METEOR

Meteor也是来评测机器翻译的,对模型给出的译文与参考译文进行词对齐,计算词汇完全匹配、词干匹配和同义词匹配等各种情况的准确率、召回率和F值。

首先计算 unigram 情况下的准确率 P 和召回率 R(计算方式与BLEU、ROUGE类似),得到调和均值(F值)

Meteor的特别之处在于,它不希望生成很“碎”的译文:比如参考译文是“A B C D”,模型给出的译文是“B A D C”,虽然每个 unigram 都对应上了,但是会受到很严重的惩罚。惩罚因子的计算方式为

式中的 $#chunks$ 表示匹配上的语块个数,如果模型生成的译文很碎的话,语块个数会非常多;$#unigrams matched$ 表示匹配上的 unigram 个数。所以最终的总的评分公式为:

CIDEr

这个指标将每个句子都看作“文档”,将其表示成 tf-idf 向量的形式,然后计算参考caption与模型生成的caption的余弦相似度

在这里,$g^n(x)$ 是句子 x 的所有 n-gram 的 TF-IDF scores 的向量化

最后的总的分数可以写成:

SPICE

上面讲到的这些衡量方式多数用于机器翻译的,而且依旧存在不足的地方,下图用传统的方式衡量,首先看左边的,其实是描述两张不同的图片,但是他们的描述用传统的方式相似度很大,结果是 FP,又比如右图,我们看到两个描述都是合理的,但是,由于相似度比较低,所以就没有判成正例。。

。。。。未完待续

Reference

https://www.cnblogs.com/Determined22/p/6910277.html

.