【CENet】多模态情感分析的跨模态增强网络
在MSA领域,文本的准确度远远高于音频和视觉,如果文本能达到90%,那么音频和视觉的准确度只有60%~80%,但是过往研究很少针对情感分析的背景下去提高音频和视频的准确度。
abstract:
多模态情感分析(MSA)在智能问答、计算机辅助心理治疗和视频理解等领域发挥着重要的作用,近年来引起了人们的广泛关注。它利用多模态信号,包括口头语言、面部手势和声音行为来识别视频中的情绪。在MSA中,语言形态通常优于非语言形态。因此,加强语言在语篇分析中的重要性将是提高识别准确率的重要途径。考虑到句子的意义在不同的非语言语境中往往是不同的,将非语言信息与文本表征相结合有助于准确理解话语所传达的情感。在本文中,我们提出了一个跨模态增强网络(CENet)模型,通过将视觉和声学信息集成到语言模型中来增强文本表示。具体来说,它将一个跨模态增强(CE)模块嵌入到一个基于转换器的预训练语言模型中,该模块根据未对齐的非语言数据中隐含的远程情感线索来增强每个单词的表示。此外,引入了声学和视觉模态的特征转换策略,以减少语言和非语言模态初始表征之间的分布差异,从而促进不同模态的融合。在基准数据集上进行的大量实验表明,CENet比最先进的方法取得了显著的进步。
intro:
人类自然地通过语言、声音和视觉等多模态信号进行交流[1]。
因此,理解话语中所传达的情感需要对不同形态的全面理解。随着以人为中心的网络视频的爆炸式增长,利用语言(文本)、声学和视觉模式识别视频中人类情感的多模态情感分析(MSA)近年来受到了广泛关注[1],[2]。尽管许多先前的工作在MSA任务上取得了很大的进展,但由于异构模态之间的巨大模态差距,实现与人类相当的性能仍然具有挑战性
基于变压器的预训练语言模型[3]-[5]在自然语言处理(NLP)领域取得了显著的成功,因为它们具有强大的上下文语义特征提取能力和通过微调在下游任务中的通用性。最近的研究表明,在MSA中使用预训练的语言模型可以大大提高识别准确率[2],[6]-[8]。交互典型相关网络(ICCN)[6]利用深度典型相关分析分别学习基于文本的音频嵌入和基于文本的视频嵌入,然后将这两种嵌入与文本嵌入融合。MISA[2]首先利用三个独立的网络学习三个单模态表征,然后通过多任务损失学习模态不变表征和模态特定表征。Self-MM[7]提出了一种自监督策略来获取单模态标签,然后通过基于多模态标签和单模态标签的多任务框架学习模态间一致性和模态内特异性。上述工作使用BERT[3]作为文本特征提取器,并取得了良好的效果。
预训练语言模型是在大型文本语料库上训练的,可以极大地促进对文本情态情感的理解。而对于声学和视觉模态,通常首先使用COVAREP[9]和Facet 1等特征提取工具提取手工制作的特征。然后使用序列神经网络(如LSTM[10])学习话语级表示。与预先训练的语言模型学习到的文本特征相比,非语言特征相对欠发达。因此,语言情态(言语情态)在MSA中的表现通常优于非言语情态。为此,加强语篇分析中语言情态的重要性将是提高语篇分析识别准确率的可行途径。此外,考虑到一个句子在不同的非语言语境中可以有不同的含义,如面部表情和声调,将非语言信息整合到语言模型中可以帮助准确理解话语中所传达的情感。
在本文中,我们提出了一个跨模态增强网络(CENet)模型,通过结合视觉和听觉模态的情感信息来增强文本表示。
CENet的核心是跨模态增强(Cross-modal Enhancement, CE)模块,该模块可以嵌入到基于转换器的预训练语言模型中。CE模块由两部分组成:跨模嵌入单元和增强嵌入门。跨模态嵌入单元侧重于从未对齐的非语言数据中捕获远程非语言情感线索。远距离非语言情绪线索是指从不同时间戳的非语言框架中提取的情绪信息。一般来说,语言、视觉和听觉形式的相关信息是异步的[11]。如图1所示,“awful”是一个情绪性的词,在说这个词的时候,信息性的面部表情会出现在不同的时刻。
基于自注意的跨模态注意[11]可以从未对齐的多模态数据中捕获远程依赖关系。因此,我们使用它分别从音频和视觉中获取每个单词的异步非语言情感语境。我们把这些视觉和听觉情感语境分别称为基于文本的视觉和听觉嵌入。增强嵌入门利用基于文本的非语言嵌入生成包含远程非语言情感语境的非语言增强嵌入。然后,增强嵌入将在预训练的语言模型中更新文本表示
考虑到初始语言表征和非语言表征之间存在较大的分布差异,我们引入了一种特征转换策略来减小分布差距。
受文本词汇衍生的标记索引序列的启发,我们将声学和视觉框架的手工特征聚类,分别建立“声学词汇”和“视觉词汇”。然后,通过对非语言词汇的查询,得到声模态和视模态的索引序列。通过这种方式,高维非语言特征被转化为一个类似于文字标记的个体索引。因此,异质性模式之间的初始分布差距被缩小,这将进一步缩小融合阶段言语和非言语特征之间的分布差异。因此,特征转换策略可以促进文本表征与非语言情感语境的整合。
本文贡献如下:
- 本文提出了一个跨模态增强网络,通过结合远程非语言情感语境来增强预训练语言模型中的文本表示。
- 提出了一种特征转换策略,通过减少语言和非语言模式初始表征之间的分布差异,促进不同模式的整合。
- 在两个基准多模态情感分析数据集上进行的大量实验表明,该方法大大优于目前最先进的方法。
related work:
在本节中,我们首先介绍了一些与单模态情感分析和多模态情感分析密切相关的工作。然后讨论预训练的语言模型。
单模情感分析
文本:基于文本的情感分析是一个活跃而成功的研究领域[12]-[14]。早期的作品通常使用词袋呈现文本话语,然后利用SVM等机器学习方法对情感极性进行分类[15],[16]。随着深度学习的发展,CNN、递归神经网络(RNN)和长短期记忆(LSTM)被广泛应用于文本情感分析[17]-[20]。近年来,基于自我关注的变压器[21]在自然语言处理的许多领域出现。与循环层和卷积层相比,自注意层的计算效率更高,也更容易学习到远程依赖关系[21]。为情感分析设计的基于transformer的预训练语言模型[22]-[25]极大地促进了文本情感分析的发展。
视觉:视觉情感分析可分为图像情感分析和视频情感分析。对于图像情感分析,许多作品采用微调预训练卷积神经网络(CNN)来获取与情绪相关的特征[26]-[30]。在视频情感分析中,视觉信息在时间和空间上是分布的。通常采用3D卷积神经网络(3D Convolutional Neural Networks, C3D)或CNN + LSTM从时空视觉输入中提取情感相关特征[31]-[33]。
音频:对于声学情感分析,声学低级描述符(LLD)的功能是在先验知识的基础上手工制作的,在以前的作品中被用作情感识别的声学特征[34],[35]。最近的研究使用深度神经网络(Deep Neural Network, DNN)直接从原始音频信号中学习声学特征[36]-[39]。然后将这些声学特征馈送到序列神经网络(如LSTM)以捕获时间动态。
多模态情感分析
根据是否使用预训练的语言模型,MSA的前期工作可以分为两类。
第一种方法不使用预训练模型。
这些方法通常使用GloVe[40]词嵌入,然后使用LSTM[10]来提取语言表示。早期的工作[41]将不同特征提取网络获得的文本、视觉和声学表示连接起来,然后利用多核学习(MKL)作为分类器来预测情感强度。卷积循环多核学习(CRMKL)[42]是[41]的改进版本。它结合CNN和RNN从视觉数据中提取时空特征,并应用MKL作为分类器。
然而,直接组合不同的单峰表示可能会导致信息丢失。为了避免这个问题,后续的工作通常侧重于设计复杂的融合框架。
张量融合网络(Tensor fusion network, TFN)[43]通过模态嵌入子网络学习模态内动态,通过计算外积获得模态间相互作用。尽管TFN可以很好地融合多模态信息,但它的计算成本很高。低秩多模态融合(Low-rank multimodal fusion, LMF)[44]通过低秩张量降低了TFN的计算成本。递归参与变异嵌入网络(Recurrent attended variation embedding network, RAVEN)[45]利用细粒度的非言语子词信息动态调整词表示,实现多模态融合。
因子化多模态变压器(Factorized multimodal transformer, FMT)[46]应用因子化多模态自注意(Factorized multimodal self-attention, FMS)构建多模态交互。FMS考虑了三种模式组合中的所有因素作为输入。多模态转换器(Multimodal transformer, MulT)[11]利用跨模态注意力将一种模态转化为另一种模态,反之亦然,从而在不同模态之间建立相互作用。与MulT不同,我们的方法利用跨模态注意捕获的远程情感线索来增强文本表示。换句话说,信息流是单向的,从非语言形态到文本形态
第二种方法利用预先训练好的语言模型提取文本特征,通常比第一种方法获得更好的结果。交互规范相关网络(ICCN)[6]通过深度规范相关分析构建文本和非语言模式之间的交互。
MISA[2]通过四种不同的损失函数学习每种模态的不变表示和特定表示,然后融合不同的表示来预测情绪。自监督多任务多模态情感分析网络(Self-MM)[7]引入了自监督标签生成模块来获取额外的单模态标签。然后通过对一个多模态任务和三个单模态子任务的联合学习,获得信息丰富的MSA单模态表示。CM-BERT[47]利用掩模多模态注意动态调整BERT输出的每个词级特征的权重。它只利用声模态信息来调整文本特征。与CM-BERT不同,我们的CENet将CE模块获得的非语言增强嵌入添加到预训练语言模型中间层输出的文本表示中。CENet通过利用声音和视觉模式的情感信息来增强文本表示。MAGBERT[8]引入了一个多模态适应门,使BERT[3]能够接受非语言模态的表征。
在本文中,我们还将声学和视觉信息集成到基于转换器的语言模型中。然而,我们的方法可以从非对齐的非语言数据中捕获异步情感线索,以增强文本表示,而MAG-BERT只能处理词级对齐的多模态数据。
预训练语言模型
与GloVe[40]相比,预训练的语言模型在单词表示方面具有更优越的性能。ELMo[48]在大规模无监督语料库上预训练一个双向LSTM。GPT[49]是一种基于转换器的模型,与ELMo相比,它在捕获远程依赖关系方面表现更好。然而,它们都是单向的语言模型,限制了上下文表示能力的进一步提高
BERT[3]是一种基于transformer[21]的双向预训练语言模型。BERT通过使用掩模语言模型(MLM)预训练目标,获得双向语境感知能力。XLNet也是一种基于变换的双向预训练语言模型,通过在预训练阶段构建置换语言模型,避免了传销预训练和微调阶段不一致的问题。大多数现有的预训练语言模型都是BERT和XLNet的变体。VideoBERT[50]是BERT的一种变体,它应用向量量化使BERT模型联合接受视觉和语言标记序列。通过纯文本、纯视频和文本-视频预训练目标来学习视频和文本的双向联合分布。SentiLARE[25]是一个基于变压器的预训练模型,专门为情感分析任务设计。它继承自RoBERTa[5],将词性标签、情感极性等语言知识整合到语言模型中。
与VideoBERT类似,我们将矢量量化应用于非语言数据的特征变换策略中。我们的特征转换策略的动机是减少异构模式之间的分布差异。而VideoBERT使用矢量量化来鼓励模型关注视频中的高级语义和长期时间动态,而不是低级属性,如局部纹理和运动。此外,VideoBERT将单词标记与视觉标记相结合,并利用BERT直接学习多模态表示。而我们的CENet首先利用一个额外的模块来提取非语言特征,然后将非语言特征集成到预训练的语言模型中。本文分别使用SentiLARE、BERT和XLNet作为语言模型,对CENet框架进行综合评估。
跨模态增强网络
在本节中,我们首先介绍MSA任务设置。然后介绍了特征变换策略和跨模增强模块。最后,描述了CENet模型的总体体系结构。
任务设置:
多模态情感分析是利用多模态信号对视频片段进行情感检测。对于视频片段X,它由文本(t)、声学(a)和视觉(v)序列三部分组成,分别表示为,
和
代表第i个单词,第i个音频帧和第i个视觉帧,
对于文本序列Xt,我们使用预训练语言模型的标记器来获得其相应的标记序列
对于声学序列和视觉序列,我们分别使用Facet和COVAREP[9]提取它们的原始特征。
原始的声学和视觉特征序列表示为
其中da和dv分别是声学和视觉特征维度,提取非语言特征的细节在实验设置部分讨论
给定一个视频片段X, CENet的目标是预测X的情绪强度y,其中y∈[- 3,3]是一个连续的强度变量,y > 0表示积极情绪,y < 0表示消极情绪,y = 0表示中性情绪。
非语言模式的特征转换
对于预训练的语言模型,初始文本表示是词汇表中的单词索引序列。然而,视觉和声学的表示是真实的矢量序列。因此,我们提出了一种将非语言向量转化为指数的特征转换策略,以缩小异质模态之间的初始分布差异,从而进一步缩小语言与非语言的分布差距,因此,它将促进文本表征和非语言情感语境的整合。
特征转换策略利用无监督聚类算法分别建立“声学词汇”和“视觉词汇”。通过查询非语言词汇,可以将原始特征序列转换为索引序列。图2显示了特征转换过程的示意图。
Q:我其实不懂,是不是从数据集提取出的特征是单词索引序列,然后这里的预训练语言模型指的是bert,初始特征经过bert提取出更高维的表示,视觉和声学一般用sLSTM提取,这里的真实的矢量序列又是什么意思?
A:文本初始被表示为词汇表中的单词索引序列,预训练语言模型Bert将他的单词索引序列转化为高维的词向量表示(嵌入),捕捉词语的语义信息。而视觉和声学通过特征提取工具从原始数据中获取的实值向量序列,比方说,用OpenFace提取面部表情、动作单元等特征,每一帧对应一个特征向量。声学特征也是一样的,比如使用COVAREP提取音频信号的特征,如基频、能量、声谱等,每一帧也对应一个特征向量。
问题在于,文本特征往往是离散的索引序列,词汇表通常有限(例如3万个单词)
视觉和声学特征是连续的、高维的实值向量序列,维度可能高达几十到上百维。其次,不同模态的初始特征分布存在显著差异,直接融合会导致模型难以有效学习跨模态的关联。
特征转换策略的目的就是缩小模态之间的分布差异,将视觉和声学的实值向量序列转换为类似于文本的索引序列。这样三种模态都以索引序列的形式表示,方便统一处理和融合。
在往下看具体理论之前,我先大致讲一下如何建立视觉和声学的索引:
首先,我们需要提取原始特征,通过分词器将文本转换为单词索引序列,例如,句子“我很开心”可能被转换为[101, 2769, 2523, 6887, 102],其中每个数字代表词汇表中的一个单词。至于声学和视觉信息,用特征提取工具获取每一帧的声学和视觉的特征向量,这些特征向量是实值的,例如一个88维的向量
接下来,使用无监督聚类算法k-means对大量的视觉和声学特征向量进行聚类,目的是将相似的特征向量归为一类,每一类代表一个“词”,聚类中心代表该类的典型特征。
比如说,视觉词汇表包含500个视觉“词”(聚类中心),声学词汇表包含500个声学“词”
下一步将特征向量转换为索引序列。对于每一个视觉或声学特征向量,找到距离最近的聚类中心,
2,fi是第i帧的特征向量,cj是第j个聚类中心,也就是词汇表中第j个词|| * ||2是欧式距离,即L2范数,indexi是第i帧对应的词汇索引。
接下来,原始的视觉或声学特征序列会被转换为索引序列,例如[45,12,378...]
为了区分不同模态的索引,防止索引冲突。
文本索引:保持原有索引,例如[101,2769,2523,6887,102]
声学索引:在索引上加了一个偏移量,声学索引 = 原索引 + 40000
视觉索引:类似地,加上另一个偏移量,视觉索引 = 原索引 + 50000
接下来,多模态索引序列融合
要根据时间戳,将三种模态的索引序列对齐。将对应时刻的索引组合起来,形成一个多模态的索引序列。
比如:
时间1: 文本索引:101 声学索引:40045 视觉索引:50012
时间2: 文本索引:2769 声学索引:40012 视觉索引:50078
组合后的序列为:[101, 40045, 50012, 2769, 40012, 50078,....]
将这些融合后的索引序列输入模型,例如transformer......
由于k-means方法计算复杂度低、简单等优点,本文采用k-means方法学习非语言模态词汇。在不丧失一般性的情况下,其他聚类和字典学习方法也可以用于学习声学和视觉词汇。
具体来说,我们首先从训练集中收集所有的听觉和视觉片段帧,形成两个帧集
Nm表示模态m的帧数。然后,将Fm中的帧按k-means分成km组,如下所示:
是模态m的第j个聚类中心,然后我们可以分别基于聚类中心Ca和Cv构建“视觉词汇”和“声学词汇”。
给定一个非语言特征序列
Lm是序列的长度,
通过对非语言词汇的查询,可以得到相应的索引序列
对于Sm中第i帧的特征,查询过程计算如下:
为第i帧
的索引标号,则得到索引序列
作为模态m的表示。特征变换策略的过程如算法1所示。
请注意,原始的非语言特征主要是内容无关的情感特征。因此,避免了将内容相似但情感不同的框架划分为一个集群的琐碎解决方案
Q:能解释一下吗?
A:好的,我把算法1拆解一下
目标是将非语言特征序列转换为索引序列,使其与文本索引序列同一表示,便于多模态融合和模型处理。输入的是一个非语言特征序列S = {f1,f2....,fN},其中fi表示的是第i帧的特征向量。输出的索引序列I = {i1,i2....,iN},每个it都是对应于特征向量ft的索引值。
步骤:
1,准备聚类中心(词汇表):使用无监督聚类算法k-means对大量非语言特征向量进行聚类,得到K个聚类中心,构成非语言词汇表C = {c1,c2......,ck}。这些聚类中心代表了非语言特征空间中的典型模式。
2,特征向量到索引的映射:对于序列中的每个特征向量ft,t=1,2,3...N,计算与所有聚类中心的距离:dtj = || ft - cj ||2,j = 1,2,3...K,其中|| * ||2表示欧式距离,接着找到最近的聚类中心it = argmindtj,it就是ft映射到词汇表的索引。
3,索引偏移(模态区分):为了区分不同模态的索引,给视觉和音频模态的索引加上偏移量
4,重复步骤2和3,得到处理序列中所有的特征向量,最终得到非语言特征的索引序列
接下来,我具体举个例子
假设:
聚类中心(词汇表)数量:K = 3
聚类中心:c1 = [1.0,1.0],c2 = [5.0,5.0],c3 = [9.0,9.0]
非语言特征序列:f1 = [2.0, 2.0],f2 = [4.5, 5.5],f3 = [8.0, 8.5],f4 = [1.5, 0.5]
步骤:
1,计算距离并找到最近的聚类中心
对于f1 = [2.0,2.0]
对于f2 = [4.5,4.5]
对于f3 = [8.0,8.5]
对于f4 = [1.5,0.5]
假设以上的非语言模态指的是音频模态,那么偏移量为40000
i1 = 1 + 40000 = 40001
i2 = 2 + 40000 = 40002
i3 = 3 + 40000 = 40003
i4 = 4 + 40000 = 40004
最终的索引序列为I = {40001,40002,40003,40004}
接着将非索引序列与文本序列进行融合,按照时间步对齐,形成一个综合的输入序列。
跨模态增强模块
提出的CE模块将远程视觉和声学信息集成到预训练的语言模型中,以增强文本表示。CE模块的架构如图5所示。
CE模块的关键部件是如图4所示的跨模态嵌入单元。它利用跨模态注意捕捉远程非语言情感信息,并产生基于文本的非语言嵌入
具体来说,给定一个索引向量
跨模态嵌入单元首先将其输入到嵌入层:
式中Hm为嵌入层的输出,dm为嵌入维数。嵌入层的参数是可学习的。
嵌入层的作用是将特征变换策略得到的非语言索引向量映射到高维空间。
为预训练语言模型中间层的输出文本隐藏表示,dt为文本特征维数。跨模态注意中Q、K和V的定义与自注意中的定义相似[21]。
然后,我们可以得到文本语态对非语言语态的注意权重矩阵
是注意力权重矩阵
的(i, j)-元素表示文本情态的第i个词对情态m的第j个框架的关注。
α是标度参数。
Q:好像和注意力很相似?
A:你的感觉是对的,先来看看self-Attention
而在CE模块中,Q来自文本,K和V来自另一个模态,这使得文本模块可以基于这些非文本信息调整其对文本部分的解释和关注。
在初始训练阶段,由于言语表征和非言语表征处于两个不同的特征空间,言语表征和非言语表征之间的相关性很小。这样,权重矩阵中的元素也会很小。为了更好地学习模型参数,我们在softmax处理之前使用超参数α对矩阵进行缩放。
基于注意权重矩阵
我们可以得到基于文本的非语言嵌入如下:
得到的基于文本的非语言嵌入可以看作是文本情态所选择的情态m中的潜在情感信息。
将基于文本的声学嵌入Ua→t和基于文本的视觉嵌入Uv→t相结合,通过
其中“;”表示串联操作,Gate(·)为由完全连接的致密层组成的增强嵌入门。增强嵌入门的作用是将基于文本的声学嵌入Ua→t与基于文本的视觉嵌入Uv→t融合,生成非语言增强嵌入E。
最后,文本表示Ht将通过嵌入E as的非语言增强来更新
Q:E是如何影响文本表示的?
A:Good Question!
E是concat后的结果,融合了视觉和声音信息,这些信息通常包含与文本相关联的关键情感和语境表示,E通过简单的向量相加直接作用于原始的文本表示,这种直接修改方式允许E将视觉和声音模态的特征直接注入到文本的特征空间中,从而实现特征的即时增强,其实很常见的啦,很多论文的原始文本特征都参与最终的决策,因为文本准确率很高。
一般来说,话语中的每个词都有一个非语言语境。
同一个词的上下文意思在不同的非语言中是不同的
此外,非语言语境并不严格与单词同步,如图1所示。因此,我们提出CE模块生成非语言增强嵌入E,为文本提供非语言上下文信息。通过在文本表示中加入非语言增强嵌入E,可以使文本表示在语义上更加准确。如图3所示,“You know he did it”这句话中的“did”是一个中性词,而在一个微笑的表情和一个激动的声音的语境中,“did”可以变成一个积极的词
CENet的整体架构
CENet的主要架构是将提出的跨模态增强模块整合到一个基于转换器的预训练语言模型中。图5显示了CENet的整体架构,其中我们使用SentiLARE网络[25]作为语言模型。SentiLARE利用词性和词的情感极性等词汇语言学知识来学习情感感知语言表征。假设CE模块集成到预训练语言模型的第i层。算法2显示了训练阶段的CENet。值得注意的是,任何基于转换器的预训练语言模型都可以与我们的CE模块集成
根据SentiwordNet的设置,给定一个词序列Xt,我们首先通过Stanford Log-Linear词性标注器(POS) Tagger[51]学习其词性序列Ipos,通过SentiwordNet学习词级情感极性序列Ipolar[52]。然后通过预训练语言模型的标记器得到其标记索引序列。通过输入序列It、Ipos和Ipolar,可以得到经过语言知识增强的初始文本表示为
其中,BertEmdling表示BERT[3]中的嵌入操作,embedding表示嵌入层。然后,将通过1→i变压器层。我们称Hi为第i层的输出。CE模块嵌入在预训练语言模型的第i层和(i + 1)层之间。
CE模块的输入是非语言索引向量Ia和Iv,文本隐藏表示。
生成一个增强嵌入E,然后文本表示将被增强嵌入E更新为
接下来,更新后的文本表示将成为第(i + 1)层的输入,并通过剩余的M−i层,其中M = 12在SentiLARE中。对于第m层,它的输出
将是一个以文本为主导的高级情感表示,包含视觉和声学信息
最后一步,将文本表示输入到分类头中,得到情感强度
。
experiments
datasets:
mosi和mosei,略
特征提取:
文本特征提取:
大多数现有的工作使用来自GloVe或预训练语言模型的词嵌入。在本文中,我们使用预训练的模型来获取单词嵌入。除了常用的BERT和XLNet之外,我们还使用SentiLARE作为语言模型。与BERT和XLNet相比,SentiLARE为每个句子增加了词性(POS)嵌入和词级情感极性嵌入。词性语义和词级情感极性分别来源于Stanford Log-Linear词性标注器[51]和SentiwordNet[52]。
视觉特征提取:
对于MOSI数据集,我们使用Py-Feat工具包[53]提取每个视觉帧的面部特征,包括面部地标、7个面部表情和面部动作单元。通过计算眼睛的宽高比,利用面部标志来选择睁开眼睛的帧。闭着眼睛的画面可能会导致表情分析的不确定性,因此被丢弃。最后,对睁开眼睛的每一帧形成包含面部表情和面部动作单元的27维特征。对于MOSEI数据集,Facet用于提取包含面部动作单元和面部姿势的35维视觉特征。
音频特征提取:
使用COVAREP软件[9]提取与情绪和语音音调相关的声学特征,包括12个mel频率倒谱系数、音高、浊音/浊音分割特征、声门源参数、峰斜率参数和最大色散商。MOSI和MOSEI数据集的特征维度都是74
baseline:
略
evaluation metrics:
根据前人的研究[2]、[7]、[8],我们构建了二值分类和回归两个评价任务。对于二值分类,报告了二值分类精度(Acc-2)和加权F1分数(F1)。有两种分类方式:消极/非消极分类和消极/积极分类。对于回归,识别性能由平均绝对误差(MAE)和皮尔逊相关(Corr)来评估。
参数设置
所提出的CENet由Adam优化器训练,学习率在{1e−4,2e−5,4e−5,6e−5}之间。聚类数量为16,CE模块的缩放参数α设置为8。CE模块嵌入在预训练语言模型的第一层和第二层之间,除非另有说明。增强嵌入门中完全连接的致密层数为1。所有模型都使用MOSI的验证集来找到最合适的超参数。
与基线比较
CENet(S)的情感分析结果以及MOSI和MOSEI的基线如表1所示。CENet(S)模型使用了专门为情感语言处理任务设计的SentiLARE预训练模型。为了公平的比较,我们重新训练了基线模型,包括MISA(S), Self-MM(S)和MAG-SentiLARE(S),它们使用SentiLARE作为语言模型。在实验中,在对齐的数据集上只使用为字级对齐数据集设计的方法,在未对齐的数据集上使用其他比较方法和CENet(S)。
从表1中,我们有以下观察结果。
- 对于单模基线,文本模态优于非语言模态。SentiLARE在文本情态上给出了最好的结果,BERT紧随其后。我们认为这可能有几个原因。首先,大多数人喜欢用语言来表达他们的情感。其次,在多情态分析领域,非语言情态分析方法相对于预训练的语言情态分析方法还不发达。
- MISA(S)、Self-MM(S)和MAGSentiLARE(S)的结果分别优于MISA(B)、SelfMM(B)和magi - bert (B)。这表明SentiLARE的引入可以进一步提高SOTA方法的准确性。然而,与SentiLARE在文本模态上的结果相比,这些多模态方法的表现并不好。可能的原因将在后面的小节中讨论。
- CENet(S)在MOSI和MOSEI上都明显优于基线。MISA(S)、Self-MM(S)和MAG-SentiLARE(S)等多模态方法都使用SentiLARE作为语言模型,但CENet(S)仍然大大优于它们。与SentiLARE相比,CENet(S)实现了较大的性能改进,这反映了在使用远程非语言依赖的预训练语言模型中增强文本表示的有效性。
人类表现结果在MOSI上的MAE和Corr分别为0.61和0.83[14]。CENet在MOSI上的表现甚至超过了人类
CENet与其他预训练语言模型
全面展示我们的CENet框架的有效性和通用性。我们分别采用BERT和XLNet作为CENet的语言模型。同时,我们分别使用BERT和XLNet作为语言模型重新训练一些基线。结合表1和表2,我们有一些新的观察结果如下
1)CENet(X)仍然优于这些基线在使用相同语言模型的情况下,CENet(B)和,这进一步证明了我们的CENet框架的有效性。
2) TFN(B)、LMF(B)、MulT(B)等多模态方法的结果均不如单模态方法T(B)。当使用XLNet作为语言模型时,情况也是一样的。然而,在表1中,TFN、LMF和MulT的结果优于使用GloVe词嵌入的单模态方法T(G)。这说明BERT和XLNet预训练语言模型不适合TFN、LMF和MulT。值得注意的是,GloVe是在他们各自的原始论文中使用的。我们认为,造成这种现象的原因是三种多模态方法认为文本、视觉和听觉模态同等重要,并将它们紧密结合在一起。使用GloVe词嵌入时,语篇情态和非语言情态的表现非常接近。因此,三种多模态方法相对于单模态方法都有一定的改进。然而,当用BERT或XLNet词嵌入代替GloVe词嵌入时,文本模态的性能大大提高,言语模态和非言语模态之间的平衡被打破。在这种情况下,深耦合融合方法可能会造成文本情态中情感信息的丢失。
3)与T(B)相比,MISA(B)和Self-MM(B)的性能有所提高。然而,当使用XLNet时,情况就改变了。包括MISA(X)和Self-MM(X)在内的多模态方法没有达到单模态方法T(X)的改进。在使用SentiLARE作为语言模型时也是如此。MISA和Self-MM都利用多任务框架来通过改变簇数来帮助学习模式特异性和表III ACC-2 ON MOSI。V和A分别表示视觉模态和声学模态不变表示。在这种情况下,文本表征在与非语言表征融合时能够保持良好的独立性。然而,MISA和Self-MM认为文本、声音和视觉模式同样重要。当语言和非语言表现方式之间的差距进一步扩大时,这些方法将遇到困难。
4) MAG-BERT(B)优于T(B), MAG-XLNet(X)也优于T(X)。MAG系列类似于我们的CENet。他们都使用非语言情感信息来增强文本表征。这种融合方法可以缓解语言和非语言表现极不平衡的问题。我们还观察到MAG-SentiLARE(S)的性能接近于T(S)。但不能全面超越T(S)。MAG的增强策略是在预先训练好的语言模型中使用与单词对齐的非语言特征来增强文本表示。它没有能力从非语言模式中捕捉到远距离的情感线索。此外,模式之间存在较大的分布差异,而MAG中使用的非语言特征并没有专门针对该问题进行处理。因此,MAG捕获的增强信息不足以增强sentilaare中的文本表示。
我们的CENet利用从远程非语言特征中捕获的情感线索来增强预训练语言模型中的文本表示。并采用转换策略来减小异构模态之间的分布差异。大量的实验表明,我们的CENet结合几个预训练的语言模型可以取得很好的效果。
簇数的影响
在本文中,我们设计了一种基于聚类的特征转换策略,将矢量量化应用于声学和视觉特征。聚类数是特征变换的一个重要因素。它决定了索引向量是否充分地表示了原始特征。为了研究聚类数的影响,我们使用Transformer提取非语言表示,并使用两个完全连接的层来预测MOSI数据集上的情感强度。从表III中,我们可以看到16是一个合适的集群号。这意味着更少的集群不能完全分离差分帧,而更多的集群分离相似帧。
特征转换Vs.原始特征
为了验证我们的特征转换策略的作用,我们设计了两个比较实验
在第一个实验中,我们分别比较了转换后的特征嵌入和原始手工特征输入的两层Transformer的性能。将特征变换策略与嵌入层相结合,得到变换后的特征嵌入。利用一个完全连接的层作为头部来预测情绪强度。如表4所示,转换后的特征嵌入在视觉和声学模式上都优于原始特征。
这表明非语言词汇可以代替非语言的原始特征而不会造成性能损失。
在第二个实验中,我们分别比较了使用和不使用特征转换策略的文本表示和非语言增强嵌入之间的特征分布的Jensen-Shannon (JS)分歧。具体来说,我们分别在MOSI数据集的验证集上使用转换后的特征嵌入和原始特征训练两个CENet模型。然后在CE模块中得到两种非语言增强嵌入和相应的文本表示。然后,我们对收集到的非语言增强嵌入和相应的文本表示进行标准化,然后通过计算JS散度来比较它们在各个维度(共768个维度)的分布相似度。图6分别给出了采用和不采用特征变换策略的文本表示与非语言增强嵌入之间的JS差异。我们可以观察到,使用特征转换策略的JS平均发散比使用原始特征的要小得多。这表明特征转换策略可以减少语言和非语言特征之间的分布差异,从而促进非语言数据中的情感信息融入到文本表示中。
在消融研究部分,我们将进一步探讨将特征转换策略应用于CENet对性能的影响。
在不同层上嵌入CE模块的效果
本文研究了CE模块在不同层的嵌入对CENet性能的影响。我们将CE模块嵌入到i∈{0,1,2,4,6,8,10,12}的SentiLARE第1层之后,并将相应的结果记录在表V的MOSI数据集上,其中第0层表示嵌入层。很明显,在较低的层中嵌入CE模块比在较高的层中嵌入CE模块可以获得更好的性能。对于文本模态,表示在更高的层中更高级。由于非语言表征是相对较低层次的特征,因此将CE模块嵌入较低层次将更为合适。
消融实验
为了进一步研究CENet中各组分的影响,我们对MOSI数据集进行了全面的消融分析。以下是CENet的一些变体。
A→T:以语言为目的情态,以听觉为源情态。我们首先使用跨模态注意使声学模态适应语言模态,然后将得到的基于文本的声学嵌入输入到SentiLARE的其余层中。自适应过程在SentiLARE的第一层之后执行。
V→T:类似于A→T的设置,只是用视觉模态代替听觉模态。
T:在不整合非语言信息的情况下进行对话,这相当于SentiLARE。
T, A→T:不整合视觉信息的CENet。
T, V→T:不整合声学信息的CENet。
T, A→T, V→T:典型的CENet。
T, Araw→T, Vraw→T: CENet,不使用特征变换策略。
T,Araw, Vraw:使用MAG模块代替CE模块。也没有使用特征转换。
表六显示了CENet所有变体的结果。我们可以得出以下结论。
- 比较A→T和V→T与T的结果,我们发现文本表示的性能优于基于文本的非语言嵌入。这似乎有两个原因:1)预先训练的语言模型不适应非语言特征。2)非言语情态的特征不如语篇情态。
- T, A→T和T, V→T的表现优于T。这表明通过使用CE模块,声音和视觉模式都可以为增强语言表征提供有用的信息。
- T, A→T, V→T表现最好。这表明将听觉和视觉模态信息相结合可以进一步增强语言表征。
- T,Araw→T, Vraw→T在Acc-2和F1得分上优于T,Araw, Vraw和T,证明了CE模块的有效性。此外,CE模块使用未对齐的非语言数据增强文本表示,从而避免了繁琐的对齐工程。
- T、A→T、V→T的表现优于T、Araw→T、Vraw→T,说明特征转换策略确实能够促进非语言情感信息整合到文本表征中。
定性分析
为了阐明CENet是如何工作的,我们展示了一些使用和不使用跨模态增强嵌入的情况下,CENet预测情绪强度的情况。表七展示了CENet如何通过整合非语言信息来调整情绪强度的一些例子。在第一个和第三个例子中,没有跨模态增强嵌入的CENet仅用文本模态预测情感极性,我们发现预测的情感强度不足。当加入增强嵌入时,预测值几乎增加到真实情感强度。在第二个例子中,仅从文本信息判断情感极性是有歧义的。在这种情况下,非语言信息可以帮助模型确定情绪的极性。这些观察结果表明,CENet可以成功地利用声学和视觉模式中的信息来增强情绪预测
conclusion
本文提出了一种跨模态增强网络(CENet)模型,利用远程视觉和听觉情感信息增强预训练语言模型中的文本表示。此外,还引入了特征转换策略来减小语言和非语言初始表征之间的分布差异。
大量的实验证明了CENet在基准数据集MOSI和MOSEI上优于最先进的性能。在未来的工作中,我们将设计一个完全端到端的多模态学习模型来探索语言和非语言特征之间的相互作用
相关文章:

