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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【多模态】MoE解决多模态单双塔问题 VLMo: Unifified Vision-Language Pre-Training with Mixture-of-Modality-Experts -> 正文阅读

[人工智能]【多模态】MoE解决多模态单双塔问题 VLMo: Unifified Vision-Language Pre-Training with Mixture-of-Modality-Experts

之前在秋招和写毕业论文,一个月没更了。毕业论文交了,开更。

《VLMo: Unifified Vision-Language Pre-Training with Mixture-of-Modality-Experts》

多模态的单双塔困境

在多模态工作中存在两类主流方法,分别是双塔模型和单塔模型。

在这里插入图片描述

双塔模型以CLIP和ALIGN为代表,这类方法对文本和图像分别用一个编码器进行编码,然后计算两个模态的embedding的相似度。这类方法的优点是适合检索任务,可以检索大量的文本与图像,缺点是仅在塔顶的相似度loss交互信息有限,不足以处理复杂的VL分类任务。比如CLIP在视觉推理任务上的准确度较低。

img

单塔模型以ViLT为代表,这类模型的优点是可以充分地将多模态的信息融合,更擅长分类任务,这种模型架构天然不适合检索,因为没有显示的对齐操作,只能用 【CLS】 的输出匹配 or 不匹配。利用这种模型架构做检索任务,需要encode所有的文本-图像对,时间复杂度是 O ( N 2 ) O(N^2) O(N2) 的。

下图是ViLT的模型架构,有三个预训练任务,分别是图像文本匹配、MLM和单词-图像区域对齐(WPA)。

在这里插入图片描述

其中 Word Patch Alignment是 UNITER 这篇中提出的方法,WPA 是利用最优传输(OT)的形式完成的。

在这里插入图片描述

对比推荐的单双塔

这里可以联系推荐场景,召回模型通常是作用在 亿级别的,需要快速匹配,因此通常是双塔模型,用户和物品不存在特征交互,只在塔顶相遇进行相似度匹配。

精排阶段通常是作用在千级别,需要进行充分的特征交互挖掘,深度的特征交互有助于更准确的推荐,这个是推荐经典的理论。

在这里插入图片描述

所以可以帮助我们理解多模态里的单塔双塔困境。

VLMo——MoE解决单双塔问题

这篇文章希望融合这两个架构的优点,提出VLMo希望既可以作为双编码器(双塔)去做检索任务,也可以作为融合编码器(单塔)。VLMo利用了一个古老的模型结构 混合专家,VLMo的核心结构是 Mixture-of-Modality-Experts(MOME) Transformer,简而言之是将 Transformer中的FFN前馈网络替换成了针对不同任务的网络,称之为模态专家。每个专家拥有特定任务的知识,处理具体任务时切换到相应的专家。

下面来看具体方法。VLMo的整体结构和训练流程如下。左边是VLMo的结构,右边是按顺序的三个预训练任务。

在这里插入图片描述

Input Representations

图片和文本要变成embedding才能输入进VLMo。所以首先是如何生成embedding。

  • 图像表示:二维图像 v ∈ R H × W × C v \in \mathbb{R}^{H \times W \times C} vRH×W×C 分割成 N = H W / P 2 N=H W / P^2 N=HW/P2 个patch, v p ∈ R N × ( P 2 C ) v^p \in \mathbb{R}^{N \times\left(P^2 C\right)} vpRN×(P2C),C 是图片的通道数。将图片patch展开拉成向量,并通过线性变换的到patch embedding。还要再准备一个图片的【CLS】token。再加上一维position emb和type emb得到图像的最终输入:

V type? ∈ R D : H 0 v = [ v [ I 1 ?CLS? ] , V v i p , … , V v N p ] + V pos? + V type? \boldsymbol{V}_{\text {type }} \in \mathbb{R}^D: \boldsymbol{H}_0^v=\left[\boldsymbol{v}_{\left[I_1 \text { CLS }\right]}, \boldsymbol{V} \boldsymbol{v}_i^p, \ldots, \boldsymbol{V} \boldsymbol{v}_N^p\right]+\boldsymbol{V}_{\text {pos }}+\boldsymbol{V}_{\text {type }} Vtype??RD:H0v?=[v[I1??CLS?]?,Vvip?,,VvNp?]+Vpos??+Vtype??

其中 H 0 v ∈ R ( N + 1 ) × D \boldsymbol{H}_0^v \in \mathbb{R}^{(N+1) \times D} H0v?R(N+1)×D V ∈ R ( P 2 C ) × D \boldsymbol{V} \in \mathbb{R}^{\left(P^2 C\right) \times D} VR(P2C)×D V p o s ∈ R ( N + 1 ) × D V_{p o s} \in \mathbb{R}^{(N+1) \times D} Vpos?R(N+1)×D V type? ∈ R D V_{\text {type }} \in \mathbb{R}^D Vtype??RD。所以每个patch先投影,然后和【CLS】 concat起来,然后每个位置加不同的 V p o s V_{p o s} Vpos? 和相同的 V t y p e V_{type} Vtype?

  • **文本表示:**没什么好说的,和BERT一样, H 0 w ∈ R ( M + 2 ) × D \boldsymbol{H}_0^w \in \mathbb{R}^{(M+2) \times D} H0w?R(M+2)×D

