【CubeMLP】核心方法解读

abstract:

多模态情绪分析和抑郁估计是利用多模态数据预测人类心理状态的两个重要研究课题。以前的研究主要集中在开发有效的融合策略,以交换和整合来自不同模式的心智相关信息。一些基于mlp的技术最近在各种计算机视觉任务中取得了相当大的成功。受此启发,我们在本研究中以特征混合的视角探索了多模态方法。为此,我们引入了完全基于MLP的多模态特征处理框架CubeMLP。CubeMLP由三个独立的MLP单元组成,每个单元都有两个仿射变换。CubeMLP接受所有相关的模态特征作为输入,并在三个轴上混合它们。利用CubeMLP提取特征后,对混合多模态特征进行平面化处理,用于任务预测。我们的实验是在情感分析数据集:CMU-MOSI和CMU-MOSEI,以及抑郁估计数据集:AVEC2019上进行的。结果表明,CubeMLP可以以更低的计算成本实现最先进的性能。


intro:

随着社交媒体的普及,多模态数据已经成为个人和公众交流的重要手段。在这种情况下,从多模态数据估计人类的心理状态变得越来越重要。多模态数据通常包括文本、声学和视觉信息,从多模态数据中提取特征特征为二维矩阵其中Lm和Dm分别为模态m的序列长度和特征通道大小。

为了有效地处理多模态特征, Zadeh等[37]首先在张量融合网络(Tensor Fusion Network, TFN)中引入了笛卡尔积,将所有涉及的模态特征在𝐿𝑚轴上进行融合。随后,许多研究者提出模态之间存在双向关系和互补信息,并应用注意机制计算模态对(如文本和声学)的共同注意[9,39]。最近,随着基于transformer的结构的显著成功[34],一些作品试图将自注意机制用于模态相互作用[3,4,11,35]。这些趋势方法的核心主要是模态之间的信息交换。

这些信息交换方法的结果可以看作是特征混合。例如,TFN[37]和一些顺序型共注意方法[19,39]试图在模式之间混合𝐿𝑚轴上的特征,而通道型共注意方法[21]试图在𝐷𝑚上进行混合。对于基于transformer的方法[3,4,11,35],它们采用自关注机制,并在𝐿𝑚轴上执行配对模态之间的复杂混合,这也可以视为通过另一个模态来增强一个模态。

由于在计算机视觉应用中越来越多地使用变压器,最近提出了许多变体,如ViT[7]和ViViT[1]。另一方面,Transformer对自我关注有很大的内存需,这是Transformer架构的一个主要缺点因此,完全由多层感知器(mlp)组成的结构引起了人们的兴趣。例如,MLP-mixer[31]和ResMLP[32]使用mlp来替代自关注机制设计。通过用mlp代替自我关注,这些技术在保持高性能的同时显著降低了计算成本。 

受基于mlp技术的启发,本文提出了一种简单而有效的基于mlp的多模态特征处理框架CubeMLP。


在预处理过程中,我们将模态特征整合成一个多模态张量,其中𝑀为模态个数,𝐿为序列长度,𝐷为特征通道的大小。CubeMLP由三个MLP单元组成,分别对应三个轴(𝐿、𝑀和𝐷)。第一个MLP单元被设计用于混合𝐿轴上的特征,这个过程称为顺序混合。模态混合(𝑡、𝑎和𝑣)由𝑀轴上的第二个MLP单元执行。最后,𝐷轴上的第三个MLP单元执行通道混合。每个MLP单元包含两个完全连接的层,每个层都包含一个仿射变换,可以在数学上表示为一个带有偏差的矩阵𝑊。在CubeMLP中,我们使用提出的三种MLP设计结构在每个可能的轴上混合多模态特征。之后,混合特征被平面化并馈送到分类器进行预测。在此过程中,融合多模态特征,并在任意轴上交换多模态信息。

