快速和慢速思考:使用Transformers进行高效的文本到视觉检索
摘要
我们的目标是基于语言的大规模图像和视频数据集搜索。该方法将文本和视觉独立映射到一个联合嵌入空间,即双编码器,具有较好的检索比额和使用近似最近邻搜索的数十亿幅图像的效率。另一种使用具有交叉注意的视觉文本变压器的方法,相对于联合嵌入的方法,在准确性方面有相当大的改进,但由于测试时每个样本所需的交叉注意机制的成本,在实际中往往不适用于大规模检索。这项工作结合了两方面的优点。我们做出了以下三个贡献。首先,我们为基于转换器的模型配备了新的细粒度交叉注意架构,在保持可伸缩性的同时显著提高了检索精度。其次,我们介绍了一种通用的方法,通过蒸馏和重新排序,将Fast dual encoder编码器模型与我们的缓慢但精确的 transformer-base的模型相结合。最后,我们在Flickr30K image数据集上验证了我们的方法,在这里我们展示了推理速度的几个数量级的提高,同时得到了与目前水平相当的结果。我们还将我们的方法扩展到视频领域,改进了VATEX数据集的现状。
引用
Motivation
对于language-based的搜索问题来说,目前有两种主流方法:一种是Dual Encoders,也即文本和图像分别通过不同的网络进行编码,再映射到同一个特征空间去,然后计算KNN来得到匹配的图片;另外的方法为Cross Attention,也即将文本和图像同时输入到Transformer中去,互相计算attention,这种方法效果会好一些,但是对于检索任务而言,需要消耗非常大的资源,很难落地。
原因在于,如果计算相似度,前一种方法的图像、文本只需要分别过一次网络计算一次embedding的即可,计算复杂度是O(n);而后者需要两两配对过一次网络,非常耗时,O(n^2) 时间复杂度,如果需要检索的图库非常大,那么时间开销很恐怖。因此,本文的目的在于利用知识蒸馏和Re-Ranking的方法,在保证准确率的同时,提高大规模图像检索的效率
Contribution
- 对cross-attention的网络进行改进,采用的up-sampling操作来提取图像特征。
- 利用蒸馏(distillation)和重排序(re-ranking),结合Fast dual encoder model 和 slow transformers-based model来进行推理。
- 提高跨模态检索问题的推理速度,且效果也不差。
方法
如下图,左边是Fast model,右边是Slow model。按一般想法来说,我们希望用Fast model对所有的图像进行初步筛选,然后再用Slow model进一步筛选得到最终的结果。(这就是所谓的Re-ranking,原文Fast model 筛选出Top50,将这50张图像送到右边去进一步排序),而所谓的蒸馏,其实就是在Fast model训练的时候,用Slow model进行指导,以期得到更准确的结果。
视觉Transformer (五) Thinking Fast and Slow: Efficient Text-to-Visual Retrieval with Transformers
【论文笔记】Thinking Fast and Slow: Efficient Text-to-Visual Retrieval with Transformers
这篇可以的下面这个
跨模态检索论文阅读|Thinking Fast and Slow: Efficient Text-to-Visual Retrieval with Transformers