来自剑桥大学、腾讯 AI Lab 等机构的研究者提出了一个全新的框架 MAGIC (iMAge-guided text GeneratIon with CLIP),MAGIC 通过直接插入可控图文匹配模型分数的方式,使得语言模型在解码过程中选择更接近图片信息的生成结果。
1. 导读
本文提出了一个全新的 MAGIC (iMAge-guided text GeneratIon with CLIP)框架。该框架可以使用图片模态的信息指导预训练语言模型完成一系列跨模态生成任务,例如 image captioning 和 visually grounded story generation。与其他方法不同的是,MAGIC 框架无需多模态训练数据,只需利用现成的语言模型(例如 GPT-2)和图文匹配模型(例如 CLIP)就能够以 zero-shot 的方式高质量地完成多模态生成任务。此外,不同于使用梯度更新生成模型 cache 的传统方法,MAGIC 框架无需梯度更新,因而具备更高效的推理效率。
2. 研究背景以及目的
借助日益强大的预训练语言模型,我们已经可以根据文本前缀生成一段流利文本。当前,绝大多数工作的主要研究方向集中于利用文本模态的前缀来生成后续文本的方法。然而,如何有效利用其他模态的信息(例如图片)来指导预训练语言模型生成高质量的文本,仍然是一个待解决的难题。
目前,针对此类问题最常见的解决思路是在收集好的高质量多模态平行数据的基础上,训练多模态的模型来完成特定的跨模态任务。例如,我们可以在图文匹配的标注数据集上,通过监督学习的方法训练 image captioning 模型,从而根据输入图片生成对应的文本描述。
但是,该方法存在标注数据获取困难的弊端,并不适合所有应用场景。为了解决这一难题,许多研究者提出了一系列弱监督的方法。而这类方法也有其弊端,它们会受到不同多模态任务的特定限制。例如,在 image captioning 任务中,弱监督的方法需要使用特定的目标检测器,来收集图片内可识别目标的标签信息。然而,当图片中包含目标检测器无法识别的物体 (out-of-domain object) 时,弱监督方法的有效性就会大打折扣。
为了摆脱对目标检测器的依赖从而真正实现 zero-shot 跨模态文本生成,ZeroCap[1]提出在推理阶段通过梯度更新的方式修正生成语言模型内部的隐状态,从而使生成的文本描述和图片内容尽可能接近。但是,这一方法也有其弊端,通过多次迭代梯度更新来调整模型的内部隐状态,在当前预训练语言模型参数量越来越大的趋势下,其运行效率会变得越来越低,严重限制了该方法在实际场景中的应用。
本文提出了一个全新的 MAGIC 框架。MAGIC 通过直接插入可控的图文匹配模型分数的方式,使得语言模型在解码过程中选择更接近图片信息的生成结果。这样,语言模型可以在不经过任何跨模态训练的情况下,高质量地解决跨模态生成任务,得到明显优于弱监督模型的文本生成质量。同时,与 ZeroCap 相比,MAGIC 还拥有接近 27 倍的推理速度提升。
3. 研究方法
3.1 无监督语言建模
为了适应特定跨模态任务的文本领域,该研究预先使用了跨模态训练数据集中的文本数据,采取无监督的方式更新语言模型的参数(仅需在 1 块 NVIDIA 1080Ti 上运行不到两个小时),从而使得语言模型更加熟悉该领域的文本分布。具体而言,本文使用 MLE 损失函数训练语言模型的参数:
此外,SimCTG[2]的最新工作证明了通过引入对比损失来校准模型的语义空间,能够获得质量更高的语言模型。因此,本文也同时优化如下的对比损失:
其中 是用来校准生成模型表示空间的 margin 参数,用来计算 token 表示之间的余弦相似度。最终,本文将两个损失函数合并,以此来优化文本模态的 GPT-2 语言模型:
3.2 MAGIC Search
本文提出了 MAGIC Search 解码算法。MAGIC 使用视觉信息指导预训练语言模型的生成过程。具体而言,给定文本前缀 和图片,第 t 步的 token 选择公式如下:
其中表示按照语言模型概率分布选择的 top-k 个候选 token。同时,该研究借鉴了 SimCTG 中 contrastive search 的思路,在 token 选择指标中引入了 model confidence 和 degeneration penalty 项来使得模型选择更合适的 token。上述公式中最重要的一项是将视觉控制信息引入到模型解码过程中的 magic score:
其中是 CLIP 的 image encoder 产生的图片表示,是 CLIP 的 text encoder 产生的文本表示。参数用来调节视觉信息的控制力度。当其值为 0 时,语言模型的生成过程不再被视觉信息所影响,从而 magic search 退化为传统的 contrastive search。
4. 实验结论
4.1 Zero-shot Image Captioning
4.1.1 实验设置
本文在 MS-COCO 和 Flickr30k 数据集上进行了大量的实验,并选用以下的无监督 baseline 进行对比:
1.top-k sampling:不基于图片信息,用 top-k 解码方法使用语言模型来生成 caption2.nucleus sampling:不基于图片信息,用 nucleus 解码方法使用语言模型生成 caption3.contrastive search:不基于图片信息,用 contrastive search 解码方法使用语言模型来生成 caption4.CLIPRe:使用 CLIP 模型从 MS-COCO 或 Flickr30k 的训练数据中检索文本数据5.ZeroCap:在解码过程中,使用 CLIP 信息来指导语言模型梯度更新的方法
值得注意的是 top-k sampling, nucleus sampling 和 contrastive search 解码方法因为不基于图片信息,所以可看作是文本生成模型在跨模态任务上的性能下界。此外,本文还选取了一批监督和弱监督的方法来进行对比。
对于评价方法,本文采用 image captioning 中经典的评价指标:BLEU-1, BLEU-4, METEOR, ROUGE-L, CIDEr 和 SPICE,同时也测试了不同模型的相对解码速率。
4.1.2 MS-COCO 和 Flickr30k 实验结果
如上图所示,本文发现当忽视 captions 的信息,只使用语言模型进行生成时效果并不好(Top-k, Nucleus, Contrastive),这说明没有对应的图片信息,只依靠语言模型很难完成这个跨模态的任务。CLIPRe 方法效果虽然显著好于 Top-k 等纯文本解码方法,但仍然弱于当前 SOTA 无监督方法,ZeroCap,这是由 training set 和 test set 之间的数据差异所造成。这也证明了检索模型在该任务上效果弱于生成模型。
本文 MAGIC 的生成结果显著优于 ZeroCap,展示了 MAGIC 框架的有效性。并且因为 MAGIC 完全不依赖于梯度更新,其解码速度比 ZeroCap 快接近 27 倍。
4.1.3. 跨领域实验结果
此外,本文还进行了跨领域实验以进一步测试 MAGIC 的泛化能力。具体而言,本文使用在源领域(例如 MS-COCO)上得到的无监督语言模型,在目标领域(例如 Flickr30k)的测试集上进行实验。本文在该实验中对比无监督解码方法和 CLIPRe。其中 CLIPRe 的检索数据集仅来自于源领域的训练集,实验结果如下:
从表格中结果可以发现,MAGIC 远好于纯文本解码方法和 CLIPRe 强 baseline。
4.1.4. Case Study
该研究通过一些例子来定性的对比 baseline 和本文方法:
这几个例子显示出 MAGIC 不仅能够生成非常流利的文本,同时其生成文本中的信息和图片模态的关联性也更强。例如图 (a) 中,MAGIC 可以准确的生成 “building”,但是 ZeroCap 却生成了“school bus” 这个无关的结果。此外,图 (d) 中,虽然 ZeroCap 生成了 “boatboard” 这一相关词汇,但其语句流利度低,并且存在语法错误。相比之下,MAGIC 生成的文本在通顺流畅的同时,也与图片显示的内容一致。
4.2 基于视觉的故事生成
除了 image captioning 任务之外,该研究还将 MAGIC 框架拓展到了其他基于视觉的文本生成任务,例如基于视觉的故事生成(visually grounded story generation)。在该任务中,给一个图片和故事标题,模型的任务是生成一个流利有趣并且与图片内容及故事标题一致的故事。
4.2.1 实验设置
本文在 ROCStories 数据集上进行了实验,并选取以下的文本解码方式作为该研究的 baseline:(1) Greedy search;(2)Beam search;(3)Top-K sampling;(4)Nucleus sampling;(5)Typical sampling;和(6)Contrastive search。
为了达到给 ROCStories 数据集中每一个测试样例提供一个图片信息的目的,本文使用 CLIP 模型从公开的 ConceptCaption 数据集中检索和故事标题最相关的图片。
为了有效评价模型的效果,本文采用了以下几种评价指标:
1. 自动评价指标:本文采用之前文本生成研究中的一系列评价指标a.n-gram 重复率 (rep-n)b. 生成文本多样性 (div.)c. 语义一致性(coh.):生成的故事和标题是否语义一致d. 图文匹配相关性 (CLIPScore)e.MAUVE 分数
2. 人工评价指标:为了更精准的反映生成故事的质量,五个专业的标注员从以下几个角度对生成故事的质量进行打分(1-5 分,1 分最差,5 分最好)a. 相关性:生成的故事是否和标题有关b. 流利度:生成的故事是否流利易懂c. 信息量:生成的故事是否多样且有趣d. 故事图片相关性:生成的故事是否和通过标题检索得到的图片语义一致
4.2.2 实验结果
如上图所示,MAGIC 在大多数的指标上都达到了最佳的效果,明显优于其他方法。其中 rep-n, diversity 和 MAUVE 的最佳结果说明 MAGIC 生成的故事和人类文本更加接近。并且 MAGIC 在 coherence 和图文匹配一致性分数上显著优于其他的方法,说明 MAGIC 在综合利用了图片和文本标题的信息之后可以生成和标题信息更加相关的故事内容。人工评价的效果也显示 MAGIC 生成的故事在各个角度上均达到了最好的效果。
4.2.3 Case Study
如上图所示,MAGIC 可以有效的生成和图片有关的信息。在第一个例子中,MAGIC 生成的故事包含了详细的冰淇凌的种类和味道,除了 orange 的结果稍有差异,其他的文本都完美符合图片中的描述。在第二个例子中,contrastive search 生成的结果和故事标题间相关度较差。与之相反,MAGIC 生成的内容和图片中的信息及主题高度相关,例如:(1)和朋友们在沙滩;(2)打沙滩排球;(3)比赛持续了两个小时;(4)朋友赢下了比赛。
参考文献:
[1] Tewel et al., ZeroCap: Zero-Shot Image-to-Text Generation for Visual-Semantic Arithmetic, arXiv 2022[2] Su et al., A Contrastive Framework for Neural Text Generation, arXiv 2022