贡献如下:

  • 我们提出了一个完全基于MLP的多模态特征处理框架CubeMLP。CubeMLP在三个轴上混合特征:序列(𝐿)、模态(𝑀)和通道(𝐷)。在混合过程中,不同的多模态信息(𝑡,𝑎和𝑣)被有效地传输和共享,以提取重要特征用于情感分析和抑郁检测。
  • 我们建议使用mlp来大大减少计算负担,同时与一些最先进的方法取得竞争结果,这证明了我们的CubeMLP是一种有效的多模态特征处理结构。
  • 我们在两个心理状态估计任务上进行了彻底的实验,以验证CubeMLP的有效性:多模态情绪分析和多模态抑郁检测。结果表明,我们的方法与最先进的情感分析方法具有良好的竞争力,同时在抑郁症检测方面取得了很大进展。

 related work:

 多模态和抑郁部分略过

mlp-based models:

基于mlp的模型是一种新的视觉任务结构。在ViT[7]中,首先使用Transformer进行图像处理。它将图像分成几个小块,并将它们提供给Transformer。显著的性能提升引发了许多其他变化[1,20],但计算负担仍然很大。因此,提出了一些基于mlp的模型,包括MLP-Mixer[31]、ResMLP[32]和Hire-MLP[10]。这些方法抛弃了自关注机制,代之以效率更高的mlp。通常,这些模型中包含两个独立的MLP,一个MLP处理通道,另一个处理令牌。

受基于mlp模型固有结构的启发,我们发现它可以很自然地转移到多模态特征处理中。由于多模态特征通常由三个轴(顺序、模态和通道)组成,我们添加了一个额外的MLP来全面混合这些特征。详细的结构在第3节中说明。

 methods:

 提取的特征被输入到堆叠的立方体mlp块中进行混合。

为了预测,混合特征被平面化。

其中 MLP unit:

CubeMLP是一种简单而有效的多模态特征处理结构。我们的任务是从视频中的人类话语中预测情绪倾向或抑郁程度,其中每个话语都是模型的输入样本。在一个话语中,提供了三种方式,包括文本(𝑡)、声学(𝑎)和视觉(𝑣)。我们的方法概述如图1所示。每个模态特征首先通过特定的方法提取。特征提取后,我们不像以前的方法那样在序列级别或通道级别交换跨模态信息[4,41]。

相反,我们在顺序,通道和模态级别上单独执行混合。具体来说,CubeMLP用于通过各自的MLP单元混合所有轴上的多模态特征。然后将混合的多模态特征传递给分类器,以执行情绪分析或抑郁检测的预测。

MD,我怎么没想到啊,让人提前发了

特征提取部分略过

CubeMLP:
提取特征后,我们首先在第二维上将扩展为,然后沿着扩展轴将它们连接起来组成多模态特征,其中𝑀是模态的数量。然后,将多模态特征传递给聚合层堆叠的cubemlp,以便混合如图1所示。

 CubeMLP块由三个MLP单元组成,每个MLP单元被设计成在其各自的轴上混合多模态特征。

具体地说,第一个MLP目的是作用域L轴的序列混合

第二个MLP,目的是作用于M轴的的模态混合

第三个MLP,目的是作用于D轴的通道混合

每个MLP单元由两个完全连接的层和一个非线性激活组成,全连通层也可以看作是两个变换。

让我们考虑𝐿轴上的第一个顺序混合MLP单元。张量𝑋可以看作是一组向量,在(𝑚𝑑)∈{(1,1),(1、2),…,(2,1),(2,2),…,(𝑀,𝐷)}。是𝑚-th模态和𝑑-th通道的向量。序列混合MLP中的每个变换可以表示为:

其中是两个矩阵的可学习参数,是L轴上的降维,他是一个超参数,在下面讨论,AffL的公式代表所有的都会共享参数WL和BL。

MLP unit可以被数学公式表示为:

其中参数解读:

第一个MLP unit输出的张量可以被考虑成一个系列的vector,其中(m,d)的范围是

其他两个unit是一样的

其中M'和D'分别是M轴和D轴上的降维,他们的公式表示为:

预测:

