0%

论文阅读-text2image synthesis-ERNIE-VILG: Unified Generative Pre-training for Bidirectional Vision-Language Generation

动机

  • 图像-文本生成任务是双向的,但由于语言生成和图像生成的架构不同,通常将两个任务分开处理,设计特定于任务的框架;

  • 近年来,视觉语言预训练模型大幅提高图像到文本生成任务的性能,但大规模的文本到图像生成任务预训练模型仍处于开发阶段。

贡献

  • 提出一种生成预训练框架ERNIE ViLG,适用于双向图像-文本生成任务,并采用端到端的训练方式联合学习视觉序列生成器和图像重构器;
  • ERNIE ViLGtext-to-image synthesisimage captioning任务上有着优越的性能,表明双向生成模型可捕捉对齐视觉和语言模态的复杂语义。

ERNIE ViLG

如图所示,ERNIE-ViLG联合框架进行双向图像文本生成。图像经过VQVAE编码为离散表征序列,该离散序列作为参数共享的Transformer的输入和输出,用于自回归的图像到文本/文本到图像的生成。即在文本到图像生成任务中,Transformer输入为文本,输出为相应的视觉离散序列,再被用于重建图像;在图像到文本生成任务中,Transformer输入为图像离散序列,输出为文本序列。本文则提出一种端到端的训练方法,对离散表征序列生成和图像重建联合训练,以增强文本到图像的生成能力。

图像离散表征

离散表征可以更好地适用于autoregressive建模,VQVAE使用vector quantization将图像表征为隐离散序列,比像素聚类具有更强的语义表示能力。对于输入图像 x\in \mathbb{R}^{H \times W \times 3} ,经过编码器 E 得到图像特征,再通过codebook C 量化为 z\in \mathbb{R}^{H \times W} ,然后通过解码器 G codebook C 重建 x 。损失函数如下:

\begin{aligned} \mathcal{L}_{VQVAE} &= \|x-\hat{x}\|^{2} + \left\|sg\left[z_{emb}\right] - E(x)\right\|_{2}^{2} + \left\|sg[E(x)] - z_{emb}\right\|_{2}^{2} \\ &= \|x- G(E(x) + sg(z_{emb} - E(x)))\|^{2} + \left\|sg\left[z_{emb}\right] - E(x)\right\|_{2}^{2} + \left\|sg[E(x)] - z_{emb}\right\|_{2}^{2} \\ \hat{x} &= G\left(z_{e m b}\right) = G(C(z)) = G(q(E(x))) \end{aligned}

其中, sg(\cdot) 表示stop-gradient q(\cdot) vector quantization,最终离散序列 z 作为双向生成模型的输入或输出,其长度为 n=h\times w

上式中第一项损失为reconstruction loss,仅训练encoderdecoder,不更新codebook;第二项损失为commitment loss,仅训练encoder,避免encoder的输出反复变化;第三项损失为codebook loss,仅训练codebook,希望codebook中的embedding跟对应的图像特征向量靠近。

双向生成模型

ERNIE-ViLG使用多层transformer encoder进行图像到文本和文本到图像的生成任务,且encoderdecoder参数共享,并使用UniLMERNIE-GEN中特定的self-attention mask控制上下文。其中,source token允许参与所有source token,而target token允许参与在其左边位置的source tokentarget token。作者认为模型空间共享有助于建立更好的跨模态的语义对齐。

假设图像通过VQVAE encoder离散化得到visual token \{z_1,\cdots,z_n\} ,文本经过WordPiece tokenizer序列化得到textual token \{t_1,\cdots,t_m\} ,连接后输入Transorformer中。训练期间,对于文本到图像生成任务,输入 [t_1,\cdots,t_m,z_1,\cdots,z_n] 预测image tokens;对于图像到文本生成任务,则输入 [z_1,\cdots,z_n,t_1,\cdots,t_m] 预测text token。最终的损失函数为:

\begin{gathered} \mathcal{L}=\mathcal{L}_{t x t 2 i m g}+\mathcal{L}_{i m g 2 t x t} \\ \mathcal{L}_{t x t 2 i m g}=\sum_{k=1}^{n}-\log P\left(z_{k} \mid t_{1}, \ldots, t_{m}, z_{1}, \ldots, z_{k-1}\right) \\ \mathcal{L}_{i m g 2 t x t}=\sum_{k=1}^{m}-\log P\left(t_{k} \mid z_{1}, \ldots z_{n}, t_{1}, \ldots, t_{k-1}\right) \end{gathered}

通常为了减少图像的信息损失,图像序列 z 的长度 n 很大,导致Transformer训练和推断时的计算成本和内存消耗较高。故使用DALL-E的稀疏注意力机制,如下图所示,即对第 i transformer layer采用如下方式:使用row attention(i mod 4 != 2)column attention(i mod 4 = 2)convolutional attention(最后一层)。实验表明,稀疏注意力机制在训练时提速 25\% ,可节省 50\% 的显存,并跟原始注意力具有一样的损失收敛性,本文将其应用到双向建模。

文本到图像生成

基于图像离散表征的文本到图像生成通常分为两个阶段:离散表示序列生成和图像重建。先从cookbook中查找生成的离散序列获得三维表征 z_{emb} ,再送入重建decoder恢复图像,此时generatorreconstructor分开训练。

本文则采用端到端的训练方法,最后的transformer layer输出的image tokenhidden embedding被映射得到三维表征 z_{emb} ,梯度可以从reconstructor后向传播到generator,避免了ID mapping操作。优点在于:

  • 可以为reconstructor提供更多上下文信息,相比于cookbook中与上下文无关的embedding,最后一层的hidden embedding包含更多的图像语义,且可通过注意力交互感知文本信息。
  • 可以通过重建任务帮助generator,可以提高generatorreconstructor的性能。

图像到文本生成

首先使用encoderVQVAEcookbook将图像离散为visual token,再输入Transformer按照自回归方式生成text tokens,本文在图像到文本生成任务训练期间将quantization modules进行预训练后固定。

部分实验结果

参数设置

使用VQGAN作为image tokenizer,设置 f=8 表示图像尺寸的reduction factorvocab size = 8192,预处理图像时使用center crop 256\times256 ,由此得到图像离散序列的长度为 n=h\times w=1024

对于generator,使用多层transformer encoder,由 48 transformer layer组成,包含 4096 个隐藏单元和 64 attention heads,考虑基于GAN的不稳定,训练时选择两阶段text-to-image synthesis,并使用VQGANdecoder作为image reconstructor

Text-to-Image Synthesis

Image Captioning

Generative Visual Question Answering

不同训练方式的比较

其中,Two-stage G(R)指单独训练,end-to-end G(R)指端到端训练,Gold image sequence指通过dVAE离散化得到的视觉序列。根据上表可得:端到端的训练方法相比两阶段训练更优。