【论文极速读】视频检索中的模态均衡方法

【论文极速读】视频检索中的模态均衡方法
FesianXu 20231206 at Baidu Search Team

前言

传统的视频搜索系统相关性部分主要以文本匹配为基础手段,在其中引入多模态向量容易收到『模态不均衡』的问题,论文[1]尝试对其进行解决,本文进行笔记。如有谬误请见谅并联系指出,本文遵守CC 4.0 BY-SA版权协议,转载请联系作者并注明出处,谢谢。

∇ \nabla 联系方式:

e-mail: FesianXu@gmail.com

github: https://github.com/FesianXu

知乎专栏: 计算机视觉/计算机图形理论与应用(https://www.zhihu.com/column/c_1265262560611299328)

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


传统的视频搜索系统相关性部分主要以文本语义匹配/字面匹配为基本手段,其模型的输入基本上都是文本,并无视觉的语义向量。如果希望在这样一个纯文本的系统中加入视觉语义向量(此处的视觉语义向量可以是上游模型的产出,比如CLIP的产出),那么很容易遇到所谓的『模态不均衡』的问题,即是由于文本匹配更为简单(毕竟骨架网络都是基于文本进行过很多次迭代了),那么新引入的视觉语义向量就很容易在整个训练过程中被视为噪声,或者被忽视,其视觉本身的作用不容易建模出来。在论文[1]中,作者同样报告了这样一个现象,并且提出了通过『模态混洗(Modality-Shuffle)』的方法进行优化,整个框架被称之为MBVR(Modality-Balanced Video Retrieve)。如Fig 1.所示,对于一个文本-视觉成对的样本 < Q i , T i , V i > <Q_i, T_i, V_i> <Qi,Ti,Vi>,通过在batch内混洗视觉输入,得到难负样本 < Q i , T i , V j > , i ≠ j , i , j ∈ B <Q_i, T_i, V_j>, i \neq j, i,j \in \mathcal{B} <Qi,Ti,Vj>,i=j,i,jB,此时对于其文本检索 Q i Q_i Qi而言, Q i Q_i Qi T i T_i Ti是匹配的,但和视觉 V j V_j Vj不匹配,通过这种方法构建出的难负样本,有利于加强视觉特征的作用力度。
fig_1_framework_ms

Fig 1. 模态混洗的方式构建出文本匹配,但是视觉不匹配的难负样本。

除此之外,作者还提出用动态margin去建模,不过笔者觉得并不关键,因此就不阐述了。从整体来看,其loss如公式(1-1)所示,其中的 L b i = L q m + L m q \mathcal{L}_{bi} = \mathcal{L}_{qm} + \mathcal{L}_{mq} Lbi=Lqm+Lmq,表示Query-Doc匹配和Doc-Query匹配的损失, L v \mathcal{L}_{v} Lv表示 < Q i , V i > <Q_i, V_i> <Qi,Vi>的匹配损失,同理 L t \mathcal{L}_{t} Lt表示了 < Q i , T i > <Q_i, T_i> <Qi,Ti>的匹配损失,而 L m s \mathcal{L}_{ms} Lms即是通过模态混洗构建难负样本带来的损失,如公式(1-2)所示,其中的 M m s \mathcal{M}_{ms} Mms表示构建出来的模态混洗负样本。

L = L b i + α L v + β L t + γ L m s (1-1) \mathcal{L} = \mathcal{L}_{bi} + \alpha \mathcal{L}_v + \beta \mathcal{L}_t + \gamma \mathcal{L}_{ms} \tag{1-1} L=Lbi+αLv+βLt+γLms(1-1)

L m s = − log ⁡ exp ⁡ ( s ( q , m ) / τ ) exp ⁡ ( s ( q , m ) / τ ) + ∑ m ^ ∈ M m s exp ⁡ ( s ( q , m ^ ) / τ ) (1-2) \mathcal{L}_{ms} = -\log \dfrac{\exp(s(q,m)/\tau)}{\exp(s(q,m)/\tau)+\sum_{\hat{m} \in \mathcal{M}_{ms}} \exp(s(q,\hat{m})/\tau)} \tag{1-2} Lms=logexp(s(q,m)/τ)+m^Mmsexp(s(q,m^)/τ)exp(s(q,m)/τ)(1-2)

那么如何验证效果呢?作者进行了一些离线消融实验,并且进行了线上实验(该论文来自于快手,本方案应该是在线上进行了实验),均发现有所收益,这些常规指标就不在这里累述了。同时作者通过定向的分析,验证了模态混洗带来的优势,如公式(1-3)所示,作者定义了一个 R v t R_{vt} Rvt,其中的 F v , F t , F m \mathcal{F}_v,\mathcal{F}_t,\mathcal{F}_m Fv,Ft,Fm分别表示视觉、文本以及联合视觉文本模型的表征,那么 R v t R_{vt} Rvt指数表示了视觉在该联合模型中,占据的重要程度与文本在该联合模型中占据的重要程度的比例,这个值越高表示了视觉在模型中地位越重。(注,此处的联合模型可表示为 L m = H ( F v , F t ) \mathcal{L}_{m} = \mathcal{H}(\mathcal{F}_v,\mathcal{F}_t) Lm=H(Fv,Ft)
R v t = cos ⁡ ( F v , F m ) cos ⁡ ( F t , F m ) (1-3) R_{vt} = \dfrac{\cos(\mathcal{F}_v, \mathcal{F}_m)}{\cos(\mathcal{F}_t, \mathcal{F}_m)} \tag{1-3} Rvt=cos(Ft,Fm)cos(Fv,Fm)(1-3)

在Fig 2 (a) 中,作者对基线模型和MBVR模型的 R v t R_{vt} Rvt分布的绘制,我们可以明显看出引入了MBVR之后,视觉特征在视文联合模型 H ( ⋅ , ⋅ ) \mathcal{H(\cdot, \cdot)} H(,)中的作用力度更大了,同时作者在Fig 2 (b)和(c)中对比了正样本和难负样本在基线模型和MBVR模型中的打分分布变化,可以明显看出引入了MBVR模型之后,难负样本打分更低,和正样本打分分布产生了明显的变化。

Fig 2. (a) R值分布变化,引入了MBVR之后视觉的作用力度有明显提升;(b)基线模型中,正样本和难负样本区分度小,(c)引入了MBVR之后,正样本和难负样本有了明显的区分度。

笔者认为这篇论文对于工业界落地多模态特征还是具有一定指导意义的,模态不均衡的问题在实际落地过程中真实存在,作者提出的解决方法不失一种有效可行的手段,在构造MS难负样本这块,后续可以继续探索,构造一些更合适的难负样本应该是有一定收益空间的。同时,也可以引入类似于MLM的,某种跨模态mask机制,去建模模态间的关系,笔者认为同样可以缓解模态不均衡的问题。

Reference

[1]. Wang, Xun, et al. “Modality-Balanced Embedding for Video Retrieval.” Proceedings of the 45th International ACM SIGIR Conference on Research and Development in Information Retrieval. 2022.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/235101.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

二维码智慧门牌管理系统升级解决方案:数字化房产管理

文章目录 前言一、全面信息记录&#xff1a;提升管理效率二、多种优势功能&#xff1a;系统化管理与无缝对接三、安全隐私保护&#xff1a;数据安全的重要性四、总结&#xff1a;提升管理效率与居住体验 前言 科技驱动房产管理 随着科技的飞速发展&#xff0c;房产管理领域也面…

udp多播组播

import socket ,struct,time# 组播地址和端口号 MCAST_GRP 239.0.0.1 MCAST_PORT 8888 # 创建UDP socket对象 sock socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) # 绑定socket对象到本地端口号 # sock.bind((MCAST_GRP, MCAST_PORT)) …

D28|买卖股票的最佳时机+跳跃游戏

122.买卖股票的最佳时机 II 初始思路&#xff1a; 这道题解题的时候比较像在找规律&#xff0c;发现只要计算这个过程中的两数之差然后相加即可。 题解复盘&#xff1a; 可以更加清晰的发现如何从题意中获得贪心的思路。 如何贪心&#xff1a;局部最优&#xff1a;收集每天的…

Unity中Batching优化的GPU实例化(3)

文章目录 前言一、UNITY_SETUP_INSTANCE_ID(v);二、在UnityInstancing.cginc文件中&#xff0c;看一下Unity这句话做了什么1、使用了该 .cginc 后&#xff0c;会自动预定义该函数2、需要满足GPU实例化条件&#xff0c;才会执行对应语句3、满足GPU实例化后&#xff0c;主要执行的…

【Web】SCU新生赛个人wp及完赛感想

目录 一些碎碎念&#xff1a; Web Guideline 2048 ezupload hardupload ezphp ezweb ezsql webbuilder tarit tarit_revenge VipDinner simplespi 一些碎碎念&#xff1a; scu新生赛是我全心全力打的第二场比赛&#xff0c;历时七天&#xff0c;期间不免煎熬&…

[GPT]Andrej Karpathy微软Build大会GPT演讲(下)--该如何使用GPT助手

该如何使用GPT助手--将GPT助手模型应用于问题 现在我要换个方向,让我们看看如何最好地将 GPT 助手模型应用于您的问题。 现在我想在一个具体示例的场景里展示。让我们在这里使用一个具体示例。 假设你正在写一篇文章或一篇博客文章,你打算在最后写这句话。 加州的人口是阿拉…

[足式机器人]Part2 Dr. CAN学习笔记-自动控制原理Ch1-2稳定性分析Stability

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-自动控制原理Ch1-2稳定性分析Stability 0. 序言1. 稳定的分类2. 稳定的对象3. 稳定的系统4. 系统稳定性的讨论5. 补充内容——Transfer Function(传递函数) - nonzero Initial Condition(非零初始…

C现代方法(第27章)笔记——C99对数学计算的新增支持

文章目录 第27章 C99对数学计算的新增支持27.1 <stdint.h>: 整数类型(C99)27.1.1 <stdint.h>类型27.1.2 对指定宽度整数类型的限制27.1.3 对其他整数类型的限制27.1.4 用于整型常量的宏 27.2 <inttype.h>: 整数类型的格式转换(C99)27.2.1 用于格式指定符的宏…

【设计模式--创建型--建造者模式】

建造者模式 建造者模式概述结构结果优缺点使用场景 将上述案例改为链式调用结果 建造者模式 概述 将一个复杂对象的构建与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 分离了部件的构建&#xff08;由Builder来负责&#xff09;和装配&#xff08;由Direct…

接触刚性环境任务下的机器人力控(阻抗)性能测试

内涵 接触刚性环境任务下的机器人力控&#xff08;阻抗&#xff09;性能测试旨在评估机器人在与刚性物体交互时的性能表现。这种测试通过调整机器人的控制参数&#xff0c;如期望刚度和期望阻尼等&#xff0c;并分析记录的数据&#xff0c;旨在确保机器人能够在执行任务时保持…

类数组对象转为数组的方法

在开发的过程经常会遇到一些类数组对象&#xff0c;例如arguments&#xff0c;类数组对象具有length属性&#xff0c;也可以通过下标访问到对应值&#xff0c;但是不能使用数组的方法&#xff0c;如果将类数组对象转为数组&#xff0c;数组方法可以帮助我们更快实现逻辑&#x…

C++枚举类

枚举 C11有作用域枚举和无作用域枚举 无作用域枚举 特点 全局作用域&#xff1a;无作用域枚举的成员&#xff08;枚举值&#xff09;在包含它们的作用域内是直接可见的&#xff0c;不需要使用枚举类型名称作为前缀。 隐式类型转换&#xff1a;无作用域枚举的成员可以隐式地转换…

机器学习 | Python贝叶斯超参数优化模型答疑

机器学习 | Python贝叶斯超参数优化模型答疑 目录 机器学习 | Python贝叶斯超参数优化模型答疑问题汇总问题1答疑问题2答疑问题3答疑问题汇总 问题1:想问一下贝叶斯优化是什么? 问题2:为什么使用贝叶斯优化? 问题3:如何实现? 问题1答疑 超参数优化在大多数机器学习流水线…

ToolkenGPT:用大量工具增强LLM

深度学习自然语言处理 原创作者&#xff1a;cola 用外部工具增强大型语言模型(LLM)已经成为解决复杂问题的一种方法。然而&#xff0c;用样例数据对LLM进行微调的传统方法&#xff0c;可能既昂贵又局限于一组预定义的工具。最近的上下文学习范式缓解了这一问题&#xff0c;但有…

微信小程序pc端宽高:默认宽高为1024*812,全屏宽高为1920*1032

最近开发调试pc端小程序&#xff0c;想知道默认打开和全屏这两种情况下的小程序宽高&#xff0c;发现了一种方法&#xff1a; 真机运行pc端小程序&#xff0c;点击devTools 在控制台直接打印window对象&#xff0c;可以获取到pc端默认屏幕宽高为1024*812&#xff0c;全屏pc端小…

Go开发运维:Go服务发布到K8S集群

目录 一、实验 1.Go服务发布到k8s集群 二、问题 1.如何从Harbor拉取镜像 一、实验 1.Go服务发布到k8s集群 &#xff08;1&#xff09;linux机器安装go(基于CentOS 7系统) yum install go -y &#xff08;2&#xff09;查看版本 go version &#xff08;3&#xff09;创…

有病但合理的 ChatGPT 提示语

ChatGPT 面世一年多了&#xff0c;如何让大模型输出高质量内容&#xff0c;让提示词工程成了一门重要的学科。以下是一些有病但合理的提示词技巧&#xff0c;大部分经过论文证明&#xff0c;有效提高 ChatGPT 输出质量&#xff1a; ​1️⃣ Take a deep breath. 深呼吸 ✨ 作用…

【Kubernetes】持久化存储emptyDir/hostPath/nfs/PVC

k8s持久化存储 一、为什么做持久化存储&#xff1f;二、k8s持久化存储&#xff1a;emptyDir三、k8s持久化存储&#xff1a;hostPath四、k8s持久化存储&#xff1a;nfs4.1、搭建nfs服务4.2、挂载nfs共享目录 五、k8s持久化存储&#xff1a; PVC5.1、什么是PV5.2、什么是PVC5.3、…

ansible中的角色

1.理解roles在企业中的定位及写法 查看创建目录结构 ansible - galaxy list 指定新的位置 vim ansible.cfg roles_path ~/.ansible/roles 建立项目 cd roles/ ansible-galaxy init vsftpd tree vsftpd/ 编辑任务执行&#xff08;顺序&#xff09;文件 vim vsftpd/tas…

Day56力扣打卡

打卡记录 数对统计&#xff08;DP状态压缩&#xff09; 参考文献 #include <bits/stdc.h>using namespace std;void solve(){int n;cin >> n;map<int, int> mapp;vector<int> a(n);for (auto& x : a){cin >> x;mapp[x] ;}vector<array&…