根据之前的工作[11,37],混合多模态特征𝑋‘∈𝑅𝐿’ ×𝑀‘ ×𝐷’被扁平化为𝑋‘∈𝑅𝐿’𝑀‘𝐷’。然后,将平坦的特征馈送到分类器𝑓𝑐:𝑅𝐿‘𝑀’𝐷'→𝑅,以预测情绪倾向或抑郁程度。

我们使用平均绝对误差(MAE)作为多模态情感分析训练过程中的损失函数,这是一个回归任务:

其中N是样本数。利用MAE计算预测结果与地面真实值之间的绝对误差。MAE对小错误的影响比高阶错误的影响更大,允许模型在微妙的情感上达到更好的准确性。

因此,MAE经常被用作情感分析的关键性能指标[2,11,12,37]。

对于抑郁检测,我们训练模型以一致性相关系数(CCC)损失作为损失代价来回归抑郁趋势:

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何解决 Vim 中的 “E212: Can‘t open file for writing“ 错误:从编辑到权限管理(sudo)

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

C语言 | Leetcode C语言题解之第468题验证IP地址

题目&#xff1a; 题解&#xff1a; char * validIPAddress(char * queryIP) {int len strlen(queryIP);if (strchr(queryIP, .)) {// IPv4int last -1;for (int i 0; i < 4; i) {int cur -1;if (i 3) {cur len;} else {char * p strchr(queryIP last 1, .);if (p…

在Leaflet中使用divIcon进行自定义标绘实战

前言 之前在一些地理信息和旅游博主的信息介绍中&#xff0c;对于一些景点的信息时空分布。总是被他们的地图制作所深深吸引。与常规的地图文字标绘不同的是&#xff0c;在传统的地图标绘中&#xff0c;我们习惯于将文字信息直接标注到对应的位置点旁边。当然&#xff0c;这样其…

电脑快速切换IP地址命令是什么?详解与实践

有时&#xff0c;出于安全考虑或测试需要&#xff0c;我们可能需要快速切换电脑的IP地址。虽然这一过程在初学者看来可能略显复杂&#xff0c;但通过简单的命令和步骤&#xff0c; 即使是普通用户也能轻松实现。本文将详细介绍在Windows系统中快速切换IP地址的几种方法&#xf…

基于Jenkins+K8S构建DevOps自动化运维管理平台

目录 1.k8s助力DevOps在企业落地实践 1.1 传统方式部署项目为什么发布慢&#xff0c;效率低&#xff1f; 1.2 上线一个功能&#xff0c;有多少时间被浪费了&#xff1f; 1.3 如何解决发布慢&#xff0c;效率低的问题呢&#xff1f; 1.5 什么是DevOps&#xff1f; 1.5.1 敏…

潜水打捞系统助力,破解汽车打捞难题

随着人类活动的不断扩展&#xff0c;汽车落水事故频发&#xff0c;成为救援工作中的一大难题。汽车因其重量和结构特性&#xff0c;一旦沉入水体&#xff0c;打捞工作将面临巨大挑战。传统的打捞方法往往效率低下&#xff0c;且在操作过程中可能会对汽车造成进一步的损害&#…

Windows 下纯手工打造 QT 开发环境

用过 QtCreator 和 VS QT 插件&#xff0c;都觉得不是很理想。所以有了这个想法。 手工打造的 QT 的开发环境&#xff0c;是不需要安装上面两个程序的。 1、下载 vcpkg&#xff0c;编译 QT6 下载地址&#xff1a;https://github.com/microsoft/vcpkg.git 进入到 …

comfyui提示没有anything everywhere节点

错误信息说明 在使用comfyUI导入工作流的时候&#xff0c;提示没有Anything Everywhere节点 解决办法 进入到ComfyUI的custom_nodes目录下&#xff0c;执行以下命令 git clone https://github.com/chrisgoringe/cg-use-everywhere.git重启ComfyUI即可

顶会论文复现:PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

文章目录 1 资料2 我的总结3 复现源码首先你需要有gpt的api接口安装&#xff1a;数据集执行指令源码 4 结果 1 资料 我复现的源码:https://github.com/Whiffe/test_set_contamination 官网源码&#xff1a;https://github.com/tatsu-lab/test_set_contamination 论文&#x…

