01
研究动机
在本文中,我们研究了图像描述领域的一个核心问题——如何提高图像描述模型在现实世界中的泛化性。当前的图像描述生成方法倾向于生成正确但 “泛泛 “的描述,缺乏真实世界的知识,例如命名实体和背景信息。但是在许多情况下,一些特定的知识是理解图像的关键:如下图所示,包含视觉实体 Daisy Duck 和背景信息 Disneyland 的知识增强描述或许会唤起人们对一段美妙旅程的回忆;相比之下,现有预训练+微调模型生成的描述则显得有些枯燥乏味。
图1:不同方法生成描述语句效果比较
已有一些工作如Geo-Aware[1]尝试采用检索–生成的方法将知识融入图像描述,首先利用外部资源检索图像中的视觉实体,然后将检索到的实体添加到描述中。这类方法受限于外部资源的容量和标注描述数据的可用性。相比之下,强大的视觉语言预训练(Vision Language pre-Training,VLP)模型以无监督的方式从大规模网络采集数据中学习,有可能掌握几乎无限的现实世界知识。实际上,一个全知全能的 VLP 模型有可能在各种情况下提供包含各类知识的描述,这将大大提高图像描述的信息量和质量。本文为知识增强的图像描述生成探索了一条新的路径,即利用 VLP 模型的泛化性将知识融入图像描述中。
尽管VLP模型潜力巨大,但其使用仍面临一些挑战。VLP 模型的zero-shot推理会产生低质量的描述,而且预训练图像–文本对中的噪声对应会产生有害的知识幻觉。因此,在图像描述标注数据上(例如COCO)中对VLP 模型进行微调是必不可少的。然而,我们发现,在语义多样性有限的图像描述数据集上进行微调会导致generic bias(即模型倾向于生成泛泛的描述),这显著抑制了VLP 模型表达知识的能力。
我们认为,在VLP模型中表达知识的困难与微调下游任务时的灾难性遗忘有关。缓解灾难性遗忘的方法可分为三类[2]: 正则化(regularization)、重放(replay)和动态架构(dynamic architecture)。本文任务中的关键点在于,由于预训练阶段存在噪声,我们不能简单地用视觉语言预训练任务唤起知识。为了应对上述挑战,我们提出了 “知识引导重放“(Knowledge-guided Replay,K-Replay)方法,在下游任务微调过程中引导 VLP 模型保留预训练的知识。值得注意的是,K-Replay 使得模型在重放未见场景中的性能有了显著提高,这表明它不仅从重放样本中学习了知识,还激活了 VLP 模型表达它在预训练中掌握的知识的能力。
为了评估生成的知识增强描述的质量,我们构建了一个新的图像描述benchmark–KnowCap 数据集。该数据集包含 1400 多张图片和 4100 多条描述,涵盖地标建筑、知名品牌、特色食品和影视角色等四个大类 240 个知识类别关键词。我们在 KnowCap 上广泛测试了一系列具有代表性的描述模型如OFA[3]、BLIP[4]、GIT[5]。我们的方法在 CIDEr 得分和知识识别准确率方面远超强大的 VLP 基线,在 KnowCap 上建立了新的SOTA水平。
02
贡献
1.我们提出利用 VLP 模型的世界知识来进行知识增强图像描述生成,这与之前的检索–生成方法相比更加高效。
2.我们发现下游任务微调中的generiv bias抑制了VLP模型对知识的表达,因此设计了K-Replay来不断唤起模型对知识的记忆,同时通过知识蒸馏约束来减少知识幻觉。
3.我们构建了全新的KnowCap数据集,系统评估知识增强图像描述的质量,该数据集包含1400多张包含各类知识的图像和超过4000个精心标注的参考句子。
4.实验结果表明,我们的方法可以在下游任务微调过程中有效保留预训练模型掌握的知识,最终在KnowCap数据集上的表现优于一系列强大的基线模型。
03
方法
我们提出的 K-Replay 方法概览如下图所示。它主要由三个部分实现:(1)在重放样本上的知识预测任务,以唤醒 VLP 模型的知识;(2)知识蒸馏约束,以减轻预训练噪声造成的知识幻觉;(3)通过构建伪描述数据,实现在下游图像描述数据集和重放样本集上的同步训练。
图2:K-replay方法主要架构
3.1、Vanilla Fine-tuning
为了让VLP模型获得更好的图像描述的能力,我们首先通过交叉熵损失在图像描述数据集上对 VLP 模型进行vanilla fine-tuning:
3.2、知识预测任务
为了使得模型能够将知识融入到描述文本,我们首先从预训练图像–文本对集合中,通过检测文本是否包含知识关键词k,从众多图像中选取有代表性的知识相关图像,组成重放样本集。对于重放样本集中的图像–关键词对(x,k),我们鼓励模型在生成的句子中包含知识关键词。我们使用BPE标记来表示关键词,基于此,我们将知识关键词的覆盖度形式化为多标签分类问题。我们设计了一种句子级知识覆盖度损失。我们首先积累解码过程的概率分布,得到知识关键词中每个 BPE 标记的生成概率:
鼓励模型生成知识关键词:
在实践中,我们会添加一个退化惩罚来限制关键词概率的积累,从而防止产生重复的知识关键词:
最后,知识预测任务的损失函数为:
3.3、知识蒸馏约束
为了抑制生成中的幻觉,我们引入了知识蒸馏约束,蒸馏vanilla fine-tuning模型的输出。我们采用了广泛使用的基于响应的知识蒸馏方法[6]。给定教师模型和学生模型,知识蒸馏损失的计算方法如下:
其中,使用两个概率分布之间的K-L散度表示知识蒸馏损失,T是温度超参数。这样,知识蒸馏损失就起到了正则化作用,防止模型过度偏离基本微调,从而缓解知识幻觉现象。
3.4、伪描述训练
这里还有一个问题:如何将没有参考句子的重放样本数据集与包含参考句子的图像描述数据一起训练?由于SCST的不稳定性,我们设计了一种简单而有效的方案—伪描述训练,即在前向传播之前为重放数据集中的图像生成伪描述。然后我们就可以将伪描述和真实参考句子整合在一起,作为解码器的输入进行前向传播。最后,我们引入平衡损失的超参数,得到目标函数为:
下图给出算法流程:
图3:K-replay算法流程
04
数据集
我们新构建了用于评估知识增强图像描述效果的新数据集 KnowCap。为了收集包含各类常识的图片,我们首先引导ChatGPT给出一些世界著名地标、品牌、特色食品和影视角色的关键词,经过过滤后最终保留240个类别。通过观察,其中96%以上的类别在最常用的视觉语言预训练数据集CC12M中出现超过50次,下表显示了高频知识类别的样本。接下来,我们使用这 240 个关键词从互联网上抓取了 20,000 多张图片,最终由三位专家标注者从中筛选出了 1424 张适合图像描述任务的图片(例如,包含多个物体、复杂场景的图片)。
表1:KnowCap数据集中的高频类别关键词
对于每张图片,我们都收集了 3 份由人工标注者精心撰写的参考语句。标注过程与MSCOCO类似,只是我们提供了与图像相对应的知识关键词。我们最终获得了 4156 条参考描述。据统计,这些句子的平均长度为 12.27(MSCOCO 中为 11.30),其中超过 95% 的句子至少包含一个知识关键词,而 MSCOCO 中几乎没有。
05
实验
为了证明K-Replay方法的有效性,我们在OFA、BLIP、GIT模型的微调阶段应用了K-Replay,并将其与vanilla fine-tuning基线进行了比较,我们在 MSCOCO 和 KnowCap 数据集上对其性能进行了评估。
表2:在两个数据集上不同模型使用不同方法得到的结果
5.1、实验结果
结果显示,由于训练数据的限制,传统的图像描述模型和MAGIC[7]和CapDec[8]这两种zero-shot模型无法表达知识,导致 RecogAcc 极低。VLP zero-shot推理能够生成知识,但其语言模型存在噪声导致了较低的性能。相比之下,VLP+微调模型可以生成流畅的描述。然而,下游任务微调对表达知识的抑制导致 RecogAcc 下降。
在所有三种基线 VLP 模型上应用我们的 K-Replay 方法,都能显著提高在 KnowCap 上的性能。我们将KnowCap中从未在重放数据中出现的知识类别划分出来作为KnowCap Unseen测试集。K-Replay在unseen场景中仍然有相当大的性能提升。这表明K-Replay不仅仅是在重放样本上学习知识,同时通过对重放样本的学习任务唤醒了VLP模型表达知识的潜能。在使用K-Replay之后,VLP模型在MSCOCO上的表现依然保持良好,这说明K-Replay引导模型学会了根据图像内容自动判断是否表达知识。最终,我们的K-Replay方法既能准确描述图像内容,又能适当融入所获得的知识。
表3:K-replay在未见场景中的结果
此外,一个有趣的发现是,GIT+微调的 RecogAcc明显高于 OFA 和 BLIP,尤其是考虑到 GIT 使用的预训练数据更少。我们认为,这是因为 GIT 使用了 CLIP 作为视觉编码器,而 CLIP 强大的zero-shot推理能力为造就了GIT 优秀的泛化能力。
5.2、与先前的方法比较
VLP模型表达知识的能力受到抑制可以看作是灾难性遗忘的结果。我们回顾和比较之前关于灾难性遗忘的一些研究。我们测试了多种方法对 VLP 模型 OFA 的影响,并将它们与我们的 K-Replay 方法进行了比较,结果表明它们无法在微调下游任务的同时保留 VLP 模型对于知识的记忆。
表4:使用不同解决灾难性遗忘方法得到的结果
我们认为很难仅仅通过限制 VLP 模型的参数变化来激活模型表达知识的能力。相比之下,我们的 K-Replay 方法另辟蹊径,通过精心设计的学习任务来引导 VLP 模型的行为,最终在下游任务微调过程中保留了预训练时模型获得的知识。
5.3、重放样本的影响
表1中的结果使用了 120 个知识类别的 5000 个样本集合作为重放样本集。我们尝试改变样本数量和知识类别。如图4左所示,保持知识类别不变,随着重放样本数量的减少,模型表达知识的能力下降了。然而,即使重放样本的数量非常有限,K-Replay 方法的性能仍然比基本微调基线有显著提高,这表明少量的样本就足以激活 VLP 模型的记忆。如图4右所示,保持样本数量不变,随着重放样本知识类别的减少,模型表达知识的能力同样也会下降。当只选择 10 个知识类别作为重放样本时,模型性能急剧下降,我们认为这是由于类别太少导致模型过拟合,从而遗忘了其他类型的知识。
图4:重放样本对于结果的影响
5.4、结果分析
我们进行了消融实验,验证了设计知识预测任务以唤起知识的必要性,同时表明提出的知识蒸馏损失有助于缓解知识幻觉。
表5:消融实验结果
图5左侧显示了基本微调方法和 K-Replay 方法在四类知识上的表现。K-Replay 方法可以唤起每个场景类别下的知识。然而特色食物的 RecogAcc 相对较低,我们认为这是因为食品的特征不像其他场景那样容易识别。
图5:不同类别与出现频率下识别准确度
一个有趣的问题是,VLP 模型所掌握的知识是否与其在预训练数据中的出现频率有关。图5右显示了 VLP 模型对于预训练数据中出现频率不同的知识的表达效果。令人意外的,对于基本微调模型来说,出现频率较高的知识并不一定容易表达。然而,在使用 K-Replay 后,出现频率较高的知识明显具有较高的 RecogAcc。这一结果印证了我们的猜想,即高频率出现的知识实际上已被VLP模型所掌握,但下游任务微调中的generic bias抑制了其表达,而K-Replay方法则重新激活了这类知识的表达。
图6展示了我们方法与标准预训练–微调方法生成的图像描述,可以看到我们的方法有效地在描述中融入了现实世界知识。
图6:生成样例
06
总结
在本文中,我们提出利用 VLP 模型的泛化性进行知识增强图像描述生成。我们提出了K-replay方法并构建了用于性能评估的 KnowCap 数据集。实验结果表明,与VLP+微调基线相比,K-Replay显著提高了VLP模型表达知识的能力。最后,我们进行了大量分析,以探究并证明我们方法的有效性。
参考文献
[1]Sofia Nikiforova, Tejaswini Deoskar, Denis Paperno, Vinter Seggev, et al. 2020. Geo-Aware Image Caption Generation. In The 28th International Conference on Computational Linguistics (COLING). 3143.
[2]Fei Mi, Liangwei Chen, Mengjie Zhao, Minlie Huang, and Boi Faltings. 2020. Continual Learning for Natural Language Generation in Task-oriented Dialog Systems. In Findings of the Association for Computational Linguistics: EMNLP 2020. 3461–3474.
[3]Peng Wang, An Yang, Rui Men, Junyang Lin, Shuai Bai, Zhikang Li, Jianxin Ma, Chang Zhou, Jingren Zhou, and Hongxia Yang. 2022. Ofa: Unifying architectures, tasks, and modalities through a simple sequence-to-sequence learning framework. In International Conference on Machine Learning. PMLR, 23318–23340.
[4]Junnan Li, Dongxu Li, Caiming Xiong, and Steven Hoi. 2022. Blip: Bootstrapping language-image pre-training for unified vision-language understanding and generation. In International Conference on Machine Learning. PMLR, 12888–12900.
[5]Jianfeng Wang, Zhengyuan Yang, Xiaowei Hu, Linjie Li, Kevin Lin, Zhe Gan, Zicheng Liu, Ce Liu, and Lijuan Wang. 2022. Git: A generative image-to-text transformer for vision and language. arXiv preprint arXiv:2205.14100 (2022).
[6]Chengqiang Lu, Jianwei Zhang, Yunfei Chu, Zhengyu Chen, Jingren Zhou, Fei Wu, Haiqing Chen, and Hongxia Yang. 2022. Knowledge Distillation of Transformerbased Language Models Revisited. arXiv preprint arXiv:2206.14366 (2022).
[7]Yixuan Su, Tian Lan, Yahui Liu, Fangyu Liu, Dani Yogatama, Yan Wang, Lingpeng Kong, and Nigel Collier. 2022. Language models can see: plugging visual controls in text generation. arXiv preprint arXiv:2205.02655 (2022).
[8]David Nukrai, Ron Mokady, and Amir Globerson. 2022. Text-Only Training for Image Captioning using Noise-Injected CLIP. arXiv preprint arXiv:2211.00575 (2022).