MAGIC: 一个即插即用、无需训练的图像-文本生成框架

MAGIC: 一个即插即用、无需训练的图像-文本生成框架

剑桥大学、腾讯AI Lab、特伦托大学、DeepMind、香港大学新作

Language Models Can See: Plugging Visual Controls in Text Generation

论文: arxiv.org/abs/2205.0265

代码: github.com/yxuansu/MAGI


https://www.zhihu.com/video/1506403339792924673

1. 导读

本文提出了一个全新的 MAGIC (i MA ge-guided text G enerat I on with C LIP)框架。该框架可以使用图片模态的信息指导预训练语言模型完成一系列跨模态生成任务,例如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倍的推理速度提升。

1. 研究方法

3.1 无监督语言建模

为了适应特定跨模态任务的文本领域,我们在本文中,预先使用了跨模态训练数据集中的文本数据,采取无监督的方式更新语言模型的参数(仅需在1块NVIDIA 1080Ti 上运行不到两个小时),从而使得语言模型更加熟悉该领域的文本分布。具体而言,本文使用MLE损失函数训练语言模型的参数:

\mathcal{L}_{\text{MLE}} = -\frac{1}{|\boldsymbol{x}|}\sum_{i=1}^{|\boldsymbol{x}|}\log p_{\theta}(x_i|\boldsymbol{x}_{<i})

此外,SimCTG[2]的最新工作证明了通过引入对比损失来校准模型的语义空间,能够获得质量更高的的语言模型。因此,本文也同时优化如下的对比损失:

\mathcal{L}_{\text{CL}} = \frac{1}{|\bm{x}|\times(|\bm{x}| - 1)}\sum_{i=1}^{|\bm{x}|}\sum_{j=1,j\neq i}^{|\bm{x}|}\max\{0,\rho - s(h_{x_i}, h_{x_i}) + s(h_{x_i}, h_{x_j})\}

其中 \rho 是用来校准生成模型表示空间的margin参数, s 用来计算token表示之间的余弦相似度。最终,本文将两个损失函数合并,以此来优化文本模态的GPT-2语言模型:

\mathcal{L} = \mathcal{L}_{\text{MLE}} + \mathcal{L}_{\text{CL}}

3.2 MAGIC Search

本文提出了MAGIC Search解码算法。MAGIC使用视觉信息指导预训练语言模型的生成过程。具体而言,给定文本前缀 \bm{x}_{<t} 和图片 \mathcal{I} ,第 t 步的token选择公式如下:

x_t = \arg \max_{v\in V^{(k)}}\bigg\{(1 - \alpha) \times \underbrace{p_{\theta}(v|\bm{x}_{<t})}_{\text{model confidence}} - \alpha \times \underbrace{(\max\{s(h_v, h_{x_j}):1\leq j \leq t-1\})}_{\text{degeneration penalty}} \: + \: \beta \times \underbrace{f(v|\mathcal{I}, \bm{x}_{<t}, V^{(k)})}_{\text{magic score}} \bigg\}

其中 V^{(k)} 表示按照语言模型概率分布选择的top-k个候选token。同时,我们借鉴了SimCTG中contrastive search的思路,在token选择指标中引入了model confidence和degeneration penalty项来使得模型选择更合适的token。上述公式中最重要的一项是将视觉控制信息引入到模型的解码过程中的magic score:

f(v|\mathcal{I}, \bm{x}_{<t}, V^{(k)}) = \frac{e^{\text{CLIP}(\mathcal{I},[\bm{x}_{<t}:v])}}{\sum_{z\in V^{(k)}}e^{\text{CLIP}(\mathcal{I},[\bm{x}_{<t}:z])}}=\frac{e^{h_{\mathcal{I}}^\top h_{[\bm{x}_{<t}:v]}}}{\sum_{z\in V^{(k)}}e^{h_{\mathcal{I}}^\top h_{[\bm{x}_{<t}:z]}}}


其中 h_{\mathcal{I}} 是CLIP的image encoder产生的图片表示, h_{[\boldsymbol{x}_{<t}:v]} 是CLIP的text encoder产生的文本表示。 \beta 参数用来调节视觉信息的控制力度。当其值为0时,语言模型的生成过程不再被视觉信息所影响,从而magic search退化为传统的contrastive search。

2. 实验结论

4.1 Zero-shot Image Captioning

4.1.1 实验设置

本文在MS-COCO和Flickr30k数据集上进行了大量的实验,并选用以下的无监督baseline进行对比:

1. top-k sampling:不基于图片信息,用top-k 解码方法使用语言模型来生成caption

2. nucleus sampling:不基于图片信息,用nucleus解码方法使用语言模型生成caption

3. contrastive search:不基于图片信息,用contrastive search解码方法使用语言模型来生成caption

4. 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等纯文本解码方法,但仍然弱于当前state-of-the-art的无监督方法,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 Visually Grounded Story Generation

除了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)朋友赢下了比赛。


Reference:

[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

编辑于 2022-05-24 20:46

文章被以下专栏收录