禁用微软的windos安全中心

目录 一、为什么禁用 二、WDControl_1.5.0程序禁用windows安全中心 步骤1--- 步骤2--- 三、禁用widows安全中心成功 一、为什么禁用 描述&#xff1a;下载第三方软件常常会收到病毒防护秒杀&#xff0c; 第1---直接无法下载 第2---提前下载在U盘解压会被干掉程序文件 …

Spark第一天

MapReduce过程复习 Spark由五部分组成 RDD五大特征 1、 Spark -- 代替MapReduce <<<<< scala是单机的&#xff0c;spark是分布式的。>>>>> 开源的分布式计算引擎 可以快速做计算 -- 因为可以利用内存来做一些计算 (1) 分为5个库(模块) : 1、…

【hot100-java】排序链表

链表题。 使用归并排序法。 一图解决。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; thi…

网络安全之XXE攻击

0x01 什么是 XXE 个人认为&#xff0c;XXE 可以归结为一句话&#xff1a;构造恶意 DTD 介绍 XXE 之前&#xff0c;我先来说一下普通的 XML 注入&#xff0c;这个的利用面比较狭窄&#xff0c;如果有的话应该也是逻辑漏洞。 既然能插入 XML 代码&#xff0c;那我们肯定不能善罢…

C++之String类模拟实现(下)

片头 哈喽~小伙伴们&#xff0c;在上一篇中&#xff0c;我们讲解了C的string类的相关函数&#xff0c;这一章中&#xff0c;我们将继续深入学习string类函数&#xff0c;准备好了吗&#xff1f;咱们开始咯~ 五、对内容进行修改 ⑤insert函数 在指定位置插入字符或者字符串 …

docker安装elasticsearch(es)+kibana

目录 docker安装elasticsearch 一.准备工作 1.打开docker目录 2.创建elasticsearch目录 3.打开elasticsearch目录 4.拉取elasticsearch镜像 5.检查镜像 二.挂载目录 1.创建数据挂载目录 2.创建配置挂载目录 3.创建插件挂载目录 4.权限授权 三.编辑配置 1.打开con…

重学SpringBoot3-集成Spring Boot Actuator

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 重学SpringBoot3-集成Spring Boot Actuator 1. 什么是 Spring Boot Actuator&#xff1f;2. Spring Boot Actuator 的核心功能3. Spring Boot 3 中集成 Actuator3.1 添加…

Thread类的基本用法

一.线程创建 继承Thread来创建一个线程 实现 Runnable 接⼝ 匿名内部类创建 Thread ⼦类对象 匿名内部类创建 Runnable ⼦类对象 lambda 表达式创建 Runnable ⼦类对象 二.线程中断 ⽬前常⻅的有以下两种⽅式&#xff1a; 1. 通过共享的标记来进⾏沟通 2. 调⽤ interrup…

计算机网络(以Linux讲解)

计算机网络 网络协议初识协议分层OSI七层模型TCP/IP五层模型--初识 网络中的地址管理IP地址MAC地址 网络传输基本流程网络编程套接字预备知识网络字节序socket编程UDP socketTCP socket地址转换函数Jsoncpp 进程间关系与守护进程进程组会话控制终端作业控制守护进程 网络命令TC…

数学建模算法与应用 第15章 预测方法

目录 15.1 微分方程模型 Matlab代码示例&#xff1a;求解简单的微分方程 15.2 灰色预测模型&#xff08;GM&#xff09; Matlab代码示例&#xff1a;灰色预测模型 15.3 自回归模型&#xff08;AR&#xff09; Matlab代码示例&#xff1a;AR模型的预测 15.4 指数平滑法 M…

openrtp ps流和纯rtp流

改进openrtp 程序 OpenRtp 以RTP协议为主&#xff0c;发送音视频&#xff0c;因为工作量比较大&#xff0c;所以耽误了一些时间&#xff0c;前面一直没有时间来修改这个程序&#xff0c;也有一些人提了意见&#xff0c;现在重视一下&#xff0c;把这个程序做好&#xff0c;让学…