当前位置: 首页 > news >正文

2024CVPR:Question Aware Vision Transformer for Multimodal Reasoning介绍

在视觉与语言多模态任务中,如视觉问答(VQA)、图像描述生成等,模型需要同时理解图像内容和用户提出的问题,并进行推理和回答。传统的视觉-语言模型通常采用“两阶段”结构:先通过视觉编码器提取图像特征,再结合问题文本,由大语言模型(LLM)完成最终的回答生成。然而,这种设计存在一个关键问题——视觉编码过程是独立于用户提问内容的 ,也就是说,无论问题是关于图像中的什么内容,视觉编码器都会以相同的方式提取图像特征,导致视觉特征可能无法聚焦于问题所关注的关键区域。

为了解决这一问题,2024年CVPR发表的一篇论文《Question Aware Vision Transformer for Multimodal Reasoning 》提出了 QA-ViT(Question-Aware Vision Transformer) ,一种全新的视觉编码方法。该方法将“问题感知”机制直接嵌入到视觉编码器(ViT)中,使得视觉特征能够根据当前问题动态调整,专注于图像中最相关的部分,从而显著提升多模态推理的效果。

QA-ViT 的核心思想在于:在不修改原有视觉编码器参数的前提下,将问题信息引入 ViT 的注意力机制中,实现跨模态融合 。其创新点包括两个主要模块:Question Encoding(问题编码) 和 Question Fusing(问题融合) ,分别负责将问题文本编码为可融合表示,并通过冻结的自注意力机制将其注入视觉编码过程。最终输出的视觉特征具有“问题意识”,能更好地服务于下游的多模态任务。

接下来,我们将深入解析 QA-ViT 的架构设计、核心模块及其工作原理,帮助你全面理解这项多模态建模的新进展。

QA-ViT:使视觉编码器对用户查询(如图片相关问题)敏感的方法,通过结合问题意识到视觉编码器中以提升多模态推理的性能

ViT:Visual Transformer

其主要的组成部分包括:

  1. Embedding 层
  2. Transformer Encoder
  3. MLP Head

其主要的步骤为:

  1. 将一张图片分成多个patches

    将输入为[H,W,C]的图像数据,通过一个Embedding层进行变换。首先将一张图片按给定大小进行划分,代码上直接一个卷积层,可以把图片分为多个块。

  2. 将这些Patches进行铺平

    将Patches摆成类似文本一样的序列结构。

  3. 线性映射到低维空间
  4. 添加embedding编码信息
  5. 将图像序列送入标准的Transformer encoder中去
  6. 预训练
  7. 下游任务数据集微调

QA-ViT

image
在视觉编码器(ViT)加入了Question Fusing模块,同时将FVQF_{VQ}FVQQQQ都传入LLM中,进而完成VQA任务。

论文在Abstract部分是这么写的:
视觉大模型往往由下面几个部分组成:

  1. Vision encoder:视觉编码器
  2. LLM:大语言模型,用于VQA,Captioning等任务
  3. Projection model:视觉特征转换到文本特征空间,用于特征融合。
    论文抓住的疼点在于:视觉编码过程仍然与用户查询无关,通常以与图像相关的问题的形式出现。因此,生成的视觉特征可能无法与图像的特定于查询的元素进行最佳调整。

所以QA-ViT的提出,将问题感知直接嵌入到视觉编码器中。这种集成会产生动态视觉特征,专注于与所提出问题相关的图像方面。QA-ViT 与模型无关,可以有效地集成到任何 VL 架构中。广泛的实验证明了将我们的方法应用于各种多模态架构的有效性,从而在不同任务中实现持续改进,并展示了其在增强视觉和场景文本理解方面的潜力。

整体架构的关键就是中间的橙色部分:
image

首先原本的结构中QQQ只用于输入LLM,LLM根据视觉模块的内容进行回复。

Question Encoding

在QA-ViT的结构中,QQQ首先编码为FQF_QFQ,然后通过Fusing模块与视觉融合成FVQF_{VQ}FVQ,然后输出到LLM中。

作者的Question Encodeing模块使用了LLM的Encoder模块进行编码,更好的融合,得到向量FQ′F'_QFQ,然后将FQ′F'_QFQ通过一个投影模块投影到视觉模型的视觉空间中,便于在视觉Transformer中融合问题信息(这里是一个逐层MLP)

Question Fusing

image

  1. 将经过投影的问题特征 FQ∈RK×CF_Q \in \mathbb{R}^{K \times C}FQRK×C 与视觉特征 FV∈RM×CF_V \in \mathbb{R}^{M \times C}FVRM×C 在序列维度上拼接;
  2. 利用 ViT 中已有的自注意力机制(self-attention)进行跨模态交互;
  3. 提取仅对应视觉部分的注意力输出,作为融合后的问题感知视觉特征 FVQ′F'_{VQ}FVQ
  4. 使用一个可学习的门控机制(gated projection)进一步微调融合后的特征,得到最终的 FVQF_{VQ}FVQ

