MultiCapCLIP Auto-Encoding Prompts for Zero-Shot Multilingual Visual Captioning

本文最后更新于:2023年10月24日 上午

MultiCapCLIP: Auto-Encoding Prompts for Zero-Shot Multilingual Visual Captioning

论文链接:2023.acl-long.664

代码链接:yangbang18/MultiCapCLIP: (ACL’2023) MultiCapCLIP: Auto-Encoding Prompts for Zero-Shot Multilingual Visual Captioning (github.com)

北大和鹏城实验室在ACL2023发表的一篇论文,介绍了一种zero-shot的多语言Captioning的方法(MultiCapCLIP),其训练时使用目标域的文本语料进行重构式的训练,预测时将输入直接替换为图片,就可以生成Caption。

接下来介绍其方法:

方法

图1是MultiCapCLIP的架构,训练时进行SPS\mathcal{S} \rightarrow \mathcal{P} \rightarrow \mathcal{S}的流程,是一种auto-encoding,其中S是文本域,P是视觉概念域,预测时则进行VPS\mathcal{V} \rightarrow \mathcal{P} \rightarrow \mathcal{S},其中V是视觉域。

首先,对于一个语料库,作者使用spaCy提取文本最常见的1000个名词组成visual concepts,然后不用prompt直接使用CLIP获取其embedding,得到C={c1,...,c1000}C=\{ c_1,...,c_{1000} \}

训练时,对于一句话SS,提取CLIP特征为ftf_t,然后获取距离ftf_t最近的K个visual concept为PP,经过ω()\omega(\cdot)映射维度作为Text Decoder的前一部分输入。第二部分输入则是prompt加上位置编码和语言编码。同时ftf_t还会通过交叉注意力参与Text Decoder的解码。

预测时,把ftf_t改成图像的embedding就可以。

为了更好的效果,作者还进行了augmentation。因为在Mind the gap: Understanding the modality gap in multi-modal contrastive representation learning论文中指出视觉和语言在CLIP的空间中仍然是具有modality gap的,所以作者进行了input augmentation(IA)和feature augmentation(FA)两方面来提升泛化性。

IA就是把输入的句子S随机替换为语料库中最相近的N个句子之一,FA则是在ftf_t上添加一个高斯噪声。

实验

实验在图像和视频的Caption数据集上进行(MS-COCO、MSR-VTT、VATEX-CN)

image-20230917151019350

通过比较可知Zero-shot的方法普遍是比不过弱监督的,但是MultiCapCLIP却有很大的提升。Zero-Shot方面本文方法也超过了之前介绍的ZeroCap,毕竟人家没有用文本数据来训练。同样只使用文本,这篇论文方法超过了MAGIC。同时,在中文数据集上没什么可以比较的,但是比他们自己构建的Baseline还是高。

然而,这里用的都是监督的指标,在Zero-shot方面可能使用无监督的指标(BERT-Score、CLIP-Score)也会有一些参考价值。

上表则是In-Domain的比较,即使用了语料库和图像库进行训练,但是没有利用其配对信息。在COCO的CIDEr上达到了96.2,已经是非常不错的成绩了,但是距离监督的还有很大差距。MSR-VTT的CIDEr也是有差距。中文的VATEX上达到了19年的监督学习的Baseline水平。

消融实验可以发现在Out-of-Domain中,单独使用FA的效果很差,结合以后则更好。动词的概念没有单独用名词概念好。

定性实验如上,concept的识别还是比较准确,但是感觉动词都是根据名词概念脑补出来的。