H 0 w = [ w [ T C C L S ] , w i , … , w M , w [ T 1 S E P ] ] + T pos? + T type? \boldsymbol{H}_0^w=\left[\boldsymbol{w}_{\left[T_C \mathrm{CLS}\right]}, \boldsymbol{w}_i, \ldots, \boldsymbol{w}_M, \boldsymbol{w}_{\left[T_1 \mathrm{SEP}\right]}\right]+\boldsymbol{T}_{\text {pos }}+\boldsymbol{T}_{\text {type }} H0w?=[w[TC?CLS]?,wi?,,wM?,w[T1?SEP]?]+Tpos??+Ttype??

  • 图像-文本表示:

H 0 v l = [ H 0 w ; H 0 v ] H_0^{v l}=\left[H_0^w ; H_0^v\right] H0vl?=[H0w?;H0v?]

MOME Transformer

MOME Transformer用3个模态专家替换了Transformer的前馈网络:视觉专家(V-FFN)、语言专家(L-FFN)和视觉语言专家(VL-FFN)。针对不同的情况,使用不同的专家来处理任务。

但是,Transformer的Multi-Head Self-Attention(MSA)是共享的,意味着Query、Key和Value的参数是共享的。

在这里插入图片描述

**双塔:**如果输入是仅图像或仅文本向量,则使用视觉Expert对图像进行编码,使用语言Expert对文本进行编码。如果是VL检索任务,分别得到图像和文本的embedding后,计算两者相似度。这就是VLMo的双编码器结构。

**单塔:**如果输入是多种模态的向量组成,如图像-文本对的向量,则使用视觉专家和语言专家在Transformer底层编码各自的模态向量。然后使用视觉语言专家在顶层来捕获更多的模态交互。比如下图的VL分类任务,就是VLMo的融合编码器结构。

Pre-Training Task

VLMo有三个预训练任务。

图像-文本对比学习:给定一个batch的图像文本对,图像文本对比学习的目标是预测 N × N N \times N N×N 个可能的图像文本对的匹配对,在batch内有 N 2 ? N N^2-N N2?N 个负图像-文本对。[I_CLS]标记和[T_CLS]标记的最终输出向量分别用作图像和文本的聚合表示。然后进行线性投影和归一化,最终得到图像向量 { h ^ i v } i = 1 N \left\{\hat{h}_i^v\right\}_{i=1}^N {h^iv?}i=1N? 和文本向量 { h ^ i w } i = 1 N \left\{\hat{h}_i^w\right\}_{i=1}^N {h^iw?}i=1N?,计算图像到文本和文本到图像的相似性:
s i , j i 2 t = h ^ i v ? h ^ j w , s i , j t 2 i = h ^ i w ? h ^ j v p i i 2 t = exp ? ( s i , i i 2 t / σ ) ∑ j = 1 N exp ? ( s i , j i 2 t / σ ) , p i t 2 i = exp ? ( s i , i t 2 i / σ ) ∑ j = 1 N exp ? ( s i , j t 2 i / σ ) \begin{gathered} s_{i, j}^{i 2 t}=\hat{\boldsymbol{h}}_i^{v \top} \hat{\boldsymbol{h}}_j^w, s_{i, j}^{t 2 i}=\hat{\boldsymbol{h}}_i^{w \top} \hat{\boldsymbol{h}}_j^v \\ p_i^{i 2 t}=\frac{\exp \left(s_{i, i}^{i 2 t} / \sigma\right)}{\sum_{j=1}^N \exp \left(s_{i, j}^{i 2 t} / \sigma\right)}, p_i^{t 2 i}=\frac{\exp \left(s_{i, i}^{t 2 i} / \sigma\right)}{\sum_{j=1}^N \exp \left(s_{i, j}^{t 2 i} / \sigma\right)} \end{gathered} si,ji2t?=h^iv??h^jw?,si,jt2i?=h^iw??h^jv?pii2t?=j=1N?exp(si,ji2t?/σ)exp(si,ii2t?/σ)?,pit2i?=j=1N?exp(si,jt2i?/σ)exp(si,it2i?/σ)??
**掩码语言建模:**BERT中的MLM。

图像-文本匹配:使用[T_CLS]标记的最后一个隐藏向量来表示图像-文本对,并将该向量输入具有交叉熵损失的分类器进行二进制分类。还加了难负样本图像-文本对。

Stagewise Pre-Training

在这里插入图片描述

  • 首先,只使用图像数据对MOME Transformer的视觉专家和注意力模块进行视觉预训练。作者直接利用BEIT的预训练参数来初始化注意模块和视觉专家。
  • 然后,冻结注意力模块和视觉专家的参数,只使用文本数据对语言专家进行语言预训练。
  • 最后,解开冻结,用整个该模型进行VL预训练。

微调

**视觉语言分类(单塔):**对于视觉问题回答和视觉推理等分类任务,使用VLMo作为融合编码器来建模图像和文本的模态交互。使用标记[T_CLS]的最终编码向量作为图像-文本对的表示,并将其提供给特定于任务的分类器层来预测标签。

**视觉语言检索(双塔):**对于检索任务,VLMo可以作为双编码器分别对图像和文本进行编码。在微调过程中,对图像-文本用对比损失函数优化。在推理过程中,计算所有图像和文本的表示,然后使用点积得到所有可能的图像-文本对的图像到文本和文本到图像的相似性得分。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 20:57:15  更:2022-09-24 21:01:06 
 
开发: 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年5日历 -2024/5/19 23:48:41-

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