前沿论文 M5Product 组会 PPT

对比学习(Contrast learning):对比学习是一种自监督学习方法,用于在没有标签的情况下,通过让模型学习哪些数据点相似或不同来学习数据集的一般特征。假设一个试图理解世界的新生婴儿。在家里,假设有两只猫和一只狗。即使没有人告诉你它们是“猫”和“狗”,这个婴儿仍可能会意识到,与狗相比,这两只猫看起来很相似。

作者从理论论文和实践论文的角度都表明,具有不同模态的大规模数据集可以有效地增强对生成特征的区分,从而提高视觉语言任务的性能。然而,目前的进展受到缺乏这种大规模多样化模态数据集的严重限制,最大的公共多模态数据集只包含文本、图像模态和无类别信息[41]。作者采集了结构化和音视频数据来进行训练。

大多数多模态预训练数据集是从社交网站收集的(例如,Twitter和Facebook),并且仅限于为指定任务收集的两种模式。这些数据集可以根据其模态组成分为四类,即,音频/文本、视频/文本、图像/文本等。CMU-MOSEI主要关注情感分析,XMedia用于跨模态检索。除了上述数据集,还有几个电子商务数据集。Dress Retrieval [9],RPC checkout [48]和Product1M [55]是典型的电子商务多模态数据集。可以看出他们的模态只有图片和文本。

近年来,针对视觉-文本多模态学习,研究者们提出了多种视觉语言预训练模型。它们可以粗略地分为两类:1)单流模型,其Transformer层共同对视觉和文本输入进行concat操作,例如VL-bert [42],Image-BERT [37],VideoBERT [44],MMT [12],HERO [26],VisualBERT [27]和UNITER [7]。2)图像和文本输入不连接的双流模型,例如ViLBERT [30],LXMERT [45],CLIP [38]和DALL-E [39]。

读ppt

之前的研究引发了两个关键挑战:
(1)模态交互:如何通过扩展到大量模态的优雅方法,实现从不同模态之间的单峰,双峰,三峰甚至多模态关系中学习共同表示。
(2)模态噪声:如何在训练过程中减少模态噪声(不完整的模态)的影响。后面作者使用零插补进行去除,发现对模型效果有所提高。


读PPT

作为一个真实世界的数据集,与传统的多模态数据集不同,它并不是一个完整的配对数据集。具体来说,这个数据集包含的样本只包含部分模态(即不同类型的数据),而且数据的分布是长尾分布。这意味着大部分样本可能集中在少数几种模态上,而其他模态的样本则相对较少。

方法框架中最下面是SCALE首先对五个模态数据进行处理,然后得到特征,同样每个模态有一个CLS特征来对其他特征进行综合。然后进行对比学习。在由单独的模态编码器处理之后,不同模态的令牌特征被连接并馈送到联合共Transformer(Joint Co-Transformer,JCT)模块中以捕获不同模态之间的令牌关系。

针对每种模态进行了代理任务,利用了之前的掩码区域预测任务(MRP)、掩码语言建模任务(MLM)。为了利用表,视频和音频模态的特性,作者进一步提出了掩码实体建模任务(MEM),掩码帧预测任务(MFP),掩码音频建模任务(MAM)。比如在MLM任务中,模型需要预测输入句子中被随机掩盖(mask)的单词。具体来说,在给定的句子中,某些单词会被特殊的[MASK]标记替换,模型的目标是预测这些被掩盖的单词。

定义了一个针对每个模态的损失函数,其中, t ¬ m s k t_{\neg m s k} t¬msk表示围绕屏蔽令牌 t m s k t_{msk} tmsk的未屏蔽令牌, θ θ θ表示网络参数,并且 M i M_i Mi和 M ¬ i {M}_{\neg i} M¬i分别是第 i i i模态和剩余模态。比如预测一个文本模态的单词,给定其他模态的信息和其他未被掩码的令牌。

