随着近年来社交媒体的快速增长,社交媒体上的用户生成内容(例如视频)的量大幅增加。不同模态的自动情感分析有利于人机交互,并吸引了大量的研究兴趣。多模态情感分析(MSA)旨在捕获和整合来自不同相关模态的情感信息,以预测说话者的情感状态或倾向。通常,我们可以从视频中获得三种形式:视觉,声学和文本。情感分析是一个重要的研究领域,旨在从人类话语中提取和融合情感信息。由于人类情感的多样性,多模态分析往往比单一模态分析更准确。为了补充相关模态之间的信息,一种有效的方法是执行跨模态交互。最近,基于transformer的框架已经显示出强大的捕获长范围依赖关系的能力,从而引入了几种基于transformer的多模态处理方法。
经过我对模型结构的修改和特征提取方法的改进,新模型的性能得到了很大的提升(3.22%)!证明了改进的有效性!
[注]:文中的使用的数据进行了重新提取,以适应当前复现和改进的模型,其中模型文件在附件中,数据、预训练模型在附件中的readme文件中都附上了下载链接,喜欢的朋友可以下载讨论!
这篇文章我复现了一篇经典情感计算的论文 ‘TensorFormer: ATensor-Based Multimodal Transformer for Multimodal Sentiment Analysis and Depression Detection’,并加入其他模块进行了优化,以及不同的特征提取方法,获得了不错的效果;
1. 总体框架 下图为模型总体框架,主要包含特征提取,Global Cross-Modality Interaction(TensorFormer Block,Attention Tenson),Parallel Feed-Forward以及输出层:
2. Global Cross-Modality Interaction 为了执行全面的跨模态交互,设计了TensorFormer,其基本块结构如下图所示。出于通用性和可扩展性考虑,我们将输入模态特征表示为 XtXt (text)、XaXa (acoustic)和 XvXv (visual),以说明TensorFormer的结构。在信息交换之前,采用线性变换将特征投影到相同的维度中。TensorFormer块中有两个主要模块,全局交叉注意模块和并行前馈模块。全局交叉注意模块旨在执行完整的模态交互。该模块的核心组件是注意力张量及其相应的查询,旨在全面,同时计算跨模态注意力分数。并行前馈模块由多个分支组成,用于处理相应模态的通道信息。
3. Attention Tensor TensorFormer的全局交叉注意力机制的关键思想是注意力张量,一个包含重要信息以及所有模式的相关信息的张量。为了生成注意力张量,我们首先对输入特征执行平均池化,以获得预期特征,然后应用笛卡尔积来生成注意力张量;
4. Attention forGlobal Cross-Modality Interaction 注意力张量包含来自所有相关模态的综合信息。每个模态都可以从AA 查询注意力分数,AA 包含所有其他模态的信息。在这里,我们首先提出了详细的说明,在传统的QKV方式,然后得出一个更简单的演示查询过程。
5. Parallel Feed-Forward TensorFormer块的并行前馈结构由相应模态的三个并行分支组成。对于每个模态,前馈模块旨在按通道方式处理特征,并且由两个线性变换组成;
6. 主要改进 - SentiLARE: 我采用SentiLARE作为语言模型,其利用包括词性和单词情感极性在内的语言知识来学习情感感知的语言表示。下面是作者根据SentiLARE的设置进行的步骤:
给定一个单词序列,首先通过Stanford Log-Linear词性(POS)标记器学习其词性序列,并通过SentiwordNet学习单词级情感极性序列。然后,使用预训练语言模型的分词器获取词标索引序列。这个序列作为输入,产生一个初步的增强语言知识表示。更新后的文本表示将作为第(i+1)层的输入,并通过SentiLARE中的剩余层进行处理。每一层的输出将是具有视觉和听觉信息的文本主导的高级情感表示。最后,将这些文本表示输入到分类头中,以获取情感强度。
因此,新的模型通过将非语言增强嵌入集成到预训练语言模型中,有助于生成更富有情感感知的语言表示。这种方法能够在文本表示中有效地整合视觉和听觉信息,从而提升情感分析等任务的性能。
- 多头注意力交互: 我在构造 TensorFormer之前,先对uni-modal进行一次交互,对视频和声学特征加入以文本为主导的多头注意力,主要起到一下作用:
综上所述,引入以文本为主导的多头注意力交互有助于在多模态情感分析中充分利用文本信息的优势,并通过有效的信息整合提升模型的性能和鲁棒性。
visual_ = self.cross_ATT_visual(text_embedding, visual_, visual_)
acoustic_ = self.cross_ATT_acoustic(text_embedding, acoustic_, acoustic_)
- LSTM: 在TensorFormer交互之后,我为最终的融合模态加入了LSTM,具有以下几个优点:
综上所述,将LSTM引入多模态情感计算中,能够充分利用其强大的时序建模能力和特征融合能力,从而提高情感计算任务的精确度和效果,特别是在处理多模态数据时能够更好地捕捉数据之间的复杂关系和动态变化。
1. CMU-MOSI: CMU-MOSI数据集是MSA研究中流行的基准数据集。该数据集是YouTube独白的集合,演讲者在其中表达他们对电影等主题的看法。MOSI共有93个视频,跨越89个远距离扬声器,包含2198个主观话语视频片段。这些话语被手动注释为[-3,3]之间的连续意见评分,其中-3/+3表示强烈的消极/积极情绪;
2. CMU-MOSEI: CMU-MOSEI数据集是对MOSI的改进,具有更多的话语数量,样本,扬声器和主题的更大多样性。该数据集包含23453个带注释的视频片段(话语),来自5000个视频,1000个不同的扬声器和250个不同的主题。
1. 数据集准备 下载MOSI和MOSEI数据集已提取好的特征文件(.pkl)。把它放在"./dataset”目录。
2. 下载预训练语言模型 下载SentiLARE语言模型文件,然后将它们放入"/pretrained-model / sentilare_model”目录。
3. 下载需要的包
pip install -r requirements.txt
4. 训练+测试
python train.py