具体步骤如下:

  • 输入:
    • 视觉特征 FVF_VFV:来自 ViT 某一层的输出,大小为 M×CM \times CM×C,其中 MMM 是 patch 数量,CCC 是通道数;
    • 文本特征 FQF_QFQ:来自 Question Encoding 阶段的输出,大小为 K×CK \times CK×C
  • 操作:将两者拼接成一个新的输入序列:
    concat(FV,FQ)∈R(M+K)×C \text{concat}(F_V, F_Q) \in \mathbb{R}^{(M+K) \times C} concat(FV,FQ)R(M+K)×C
  • 接下来,使用 ViT 原生的 冻结的自注意力层(frozen self-attention layer) 来处理这个拼接后的序列。
  • 注意力机制会计算所有 token(包括图像 patch 和问题 token)之间的相关性,从而实现跨模态注意力(cross-modal attention)
  • 输出结果仍然是一个长度为 M+KM + KM+K 的序列。

📌 因为 ViT 是冻结的,所以这里只利用其注意力机制,并不更新它的参数。

  • 从注意力输出中,只保留前 MMM 个 token,也就是与视觉特征对应的输出,记作:
    FVQ′=Attention(concat(FV,FQ))[0:M] F'_{VQ} = \text{Attention}(\text{concat}(F_V, F_Q))[0:M] FVQ=Attention(concat(FV,FQ))[0:M]

📌 这一步的关键在于:虽然问题 token 被用于注意力计算,但最终只保留了图像 token 的输出,这些输出已经“看到了”问题内容,因此具备了问题感知能力。

为了更稳定地融合信息并避免破坏原有视觉结构,作者设计了一个并行的可学习门控模块

FVQ=P(FVQ′)+Pg(FVQ′)⋅tanh⁡(β) F_{VQ} = P(F'_{VQ}) + P_g(F'_{VQ}) \cdot \tanh(\beta) FVQ=P(FVQ)+Pg(FVQ)tanh(β)

其中:

  • PPP 是 ViT 原来的投影头(projection head);
  • PgP_gPg 是新增的一个小的可训练投影层;
  • β\betaβ 是一个可学习的标量参数,初始化为 0,控制新信息的注入强度;
  • 使用 tanh⁡(β)\tanh(\beta)tanh(β) 可以让初始阶段几乎不改变原有输出(因为 tanh(0)=0),随着训练逐渐开启新路径,提升稳定性。
http://www.dtcms.com/a/277532.html

相关文章:

  • 考研复习-数据结构-第六章-图
  • RedisJSON 技术揭秘(五)`JSON.ARRPOP` 原子弹出 修改数组的终极手段
  • git实操
  • HTML 标题标签
  • 香港理工大学实验室定时预约
  • 【windows办公小助手】快速搜索文件及文件所处目录everything
  • 内存对齐与缓存优化:从硬件原理到代码实战
  • 前端进阶之路-从传统前端到VUE-JS(第五期-路由应用)
  • 通信网络编程5.0——JAVA
  • 新手向:使用Python从PDF中高效提取结构化文本
  • LeetCode经典题解:21、合并两个有序链表
  • 【基础算法】倍增
  • Qt:编译qsqlmysql.dll
  • React强大且灵活hooks库——ahooks入门实践之常用场景hook
  • NoSQL 介绍
  • day052-ansible handler、roles与优化
  • Spring AI 项目实战(十七):Spring + AI + 通义千问星辰航空智能机票预订系统(附完整源码)
  • SDN软件定义网络架构深度解析:分层模型与核心机制
  • Datawhale AI 夏令营【更新中】
  • java虚拟线程
  • 面试150 从中序与后序遍历构造二叉树
  • Maven项目没有Maven工具,IDEA没有识别到该项目是Maven项目怎么办?
  • html案例:编写一个用于发布CSDN文章时,生成有关缩略图
  • 【拓扑排序+dfs】P2661 [NOIP 2015 提高组] 信息传递
  • 线下门店快速线上化销售四步方案
  • 在i.MX8MP上如何使能BlueZ A2DP Source
  • 如何设计高并发架构?深入了解高并发架构设计的最佳实践
  • Nature子刊 |HERGAST:揭示超大规模空间转录组数据中的精细空间结构并放大基因表达信号
  • DETRs与协同混合作业训练之CO-DETR论文阅读
  • Pandas 的 Index 与 SQL Index 的对比