【CENet】多模态情感分析的跨模态增强网络
在MSA领域,文本的准确度远远高于音频和视觉,如果文本能达到90%,那么音频和视觉的准确度只有60%~80%,但是过往研究很少针对情感分析的背景下去提高音频和视频的准确度。 abstract: 多模态情感分析(MSA&…...

动态代理:面向接口编程,屏蔽RPC处理过程
RPC远程调用 使用 RPC 时,一般的做法是先找服务提供方要接口,通过 Maven把接口依赖到项目中。在编写业务逻辑的时候,如果要调用提供方的接口,只需要通过依赖注入的方式把接口注入到项目中,然后在代码里面直接调用接口…...
HTTP 405 Method Not Allowed:解析与解决
HTTP 405 Method Not Allowed:解析与解决 引言 在Web开发中,HTTP状态码是服务器与客户端之间通信的重要组成部分。当我们使用Python进行网络请求时,经常会遇到各种HTTP状态码。其中,HTTP 405 “Method Not Allowed” 错误是一个…...

推荐一款CAD/CAM设计辅助工具:Mastercam
Mastercam是一款非常好用的软件,我们的这款软件是由美国CNC软件公司开发,集平面制图、三维设计、曲面设计、数 控编程、刀具处理等多项强大功能于一体。软件的使用过程具有非常直观的特点,用户可以很方便地对自己的作品进行设计。 Mastercam不…...
位运算刷题记录
1. 使两个整数相等的位更改次数 3226. 使两个整数相等的位更改次数 给你两个正整数 n 和 k。 你可以选择 n 的 二进制表示 中任意一个值为 1 的位,并将其改为 0。 返回使得 n 等于 k 所需要的更改次数。如果无法实现,返回 -1。 class Solution {pub…...

爬虫技术——小白入狱案例
知孤云出岫 目录 1. 案例概述2. 案例需求分析3. 实现步骤Step 1: 环境准备Step 2: 分析百度图片URL请求规律Step 3: 编写爬虫代码代码解析 4. 运行代码5. 注意事项6. 案例总结 要实现大批量爬取百度图片,可以使用Python编写一个网络爬虫,通过发送HTTP请求…...

vue 果蔬识别系统百度AI识别vue+springboot java开发、elementui+ echarts+ vant开发
编号:R03-果蔬识别系统 简介:vuespringboot百度AI实现的果蔬识别系统 版本:2025版 视频介绍: vuespringboot百度AI实现的果蔬识别系统前后端java开发,百度识别,带H5移动端,mysql数据库可视化 1 …...

全新更新!Fastreport.NET 2025.1版本发布,提升报告开发体验
在.NET 2025.1版本中,我们带来了巨大的期待功能,进一步简化了报告模板的开发过程。新功能包括通过添加链接报告页面、异步报告准备、HTML段落旋转、代码文本编辑器中的文本搜索、WebReport图像导出等,大幅提升用户体验。 FastReport .NET 是…...

信息学科平台系统设计与实现:Spring Boot技术手册
5系统详细实现 5.1 用户信息管理 基于保密信息学科平台系统的系统管理员可以对用户信息查询。具体界面的展示如图5.1所示。 图5.1 用户信息管理界面 5.2 教师信息管理 管理员可以对教师信息进行查下和删除。具体界面如图5.2所示。 图5.2 教师信息界面 5.3 学科动态管理 管理…...

conda下jupyterlab安装问题以及交互绘图问题记录
安装 1. 直接conda install jupyterlab就好,只要在base环境下安装就行,可以在任意环境下执行jupyter lab启动。 2. 打开jupyter lab后显示Could not determine jupyterlab build status without nodejs,可以执行conda install nodejs安装no…...

尚硅谷react教程_扩展_setState更新状态的2种写法
1.setState setState更新状态的2种写法(1).setState(stateChange,[callback])----对象式的setState1.stateChange为状态改变对象(该对象可以体现出状态的更改)2.callback是可选的回调函数,它在状态更新完毕、界面也更新…...

C语言编写的自动取款机模拟程序
#include〈stdio。h> #include<string。h> #include <stdio.h> #include〈stdlib.h〉 #include〈direct.h〉 #include<io.h> #include 〈errno。h> /********************************************************…...
【常用数据结构】开发中常用的数据结构?
开发中常用的数据结构包括数组、链表、栈、队列、树、图、堆和散列表(哈希表)。这些数据结构在软件开发中有着广泛的应用,并且各自具有独特的特点和用途。 数组 数组是最基本的数据结构之一,用于在内存中连续存储多个元素。数…...
OCC 点云
OCC的基础知识可能还是要系统学习一下,部分导入的模型面类型是很多面都是GeomAbs_BSplineSurface,最终获取参数都要拟合一下,拟合后的生成的面对象没有大小,比如平面只有矢量(大小没有思路) 圆柱拟合面没有…...
方法重写与方法重载
1. 方法重载与方法重写的定义 方法重写(Overriding) 方法重写(Overriding)是指在子类中重新定义与父类中相同的方法。此操作允许子类提供特定的实现,以替代父类的实现。方法重写是实现多态性(Polymorphis…...

Vue3实现地球上加载柱体
最终效果为上图。 实现该技术,需要一些技术,我分别罗列一下: canvas:需要使用canvas根据json来绘制地球,不懂的可以看这篇canvas绘制地球 threejs:需要会使用threejs,这里并没有使用shader&am…...

OpenGL入门003——使用Factory设计模式简化渲染流程
前面两节已经学会了如何使用opengl创建窗口并绘制三角形,我们可以看出有些步骤是固定的,而且都写在main.cpp,这一节我们将了解如何使用Factroy设计模型。将模型渲染逻辑封装在一个单独的类中,简化开发流程,且提高代码复…...
01_AI编程案例展示:借助AI轻松爬取海量网盘链接
爬虫案例展示 今天,我们将展示如何利用AI快速开发一个网络爬虫, 使用的工具是Python和Claude 3.5 Sonnet(国内可用豆包替代) 我们的目标是爬取panhub.fun网站上的夸克网盘链接, 即使你是编程新手,也可以轻松完成这样的任务。 案例1-批量爬取panhub网盘整合包 下…...

【机器学习导引】ch5-神经网络
Q&A 1x1 卷积层在深度学习中的作用? 1x1 卷积层在深度学习中具有几个重要的作用: 通道压缩:1x1卷积可以通过调整输出通道数来减少特征图的深度,从而降低计算成本和参数数量。这有助于在保持特征的情况下简化模型。特征融合&am…...

【Axure原型分享】颜色选择器——填充颜色
今天和大家分享颜色选择器——填充颜色的原型模板,点击颜色区域可以弹出颜色选择器,点击可以选择对应颜色,颜色区域会变色我们选择的颜色,具体效果可以观看下方视频或者打开预览地址体验。 【原型效果】 【Axure高保真原型】颜色…...
HTMLCSS 学习总结
目录 一、HTML核心概念 三大前端技术作用 HTML基础结构 开发工具:VS Code 专业配置安装步骤: 二、HTML标签大全(含表格) 三、CSS核心技术 1. 三种引入方式对比 2.…...

【网络安全】fastjson原生链分析
fastjson 原生链 前言 说起 fastjson 反序列化,大部分的利用都是从 type 把 json 串解析为 java 对象,在构造方法和 setter、getter 方法中,做一些文件或者命令执行的操作。当然,在 fastjson 的依赖包中,也存在着像 …...

面试心得 --- 车载诊断测试常见的一些面试问题
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...

《如何使用MinGW-w64编译OpenCV和opencv_contrib》
《如何使用MinGW-w64编译OpenCV和opencv_contrib》 在Windows环境下使用MinGW编译OpenCV和opencv_contrib是一个常见需求,尤其是对于那些希望使用GCC工具链而非Visual Studio的开发者。下面我将详细介绍这个过程。 准备工作 首先需要安装和准备以下工具和库: MinGW(建议使…...

Framework开发之IMS逻辑浅析1--关键线程及作用
关键线程:EventHub,InputReader,InputDispatcher EventHub: 由于Android继承Linux,Linux的思想是一切皆文件,而输入的类型不止一种(触碰,写字笔,键盘等),每种类型都对应一种驱动设备,而每个硬件驱动设备又对应Linux的一个目录文件…...

分形几何在医学可视化中的应用:从理论到Python实战
分形几何在医学可视化中的应用:从理论到Python实战 前言 分形几何作为描述自然界复杂结构的数学工具,正通过其自相似性和分数维度特性,革新医学影像分析领域。本文系统阐述分形几何在医学影像中的创新应用,涵盖从图像预处理、分…...
树莓派系统中设置固定 IP
在基于 Ubuntu 的树莓派系统中,设置固定 IP 地址主要有以下几种方法: 方法一:使用 Netplan 配置(Ubuntu 18.04 及以上版本默认使用 Netplan) 查看网络接口名称 在终端输入ip link或ip a命令,查看当前所使…...

软件功能测试报告都包含哪些内容?
软件功能测试报告是软件开发生命周期中的重要文档,主要涵盖以下关键内容: 1.测试概况:概述测试目标、范围和方法,确保读者对测试背景有清晰了解。 2.测试环境:详细描述测试所用的硬件、软件环境,确保…...
QGraphicsView中鼠标点击与移动事件传递给MainWindow
在Qt图形应用程序开发中,QGraphicsView和QGraphicsScene框架提供了强大的2D图形显示功能。然而,当我们需要在主窗口(MainWindow)中处理这些视图中的鼠标事件。 问题背景 在典型的Qt图形应用程序架构中: MainWindow └── QGraphicsView└── QGraphicsScene└── QGra…...
深度学习习题3
1.训练神经网络过程中,损失函数在一些时期(Epoch)不再减小, 原因可能是: 1.学习率太低 2.正则参数太大 3.卡在了局部最小值 A1 and 2 B. 2 and 3 C. 1 and 3 D. 都是 2.对于分类任务,我们不是将神经网络中的随机权重…...