编者按:最近,研究者们发布了 nocaps 挑战,用以测量在没有对应的训练数据的情况下,模型能否准确描述测试图像中新出现的各种类别的物体。针对挑战中的问题,微软 Azure 认知服务团队和微软研究院的研究员提出了全新解决方案视觉词表预训练 (Visual Vocabulary Pre-training)。该方法在 nocaps 挑战中取得了新的 SOTA,并首次超越人类表现。
看图说话“新”问题图像描述或看图说话(Image Captioning)是计算机根据图片自动生成一句话来描述其中的内容,由于其潜在的应用价值(例如人机交互和图像语言理解)而受到了广泛的关注。这项工作既需要视觉系统对图片中的物体进行识别,也需要语言系统对识别的物体进行描述,因此存在很多复杂且极具挑战的问题。其中,最具挑战的一个问题就是新物体描述(Novel object captioning),即描述没有出现在训练数据中的新物体。
最近,研究者们发布了 nocaps 挑战(https://nocaps.org/),以测量在即使没有对应的训练数据的情况下,模型能否准确描述测试图像中新出现的各种类别的物体。在这个挑战中,虽然没有配对的图像和文本描述(caption)进行模型训练,但是可以借助计算机视觉的技术来识别各类物体。例如在一些之前的工作中,模型可以先生成一个句式模板,然后用识别的物体进行填空。然而,这类方法的表现并不尽如人意。由于只能利用单一模态的图像或文本数据,所以模型无法充分利用图像和文字之间的联系。另一类方法则使用基于 Transformer 的模型进行图像和文本交互的预训练(Vision and Language Pre-training)。这类模型在多模态(cross-modal)的特征学习中取得了有效的进展,从而使得后续在图像描述任务上的微调(fine-tuning)获益于预训练中学到的特征向量。但是,这类方法依赖于海量的训练数据,在这个比赛中无法发挥作用。
针对这些问题,微软 Azure 认知服务团队和微软研究院的研究员们提出了全新的解决方案 Visual Vocabulary Pre-training(视觉词表预训练,简称VIVO),该方法在没有文本标注的情况下也能进行图像和文本的多模态预训练。这使得训练不再依赖于配对的图像和文本标注,而是可以利用大量的计算机视觉数据集
视觉词表成为解决问题的关键VIVO 方法取得成功的关键在于视觉词表(visual vocabulary)的建立。如图1所示,研究人员把视觉词表定义为一个图像和文字的联合特征空间(joint embedding space),其中语义相近的词汇,例如男人和人、手风琴和乐器,会被映射到距离更近的特征向量上。在预训练学习建立了视觉词表以后,模型还会在有对应的文本描述的小数据集上进行微调。微调时,训练数据只需要涵盖少量的共同物体,例如人、狗、沙发,模型就能学习如何根据图片和识别到的物体来生成一个通用的句式模板,并且把物体填入模板中相应的位置,例如,“人抱着狗”。在测试阶段,即使图片中出现了微调时没有见过的物体,例如手风琴,模型依然可以使用微调时学到的句式,加上预训练建立的视觉词表进行造句,从而得到了“人抱着手风琴”这句描述。
图1:VIVO 预训练使用大量的图片标签标注来建立视觉词表,其中语义相近的词汇与对应的图像区域特征会被映射到距离相近的向量上。微调使用只涵盖一部分物体(蓝色背景)的少量文本描述标注进行训练。在测试推理时,模型能够推广生成新物体(黄色背景)的语言描述,得益于预训练时见过的丰富物体类型。
通过这样的方法,研究员们结合了预训练中识别图片物体的能力,以及微调中用自然语言造句的能力,从而做到了在推理测试时举一反三,使用更丰富的词汇量来描述图片中新出现的各种物体。
VIVO 训练流程图2:训练和推理流程总览(a)在VIVO 预训练中,Transformer 模型在图片标签的训练数据上做标签预测,从而针对丰富的视觉概念进行多模态特征学习。(b)在微调中,模型在有文本描述标注的训练数据上学习如何基于图片和识别出来的物体生成一句话。(c)在推理时,对于给定的图片和识别的物体,模型以自回归的方式生成一系列字符,从而构成描述新物体的句子。
如图2所示,VIVO 训练流程采用了两阶段的训练。第一阶段为预训练,使用多层的 Transformer 模型进行图像分类的预测。具体来说,先给定图片和对应的一些标签(tag),然后随机地抹去其中一部分标签,让模型来预测这些被抹去的标签原本是什么。由于这些标签之间的顺序是可以互换的,因此需要使用匈牙利算法(Hungarian matching)来找到预测结果和目标标签之间的一一对应,然后计算交叉熵损失(cross entropy loss)函数。
预训练之后,第二阶段为微调。Transformer 模型会在有文本描述标注的小数据集上训练,例如 COCO。微调时使用的物体标签可以来自数据集本身的标注,也可以由其他已经训练好的图像分类或物体识别模型自动生成。
在测试阶段,对于给定图片和识别出来的物体标签,模型采用了自回归(auto-regressive)的方式生成字符序列,从而获得描述图片的一句话。
SOTA 首次超越人类研究员们将 VIVO 与 nocaps 挑战中一些领先的方法,如 UpDown 、 OSCAR 等做了对比(这些方法使用的训练数据也是 COCO)。另外,遵循之前的方法,添加了使用 SCST 和 Constrained Beam Search (CBS)之后的结果。在 nocaps 的校验集(validation)和测试集(test)上的结果显示在表1中。可以看到,相比于之前的方法,VIVO 的结果表现有了显著的提高。仅仅使用 VIVO 预训练就取得了远超过 UpDown+ELMo+CBS 和 OSCAR 的结果。最终,VIVO 方法的结果达到了新的 SOTA,并且首次在 nocaps 挑战中超过了人类表现的 CIDEr 得分。
表1:各种方法在 nocaps 的校验和测试数据集上的结果
为了进一步理解 VIVO 预训练中学习视觉词表所产生的作用,即在图像和文字的共同特征空间中对准图像与相应的语义标签,研究员们展示了如何根据这些新物体的标签找到它们在图片中的位置(grounding to image regions)。对于每个图片区域和每个物体标签的两两配对,VIVO 都计算了它们对应特征向量之间的相似度(cosine similarity)。图3高亮了其中得分高的配对。可以看出,VIVO 的模型能够准确地在众多区域中确定这些物体所在的位置。
图3:模型对 nocaps 图片的描述结果。B:没有做 VIVO 预训练的模型。V:有 VIVO 预训练的模型。红色文字显示了描述中出现的新物体。图中还显示了各个图片区域和描述中出现的新物体对应特征向量之间的相似度,相似度越高的组合颜色亮度越高。
VIVO 展示了视觉词表对描述图片中新出现的物体的重要作用。作为第一个不依赖于图片文本标注(paired image-sentence data)的图像与文本交互的预训练(Vision-Language Pre-training)方法,VIVO 成功运用了计算机视觉研究中已经标注的大规模图片标签数据(image tagging data)来进行全新模式的图像与文本交互预训练。值得注意的是,如果可以利用模型自动给图片生成标签,而不需要人工标注文本描述,那么可以在训练时加入可能无限多的无标注图片,从而进一步提高模型的表现,微软的研究人员也将在未来的后续工作中对此进行更多探索。
你也许还想看: