Robust多模态模型的开发

news2024/12/25 14:20:44

本文所涉及所有资源均在 传知代码平台 可获取。

目录

Robust 多模态模型:寻找遗失的模态!

一、研究背景

二、模型结构和代码

三、数据集介绍

六、性能展示

六、实现过程

七、运行过程

Robust 多模态模型:寻找遗失的模态!

近年来,随着网络视频的大量涌现,各种多模态任务日益备受关注。尽管取得了显著的进展,但在迈向稳健多模态交互的道路上仍面临两大挑战:

1)在未对齐多模态数据中建模跨模态交互时效率低下;

2)在现实环境中通常会发生的随机模态特征缺失的脆弱性。其中,提高对数据丢失的鲁棒性已成为多模态任务的核心挑战之一,其目的是从语言,视觉和声学信号中完成多模态任务。针对模态特征不完备的情况,目前主要提出了基于修正的方法和张量正则化方法。然而,这两种方法都无法科普非对齐序列中随机模态特征的缺失。

本文提出了一种 Robust 的多模态模型来提高模型对非对齐模态序列随机缺失的鲁棒性。

同时,我在流行的多模态任务–多模态情感计算的数据集上对模型进行了测试,得到了不错的效果,证明了该模型的可靠性。具体来说,我们使用了MOSI,MOSEI,以及两个中文数据集 SIMS, SIMSv2,以及抑郁症数据集AVEC2019,为医学心理学等领域提供帮助。

【注】 我们文章中所用到的数据集,都经过重新特征提取形成新的数据集特征文件(.pkl),另外该抑郁症数据集因为涉及患者隐私,需要向数据集原创者申请,申请和下载链接都放在了我们附件中的 readme文件中,感兴趣的小伙伴可以进行下载,谢谢支持!

一、研究背景

随着用户生成的在线内容的丰富,各种多模态任务层出不穷。使用手动对齐的完整信息,包括转录语言,音频和视频,以前的工作已经取得了显着的改进多模态任务。然而,用户生成的视频通常是不完美的。首先,不同模态的接收器可能具有可变的接收频率,这导致不对齐的性质。其次,如下图所示,许多不可避免的因素,如用户生成的视频中的噪声或传感器故障,可能会导致模态特征提取器的故障。在这种情况下,需要一种能够处理随机模态特征缺失(RMFM)的模型。因此,在多模态任务中构建能够处理RMFM的模型仍然是一个开放的研究。基于RMFM的多模态任务的核心问题在于不完整模态序列的语义稀疏性,导致难以提取鲁棒的模态表示。据我所知,目前的工作大多直接使用具有缺失惩罚的不完整模态序列来学习联合融合表示。

二、模型结构和代码

1. 单模态特征提取

模态特征提取模块首先用一维卷积层处理不完整的模态序列,以确保输入序列的每个元素都知道其相邻元素。

公式的排版如下:

其中,kmkm 是模态 mm 的卷积核大小,dd 是公共维度。接下来,使用位置嵌入(Positional Embedding, PE)来增强卷积序列表示,然后通过模态内和模态间的 Transformer 来捕捉输入序列中每个时间步的模态动态。通过注意力机制,Transformer 能从一个序列块中提取另一个序列块的信息。用于这些变换的结构是 Transformer 编码器。在此过程中,HiHi 的键、查询、值(key, query, value)都是 Transformer 编码器的输入。查询来自文本模态,而键和值可以从视觉或音频模态提取。因此,Transformer 编码器的表示可以写作:Transformer(query,key,value)Transformer(query,key,value)。

其中,PE(Tm,d)∈RTm×dPE(Tm ,d)∈RTm ×d 计算每个位置索引的嵌入,m∈{t,a,v}m∈{t,a,v},n∈{t,a,v}−{m}n∈{t,a,v}−{m}。最后,将所有模态内和模态间变换器获得的潜在特征连接起来,作为增强的序列特征输出。

其中,m∈{t,a,v}m∈{t,a,v},n1n1 和 n2n2 表示除 mm 之外的其他两种模态。增强后的序列有望利用模态间的互补性,为缺失的模态特征提取有效的表示。此外,这种包含跨模态交互的增强模态序列可以被视为模型级融合结果。

2. 模态重建模块

我们提出了一个模态重建(MR)模块,基于这样一个关键观点:从提取的模态序列中重建完整的模态序列,可以引导提取模块学习缺失部分的语义。对于每种模态,首先在特征维度上执行自注意力机制,以捕获提取特征之间的交互。

其中 m∈{t,a,v}m∈{t,a,v},Hm∗Hm 被视为转换后的序列特征。然后,我们进行线性变换,将提取的特征映射到输入空间。

其中 m∈{t,a,v}m∈{t,a,v},WmWm 和 bmbm 是线性层的参数。

在监督方面,利用原始和生成器在缺失元素上的 SmoothL1Loss(·) 作为生成损失 LmgLmg ,以提升缺失重建的效果。

其中 m∈{t,a,v}m∈{t,a,v},M′M 是缺失掩码,用于标识输入模态序列中的缺失位置。

3. 融合模块

在重建损失的指导下,通过补充模态信息增强不完整的模态序列后,我们将它们融合为一个联合向量用于情感预测。我们提出了一个CNN门控编码器,用于分别编码增强的模态序列HmHm

CNN Gate Encoder:首先,提取的模态序列HmHm 通过一个双向GRU层处理,并通过tanhtanh激活函数获得更新的表示Hm′′Hm′′

然后,设计了一个卷积门组件进一步编码HmHm 。具体来说,一个一维卷积网络(CNN)使用窗口大小为kk的卷积核在输入Hm′′Hm′′ 上滑动,对序列中的每个元素得到一个标量值gigi 。使用填充策略确保Hm′′Hm′′ 和gg具有相同的序列长度:

其中,m∈{t,a,v}m∈{t,a,v},Conv1d(⋅)Conv1d(⋅)是一个一维卷积操作。gg被视为一个门,用于缩放表示HmHm ,过滤掉话语中不相关的上下文信息:

其中,⊗⊗表示逐元素相乘。此外,将表示Hm′Hm 和初始提取的序列Hm′′Hm′′ 进行连接。然后,使用一个全连接层来控制最终词级表示Hm∗Hm 的维度:

最后,利用最大池化操作来关注话语中具有更大影响的特征,定义最终的模态表示Um∗Um 为:

其中,hmhm 表示模态mm的隐藏维度。

三个模态表示的连接被视为融合结果,并输入到一个简单的分类器中,以进行情感强度的最终预测:

其中,BN表示批量归一化操作,LeakyReLU作为激活函数使用。

三、数据集介绍

1. 多模态情感计算数据集:

  • CMU-MOSI: CMU-MOSI数据集是MSA研究中流行的基准数据集。该数据集是YouTube独白的集合,演讲者在其中表达他们对电影等主题的看法。MOSI共有93个视频,跨越89个远距离扬声器,包含2198个主观话语视频片段。这些话语被手动注释为[-3,3]之间的连续意见评分,其中-3/+3表示强烈的消极/积极情绪;
  • CMU-MOSEI: CMU-MOSEI数据集是对MOSI的改进,具有更多的话语数量,样本,扬声器和主题的更大多样性。该数据集包含23453个带注释的视频片段(话语),来自5000个视频,1000个不同的扬声器和250个不同的主题
  • SIMS/SIMSV2: CH-SIMS数据集[35]是一个中文多模态情感分析数据集,为每种模态提供了详细的标注。该数据集包括2281个精选视频片段,这些片段来自各种电影、电视剧和综艺节目,每个样本都被赋予了情感分数,范围从-1(极度负面)到1(极度正面);

3. 多模态抑郁检测数据集:

  • AVEC2019: AVEC2019 DDS数据集是从患者临床访谈的视听记录中获得的。访谈由虚拟代理进行,以排除人为干扰。与上述两个数据集不同的是,AVEC2019中的每种模态都提供了几种不同的特征。例如,声学模态包括MFCC、eGeMaps以及由VGG和DenseNet提取的深度特征。在之前的研究中,发现MFCC和AU姿势分别是声学和视觉模态中两个最具鉴别力的特征。因此,为了简单和高效的目的,我们只使用MFCC和AU姿势特征来检测抑郁症。数据集用区间[0,24]内的PHQ-8评分进行注释,PHQ-8评分越大,抑郁倾向越严重。该基准数据集中有163个训练样本、56个验证样本和56个测试样本。

六、性能展示

  • 在情感计算任务中,可以看到加入 SimAM 算法后性能有了明显提升,证明了其有效性;

七、实现过程

下载附件并准备好数据集并调试代码后,进行下面的步骤,附件已经调通并修改,可直接正常运行;

1. 数据集准备

下载附件中多种数据集已提取好的特征文件。把它放在"./dataset”目录。2. 下载需要的包

pip install MMSA

3. 进行训练

from MMSA import MMSA_run

# run LMF on MOSI with default hyper parameters
MMSA_run('tfr_net', 'mosi', seeds=[1111, 1112, 1113], is_tune=False, gpu_ids=[0], config_file="../config/config_regression.json",
         model_save_dir="../saved_models", res_save_dir="../saved_results")

七、运行过程

  1. 训练过程

  1. 最终结果

感觉不错,点击我,立即使用

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MPLS LDP协议

文章目录 LDP标签分发协议工作原理LDP应用倒数第二跳弹出 LDP标签分发协议 基于FEC自动分配标签构建LSP用于建立动态LSPLDP报文头部结构信息类型 工作原理 LDP工作过程 发送Hello消息用于发现邻居;UDP发送LSR_1主动发起并建立TCP连接;TCP进行建立主动方发…

Node.js安装与配置 [详细步骤(实践操作)]

安装与配置 安装Node.js一、(1).下载(可以直接在浏览器下的电脑)一、(2).下载(有些电脑不能在浏览器下载,比如:在浏览器下出来的是IDEA图标)二、安装三、配置环境变量 验证是否安装成功修改模块下载位置一、…

十几天8.7万粉丝,柒奶奶疯狂老太太图文笔记,为什么这么火?项目拆解!利用这个软件一键生成图文,赚钱到手软!

每个行业一有变化,那肯定会带来不少新机会,AI 绘画也是这样。就说小某书账号“人间清醒柒奶奶”吧,在有 AI 绘画之前,柒奶奶的角色和动作都得靠人用手画,可麻烦了。但现在呢,在网站上输入几个词儿就能轻轻松…

大贤3D家谱-保存、删除与重建

保存:对于创建的节点、内容进行本地存储。 重建:清除没有保存的数据,重现保存过的历史节点。 删除:删除包括该节点的所有子节点信息。 灵活的使用模式​ 为了保证软件的持续健康发展,我们采用了试用付费的模式。用…

微同城源码系统帮你轻松制作本地生活服务平台 带完整的安装代码包以及搭建部署教程

系统概述 微同城源码系统是一款基于Web技术开发而成的开源项目,旨在为广大用户提供一个灵活、高效且易于管理的本地生活服务平台构建工具。该系统采用了流行的前后端分离架构设计模式,前端部分利用React框架实现动态交互界面;后端则采用Spri…

什么是好的性能测试报告?

一、性能测试报告编写技巧 在对结果进行分析并得出结论之后,性能测试工程师要把它们以文字报告的形式发送给相关人员。这就是性能测试报告。除了书面文字之外,可能的话,公司还会召集人员开专门的会议进行报告讲解和结果分析。所以&#xff0…

redis同步解决 缓存击穿+缓存穿透 原理代码实现

缓存穿透 就是一个根本不存在的数据 请求过来,然后 发现缓存没有,就打到数据库,然后 数据库也没有,就会给数据库造成很大的压力 , 解决方案 就是老生常谈的 返回null值,或者布隆过滤器 我们说 返回nul…

linux查看k8s的开机启动状态 systemctl is-enabled 查看开机启动状态

查看k8s的开机启动状态 在Kubernetes中,通常使用systemd来管理服务的启动。但是,Kubernetes节点上的服务可能不是由systemd直接管理,而是通过kubelet服务来管理。因此,检查Kubernetes节点的开机启动状态,你需要检查ku…

MPI程序实例:FFT算法及应用

目录 一、一维串行FFT算法 二、二维串行FFT算法 三、并行FFT算法 四、应用示例 4.1、多项式相乘 4.2 循环矩阵方程组的求解 1965年,两位美国科学家J.W.Cooley和J.W.Tukey发明了一种有效计算傅氏变换的方法,被称为FFT(Fast Fourier Transform,快速傅里叶变换)…

java中StringBuffer类和StringBuilder类常用的api

目录 1.StringBuffer类Api 1).构造方法 2).append("添加的字符串内容") 3).insert(int 要添加数据到指定索引后,"要添加的字符串") 4).delete(int 起始索引位置,int 结束索引位置) 5).deleteCharA…

基于SpringBoot+Vue+Uniapp微信小程序的电子竞技信息交流平台设计与实现

详细视频演示 请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而…

Nginx请求头丢失,引发出来的问题

1.问题 新增的几个 header 参数是这样的: api_key_idapi_key_value 我配置有2层nginx转发,从机器A到机器B再到目标服务,遇到一个接口请求需要在header中传递api_key_id和api_key_value这2个参数,但是在EC2机器上直接curl目标服…

重塑排班新体验,搭贝员工排班系统 —— 让管理更高效,工作更顺心!

在快节奏的工作环境中,排班管理往往是决定团队效率与员工满意度的关键。搭贝低代码平台精心打造的员工排班系统应用,以直观、智能、灵活为核心,为您的团队带来前所未有的排班体验。 📅 日历视图,一目了然 我们采用…

论文翻译 | Fairness-guided Few-shot Prompting for LargeLanguage Models

摘要 大型语言模型已经显示出令人惊讶的执行上下文学习的能力,也就是说,这些模型可以通过对由几个输入输出示例构建的提示进行条件反射,直接应用于解决大量下游任务。然而,先前的研究表明,由于训练示例、示例顺序和提示…

刷题小计六:矩阵

73.矩阵置零 mid 矩阵置零 ①先使用两个变量&#xff08;row_0 & col_0&#xff09;&#xff0c;记录「首行 & 首列」是否该被置零 ②在「非首行首列」的位置&#xff0c;存储置零信息到首行首列 // 把第一行第一列作为标志位for (int i 1; i < row; i) {for (…

电动牙刷拆解学习

大厂量产的产品的寻片选型为自己设计硬件的时候芯片选型提供了参考&#xff1a; 采用这个触点的方式充电相比于tppeC来说可以很好起到防水作用&#xff1a; USB公头&#xff1a; 牙刷母头&#xff1a; 电池充电芯片来自英集芯&#xff0c;型号IP2326&#xff0c;是一颗内部集…

执行node.js获取本机Ip命令,报:Error: Cannot find module ‘ip‘错误

Error: Cannot find module ip是由于没有改模块的依赖包&#xff0c;需要进行安装&#xff0c;以管理员的身份打开命令行&#xff0c;执行npm install ip 获取当前电脑的ip地址 方法一&#xff1a; const ip require("ip")/*** 1:获取当前电脑的ip地址*/ console.…

渗透测试之 域AD渗透手法【密码喷洒技术】手法详解 以及相关示例

说明: 域内密码喷洒工具: Kerbrute DomainPasswordSpray.ps1 原理抓个包分析一下&#xff1a; 域内用户枚举攻击防御&#xff1a; 流量检测&#xff1a; 说明: 域内密码喷洒&#xff08;Password Spraying&#xff09;一般和域内用户名枚举一起使用。 域内密码喷洒工具:…

slam系列1:open3d入门笔记

1. 读写数据 这里有很多测试用的pcd文件&#xff1a; https://github.com/PointCloudLibrary/data/blob/master/tutorials/ import open3d as o3d pcd o3d.io.read_point_cloud("test.pcd") o3d.io.write_point_cloud("write.pcd", pcd, True) # 默认fa…

SF6气体密度监测仪市场研究:主要企业的市场份额已超过37.13%

SF6气体密度监测仪是一种专用于监测和测量六氟化硫&#xff08;SF6&#xff09;气体密度的设备。SF6气体因其优异的绝缘性能和灭弧能力&#xff0c;被广泛应用于电力行业&#xff0c;尤其是在气体绝缘金属封闭开关设备&#xff08;GIS&#xff09;和断路器等关键设备中。随着电…