IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【论文极速读】FILIP: 一种基于交互的细粒度图文预训练模型 -> 正文阅读

[人工智能]【论文极速读】FILIP: 一种基于交互的细粒度图文预训练模型

【论文极速读】FILIP: 一种基于交互的细粒度图文预训练模型
FesianXu 20221009 at Baidu Search Team

前言

FILIP(Fine-grained Interactive Language-Image Pretrain)是一种基于交互的细粒度图文预训练模型,用于解决图文双塔匹配模型中的细粒度匹配问题。本文对该论文进行阅读笔记,如有谬误请联系指出,本文遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明并且联系笔者,谢谢

? \nabla ? 联系方式:
e-mail: FesianXu@gmail.com

github: https://github.com/FesianXu

知乎专栏: 计算机视觉/计算机图形理论与应用

微信公众号:机器学习杂货铺3号店


FILIP [1] 提出是为了解决图文匹配中的细粒度匹配问题。我们之前在博文 [2] 中曾经讨论过,在图文双塔匹配中,由于需要对图片塔的向量提前进行刷库,一些长尾的,形态较小的物体可能会在训练过程中被忽略,导致图文匹配的时候缺少对细粒度匹配的能力。为了解决这个问题,我们需要提供模型以图片和文本在线交互(online interaction)的能力,将图片以某种形式提取出每个区域的信息(ROI Detector检测每个ROI区域,或者单纯的划分patch,如ViT所做的那样),然后将文本和图片每个区域进行交互,从而模型有能力挖掘出图片中的一些细粒度信息。以第一种方式为例,如Fig 1.1所示,如果采用ROI Detector首先对图片的ROI区域进行提取,如红框所示,通过对文本『黄色桌子上的小黄人』进行在线匹配,即可实现对场景中的小黄人的细粒度匹配。

roi_for_online_interaction

Fig 1.1 以ROI Detector的方式提取出图片中的ROI区域,通过对文本和ROI区域进行在线交互(在线匹配),即可实现细粒度图文匹配的目的。

当然,这个前提是有一个足够好的ROI detector,并且其计算复杂度的代价也很高,对于在线应用比如图片搜索来说是一个比较大的负担。FILIP用了一种比较直接,也比较聪明的方法实现在线交互,其方法就是『迟交互(Late Interaction)』,想办法尽可能把交互的操作后移,从而使得pipeline的前端结果可以刷库,减少在线交互的代价。

