caption重要性 image_Multimodal —— 看图说话(Image Caption)任务的论文笔记(一)评价指标和NIC模型...

看图说话(Image Caption)任务是结合CV和NLP两个领域的一种比较综合的任务,Image Caption模型的输入是一幅图像,输出是对该幅图像进行描述的一段文字。这项任务要求模型可以识别图片中的物体、理解物体间的关系,并用一句自然语言表达出来。

应用场景:比如说用户在拍了一张照片后,利用Image Caption技术可以为其匹配合适的文字,方便以后检索或省去用户手动配字;此外它还可以帮助视觉障碍者去理解图像内容。类似的任务还有Video Caption,输入是一段视频,输出是对视频的描述。

(一)任务描述

目前来说,Image Caption任务主要集中在英文上,数据集包括微软的COCO(CodaLab组织了一个排行榜;本地评测在这里)、Flickr8k、Flickr30k和SBU等。下图是 [1] 给出的统计信息,其中除了SBU外,每个图片都有5个人工参考描述,并且SBU来自用户上传时所配,噪声较大。

此外,今年ACL上出现了日文的数据集。

根据 [1] ,将理解图片和生成描述这两个子任务统一到一起的话,那么Image Caption任务的训练过程可以描述为这个形式:对于训练集的一张图片 $I$ ,其对应的描述为序列 $S=\{S_1,S_2,...\}$(其中 $S_i$ 代表句子中的词)。对于模型 $\theta$ ,给定输入图片$I$ ,模型生成序列 $S$ 的概率为

$$P(S|I;\theta)=\prod_{t=0}^NP(S_t|S_0,S_1,...,S_{t-1},I;\theta)$$

拆解成连乘的形式后,问题就变成了建模条件概率 $P(S_t|S_0,S_1,...,S_{t-1},I;\theta)$ 。通常来说,RNN是当仁不让的第一选择,因为理论上它可以保留全部上文信息(对于“长时依赖”问题,使用LSTM来缓解),而不像 n-gram 或者 CNN 那样只能取一个窗口。

将似然函数取对数,得到对数似然函数:

$$\log P(S|I;\theta)=\sum_{t=0}^N\log P(S_t|S_0,S_1,...,S_{t-1},I;\theta)$$

模型的训练目标就是最大化全部训练样本的对数似然之和:

$$\theta^*=\arg\max_{\theta}\sum_{(I,S)}\log P(S|I;\theta)$$

式中 $(I,S)$ 为训练样本。这种极大似然估计的方式等价于使用对数损失函数的经验风险最小化。

训练好模型后,对于生成过程,则是根据输入的一张图片 $I$ ,推断出最可能的序列来输出:

$$\arg\max_{S}P(S|I;\theta^*)$$

当然,计算全部序列的概率然后选出概率最大的序列当然是不可行的,因为每个位置都有词表规模的词作为候选,搜索规模会随序列的长度而指数级增长,所以需要用beam search来缩小搜索空间。

看到这,想到了什么?是不是机器翻译,自动摘要,encoder-decoder……

(二)评价指标

ok,下面说一下自动评价方法的评价指标。在2015年COCO比赛的排行榜上(C40的意思是每张测试集的图片有40个人工给出的参考caption),可以看到常用的指标是BLEU、Meteor、ROUGE、CIDEr和SPICE。前两个是评测机器翻译的,第三个是评测自动摘要的,最后两个应该是为caption定制的。下面简单介绍一下前四个。

对于英文来说,模型生成的caption和人工给出的参考caption都经过了预处理:词条化(tokenization),去除标点。一般来说,评价生成的序列与参考序列的差异时,都是基于 n-gram 的,进而考察局部性质而非只考察单个词。另外,COCO官方提到 n-gram 中的词没有经过词干还原(stemming,启发式地去掉单词两端词缀)这个步骤。

1. BLEU(BiLingual Evaluation Understudy)

BLEU是事实上的机器翻译评测标准,n 常取1到4,基于准确率(precision)的评测。我们首先看一下它在机器翻译里是怎么做的。以下内容参考自 [6] :

需要明确,在机器翻译中,翻译的评测是以句子为单位的。

(1) 首先来看一个最简单的思路:对于一个源语言句子,计算模型生成的译文中的 n-gram 的个数,然后再计算这些 n-gram 中有多少是同时出现在了参考译文(不止一句)中,从而计算出一个百分比来作为 precision 。

但这样的做法存在一些问题:比如说参考句子1是“the cat is on the mat”,参考句子2是“there is a cat on the

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值