动机
图像-文本生成任务是双向的,但由于语言生成和图像生成的架构不同,通常将两个任务分开处理,设计特定于任务的框架;
近年来,视觉语言预训练模型大幅提高图像到文本生成任务的性能,但大规模的文本到图像生成任务预训练模型仍处于开发阶段。
贡献
- 提出一种生成预训练框架
ERNIE ViLG
,适用于双向图像-文本生成任务,并采用端到端的训练方式联合学习视觉序列生成器和图像重构器; ERNIE ViLG
在text-to-image synthesis
和image captioning
任务上有着优越的性能,表明双向生成模型可捕捉对齐视觉和语言模态的复杂语义。
ERNIE ViLG
如图所示,ERNIE-ViLG
联合框架进行双向图像文本生成。图像经过VQVAE
编码为离散表征序列,该离散序列作为参数共享的Transformer
的输入和输出,用于自回归的图像到文本/文本到图像的生成。即在文本到图像生成任务中,Transformer
输入为文本,输出为相应的视觉离散序列,再被用于重建图像;在图像到文本生成任务中,Transformer
输入为图像离散序列,输出为文本序列。本文则提出一种端到端的训练方法,对离散表征序列生成和图像重建联合训练,以增强文本到图像的生成能力。
图像离散表征
离散表征可以更好地适用于autoregressive
建模,VQVAE
使用vector quantization
将图像表征为隐离散序列,比像素聚类具有更强的语义表示能力。对于输入图像,经过编码器得到图像特征,再通过codebook
量化为,然后通过解码器和codebook
重建。损失函数如下:
其中,表示stop-gradient
,为vector quantization
,最终离散序列作为双向生成模型的输入或输出,其长度为。
上式中第一项损失为reconstruction loss
,仅训练encoder
和decoder
,不更新codebook
;第二项损失为commitment loss
,仅训练encoder
,避免encoder
的输出反复变化;第三项损失为codebook loss
,仅训练codebook
,希望codebook
中的embedding
跟对应的图像特征向量靠近。
双向生成模型
ERNIE-ViLG
使用多层transformer encoder
进行图像到文本和文本到图像的生成任务,且encoder
和decoder
参数共享,并使用UniLM
和ERNIE-GEN
中特定的self-attention mask
控制上下文。其中,source token
允许参与所有source token
,而target token
允许参与在其左边位置的source token
和target token
。作者认为模型空间共享有助于建立更好的跨模态的语义对齐。
假设图像通过VQVAE encoder
离散化得到visual token
为,文本经过WordPiece tokenizer
序列化得到textual token
为,连接后输入Transorformer
中。训练期间,对于文本到图像生成任务,输入预测image tokens
;对于图像到文本生成任务,则输入预测text token
。最终的损失函数为:
通常为了减少图像的信息损失,图像序列的长度很大,导致Transformer
训练和推断时的计算成本和内存消耗较高。故使用DALL-E
的稀疏注意力机制,如下图所示,即对第个transformer layer
采用如下方式:使用row attention(i mod 4 != 2)
、column attention(i mod 4 = 2)
和convolutional attention(最后一层)
。实验表明,稀疏注意力机制在训练时提速,可节省的显存,并跟原始注意力具有一样的损失收敛性,本文将其应用到双向建模。
文本到图像生成
基于图像离散表征的文本到图像生成通常分为两个阶段:离散表示序列生成和图像重建。先从cookbook
中查找生成的离散序列获得三维表征,再送入重建decoder
恢复图像,此时generator
和reconstructor
分开训练。
本文则采用端到端的训练方法,最后的transformer layer
输出的image token
的hidden embedding
被映射得到三维表征,梯度可以从reconstructor
后向传播到generator
,避免了ID mapping
操作。优点在于:
- 可以为
reconstructor
提供更多上下文信息,相比于cookbook
中与上下文无关的embedding
,最后一层的hidden embedding
包含更多的图像语义,且可通过注意力交互感知文本信息。 - 可以通过重建任务帮助
generator
,可以提高generator
和reconstructor
的性能。
图像到文本生成
首先使用encoder
和VQVAE
的cookbook
将图像离散为visual token
,再输入Transformer
按照自回归方式生成text tokens
,本文在图像到文本生成任务训练期间将quantization modules
进行预训练后固定。
部分实验结果
参数设置
使用VQGAN
作为image tokenizer
,设置表示图像尺寸的reduction factor
,vocab size = 8192
,预处理图像时使用center crop
为,由此得到图像离散序列的长度为。
对于generator
,使用多层transformer encoder
,由个transformer layer
组成,包含个隐藏单元和个attention heads
,考虑基于GAN
的不稳定,训练时选择两阶段text-to-image synthesis
,并使用VQGAN
的decoder
作为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
离散化得到的视觉序列。根据上表可得:端到端的训练方法相比两阶段训练更优。