如Fig 1.2所示,FILIP的图片编码器是ViT [3-4],对输入图片进行简单的分块后,进行线性映射输入到Transformer中,其输出就是对应每个Image Patch的Embedding向量,文本侧同样采用Transformer,其输出就是每个token的embedding。如果用 x I x^I xI表示图片样本, x T x^T xT表示文本样本,那么 x i I x_i^I xiI?表示batch内图片的第 i i i个样本, x i T x_i^T xiT?表示batch内文本的第 i i i个样本,具有同个下标的样本对 { x i I , x i T } \{x_i^I, x_i^T\} {xiI?,xiT?}我们认为是一对正样本,而下标不同的样本对 { x i I , x j T } \{x_i^I, x_j^T\} {xiI?,xjT?}我们认为是一对负样本。用 f θ ( ? ) f_{\theta}(\cdot) fθ?(?)表示图片编码器, g ? ( ? ) g_{\phi}(\cdot) g??(?)表示文本编码器,在不存在交互的双塔匹配模型中,如CLIP和ALIGN中,第 i i i个和第 j j j个样本间的相似度定义为:
s i , j I = s i , j T = f θ ( x i I ) T g ? ( x j T ) (1-1) s_{i,j}^I = s_{i,j}^T = f_{\theta}(x_i^I)^{\mathrm{T}} g_{\phi}(x_j^{T}) \tag{1-1} si,jI?=si,jT?=fθ?(xiI?)Tg??(xjT?)(1-1)
其中 f θ ( x i I ) ∈ R d , g ? ( x j T ) ∈ R d f_{\theta}(x_i^I) \in \mathbb{R}^{d}, g_{\phi}(x_j^{T}) \in \mathbb{R}^{d} fθ?(xiI?)Rd,g??(xjT?)Rd,无论是图片编码器还是文本编码器,均对同一个图片/文本只产出一个特征向量,通过计算余弦相似度计算其图文相似性,显然这是一种全局(Global)的相似度计算方式。而在FILIP中,采用ViT和Text Transformer可以对每个图片token和文本token产出『专属』的embedding(可以认为是每个模态的细粒度局部信息),假设 n 1 n_1 n1? n 2 n_2 n2?分别是第 i i i个图片样本和第 j j j个文本样本的token数量,那么有 f θ ( x i I ) ∈ R n 1 × d , g ? ( x j T ) ∈ R n 2 × d f_{\theta}(x_i^I) \in \mathbb{R}^{n_1 \times d}, g_{\phi}(x_j^{T}) \in \mathbb{R}^{n_2 \times d} fθ?(xiI?)Rn1?×d,g??(xjT?)Rn2?×d。 我们怎么计算第 i i i个和第 j j j个样本间的相似度呢?此时就体现了迟交互的作用,对于第 i i i个图片的第 k k k个token而言,分别计算其和第 j j j个文本样本的所有 n 2 n_2 n2?个token间的相似程度,并且挑选其中相似度最大的打分,作为第 i i i个图片第 k k k个token的打分代表,这个方式作者称之为『逐令牌最大相似度(token-wise maximum similarity)』。
max ? 0 ≤ r < n 2 [ f θ ( x i I ) ] k T [ g ? ( x i T ) ] r (1-2) \max_{0 \leq r \lt n_2} [f_{\theta}(x_i^I)]_k^{\mathrm{T}} [g_{\phi}(x_i^T)]_r \tag{1-2} 0r<n2?max?[fθ?(xiI?)]kT?[g??(xiT?)]r?(1-2)
当然,对于图片样本 i i i来说,这个只是第 k k k个token的最大相似度打分,而我们有 n 1 n_1 n1?个图片token,因此会对这 n 1 n_1 n1?个最大相似度打分进行求平均。
s i , j I ( x i I , x j T ) = 1 n 1 ∑ k = 1 n 1 [ f θ ( x i I ) ] k T [ g ? ( x i T ) ] m k I (1-3) s_{i,j}^I(x_i^I,x_j^T) = \dfrac{1}{n_1} \sum_{k=1}^{n_1} [f_{\theta}(x_i^I)]_k^{\mathrm{T}} [g_{\phi}(x_i^T)]_{m_{k}^{I}} \tag{1-3} si,jI?(xiI?,xjT?)=n1?1?k=1n1??[fθ?(xiI?)]kT?[g??(xiT?)]mkI??(1-3)
其中的 m k I m_{k}^I mkI?标识了其最大相似度的索引,也就是 m k I = arg ? max ? 0 ≤ r < n 2 [ f θ ( x i I ) ] k T [ g ? ( x i T ) ] r m_k^I = \arg\max_{0\leq r \lt n_2} [f_{\theta}(x_i^I)]_k^{\mathrm{T}} [g_{\phi}(x_i^T)]_r mkI?=argmax0r<n2??[fθ?(xiI?)]kT?[g??(xiT?)]r?,式子(1-3)是图片-文本侧的相似度度量,类似的,我们也可以定义出文本-图片侧的相似度度量 s i , j T ( x i T , x j I ) s_{i,j}^T(x_i^T,x_j^I) si,jT?(xiT?,xjI?)。 注意到 s i , j I ( x i I , x j T ) s_{i,j}^I(x_i^I,x_j^T) si,jI?(xiI?,xjT?)不一定等于 s i , j T ( x i T , x j I ) s_{i,j}^T(x_i^T,x_j^I) si,jT?(xiT?,xjI?),也就是说基于最大相似度的交互,其跨模态相似度不一定是对称的,这一点和CLIP不同。