首先比较文本特征与图像特征之间的相似性,这需要看上一张图片,特征传入了这个Inter-Modality Scores,生成对应的分数。同样计算其他模态之间的相似性(如音频与视频、文本与结构化数据等)。将所有模态之间的相似性得分整合成一个得分矩阵 S S S。计算模态匹配分数 S ′ = S ⋅ s o f t m a x ( S ) S' = S \cdot softmax(S) S′=S⋅softmax(S)。利用 S ′ S' S′ 来加权模态间损耗和模态内损耗,优化模型。

选择三角形部分 S ∇ S_{\nabla} S∇来加权模态间损耗 L C L L_{CL} LCL,并且使用对角部分S来约束模态内损耗 L M i L_{Mi} LMi,从而得到加权损耗:
L t o t a l = ∑ S i , j S ▽ L C L i , j ( S i , j l o g ı ˙ t i , j ) + ∑ S i S ∖ L M i ( S i l o g ı ˙ t i ) \mathcal{L}_{t o t a l}=\sum_{S_{i,j}}^{S_{\bigtriangledown}}\mathcal{L}_{C L_{i,j}}\left(S_{i,j}l o g\dot{\imath}t_{i,j}\right)+\sum_{S_{i}}^{S_{\setminus}}\mathcal{L}_{M_{i}}\left(S_{i}l o g\dot{\imath}t_{i}\right) Ltotal=Si,j∑S▽LCLi,j(Si,jlog˙ti,j)+Si∑S∖LMi(Silog˙ti)
其中 l o g i t logit logit是损失 l o g i t logit logit。我们可以看到这个图中首先特征给到Inter-Modality Scores 然后两种得分 分别给到对比学习和五个代理任务。
相关文章:
前沿论文 M5Product 组会 PPT
对比学习(Contrast learning):对比学习是一种自监督学习方法,用于在没有标签的情况下,通过让模型学习哪些数据点相似或不同来学习数据集的一般特征。假设一个试图理解世界的新生婴儿。在家里,假设有两只猫和…...
navicat~导出数据库密码
当我们mysql密码忘记了,而在navicat里有记录,我们应该如何导出这个密码呢? 第一步:文件菜单,导出链接,导出连接获取到 connections.ncx 文件 这里需要勾选 导出密码!!! 不然导出的文…...
【Java】 —— 数据结构与集合源码:Vector、LinkedList在JDK8中的源码剖析
目录 7.2.4 Vector部分源码分析 7.3 链表LinkedList 7.3.1 链表与动态数组的区别 7.3.2 LinkedList源码分析 启示与开发建议 7.2.4 Vector部分源码分析 jdk1.8.0_271中: //属性 protected Object[] elementData; protected int elementCount;//构造器 public …...
YOLOv5改进——添加SimAM注意力机制
目录 一、SimAM注意力机制核心代码 二、修改common.py 三、修改yolo.py 三、建立yaml文件 四、验证 一、SimAM注意力机制核心代码 在models文件夹下新建modules文件夹,在modules文件夹下新建一个py文件。这里为simam.py。复制以下代码到文件里面。 import…...
SQL 自学:表别名的运用与对被联结表使用聚集函数
一、表别名的概念与作用 (一)表别名的定义 表别名是为表指定的临时名称,在 SQL 查询中使用别名可以简化表名,提高代码的可读性和可维护性。当表名较长或在复杂的查询中多次引用表时,使用表别名可以避免重复输入冗长的…...
jmeter学习(2)变量
1)用户定义的变量 路径:添加-》配置元件-》用户定义的变量 用户定义的变量是全局变量,可以跨线程组被调用,但在启动运行时获取一次值,在运行过程中不再动态获取值。 注意的是,如果在某个线程组定义了全…...
【C#生态园】C#文件压缩库全面比较:选择最适合你的库
从核心功能到API概览:深度解析六大C#文件压缩库 前言 在软件开发过程中,文件的压缩和解压缩是一个常见的需求。针对C#开发者而言,选择合适的文件压缩库可以极大地简化开发工作。本文将介绍几个常用的C#文件压缩库,包括其核心功能…...
【测试】接口测试与接口自动化
壹、接口测试基础 一、接口测试概念 I、基础概念 是测试系统组件间接口的一种测试。 主要用于检测外部系统与系统间、内部子系统间的交互点;测试重点检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系。 内部接口调用相当于函数调用&am…...
Android设置边框圆角
在Android开发中,圆角设计十分常见,那么实现边框圆角有几种形式呢? 文章目录 设置圆角边框样式使用ClipToOutline进行裁切最后 设置圆角边框样式 常见的方式是在drawable文件夹下设置一个xml文件的边框样式,比如 <shape andro…...
SpringBoot项目打成jar包,在其他项目中引用
1、首先新建一个SpringBoot工程 记得要将Gradle换成Maven 2、新建一个要引用的方法 3、打包的时候要注意: ① 不能使用springboot项目自带的打包插件进行打包,下面是自带的: ②要换成传统项目的maven打包,如下图: 依…...
【音频可视化】通过canvas绘制音频波形图
前言 这两天写项目刚好遇到Ai对话相关的需求,需要录音功能,绘制录制波形图,写了一个函数用canvas实现可视化,保留分享一下,有需要的直接粘贴即可,使用时传入一个1024长的,0-255大小的Uint8Arra…...
解决github每次pull push输入密码问题
# 解决git pull/push每次都需要输入密码问题 git bash进入你的项目目录,输入: git config --global credential.helper store然后你会在你本地生成一个文本,上边记录你的账号和密码。配置项写入到 "C:\Users\用户名\ .gitconfig" …...
Java重修笔记 第六十四天 坦克大战(十四)IO 流 - 标准输入输出流、InputStreamReader 和 OutputStreamWriter
标准输入输出流 1. System.in 标准输入流 本质上是一个InputString,对应键盘,表示从键盘输入。 定义:public final static InputStream in null; 所以 Scanner scanner new Scanner(System.in); 会从键盘中获取数据 2. System.out 标准输…...
prctl的函数和pthread_self函数
1.prctl的函数原型如下: #include<sys/prctl.h> prctl(PR_SET_NAME, “process_name”);第一个参数是操作类型,指定PR_SET_NAME(对应数字15),即设置进程名; 第二个参数是进程名字符串,…...
Vim 命令行模式下的常用命令
Vim 命令行模式下的常用命令 文件操作: :w :保存当前文件。:w filename :将当前内容另存为指定的 filename 。:q :退出 Vim,如果文件有修改但未保存,会提示错误。:q! :强制退出 Vim,…...
【动态规划-最长递增子序列(LIS)】力扣2826. 将三个组排序
给你一个整数数组 nums 。nums 的每个元素是 1,2 或 3。在每次操作中,你可以删除 nums 中的一个元素。返回使 nums 成为 非递减 顺序所需操作数的 最小值。 示例 1: 输入:nums [2,1,3,2,1] 输出:3 解释: …...
Elastic Stack--16--ES三种分页策略
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 方式一:from size实现原理使用方式优缺点 方式二:scroll实现原理使用方式优缺点 方式三:search_after实现原理使用方式优缺点 三…...
[LeetCode] 315. 计算右侧小于当前元素的个数
题目描述: 给你一个整数数组 nums ,按要求返回一个新数组 counts 。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。 题目链接: . - 力扣(LeetCode) 题目主要思路&a…...
【hot100-java】二叉树展开为链表
二叉树篇。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …...
如何在在 YOLOv3模型中添加Attention机制
在YOLOv3模型中添加Attention机制需要以下几个步骤: 1. 规定格式 当添加新的模块(如Attention机制模块)时,需要像定义[convolutional]、[maxpool]等层在cfg文件中的格式一样,对新模块进行格式规定。例如对于SE模块&a…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
