⌈ 传知代码 ⌋ 多模态COGMEN详解

2024-06-10 10:28

本文主要是介绍⌈ 传知代码 ⌋ 多模态COGMEN详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

💛前情提要💛

本文是传知代码平台中的相关前沿知识与技术的分享~

接下来我们即将进入一个全新的空间,对技术有一个全新的视角~

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

以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦!!!

以下内容干货满满,跟上步伐吧~


📌导航小助手📌

  • 💡本章重点
  • 🍞一. 概述
  • 🍞二. 论文模型框架
  • 🍞三. 演示效果
  • 🍞四. 核心逻辑
  • 🫓总结


💡本章重点

  • 多模态COGMEN详解

🍞一. 概述

情绪是人类行动的一个固有部分,因此,开发能够理解和识别人类情绪的人工智能系统势在必行。在涉及不同人的对话中,一个人的情绪会受到其他说话者的言语和他们自己在言语中的情绪状态的影响。

在本文中,我们提出了基于 COntex- tualized Graph Neural Network的多模态情感识别COGMEN)系统,该系统利用了本地信息(即说话人之间的内/外依赖性)和全局信息(上下文)。

建议的模型使用基于图谱神经网络 (GNN) 的架构来模拟对话中的复杂关系(本地和全局信息)。

我们的模型在IEMOCAP和MOSEI数据集上给出了最先进的 (SOTA)结果,详细的消融实验显示了在两个层面上对信息进行建模的重要性


🍞二. 论文模型框架

在这里插入图片描述
图2显示了详细的体系结构。输入的话语作为语境提取器模块的输入,该模块负责捕获全局语境。语境提取器为每个话语(utterance)提取的特征形成了一个基于说话人之间交互的图(Graph Formation)。该图作为Relational - GCN的输入,然后是graph transformer,graph transformer使用形成的图来捕捉话语之间的内部和内部关系。最后,作为情感分类器的两个线性层使用所有话语获得的特征来预测相应的情感。

特征融合的方式:

  • 简单的concat,论文运用了最简单的融合方式,有在尝试别的融合方式

在这里插入图片描述
transfomer层是提取一段对话中,不同语句之间的信息

在这里插入图片描述
经过一层transformer之后,融合了信息,就开始建图,进行图学习

在这里插入图片描述
图学习分别进行了图卷积以及,图transformer,图学习的意义在于,更好的捕捉对话中这种一来一回的关系,来融合来自不同短语的情感信息。

最后链接一个分类器就结束了


🍞三. 演示效果

在这里插入图片描述


🍞四. 核心逻辑

##transformer层:def forward(self, text_len_tensor, text_tensor):if self.use_transformer:rnn_out = self.transformer_encoder(text_tensor)rnn_out = self.transformer_out(rnn_out)else:packed = pack_padded_sequence(text_tensor, text_len_tensor, batch_first=True, enforce_sorted=False)rnn_out, (_, _) = self.rnn(packed, None)rnn_out, _ = pad_packed_sequence(rnn_out, batch_first=True)return rnn_out##图学习层class GNN(nn.Module):def __init__(self, g_dim, h1_dim, h2_dim, args):super(GNN, self).__init__()self.num_relations = 2 * args.n_speakers ** 2self.conv1 = RGCNConv(g_dim, h1_dim, self.num_relations)self.conv2 = TransformerConv(h1_dim, h2_dim, heads=args.gnn_nheads, concat=True)self.bn = nn.BatchNorm1d(h2_dim * args.gnn_nheads)def forward(self, node_features, edge_index, edge_type):x = self.conv1(node_features, edge_index, edge_type)x = nn.functional.leaky_relu(self.bn(self.conv2(x, edge_index)))return x
##分类器:def forward(self, h, text_len_tensor):if self.args.dataset == "mosei" and self.args.emotion == "multilabel":if self.args.use_highway:h = self.highway(h)hidden = self.drop(F.relu(self.lin1(h)))scores = self.lin2(hidden)# y_hat = torch.sigmoid(scores) > 0.5y_hat = scores > 0return y_hatlog_prob = self.get_prob(h, text_len_tensor)y_hat = torch.argmax(log_prob, dim=-1)return y_hat

使用方式

  • 处理数据
python preprocess.py --dataset=“iemocap_4”
  • 训练模型
python train.py --dataset=“iemocap_4” --modalities=“atv” --from_begin --epochs=55
  • 测试模型
python eval.py --dataset=“iemocap_4” --modalities=“atv”

🫓总结

综上,我们基本了解了“一项全新的技术啦” 🍭 ~~

恭喜你的内功又双叒叕得到了提高!!!

感谢你们的阅读😆

后续还会继续更新💓,欢迎持续关注📌哟~

💫如果有错误❌,欢迎指正呀💫

✨如果觉得收获满满,可以点点赞👍支持一下哟~✨

【传知科技 – 了解更多新知识】

这篇关于⌈ 传知代码 ⌋ 多模态COGMEN详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1047905

相关文章

Redis 的 SUBSCRIBE命令详解

《Redis的SUBSCRIBE命令详解》Redis的SUBSCRIBE命令用于订阅一个或多个频道,以便接收发送到这些频道的消息,本文给大家介绍Redis的SUBSCRIBE命令,感兴趣的朋友跟随... 目录基本语法工作原理示例消息格式相关命令python 示例Redis 的 SUBSCRIBE 命令用于订

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

SpringBoot日志级别与日志分组详解

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或... 目录日志级别1、级别内容2、调整日志级别调整默认日志级别调整指定类的日志级别项目开发过程中,利用日志

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

详解python pycharm与cmd中制表符不一样

《详解pythonpycharm与cmd中制表符不一样》本文主要介绍了pythonpycharm与cmd中制表符不一样,这个问题通常是因为PyCharm和命令行(CMD)使用的制表符(tab)的宽... 这个问题通常是因为PyCharm和命令行(CMD)使用的制表符(tab)的宽度不同导致的。在PyChar

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

SpringBoot请求参数传递与接收示例详解

《SpringBoot请求参数传递与接收示例详解》本文给大家介绍SpringBoot请求参数传递与接收示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录I. 基础参数传递i.查询参数(Query Parameters)ii.路径参数(Path Va