跨模态语义关联对齐检索-图像文本匹配(Image-Text Matching)
论文介绍:Negative-Aware Attention Framework for Image-Text Matching (基于负感知注意力的图文匹配,CVPR2022)
代码主页:https://github.com/CrossmodalGroup/NAAF
主要优势:
1)不额外添加任何学习参数前提下,在基础基线SCAN上取得显著性能提升,达到SOTA;
2)模型设计简单有效,只需要SCAN 的文本-图像(Text-to-Image)单方向计算,可以大幅减少基于注意力的匹配方法检索耗时。
3)显式的跨模态语义对齐相关性和不相关性学习。结合最优的相关性区分学习,构造一种联合的优化框架。
一、前言
图像文本匹配任务定义:也称为跨模态图像文本检索,即通过某一种模态实例, 在另一模态中检索语义相关的实例。例如,给定一张图像,查询与之语义对应的文本,反之亦然。具体而言,对于任意输入的文本-图像对(Image-Text Pair),图文匹配的目的是衡量图像和文本之间的语义相似程度。
图1 图文匹配的输入和输出
核心挑战:图像文本跨模态语义关联致力于弥合视觉模态和语言模态之间的语义鸿沟,目的是实现异质模态(底层像素组成的图像和高层语义向量表示的文本)间的准确语义对齐,即挖掘和建立图像和文本的跨模态语义一致性关联对应关系。
现状分析:现有的图像文本图像文本匹配工作可以大致分为两类:1)全局关联:以整个文本和图像作为对象学习语义关联;2)局部关联:以细粒度的图像显著区域和文本单词作为对象学习语义关联。早期的工作属于全局关联,即将整个图像和文本通过相应的深度学习网络映射至一个潜在的公共子空间,在该空间中图像和文本的跨模态语义关联相似度可以被直接衡量,并且约束语义匹配的图文对相似度大于其余不匹配的图文对。然而,这种全局关联范式忽略了图像局部显著信息以及文本局部重要单词的细粒度交互,阻碍了图像文本语义关联精度的进一步提升。因此,基于细粒度图像区域和文本单词的局部关联受到广泛的关注和发展,并快速占据主导优势。对于现有的图像文本跨模态语义关联范式,核心思想是挖掘所有图像片段和文本片段之间的对齐关系。
图2 图文匹配的发展现状
交叉注意力网络SCAN通过区域和单词之间的相互关注机制来捕捉所有潜在的局部对齐,并激发出了一系列工作。跨模态交叉注意力旨在挖掘所有图像区域和文本单词之间的对齐关系,通过局部语义对齐来推理整体相关性。得益 于细粒度的模态信息交互,基于交叉注意力的方法取得显著的性能提升,并成为当前图像文本跨模态语义关联的主流范式。
图3 跨模态交叉注意力范式SCAN
动机:现有方法往往根据关联交互获取模态间的对齐语义。该过程的目的是 最大化图像和文本中的对齐语义相似度,并以此作为线索依据来计算图文匹配程度。具体的,在模态交互学习过程中,现有方法通常抑制非对齐线索的作用(通过一个 ReLU 函数抹除负关联分数),导致模型主要学习对齐语义的正面作用。然而,他们都忽略了图像-文本对中丰富的非对齐线索对于衡量 是否匹配也十分重要。因为当文本描述中出现图像里不存在的内容(非对齐的文本单词片段),那么这个 图像-文本对就是不匹配的。由此分析可知,非对齐的文本单词片段对于衡量图像-文本对是否匹配同样重要。最朴素的想法就是:我们可以充分的挖掘非对齐片段的负面作用,使原本检索在Top位置的错误匹配降低相似分值,从而尽可能的检索到正确的。如下图所示:
图4 负感知注意力动机分析
二、总体框架
图5 负感知注意力的总体框架图
Overview:负感知注意力网络包含两个主要模块:1)不匹配挖掘模块:通过建模匹配片段和不匹配片段的相似度分布,然后通过优化两个分布的最小错分概率求解最优的相似度区分阈值,从而尽可能的区分不匹配片段。2)正负双分支匹配模块:通过两种不同的掩码注意力机制,一方面关注匹配片段的相似度,另一方面精确计算不匹配片段的不相似度,联合利用前者的正面作用和后者的负面作用进行图像和文本之间的跨模态语义关联衡量。
亮点:①第一个联合利用匹配和不匹配片段的正面和负面作用,并显式挖掘不匹配片段的工作。②在训练过程中组成联合优化框架:前向优化:自适应地学习最优相关性阈值,获取更优的语义对齐;后向优化:由于最优阈值在参与注意力计算过程,因此在梯度反向传播优化时,会促使相关和不相关的相似度逐渐分离,从而学习更有区分性的图像文本特征嵌入。
下面,分别介绍两个模块的具体实现:
1)不匹配片段挖掘模块
在一个图像-文本对中包含大量的匹配和不匹配的片段,我们需要充分利用这两种类型的信息来实现更精确的检索性能。在实际匹配的过程中,计算出区域-单词对的相似度分数后,需要一个边界来决定它是匹配片段还是不匹配片段,现有的方法通常隐式地以固定值0作为区分边界。为了更准确地区分匹配片段和不匹配片段,我们对两者的相似度进行采样,然后显式地、自适应地建模两者的相似度分布,继而找到一个最优的区分边界,实现有效的不匹配片段挖掘。考虑到缺乏关于片段级的区域-单词是否匹配的先验信息,并且图像中含有大量背景区域,我们从文本的角度出发,设计了一种采样策略:对于一个匹配的文本,其中任意的单词一定可以在其匹配图像中找到至少一个匹配区域,我们视一个文本单词$u_{i}, i \in[1, m]$和其匹配图像的所有区域$\{v^{+}_{j}\}_{j=1}^{n}$中相似度分数最高的为匹配片段,进而做出采样:
\begin{eqnarray}
s^{+}_{i}=\underset{j}{\text{max}}(\{{v^{+}_{j} u_{i}^{\mathrm{T}}}/({\|v^{+}_{j}\|\|u_i\|})\}_{j=1}^{n}),\label{E13}
\end{eqnarray}
另一方面,对于一个不匹配的图文对,文本中的不匹配单词与图像中的所有区域都不匹配,此时单词$u_{i}, i \in[1, m]$和不匹配图像的所有区域$\{v^{-}_{j}\}_{j=1}^{n}$中相似度分数最高的可以代表不匹配片段的相似度的上界,由此做出采样:
\begin{eqnarray}
s^{-}_{i}=\underset{j}{\text{max}}(\{{v^{-}_{j} u_{i}^{\mathrm{T}}}/({\|v^{-}_{j}\|\|u_i\|})\}_{j=1}^{n}),\label{E14}
\end{eqnarray}
并构造如下集合:
\begin{eqnarray}
{S}^{-}_{k} =[s^{-}_{1}, s^{-}_{2}, s^{-}_{3}, \ldots, s^{-}_{i}, \ldots],\label{E3}\\
{S}^{+}_{k} =[s^{+}_{1}, s^{+}_{2}, s^{+}_{3}, \ldots, s^{+}_{i}, \ldots],\label{E4}
\end{eqnarray}
其中${S}^{-}_{k}$和${S}^{+}_{k}$分别表示不匹配区域-单词的相似度分数$s^{-}_{i}$和匹配区域-单词的相似度分数$s^{+}_{i}$的集合,它们会在训练过程中动态更新,$k$即为更新的轮数。基于构造出的两个集合,我们可以分别建立匹配片段和不匹配片段的相似度分$s$数的概率分布模型:
$f^{-}_{k}(s)=\frac{1}{\sigma^{-}_{k}\sqrt{2\pi}}e^{[-\frac{(s-\mu^{-}_{k})^{2}}{2(\sigma^{-}_{k})^2}]}$, $f^{+}_{k}(s)=\frac{1}{\sigma^{+}_{k}\sqrt{2\pi}}e^{[-\frac{(s-\mu^{+}_{k})^{2}}{2(\sigma^{+}_{k})^2}]}$,
其中, $(\mu^{-}_{k}, \sigma^{-}_{k})$ 和 $(\mu^{+}_{k}, \sigma^{+}_{k})$分别是两种概率分布的均值和标准差。
图6 匹配和不匹配片段相似度分布建模
分别得到两个相似度分布建模后,可以用一个显式的边界$t$在匹配片段和不匹配片段之间进行区分,如图6所示,相似度分数大于$t$的区域-单词对被视为匹配片段,反之则为不匹配片段。其中,有两种区分错误的情况:将实际上不匹配的片段区分为匹配的(如图6中的$E_1$),或者将实际上匹配的片段误认为是不匹配的(如图6中的$E_2$)。我们的目的是最大限度的挖掘出不匹配片段,需要找出一个最优的边界$t$,使得区分错误的概率最低,保证识别的准确性,即解决如下优化问题:
\begin{equation}\label{E5}
\begin{array}{ll}{\underset{{t}}{\text{min}}} & \alpha \int_{t}^{+\infty}f_{k}^{-}(s)d{s} + \int_{-\infty}^{t}f_{k}^{+}(s)d{s},
\\ {\text {s.t. }}& t\geq 0,\end{array}
\end{equation}
其中$t$是该问题的决策变量,$\alpha$是惩罚参数。
对于该问题的最优解求解,我们首先搜索它的一阶导数的零点,并根据可行域的约束条件在$t \geq 0$处截断(使用$[\cdot]_{+} \equiv max(\cdot,0)$),得到最优解为:
\begin{equation}\label{E6}
t_{k} = [(({\beta_{2}^{k}}^2-4\beta_{1}^{k} \beta_{3}^{k})^{\frac{1}{2}}-\beta_{2}^{k})/(2\beta_{1}^{k})]_{+}
\end{equation}
其中$\beta_{1}^{k} = (\sigma^{+}_{k})^2-(\sigma^{-}_{k})^2$, $\beta_{2}^{k} = 2(\mu^{+}_{k}{\sigma^{-}_{k}}^2-\mu^{-}_{k}{\sigma^{+}_{k}}^2)$, 和 $\beta_{3}^{k} = (\sigma^{+}_{k}\mu^{-}_{k})^2 - (\sigma^{-}_{k}\mu^{+}_{k})^2 + 2(\sigma^{+}_{k}\sigma^{-}_{k})^2\ln\frac{\sigma^{-}_{k}}{\alpha\sigma^{+}_{k}}$。
有两点值得强调。 (1) 在训练过程中,关于显式的相关性边界,其首先从不匹配和匹配片段的相似度分布中学习,然后将被整合到注意力匹配过程中,以调整更具备区分性的相似度分布,从而创建一个迭代优化过程。这样,不配片段的分布将最大限度地与匹配片段的分布分开,其中不配片段可以产生更鲁棒的负面影响。因此,不匹配的片段也可以作为有意义的线索来准确测量图像-文本的相似性。(2) 在训练结束时,我们期望自适应学习边界能够同时保证最大挖掘不匹配片段,避免误判匹配片段导致性能下降。为了使学习边界收敛到具有更好挖掘精度的状态,我们给出调整初始惩罚参数满足的理论条件,或者更简单的实现为:$t_k = \mu^{+}_{k}-3\sigma^{+}_{k}$。
2)正负双分支匹配模块
在该模块中,我们同时考虑图像-文本对之间的匹配片段和不匹配片段,通过使用正面和负面两种不同的注意力掩码,分别从两个分支精确衡量它们的积极和消极作用。我们首先计算所有区域和单词对之间的语义相关度:
\begin{equation}\label{E7}
{s}_{ij}=\frac{u_{i} v_{j}^{\mathrm{T}}}{\|u_i\|\|v_j\|}, i\in[1,m], j\in[1,n]
\end{equation}
依然从文本的角度出发,计算一个文本单词$u_i, i\in[1, m]$和一个图像所有区域$\{v_j\}_{j=1}^{n}$的相似度与区分边界$t_k$的差值,其中的最大值体现了这个片段是匹配还是不匹配的程度:
\begin{equation}\label{E8}
{s}_{i}=\underset{{j}}{\text{max}}(\{s_{ij}-t_k\}_{j=1}^{n}),
\end{equation}
由此,可以衡量出一个图像文本对中第个单词所带来的负面作用为:
\begin{equation}\label{E9}
s_{i}^{neg} = {s}_{i}\odot\text{Mask}_{neg}({s}_{i})
\end{equation}
其中$\text{Mask}_{neg}(\cdot)$为掩码函数,当输入为负数时输出为1,否则为0,$\odot$表示点积运算。
同时,我们可以考虑到单词在文本内的语义内关系,使语义相似的单词获得相同的匹配关系,在推理过程中(Inference/Testing stage),对每个单词的匹配程度进行一次模态内传播:
\begin{equation}\label{E10}
\hat{s}_{i}\!=\! \sum_{l=1}^{m} w_{il}^{intra}{s}_{l}, \ \text{s.t.} \ w_{il}^{intra}\!=\text{softmax}_{\lambda}(\{{\frac{u_i u_l^{\mathrm{T}}}{\|u_i\|\|{u}_{l}\|}}\}_{l=1}^{m}),
\end{equation}
其中$ w_{il}^{intra}$表示第$i$个和第$l$个单词之间的语义关系,$\lambda$是比例因子。
另一方面,衡量图文对的相似程度时,我们首先关注跨模态的共享语义,第$i$个单词在图像中相关的共享语义可以被聚合为:
\begin{equation}\label{E11}
\hat{v}_{i}=\sum_{j=1}^{n} w_{ij}^{inter} v_j, \quad s.t. \ \ w_{ij}^{inter} = \text{softmax}_{\lambda}(\{\text{Mask}_{pos}(s_{ij}-t_k)\}_{j=1}^{n}),
\end{equation}
其中$w_{ij}^{inter}$是单词和区域的语义关联,$\text{Mask}_{pos}(\cdot)$为掩码函数,当输入为正数时输出与输入相等,否则输出$-\infty$,这样使得不相关的图像区域($s_{ij}-t_k<0$)的注意力权重被削减至0。由此,片段的相似度分数为$s_{i}^{f} = {u_{i}{\hat{v}_{i}}^{\mathrm{T}}}/(\|u_i\|\|\hat{v}_{i}\|)$。
另外,区域与单词间的相关度分数也反应了图文间的相似程度,得到由相关度权重加权的相似度分数$s_{i}^{r}$ = $\sum_{j=1}^{n}w_{ij}^{relev}s_{ij}$,其中$w_{ij}^{relev}=\text{softmax}_{\lambda}(\{\bar{s}_{ij}\}_{j=1}^{n})$,$\bar{s}_{ij}= [{s}_{ij}]_{+}/\sqrt{\sum_{i=1}^{m}[{s}_{ij}]_{+}^{2}}$。因此,一个图像文本对中第个单词所带来的正面作用为:
\begin{equation}\label{E12}
s_{i}^{pos} = s_{i}^{f} + s_{i}^{r}
\end{equation}
最终,图像文本对 $(U, V)$的相似度由正面作用和负面作用共同决定:
\begin{equation}\label{E12-2}
S(U, V) = \frac{1}{m}\sum_{i=1}^{m} (s_{i}^{neg} + s_{i}^{pos})
\end{equation}
三、试验效果
1)达到SOTA
2)可视化
最优阈值学习过程:
不匹配线索挖掘对比(蓝色为不匹配)
四、论文
Zhang K, Mao Z, Wang Q, et al. Negative-Aware Attention Framework for Image-Text Matching[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022: 15661-15670.
跨模态语义关联对齐检索-图像文本匹配(Image-Text Matching)的更多相关文章
- 对比学习下的跨模态语义对齐是最优的吗?---自适应稀疏化注意力对齐机制 IEEE Trans. MultiMedia
论文介绍:Unified Adaptive Relevance Distinguishable Attention Network for Image-Text Matching (统一的自适应相关性 ...
- 图像文本跨模态细粒度语义对齐-置信度校正机制 AAAI2022
论文介绍:Show Your Faith: Cross-Modal Confidence-Aware Network for Image-Text Matching (跨模态置信度感知的图像文本匹配网 ...
- Delphi实现图像文本旋转特效完整代码
Delphi实现图像文本旋转特效完整代码,本程序利用的控件主要是Panel 控件.Image 控件.Edit 控件.Label 控件和Button 控件.本程序的关键是利用Delphi 的bmp_ro ...
- 『动善时』JMeter基础 — 38、JMeter中实现跨线程组关联
目录 1.JMeter中实现跨线程组关联说明 (1)JMeter中实现跨线程组关联步骤 (2)测试计划内包含的元件 2.用户登陆请求的相关操作 (1)进行登陆操作获取Cookie信息 (2)把Cook ...
- [CSS]文本属性(Text)
CSS 文本属性(Text) 属性 描述 CSS color 设置文本的颜色. 1 direction 规定文本的方向 / 书写方向. 2 letter-spacing 设置字符间距. 1 lin ...
- text matching(文本匹配) 相关资料总结
最近工作上需要做句子语义去重相关的工作,本质上这是属于NLP中text matching(文本匹配)相关的内容.因此我花了一些时间整理了一些关于这个方向的资料,整理如下(也许会持续更新): BiMPM ...
- [Alg] 文本匹配-单模匹配与多模匹配
实际场景: 网站的用户发了一些帖子S1, S2,...,网站就要审核一下这些帖子里有没有敏感词. 1. 如果网站想查一下帖子里有没有一个敏感词P,这个文本匹配要怎么做更快? 2. 如果网站想查一下帖子 ...
- UiPath文本操作Get Text的介绍和使用
一.Get Text操作的介绍 从指定的UI元素提取文本值 二.Get Text在UiPath中的使用 1. 打开设计器,在设计库中新建一个Sequence,为序列命名及设置Sequence存放的路径 ...
- UiPath文本操作Set Text的介绍和使用
一.Set Text的介绍 向输入框/文本框写入文本的一种操作 二.Set Text在UiPath中的使用 1.打开设计器,在设计库中新建一个Sequence,为序列命名及设置Sequence存放的路 ...
随机推荐
- springmvc05-json交互处理
什么是json: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛. *采用完全独立于编程语言的文本格式来存储和表示数据 ...
- [AcWing 51] 数字排列
点击查看代码 class Solution { public: vector<vector<int>> res; vector<vector<int>> ...
- Android8.0 后台服务保活的一种思路
原文地址:Android8.0 后台服务保活的一种思路 | Stars-One的杂货小窝 项目中有个MQ服务,需要一直连着,接收到消息会发送语音,且手机要在锁屏也要实现此功能 目前是使用广播机制实现, ...
- 2┃音视频直播系统之浏览器中通过 WebRTC 拍照片加滤镜并保存
一.拍照原理 好多人小时候应该都学过,在几张空白的纸上画同一个物体,并让物体之间稍有一些变化,然后连续快速地翻动这几张纸,它就形成了一个小动画,音视频播放器就是利用这样的原理来播放音视频文件的 播放器 ...
- salesforce零基础学习(一百一十三)Trigger中获取IP地址的过程
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.228.0.apexcode.meta/apexcode/apex_class_Auth ...
- mysql allow remote host
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; FLUSH PRIVILEG ...
- 【mq】从零开始实现 mq-12-消息的批量发送与回执
前景回顾 [mq]从零开始实现 mq-01-生产者.消费者启动 [mq]从零开始实现 mq-02-如何实现生产者调用消费者? [mq]从零开始实现 mq-03-引入 broker 中间人 [mq]从零 ...
- 485. Max Consecutive Ones - LeetCode
Question 485. Max Consecutive Ones Solution 题目大意:给一个数组,取连续1的最大长度 思路:遍历数组,连续1就加1,取最大 Java实现: public i ...
- RabitMQ 简介
每日一句 The secret of being miserable is to have leisure to bother about whether you are happy or not. ...
- 通过一次生产case深入理解tomcat线程池
最近生产上遇到一个case,终于想明白了原因,今天周末来整理一下 生产case 最近测试istio mesh的预热功能(调用端最小连接数原则) 来控制调用端进入k8s刚扩出来的容器的流量 因为刚启动的 ...