filip_frame

Fig 1.2 FILIP的框图示意,采用了跨模态迟交互后,可以进行更细粒度的匹配。

我们发现这种对每个模态的token,求另外模态的最大相似度的方法,其实类似于Fig 1.1中的交互方法,只是其没有采用ROI的方式进行匹配,而是以图片patch和文本token依次匹配的方式,如Fig 1.3所示,显然这种方式同样可以实现细粒度的图文匹配。在线上应用时候,需要对每张图片都进行刷特征并且存入正排库,刷特征的时候需要对图片每个patch的特征都进行落盘,以便在线上进行交互时候使用。如公式(1-3)所示,线上交互时可以计算 s i , j T ( x i T , x j I ) s_{i,j}^T(x_i^T,x_j^I) si,jT?(xiT?,xjI?) s i , j I ( x i I , x j T ) s_{i,j}^I(x_i^I,x_j^T) si,jI?(xiI?,xjT?),然后以其平均值作为最终相似度(Query-图片搜索应用直接用 s i , j T ( x i T , x j I ) s_{i,j}^T(x_i^T,x_j^I) si,jT?(xiT?,xjI?)即可)。显然,由于需要对 n 1 n_1 n1?个图片patch特征都进行落盘到正排库,需要非常大量的正排存储资源,在实际落地的过程中也许会碰到一定的困难,需要进行工程上的优化。

FILIP_matching

Fig 1.3 通过对图片和文本分别进行分块(对于文本是分词,对于图片是分patch),在迟交互阶段采用的逐令牌最大相似度匹配,可以实现细粒度匹配。

作者采用了Prompt Learning的方式,对数据集采用了Prompt模版的优化,本文就不展开了。在论文中作者对图文细粒度匹配的结果进行了可视化,如Fig 1.4所示,此处的label分别为“Balloon(气球)”,“Lifeboat(救生艇)”,“Small white butterfly(小白蝶)”,“Electric Iocomotive(电力机车)”,而label后面的数字表示label的某位单词在label模版中的位置。举个例子,此处的模版为

Label模版:a photo of a {label}

当label为"Small white butterfly"的时候,label模版即为“a photo of a small white butterfly”,small在该模版中的第5位,white在第6位而butterfly在第7位。按照前文描述的交互方式,我们求出每个图片patch与label模版单词,其中的最大相似度匹配的模版位置ID,然后将这些位置ID中为label位置ID的进行高亮,这样就绘制出了如Fig 1.4所示的结果。我们可以发现这些label物体有些是非常细粒度的,如气球在原图中的视觉占比非常小,CLIP的结果和我们预期的一致,压根没有对这种细粒度物体进行响应。而FILIP的结果则能对图中patch中有气球部分的进行响应。FILIP不仅能对细粒度物体进行响应,对于大物体同样效果不俗,如Fig 1.4?所示,这个蝴蝶占据了大半个图片,此时FILIP匹配效果同样能够超过CLIP。

fine_grained_matching

Fig 1.4 对比CLIP的结果,可以发现FILIP对于图文细粒度匹配更有优势。

Reference

[1]. Yao, Lewei, Runhui Huang, Lu Hou, Guansong Lu, Minzhe Niu, Hang Xu, Xiaodan Liang, Zhenguo Li, Xin Jiang, and Chunjing Xu. “Filip: Fine-grained interactive language-image pre-training.” arXiv preprint arXiv:2111.07783 (2021).

[2]. https://blog.csdn.net/LoseInVain/article/details/122735603, 图文多模态语义融合前的语义对齐——一种单双混合塔多模态模型

[3]. https://blog.csdn.net/LoseInVain/article/details/116031656,将Transformer用在图片上:Vision Transformer论文杂谈

[4]. Dosovitskiy, Alexey, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani et al. “An image is worth 16x16 words: Transformers for image recognition at scale.” arXiv preprint arXiv:2010.11929 (2020).

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:33:43  更:2022-10-17 12:38:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:54:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码