【论文精读】| MulT —— Multimodal Transformer for Unaligned Multimodal Language Sequences
首篇跨模态Transformer
Multimodal Transformer for Unaligned Multimodal Language Sequences
多模态 Transformer 用于未对齐的多模态语言序列
Mul Transformer2019
数据集:CMU-MOSI、CMU-MOSEI、IEMOCAP
实验运行环境:GTX-1080Ti GPU(11G)
Article
Abstract 摘要
在建模多模态人类语言时间序列数据时存在两个挑战:
1)由于每个模态的序列采样率可变,固有的数据不一致问题;
2)跨模态的元素之间的长程依赖性。
提出多模态Transformer(MuIT),以端到端的形式解决上述问题,无需显式对齐数据。
模型核心:定向成对跨模态注意力,它关注不同时间步长的多模态序列之间的相互作用,并潜在地将流从一种模态调整到另一种模态。
对对齐和非对齐多模态时间序列的综合实验表明,该模型在很大程度上优于最先进的方法。
此外,经验分析表明,在MuIT中,所提出的跨模态注意力机制能够捕获相关的跨模态信号。
1 Introduction
模态间异质性增加了分析人类语言的难度,多模态语言序列通常表现出“不对齐”的特质,并且需要推断跨模态的长期依赖性,由此提出多模态融合的问题。
为了解决上述问题,本文提出了多模态Transformer,扩展了标准Transformer网络,以直接从未对齐的多模态流中学习表示。
模型的核心是跨模态注意力模块,它在整个话语的尺度上关注跨模态互动,潜在地将流从一种模态调整到另一种模态,通过反复强化一种模态的特征与其他模态的特征,不管是否需要对齐。
相比之下,处理未对齐的多模态序列的一种常见方法是在训练前强制单词对齐,然后在已经对齐的时间步长上对多模态相互作用进行建模,不直接考虑原始特征的长期跨模态偶然性。不仅需要涉及领域知识的特征工程,在实践中也不总是可行的,需要关于数据集的额外原信息。
下图1是单词对齐和本文模型推断的跨模态注意力之间的差距。
为了进行评估,在三个人类多模式语言基准上进行了一组全面的实验:CMU-MOSI(Zadeh et al.,2016)、CMU-MOEI(Zadehet al.,2018b)和IEMOCAP(Busso et al.,2008)。实验表明,MulT不仅在通常评估的单词对齐设置中,而且在更具挑战性的未对齐场景中,都达到了最先进的(SOTA)结果,在大多数指标上都比以前的方法高出5%-15%。此外,实证定性分析进一步表明,MulT使用的跨模态注意力能够捕捉异步模态的相关信号。
2 Related Works 相关工作
人类多模式语言分析
先前是从多模态序列中推断表示,需要融合时变信号。早期使用concatenate,最近Gu等人使用分层注意力策略,Wang等人使用伴随的非语言行为调整单词表示,Pham等人使用循环翻译目标学习鲁棒多模式表示,Dupala等人探索了用于视听对准的跨模态自动编码器。
但是先前的方法都依赖于一个假设 —— 多模态语言序列在单词的解析中已经对齐,并且只考虑短期的多模态交互。
Transformer网络
本文从neural machine translation(神经网络机器翻译)NMT Transformer中汲取了强大的灵感,将其扩展到多模式设置。尽管NMT Transformer专注于从源文本到目标文本的单向翻译,但人类多模式语言时间序列既不像单词嵌入那样被很好地表示,也不像单词嵌入那么离散,每种模式的序列具有截然不同的频率。因此,我们建议不要明确地从一种模态转换到另一种模态(这可能极具挑战性),而是通过注意力在模态之间潜在地调整元素。
因此,我们的模型(MulT)没有编码器-解码器结构,但它是由多个成对和双向跨模态注意力块堆栈建立的,这些注意力块直接关注低级特征(同时去除自注意力)。经验上,我们表明,我们提出的方法在各种人类多模式语言任务上的改进超过了标准Transformer。
3 Proposed Method 建议方法
在高层次上,MulT通过来自多个方向成对跨模态Transformer的前馈融合过程合并多模态时间序列。具体而言,每个跨模态Transformer(在第3.2节中介绍)用于通过学习两种模态特征之间的注意力,用另一种源模态的低级别特征反复强化目标模态。因此,MulT架构使用这种跨模态Transformer对所有模态对进行建模,然后是使用融合特征进行预测的序列模型(例如,自注意变换器)。
图2:MulT在模态(L、V、A)上的整体架构。跨模态变Transformer表明潜在的跨模态适应,是MulT用于多模态融合的核心部件。
我们提出的模型的核心是跨模态注意力模块,我们在第3.1节中首先介绍了它。然后,在第3.2节和第3.3节中,我们详细介绍了MulT架构的各种组成部分(见图2),并讨论了跨模态注意力和经典多模态对齐之间的区别。
3.1 Crossmodal Attention 跨模态注意力
考虑两个模态α和β,其中每个模态的两个(潜在不对齐的)序列表示为
。
对于论文的其余部分,
分别用于表示序列长度和特征维数。
受NMT中将一种语言翻译成另一种语言的decoder transformer(Vaswani et al.,2017)的启发,假设融合跨模态信息的一个好方法是提供跨模态的潜在适应;即β to α。注意,我们论文中考虑的模式可能跨越非常不同的领域,如面部属性和口语。
-
公式Qα=XαWQα定义了查询(Query)矩阵Qα,其中Xα是模态α对应的特征矩阵,WQα是查询矩阵的权重矩阵。
-
公式Kβ=XβWKβ定义了键(Key)矩阵Kβ,其中Xβ是模态β对应的特征矩阵,WKβ是键矩阵的权重矩阵。
-
公式Vβ=XβWVβ定义了值(Value)矩阵Vβ,其中Xβ是模态β对应的特征矩阵,WVβ是值矩阵的权重矩阵。
将模态β到模态α的潜在适应性表示为跨模态注意力:
Y_α实际上是转换后的结果。它是指从β模态到α模态的投影输出。简单来说,它是将一种模态(β)的信息转化为另一种模态(α)的结果。
具体来说,通过将查询矩阵Qα与键矩阵Kβ进行点积,然后经过缩放(除以√dk),再经过softmax操作从而得到注意力权重矩阵softmax(QαKβ⊤/√dk),最后与值矩阵Vβ相乘,得到加权和Xβ。
- 点乘操作,再除以 sqrt(d_k) 的步骤,是计算两个向量的相似度(或叫做注意力分数),这个词为趋近0的数可以防止值过大;
- SoftMax 函数的使用是为了将以上结果转化为概率值,这种概率可以看作是模态 α 与 β 之间的匹配程度;
- 最后,将这个概率矩阵与 β 模态的另一种向量表示 X_βW_Vβ相乘,作为将 β 模态信息转化为 α 模态的最终输出。
公式的逻辑是:将一种形式的信息(从一种模态)通过计算相似度,然后转化为概率分布,最后通过这个概率分布加权另一种形式的信息(到另一种模态)。这就是 Y_α 的基本原理。
注意,Yα与Qα(即Tα)具有相同的长度,但同时表示在Vβ的特征空间中。具体地,方程中缩放(通过dk)的softmax计算得分矩阵softmax(‧)∈ℝTα×Tβ,其第(i,j)个条目测量模态α的第i个时间步长对模态β的第j个时间步长的注意力。因此,Yα的第i个时间步长是Vβ的加权总和,权重由softmax(·)中的第i行确定。我们称上述方程为单头跨模态注意力,如图3(a)所示。
根据先前关于Transformer的工作(Vaswani等人,2017;Chen等人,2018;Devlin等人,2018年;Dai等人,2018),我们将残差连接添加到跨模态注意力计算中。然后,注入另一个位置前馈子层,以完成跨模态注意力块(见图3(b))。每个跨模态注意力块直接适应低级特征序列(即图3(b)中的Zβ[0]),不依赖于自注意力,这使其不同于NMT编码器-解码器架构(Vaswani et al.,2017;Shaw et al.,2018)(即采用中级特征)。我们认为,从低级特征进行自适应有利于我们的模型为每个模态保留低级信息。在第4.3节的消融研究中,我们将经验研究留给适应中间水平特征(即Zβ[i−1])。
3.2 Overall Architecture 总体架构
多模式语言序列通常涉及三种主要模态:语言(L)、视频(V)和音频(A)模态。我们用
表示来自这3种模态的输入特征序列(及其维数)。
Temporal Convolutions 时序卷积
—— 为了确保输入序列的每个元素对其邻域元素有足够的认识,我们将输入序列通过1D时序卷积层:
其中,k{L,V,A}是模态{L,V,A}的卷积核的大小,并且d是公共维度。卷积序列预计包含序列的局部结构,这一点很重要,因为序列是以不同的采样率收集的。此外,由于时序卷积将不同模态的特征投影到相同的维度d,因此点积在跨模态注意力模块中是允许的。
Position Embedding 位置嵌入
—— 为了使序列能够携带时间信息,遵循(Vaswani et al.,2017),我们将位置嵌入(PE)扩充为
其中计算每个位置索引的(固定)嵌入,
是不同模态的低级别位置感知特征。我们将位置嵌入的更多细节留给附录A。
Crossmodal Transformers 跨模态转换
基于跨模态注意块,我们设计了跨模态Transformer,使一种模态能够接收另一种模态的信息。在下文中,我们用视觉信息传递到语言的例子,用 " V → L "表示。我们将每个跨模态注意块的所有维度固定为d。
每个跨模态Transformer由D层跨模态注意块组成(见图3(b))。从形式上看,一个交叉模态Transformer 对 i=1,......,D层进行前馈计算。D层:
其中 fθ是以 θ为参数的位置前馈子层,表示第i层的多头(详见(Vaswani et al, 2017))版本的(注意:d应该可以被头的数量所除)。 LN指的是层归一化(Ba等人,2016)。
在这个过程中,每个模态通过来自多头跨模态注意模块的低层次外部信息不断更新其序列。在跨模态注意模块的每一层,来自源模态的低层次信号被转化为一组不同的 Key/Value对,以与目标模态互动。从经验上看,我们发现跨模态转换器学会了将有意义的元素跨模态关联起来(详见第四节)。最终的MulT是基于对每一对跨模态交互的建模。因此,考虑到3种模态(即L、V、A),我们总共有6个跨模态Transformer(见图2)。
Self-Attention Transformers and Prediction 自注意力转换和预测
作为最后一步,我们将共享相同目标模态的跨模态变换器的输出连接起来,得到
。
例如,。
然后,每个都要通过一个序列模型来收集时间信息以进行预测。我们选择自注意力的Transformer(Vaswani et al, 2017)。最终,序列模型的最后一个元素被提取出来,通过全连接层来进行预测。
3.3 Discussion about Attention & Alignment 关于注意力和对齐的讨论
当对未对齐的多模式语言序列进行建模时,MulT依赖于跨模态注意力块来合并跨模态的信号。虽然在训练前的先前工作中,多模态序列被(手动)对齐到相同的长度(Zadeh等人,2018b;梁等人,2018;Tsai等人,2019;Pham等人,2019年;王等人,2019),但我们注意到,MulT从一个完全不同的视角来看待不对齐问题。具体来说,对于MulT,多种模态的元素之间的相关性纯粹基于注意力。换句话说,MulT不通过(简单地)对齐它们来处理模态不对齐;相反,跨模态注意力鼓励模型直接关注存在强信号或相关信息的其他模态中的元素。因此,MulT可以以传统对齐无法轻易揭示的方式捕捉长期跨模态突发事件。另一方面,经典的跨模态对齐可以表示为特殊的(阶对角)跨模态注意力矩阵(即单调注意力(Yu et al.,2016))。我们在图4中说明了它们的差异。
4 Experiments 实验
在本节中,在三个数据集上实证评估了MulT,这些数据集在先前的工作中经常用于对人类多模式情感识别进行基准测试(Pham et al.,2019;Tsai等人,2019;梁等人,2018)。我们的目标是将MulT与先前的竞争方法在单词对齐(按单词,几乎所有先前的工作都使用)和非对齐(更具挑战性,MulT是为其通用设计的)多模态语言序列上进行比较。
4.1 Datasets and Evaluation Metrics 数据集和评估指标
每个任务都包括一个对齐的单词(以与以前工作相同的方式处理)和一个未对齐的版本。对于这两个版本,多模态特征都是从文本(GloVe词嵌入(Pennington等人,2014))、视觉(Facet(iMotions,2017))和声学(COV AREP(Degottex等人,2014))数据模态中提取的。附录D中对这些特征有更详细的介绍。
对于单词对齐版本,跟随(Zadeh等人,2018a;Tsai等人,2019;Pham等人,2019),我们首先使用P2FA(Yuan和Liberman,2008)来获得音频和视觉流的对齐时间步长(分段的w.r.t.单词),然后对这些时间范围内的音频和视觉特征进行平均。单词对齐大小写中的所有序列的长度都为50。所有数据集的过程保持不变。另一方面,对于未对齐的版本,我们保持提取的原始音频和视觉特征,没有任何单词分段对齐或手动子采样。因此,每个模态的长度变化很大,其中音频和视觉序列可能包含超过1000个时间步长。我们详细阐述以下三项任务。
CMU-MOSI & MOSEI —— CMU-MOSI(Zadeh et al.,2016)是一个人类多模态情感分析数据集,由2199个简短的独白视频片段组成(每个片段持续一句话的时间)。CMU-MOSI的声学和视觉特征分别以12.5和15Hz的采样率提取(而文本数据按单词分段并表示为离散的单词嵌入)。同时,CMU-MOSI(Zadeh et al.,2018b)是一个情感和情绪分析数据集,由23454个取自YouTube的影评视频片段组成(约为CMU-MOSE的10倍大小)。未对准的CMUMOSEI序列以20Hz的采样率(对于声学信号)和15Hz的采样速率(对于视觉信号)提取。
对于CMU-MOSI和CMU-MOEI,每个样本都由人类注释者标记,情绪得分从−3(强阴性)到3(强阳性)。我们使用各种指标来评估模型性能,与先前工作中使用的指标一致:7类准确性(即Acc7:情绪得分分类ℤ ∩ [−3,3])、二元精度(即Acc2:积极/消极情绪)、F1分数、分数的平均绝对误差(MAE)以及模型预测与人类的相关性。这两项任务都经常被用来衡量模型融合多模式(情绪)信息的能力(Poria等人,2017;Zadeh等人,2018a;梁等人,2018;Tsai等人,2019;Pham等人,2019年;王等人,2019)。
IEMOCAP —— IEMOCAP(Busso et al.,2008)由10万个视频组成,用于人类情绪分析。根据王等人的建议。(2019),选择4种情绪(快乐、悲伤、愤怒和中性)进行情绪识别。与CMU-MOSI和CMU-MOEI不同,这是一项多标签任务(例如,一个人可以同时悲伤和愤怒)。其多模态流考虑了音频(12.5Hz)和视觉(15Hz)信号的固定采样率。我们遵循(Poria等人,2017;王等人,2019;Tsai等人,2019)报告了二元分类的准确性和预测的F1分数。
4.2 Baselines 基线
我们选择早期融合LSTM(EF-LSTM)和晚期融合LSTM(LF-LSTM)作为基线模型,以及在各种单词对齐的人类多模态语言任务上取得SOTA结果的循环注意力变分网络(RAVEN)(Wang et al,2019)和多模态循环翻译网络(MCTN)(Pham et al,2019)。
为了全面比较这些模型,我们将连接主义时间分类(CTC)(Graves等人,2006年)方法改编为先前的方法(如EFLSTM、MCTN、RA VEN),因为这些方法不能直接应用于未对齐的设置。具体来说,这些模型的训练是为了同时优化CTC对齐目标和人类多模态目标。我们把对CTC模块的更详细处理留给附录B。为了进行公平的比较,我们将所有模型的参数数量控制得大致相同。超参数在附录C中报告。
4.3 Quantitative Analysis 定量分析
词对齐实验 —— 我们首先在单词对齐序列上评估MulT,这是先前建模人类多模式语言的方法的“主场”(Sheikh等人,2018;Tsai等人,2019;Pham等人,2019年;Wang等人,2019)。表1、表2和表3的上部显示了MulT和基线方法在单词对齐任务上的结果。在相似的模型大小(约200K参数)下,除了IEMOCAP上的“可悲”类结果外,MulT在所有任务的不同指标上都优于其他竞争方法。
表1: 在CMU-MOSI上用对齐和不对齐的多模态序列进行多模态情感分析的结果。 h表示越高越好,’ 表示越低越好。EF代表早期融合,LF代表后期融合。
表2: 在(相对较大的规模)CMU-MOSEI上用对齐的和不对齐的多模态序列进行多模态情感分析的结果。
表3: 在IEMOCAP上用对齐和不对齐的多模态序列进行多模态情感分析的结果。
未对齐的实验 —— 接下来,我们在未对齐设置中的同一组数据集上评估MulT。请注意,MulT可以直接应用于未对齐的多模式流,而基线模型(LF-LSTM除外)需要额外的对齐模块(例如CTC模块)。
结果如表1、表2和表3的底部所示。在三个基准数据集上,MulT在大多数属性上比先前的方法(一些使用CTC)改进了10%-15%。根据经验,我们发现与其他竞争方法相比,MulT在训练中收敛得更快,结果更好(见图5)。此外,虽然我们注意到,通常情况下,当我们从单词对齐的多模式时间序列转换为未对齐的多模态时间序列时,所有模型的性能都会下降,但MulT所产生的影响比其他方法小得多。我们假设发生这种性能下降是因为异步(以及更长的)数据流在识别重要特征和计算适当注意力方面带来了更大的困难。
图5:在未对齐的CMU-MOSEI任务上,与其他基线相比,MulT的V验证集收敛性。
消融研究 —— 为了进一步研究MulT中单个成分的影响,我们使用未对齐版本的CMU-MOSEI进行了全面的消融分析。结果如表4所示。
表4:使用CMU-MOSEI对MulT的跨模态变压器的好处进行消融研究)。
首先,我们考虑仅使用单模态Transformer(即仅使用语言、音频或视觉)的性能。我们发现,语言Transformer在很大程度上优于其他两个。例如,对于Acc2ℎ 当将纯音频Transformer与纯语言Transformer进行比较时,该模型从65.6提高到77.4。这一事实与先前工作中的观察结果一致(Pham et al.,2019),作者发现一个好的语言网络在推理时已经可以实现良好的性能。
其次,我们考虑
1)一个后期融合Transformer,它按特征连接三个自注意力Transformer的最后元素;
2)早期融合自注意力Transformer,其接受三个异步序列(见第3.2节)。经验上,我们发现 EF和LF Transformer(融合多模态信号)都优于单模态Transformer。
最后,我们根据目标模态。如表4所示,我们发现跨模态注意力模块在未对齐CMU-MOSEI的大多数指标上都比晚期和早期融合Transformer模型持续改进。
特别地,在三个跨模态变换器中,语言(L)是目标模态的Transformer工作得最好。我们还额外研究了在跨模态注意力块中适应来自源模态的中间级别而不是低级别特征的效果(类似于NMT编码器-解码器架构,但没有自注意力;见第3.1节)。虽然利用中间级别特征的MulT在其他消融环境中仍然优于模型,但我们经验发现,从低级特征进行调整效果最好。消融表明,跨模态注意力通过更好的表征学习具体有益于MulT。
4.4 Qualitative Analysis 定性分析
为了理解跨模态注意力在建模未对齐的多模态数据时是如何工作的,我们通过可视化注意力激活来实证检查MulT拾取了什么样的信号。图6显示了V的第3层上跨模态注意力矩阵的截面示例→ MulT的L网络(原始矩阵的维数为TL×TV;图中显示了该矩阵大约6秒短窗口对应的注意力)。我们发现跨模态注意力已经学会了关注两种模态中有意义的信号。例如,人们更加关注视频中倾向于暗示情绪(如“电影”、“令人失望”)和面部表情剧烈变化(上述视觉序列的开始和结束)的单词的交叉点。这一观察结果支持了MulT相对于传统比对的上述优势之一(见第3.3节):跨模态注意力使MulT能够直接捕捉潜在的长程信号,包括注意力矩阵上的偏离对角线的信号。
图6:CMUMOSEI上[V→L]跨模态转换器第3层的跨模态注意权重样本的可视化。我们发现跨模态注意力已经学会了将某些有意义的词(如 “movie”、“disappointing”)与较强的视觉信号(通常是较强的面部动作或表情变化)的片段相关联,尽管原始 L/V 序列之间缺乏对齐。请注意,由于时间上的卷积,每个文本/视觉特征都包含了附近元素的表示。
5 Discussion 讨论
在本文中,我们提出了用于分析人类多模式语言的多模式Transformer(MulT)。MulT的核心是跨模态注意力机制,它提供了一种潜在的跨模态适应,通过直接关注其他模态中的低水平特征来融合多模态信息。尽管先前的方法主要关注对齐的多模式流,但MulT是一个强大的基线,能够捕捉远程突发事件,而不考虑对齐假设。从经验上讲,我们表明,与先前的方法相比,MulT表现出最好的性能。
Appendix
A Positional Embedding 位置嵌入
一种纯注意力机制的Transformer网络是无序的。换句话说,对输入序列进行排列不会改变Transformer的行为或改变其输出。解决这一弱点的方法之一是将位置信息嵌入到隐藏单元中(Vaswani等人,2017年)。
按照(Vaswani等人,2017),我们通过sin和cos函数对长度为T的序列的位置信息进行编码,频率由特征指数决定。特别地,我们将一个序列的位置嵌入(PE)(其中T是长度)定义为一个矩阵,其中:
对于。因此,PE的每个特征维度(即列)都是表现为正弦波模式的位置值。一旦计算出来,位置嵌入被直接添加到序列中,这样 X + P E 就会在每个时间步骤中编码元素的位置信息。
B Connectionist Temporal Classification 连接主义时间分类
连接主义时间分类(CTC)(Graves et al.,2006)首次被提出用于无监督的语音到文本对齐。特别地,CTC经常与递归神经网络的输出相结合,这使得模型能够在没有监督的情况下端到端地训练并同时推断语音文本对齐。为了便于解释,假设CTC模块现在旨在将长度为6的音频信号序列[a1,a2,a3,a4,a5,a6]与长度为5的文本序列“我真的很高兴”对齐。在这个例子中,我们将音频称为源信号,文本称为目标信号,注意到源和目标之间的序列长度可能不同;我们还看到,输出序列可能有重复的元素(即,“真的”)。我们使用的CTC(Graves et al.,2006)模块包括两个组件:对齐预测器和CTC损失。
首先,对齐预测器通常被选为一个递归网络,如LSTM,它在源序列上执行,然后输出目标序列中唯一的词的可能性以及一个空词(即 x )。在我们的例子中,对于每个单独的音频信号,对齐预测器提供了一个长度为5的向量,关于被对齐为[ x , ′ I ′ , ′ a m ′ , ′ r e a l l y ′ , ′ h a p p y ′ ]的概率。
接下来,CTC损失仅考虑来自对齐预测器输出的适当对齐的负对数似然损失。在我们的例子中,正确的对齐可以是诸如以下的结果。
i.[x,“i”,“am”,“really”,“真的”,“happy”];
ii.[“I”、“am”、x、“really”、“reality”、“happy”];
iii.[‘I’、‘am’、‘really’、‘true’、‘真的’、‘happy’];
iv.[‘I’,‘I’、‘am’、‘really’、‘真的’、‘happy’]
同时,次优/失败情况的一些例子是
i.[x,x,‘am’,‘really”、‘reality’、‘高兴’];
ii.[‘我’、‘是’、‘我’,‘真的’、‘真的”、‘快乐’];
iii.[我,我,x,真的,x,快乐]
当CTC损失最小时,意味着源信号与目标信号正确对齐了。
总而言之,在采用CTC模块的实验中,我们在最小化CTC损失的同时训练对齐预测器。然后,排除空白词的概率,我们将对齐预测器的概率输出与源信号相乘。因此,源信号就会产生一个伪对齐的目标信号。在我们的例子中,音频信号随后被转化为序列长度为5的音频信号[ a1′,a2′,a3′,a4′,a5′],它被伪对齐为[’I’, ’am’, ’really’, ’really’, ’happy’]。
C Hyperparameters 超参数
表5显示了我们在人类多模态语言任务中训练的各种MulTs的设置。如前所述,为了公平比较,这些模型的大小与先前的工作大致相同。对于超参数,如丢弃率和跨模态注意力模块的头数,我们进行了基本的网格搜索。当验证性能趋于平稳时,我们将学习率递减10倍。
D Features 特征
多模态数据集的特征被提取如下。
语言。我们将视频记录转换成预先训练好的Glove词嵌入(glove.840B.300d)(Pennington等人,2014)。该嵌入是一个300维的向量。
视觉。我们使用Facet(iMotions,2017)来表示35个面部动作单元,它记录了面部肌肉运动(Ekman et al,1980;Ekman,1992),用于表示每帧基本和高级情绪。
音频。我们使用COV AREP(Degottex等人,2014)来提取低层次的声音特征。该特征包括12个频谱系数(MFCCs)、音调跟踪和声调/非声调分割特征、声门源参数、峰值斜率参数和最大分散商数。特征的维度为74。
一 些words积累
attribute 特征
- v. 把……归因于;认为是……所作;认为……具有某种特质
- n. 属性,特质;标志,象征;定语
time-varying signal 时变信号
input feature sequences (and the dimensions thereof) 输入特征序列(及其维度)
hierarchical adj. 分等级的,等级制度的
cyclic adj. 环的;循环的;周期的
grid search 网格搜索
一 些 Q/A
Q:Concerning the fusion manner, existing intermodal fusion methods can be divided into: aggregationbased fusion, alignment-based fusion and the mixture of them这都是什么方法?
A:
这里提到的三种方法是指现有的跨模态融合方法在融合方式上的分类:
-
Aggregation-based Fusion(基于聚合的融合):这种方法通过对多个模态的信息进行聚合来实现融合,常见的聚合操作包括求和、平均值、最大值等。例如,可以将多模态特征向量直接拼接后输入到一个全连接层进行融合。
-
Alignment-based Fusion(基于对齐的融合):这种方法通过将不同模态的信息进行对齐,使它们在某个共同的表示空间中具有一致的表达。对齐可以通过变换、对齐网络等方式实现,常见的方法包括配准网络、对抗训练等。
-
Mixture of Them(二者的混合):这种方法则是结合了聚合和对齐两种方式,通过同时考虑信息的聚合和对齐来进行融合。例如,在融合时先进行对齐操作,然后再进行聚合操作。
这些方法主要用于解决多模态数据融合的问题,以提高对多模态信息进行建模和处理的效果。
Q:The key challenge of multi-modal learning lies in 1) how to integrate commonality while preserving diversity of each individual modality; 2) how to align different modality distributions interactively for inter-modal fusion.为什么要保持同时整合共性?
A:
在多模态学习中,保持同时整合共性是一个重要的挑战。这是因为不同模态之间通常存在着一些共性特征,即它们在某些方面具有相似的信息。通过整合这些共性,我们可以更好地捕捉到跨模态数据中的普遍规律和共同特征。
保持同时整合共性的好处包括:
-
增强模型的鲁棒性:通过整合共性,模型可以更好地适应不同模态之间的变化和差异,从而提高模型的鲁棒性和泛化能力。
-
提升模型的性能:共性特征经常包含了对于任务或问题的重要信息,通过整合共性,模型可以更准确地学习到这些关键特征,从而提升模型在各个模态上的性能。
-
减少数据需求:整合共性可以帮助我们从跨模态数据中识别和利用重复出现的信息,从而减少对大量标注数据的需求,节省数据收集和标注的成本。
然而,同时整合共性也需要注意平衡的问题,即如何保持每个模态的多样性和独有性。因为每个模态可能会提供独特的信息,忽视这些独有特征可能会导致信息的丢失或冗余。因此,同时整合共性的挑战在于如何在整合过程中保持每个模态的多样性和独特性,以充分利用不同模态之间的互补性和丰富性。
Q:什么叫commonality同时整合共性?
A:
"Commonality"(共性)指的是不同模态之间具有相似或重叠的特征或信息,而"integrating commonality"(整合共性)则是指在多模态学习中,将这些共性特征有效地整合到模型中,以提高模型对于跨模态数据的建模能力。
通常情况下,在整合共性的过程中,并不是要求同时生成融合后的表示。而是在模型的训练过程中,通过适当的结构设计和参数学习,使得模型能够自动地从不同模态中学习到共性特征,并将其整合到模型的表示中。
在实际的多模态学习中,常见的整合共性的方式包括使用共享层或共享参数来提取共性特征、使用对抗训练来使得模型能够学习到对抗性的共性特征以及其他一些联合训练、迁移学习等方法。整合共性的目的是为了让模型能够更好地理解和利用跨模态数据中的共性信息,从而提高模型的性能和泛化能力。
Q:1) inherent data non-alignment due to variable sampling rates for the sequences from each modality; and 2) long-range dependencies between elements across modalities. 解释一下?
A:
-
不同模态序列的采样率导致的数据不对齐:在多模态数据中,不同模态的序列可能以不同的采样率进行采样。这意味着它们的时间步长或时间间隔不一致。例如,一个模态的序列可能每秒采样一次,而另一个模态的序列可能每毫秒采样一次。这会导致数据在时间上的不对齐,使得模态之间的时间对齐成为挑战。在处理这种情况时,需要考虑如何将不同模态的序列调整为相同的时间步长或找到合适的对齐策略,以便能够有效地利用多模态数据。
-
跨模态元素之间的长程依赖关系:多模态数据通常由多个模态的元素组成,这些元素之间可能存在长程的依赖关系。这意味着一个模态的元素可能与其他模态的过去或未来元素存在关联。例如,在视频和音频的多模态数据中,视频的某一帧可能与音频的前后几秒钟存在关联。这种长程依赖关系需要被建模和捕捉,以便能够充分利用不同模态之间的相关性。在处理这种情况时,可以使用一些序列建模方法,如循环神经网络(RNN)或注意力机制,来捕捉不同模态之间的长程依赖关系。
解决这些问题的方法包括但不限于以下几个方面:
- 对于数据不对齐的问题,可以通过插值、重采样或对齐算法来调整不同模态的采样率,使它们具有一致的时间步长。
- 对于跨模态长程依赖关系的问题,可以使用多模态融合方法,如多模态注意力机制、多模态融合网络等,以捕捉模态之间的相关性和依赖关系。
- 还可以使用图神经网络等方法来建模多模态数据中的元素关系,将不同模态的元素表示为图中的节点,并利用图结构来学习元素之间的依赖关系。
Q:长程依赖关系还是长期依赖关系?
A:
"长程依赖关系"和"长期依赖关系"都可以用来描述序列数据中元素之间的依赖关系,但它们的含义略有不同。
"长程依赖关系"通常指的是序列中相距较远的元素之间的依赖关系。在深度学习中,这种长程依赖关系往往涉及到多个时间步长或多个层次之间的信息传递。例如,在自然语言处理任务中,一个单词的意义可能受到前面多个单词的影响,这种跨越多个时间步长的依赖关系就是一种长程依赖关系。
"长期依赖关系"则更强调的是序列中相距较远的元素之间的累积效应。在深度学习中,这种长期依赖关系通常涉及到梯度消失或梯度爆炸等问题。例如,在使用循环神经网络(RNN)处理长序列数据时,由于反向传播算法的限制,梯度可能会在时间上随着序列长度的增加而衰减,导致模型无法捕捉到长期依赖关系。
因此,尽管这两个术语都描述了序列数据中元素之间的依赖关系,但它们的重点略有不同。在深度学习中,长程依赖关系往往是需要被建模和捕捉的关键问题,而长期依赖关系则需要特殊的算法或技巧来解决梯度消失或爆炸等问题。
Q:Therefore, we propose not to explicitly translate from one modality to the others (which could be extremely challenging), but to latently adapt elements across modalities via the attention. Our model (MulT) therefore has no encoder-decoder structure, but it is built up from multiple stacks of pairwise and bidirectional crossmodal attention blocks that directly attend to low-level features (while removing the self-attention). Empirically, we show that our proposed approach improves beyond standard transformer on various human multimodal language tasks.为什么没有编码器-解码器结构?没太理解
A:
在上述文本中提到,他们的模型MulT没有编码器-解码器结构,而是由多个成对和双向跨模态注意力块组成。这种设计主要是为了处理多模态数据时的特点和挑战,以下是一些可能的原因:
-
避免模态之间的显式翻译:在某些多模态任务中,直接进行模态之间的显式翻译可能会非常困难,特别是当模态之间的对齐不是完全清晰或存在较大差异时。通过使用注意力机制来进行潜在的跨模态适应,可以更灵活地学习模态之间的关系,而无需依赖严格的编码器-解码器结构。
-
直接关注低级特征:MulT模型采用了跨模态注意力机制直接关注低级特征,而不是像传统的编码器-解码器结构那样先将输入编码成抽象表示再解码。这种设计可以更好地保留和利用原始数据的信息,从而提高模型的性能。
-
提高模型效率和性能:通过去除自注意力机制(self-attention),MulT模型可以更加高效地处理多模态数据,减少计算复杂度并提高训练和推理的速度。同时,基于注意力的跨模态适应也有助于改进模型在人类多模态语言任务上的表现。
Q:为什么要用三个transformer,再做进一步交互;而不是直接用六个映射直接拼接进行预测?
A:为了让模型能够综合考虑不同模态之间的关联性和信息交互。通过将不同模态的表示拼接在一起,可以实现不同模态信息的融合。为了让模型能够综合考虑不同模态之间的关联性和信息交互。通过将不同模态的表示拼接在一起,可以实现不同模态信息的融合。
Q:为什么不将自身模态的序列也加入到拼接的输入中呢?
A:
通常情况下,将自身模态的序列也加入到拼接的输入中可能会增加模型的复杂度,并引入更多的参数和计算量。如果自身模态的序列已经包含了足够的信息,并且与其他模态的信息有足够的关联性,那么可能并不需要额外引入自身模态序列,以避免过度拟合或增加计算成本。
另一方面,如果自身模态的信息与其他模态的信息具有很强的相关性,并且在任务中起到重要作用,那么将自身模态的序列也加入到拼接的输入中可能会有助于提高模型性能。这种情况下,需要综合考虑模型的复杂度、数据特点以及任务要求,来决定是否将自身模态的序列加入到输入中。
总的来说,是否将自身模态的序列加入到拼接的输入中取决于具体情况,需要根据任务需求、数据特点和模型效果进行权衡和选择。在某些情况下,只考虑跨模态信息已经足够,而在其他情况下,加入自身模态信息可能会带来额外的好处。
Colab复现
1、
需要在main.py里的在DataLoader()中添加一个参数
generator=torch.Generator(device=‘cuda’),
这样就可以在GPU上创建一个随机数生成器,而不是默认的CPU上的生成器。
2、需要将position_embedding.py的view()函数换成reshape(),这是在colab的情况下。
3、data是需要自己创建文件夹,下载并解压,然后在main.py的–dataset参数中修改默认路径。
4、博主测试的是mosi数据集,需要修改label。
!python main.py --model MulT --dataset mosi_senti --data_path "/content/drive/MyDrive/MulT/Multimodal-Transformer-master/data"
曙光平台复现
(base) [katya1129@login02 ~]$ salloc -p kshdtest -N1 -n 32 --gres=dcu:4
salloc: Pending job allocation 59675347
salloc: job 59675347 queued and waiting for resources
salloc: job 59675347 has been allocated resources
salloc: Granted job allocation 59675347
(base) [katya1129@login02 ~]$ conda env list
# conda environments:
#
base * /public/home/katya1129/miniconda3
torch113_dtk2304_py37 /public/home/katya1129/miniconda3/envs/torch113_dtk2304_py37
torch2.1_dtk2310_py38 /public/home/katya1129/miniconda3/envs/torch2.1_dtk2310_py38
tytorch3.7 /public/home/katya1129/miniconda3/envs/tytorch3.7
(torch113_dtk2304_py37) [katya1129@login02 ~]$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
59675347 kshdtest interact katya112 R 4:46 1 e10r3n02
(torch113_dtk2304_py37) [katya1129@login02 ~]$ ssh e10r3n02
Warning: Permanently added 'e10r3n02,10.5.10.43' (ECDSA) to the list of known hosts.
(base) [katya1129@e10r3n02 ~]$ conda activate torch113_dtk2304_py37
(torch113_dtk2304_py37) [katya1129@e10r3n02 ~]$ module purge
(torch113_dtk2304_py37) [katya1129@e10r3n02 ~]$ module load compiler/devtoolset/7.3.1 mpi/hpcx/2.11.0/gcc-7.3.1
(torch113_dtk2304_py37) [katya1129@e10r3n02 ~]$ module load compiler/dtk/23.10
(torch113_dtk2304_py37) [katya1129@e10r3n02 ~]$ python
Python 3.7.16 (default, Jan 17 2023, 22:20:44)
[GCC 11.2.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
True
(torch113_dtk2304_py37) [katya1129@e10r3n02 ~]$ cd MulT
(torch113_dtk2304_py37) [katya1129@e10r3n02 MulT]$ cd Multimodal-Transformer-master
(torch113_dtk2304_py37) [katya1129@e10r3n02 Multimodal-Transformer-master]$ python main.py --model MulT --dataset mosi_senti --data_path "/public/home/katya1129/MulT/Multimodal-Transformer-master/data"
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)