ConKI: Contrastive Knowledge Injection for Multimodal Sentiment Analysis
ConKI:用于多模态情感分析的对比知识注入
ACL2023
代码暂未公开。
数据集:CMU-MOSI、CMU-MOEI和SIMS
实验运行环境:Nvidia RTX 2080Ti GPU
Abstract 摘要
多模态情绪分析利用多模态信号来检测说话者的情绪。以前的方法集中于基于从预训练的模型中获得的一般知识进行多模式融合和表示学习,而忽略了领域特定知识的影响。
在本文中,提出了用于多模态情感分析的对比知识注入(ConKI),其中每个模态的特定知识表示可以通过基于Adapter架构的知识注入与一般知识表示一起学习。此外,ConKI使用在每个单一模态内的知识类型之间、在每个样本内的模态之间和在样本之间执行的分层对比学习过程,以促进对所提出的表示的有效学习,从而改进多模态情绪预测。
在三个流行的多模态情绪分析基准上的实验表明,ConKI在各种性能指标上都优于所有现有方法。
1 Introdution 介绍
大多数现有的MSA方法侧重于开发模态之间的融合技术。最简单的方法是简单地将文本、视频和音频特征连接为融合向量,用于后续的分类或回归。另一种选择是使用外积、递归神经网络(RNN)或基于注意力的模型来对多模式交互进行建模。最近,从分解每个模态的表示到在学习目标中引入额外的约束的很多方法涌现。尽管上述方法提高了MSA性能,但它们侧重于利用从预训练模型中获得的一般知识来编码模态,这不足以识别跨模态的特定情绪。
解决这个问题的一种可能性是通过知识注入,它可以生成特定的知识来帮助一般知识进一步改进预测。许多研究人员发现,注入其他来源的知识,如语言知识、百科全书知识和特定领域知识,可以帮助增强现有的预训练语言模型的知识意识,并提高其在各种下游任务中的表现。
在本文中,我们提出了ConKI,一种对比知识注入框架,用于学习泛知识表示和特定知识表示,以提高MSA性能。我们认为,单模态表示可以由泛知识表示(由BERT(Devlin et al.,2019)等预训练模型给出)和特定知识表示(从相关外部来源注入)组成。具体而言,ConKI使用预训练的BERT模型来提取文本泛知识表示,并使用两个随机初始化的 transformer encoder 来分别生成声学和视觉泛知识表示。同时,它将一个名为adapter的知识注入模型应用到每个模态上,以产生特定于知识的表示。在融合的特征用于情绪预测之前,首先在每个模态内融合泛知识表示和特定知识表示,然后在模态之间融合。我们进一步提出了一种层次对比学习程序在每个单一模态内的知识类型之间、在每个样本内的模态之间以及在样本之间执行,以便于在ConKI中学习这些表示。这项工作的主要贡献可概括如下:
- 提出了ConKI,一种用于多模态情感分析的对比知识注入框架。ConKI旨在通过从其他数据集注入外部知识和分层对比学习来提高模型性能,事实证明,这比简单地对外部数据集进行微调要好。
- •提出了分层对比学习,该学习使用统一的对比损失来将泛知识表示与特定知识表示区分开来,因为它们属于不同的知识领域,并且应该相互补充。
- •在三个流行的基准MSA数据集上进行了广泛的实验,并在所有指标上获得了优于现有最先进的MSA基线的结果,证明了所提出的方法在ConKI中的有效性。
2 Related Work 相关工作
2.1 Multimodal Sentiment Analysis
MSA的研究主要集中在多模态融合和表示学习方面。对于多模态融合,现有的方法通常分为早期融合和晚期融合技术。早期融合是指在对单个模型进行编码之前,将多模式输入连接到单个特征中。例如,Williams等人(2018)连接初始输入特征,然后使用LSTM来捕获序列中的时间相关性。相反,后期融合通过单独的模型学习单模态表示,并在后期融合它们进行推理。Zadeh等人(2017)介绍了一种张量融合网络,该网络首先用相应的子网络对每个模态进行编码,然后用三重笛卡尔乘积对单模态、双模态和三模态相互作用进行建模。对于表示学习方法,Hazarika等人建议将每个情态投射到情态变体和情态特定表示中。
与上述工作不同的是,我们提出基于知识类型将每个模态分解为两种表示。这两种表示可以相互补充,从而产生更丰富的单模态表示。
2.2 Knowledge Injection 知识注入
将知识注入预训练的语言模型(PLM)已被证明在各种NLP任务上优于普通预训练的模型。Adapter通常用作插入到PLM外部或内部的知识注入模型。在这项工作中,我们为不同的模态(不限于文本)构建了不同的适配器,以从外部数据集中学习特定的模态知识,用于下游任务。据我们所知,我们是第一个探索多模态领域知识注入的人。
2.3 Contrastive Learning 对比学习
对比学习(CL)旨在学习有效的表征,使正样本对很近,而负样本对相距很远。现有工作可分为两类:自监督CL和监督CL。它们之间的区别在于标签信息是否用于形成正/负对。例如,Khosla等人(2020)提出了监督CL,将同一类的样本拉到一起,并将不同类的样本推开。在我们的工作中,我们设计了更细粒度的对比对。也就是说,我们考虑知识类型之间、模式之间和样本之间的对比。
3 Method 方法
在本节中将详细解释对比知识注入框架(ConKI)。ConKI的目标是通过知识注入和层次对比学习生成泛的和特定的知识模态表征。知识注入旨在获得特定知识的表示,这些表示可以补充预训练模型提供的泛知识表示。分层对比学习通过考虑知识类型、模式和样本之间的对比,进一步优化了这些特定知识和泛知识表示。
3.1 Problem Definition 问题定义
3.2 Overall Architecture 整体架构
图1:ConKI的总体架构。实线箭头和虚线箭头分别表示主MSA任务和层次对比学习子任务的过程。在对比学习过程中,青色和粉色方框说明了处于不同情绪得分区间的样本。
图1显示了ConKI的总体架构。首先用它们对应的特征提取器和分词器来处理低级特征Im∈{t,v,a}的原始多模态输入。然后,我们将Im编码为由一些 adapter 生成的知识特定表示(即Am)和由预训练的编码器生成的泛知识表示(即Om)。文本编码器来自公共可用的预训练主干,如BERT,视觉/音频编码器是具有随机初始化的设计模型,因为没有通过上述低级特征预训练的合适主干。在生成特定知识和泛知识表示后,ConKI在下游目标数据集上同时训练两个不同的任务——主MSA回归任务和对比学习子任务。
对于MSA任务,我们将每个模态的知识特定表示和泛知识表示连接起来,然后将它们输入到全连接(FC)层中进行内部模态融合。然后,我们设计了一个融合网络,该网络由级联层和用于多模态融合的融合模块组成,如图2所示。融合表示被传递到多层感知器(MLP)网络中以产生情绪预测 y hat。
图2: 融合网络。虚线框中标记的融合模块用于获得加权融合嵌入。表示按元素相乘。
对于分层对比学习的子任务,我们在知识层面、模态层面和样本层面仔细构建了负样本对和正样本对。我们配对策略的直觉如下。我们期望Am和Om捕捉不同的知识,所以我们将它们解开,使它们相互补充,通过知识层面的对比来获得更丰富的模态表示。由于视频的情感是由所有模态决定的,我们通过模态级别的对比来了解六种表示之间的共性。此外,表达亲密情感的视频应该有一些相关性。我们通过样本水平的对比来捕捉相关性,以帮助进一步了解相似情绪下样本之间的共性。通过整合这些层次对比,ConKI能够捕捉表示之间的完整动态,这可以显著有利于主MSA任务。
3.3 Encoding with Knowledge Injection 知识注入编码
通过预训练的编码器将每个模态编码为泛知识表示,并通过Adapter将其编码为知识特定表示。
Pan-knowledge representations 泛知识表示
使用预训练的BERT(Devlin et al.,2019)对文本模态的输入句子进行编码。最后一层中的合并输出向量被提取为整句表示Ot:
其中Ht表示所有层的隐藏状态。对于音频和视觉模态,我们使用堆叠Transformer层的编码器(Vaswani等人,2017)来捕捉时间特征Om:
这里,Ot、Oa和Ov被视为三种泛知识表示,因为它们主要包含一般知识,例如在大文本数据上预训练的BERT(Devlin et al.,2019)编码的一般事实。
Knowledge-specific representations 特定知识表示
我们通过知识注入模型(适配器)注入来自外部多模态来源的特定领域知识。适配器通常用于自然语言处理(NLP),以增强现有预训练语言模型的知识意识(Wei et al.,2021)。适配器的输出被视为特定于知识的表示。具体来说,每个模态的适配器都插在各自预训练的编码器之外,如图3所示。
图3:Adapter适配器及其与主干编码器的连接
Adapter它由多个具有相同夹层结构的模块组成:两个FC层,中间有两个Transformer层。每个模块都可以插入主干模型(编码器)的任何转换器层之前,例如图3中的第二和第四Transformer层。因此,每个模块都将预训练编码器的中间层隐藏状态和前一个适配器模块的输出作为输入。适配器的输出表示为Am,其中
为了学习特定的多模态情感知识,我们同时使用外部数据集为每个模态预训练一个适配器,即Adapter t、Adapter a和Adapter v,同时保持预训练的编码器冻结。由于我们选择的外部数据集也来自多模态情感领域,因此预训练任务仍然是MSA任务。
我们在外部数据集上仅使用MSA任务预训练图1中的Adapter部件,然后利用预训练的适配器为下游目标任务生成知识特定表示Am,该任务包括MSA任务和层次对比学习子任务。
算法1总结了适配器的这种预训练过程。
算法流程理解:
算法逻辑描述了一个两阶段的过程,包含适配器预训练(Adapter Pretraining)和下游微调(Downstream Fine-tuning)。
阶段1:适配器预训练
输入:外部数据集E,其对应的特征Im和标签y。
输出:预训练的适配器每个训练周期:
对于来自E的每一批数据({ti, ri, ai}):
1.使用公式(1-3)对(I_mi, O_mi)和(A_mi, O_mi)进行编码
2.内部模态融合:F_mi = FC([O_mi^t; O_mi^a]),其中[.;.]表示两向量的串联
3.多模态融合:F_i = FN(F_mi^t, F_mi^a),FN为融合网络
4.使用y_i^ = MLP(F_i)计算预测
5.通过公式(4)计算L_task
6.更新参数,除了θ{BERT, gencoder | m ∈ {v, a}}
结束
保存θ{adapter | m ∈ {t, v, a}},当达到了最好的验证结果阶段2:下游微调
输入:目标数据集D,其对应的特征Im,其标签y,以及预训练的适配器
输出:预测值y_i^每个训练周期:
对于来自D的每一批数据({ti, ri, ai}):
执行阶段1中的步骤1 - 4
使用公式(5)计算L
更新参数,排除θ{adapter | m ∈ {t, v, a}}
结束
3.4 Hierarchical Contrastive Learning 分层对比学习
在我们的框架中,我们提出了一种分层对比学习方法,通过在批次B中考虑以下四个方面来增强所学习的表示:
- 对于单个视频样本 i ,所有模态都具有决定整体情绪的说话者的共同动机。不同模态的泛知识表示最好表示相似的含义,因此需要彼此拉近距离。这同样适用于特定知识的表示。这种直觉导致了样本内正对的构建:
- 泛知识表示和特定知识表示应该相互分离,因为它们属于不同的知识领域,并且被设计为相互补充。这存在于每个样本内部(i和j表示相同的样品)以及批次中的样本之间(i和j表示两个不同的样品)。因此,我们可以在一个批次中构建知识间负对:
- 对于具有相近情感的两个任意样本i和j,即,它们的情感得分可以四舍五入到相同的整数,样本i的六个表示(即Oi m和Ai m)应该接近样本j的相应表示(即,Oj n和Aj n)。注意,下标m和n分别表示样本i和j的模态。然后,我们将样本间正对形成为
- 其中yi表示样本i的真实标签,r(·)代表四舍五入函数;
- 除了从上述三个方面的对之外,同一批次中与样本i的剩余对被设置为负对Ni2。有关更详细的配对策略,请参阅附录A.1。
具体来说,我们的层次对比损失Lcon是通过
|Pi 1 ∪ Pi 2| 的含义是在批次 B 中,与样本 i 相关的正样本对的数量。"(·, ·)" 表示这些正样本对的具体组合,例如 (Oi t, Oi v)。而 τ 是一个标量参数,用于调节对比损失函数中的温度。
公式理解:
对比损失函数(Contrastive Loss Function)的数学方程,表示为 L_con。这个损失是在一批数据点上计算的,数据点由 B 中的 i 索引。
函数涉及对两个集合 P̃_1 和 P̃_2 的并集的负倒数(或大小)的求和,然后乘以一个对数表达式。这个对数表达式由一对对(p,q)上的求和以及对函数 f 应用于对(p,q)和函数 f 应用于所有可能对(p',q')的求和之比的对数组成,其中(p',q')属于全部对(All Pairs)集合。
函数 f 被定义为向量 p 和 q 的归一化内积(点积)减 1 的指数函数,然后除以温度参数 τ。
全部对(All Pairs)定义为四个集合,即 P̃_1、P̃_2、Ñ_1 和 Ñ_2 的并集。
总的来说,这个方程定义了一种在高维空间中度量数据点对的相似性或差异性的方式,其目的是通过拉近相似的对和推远不相似的对来学习有意义的表示。这在诸如度量学习,对比表示学习和嵌入学习等任务中常用。
这种分层对比学习子任务背后的基本原理如下。
- 首先,我们捕捉每个样本的每种知识类型中三种模态之间的共性,以减少在共同目标下的模态差距。
- 其次,我们建模在每种知识类型中具有相似情感的样本之间的共性,以减少样本差距。
- 第三,我们捕捉每个样本中泛知识表示和特定知识表示之间的差异,从而产生两种知识类型表示的互补效应。
- 最后但同样重要的是,我们捕捉每种知识类型中不同情感样本之间的差异,以学习不同情感区间的动态特征。
3.5 Training Procedure 训练过程
给定真实标签y和预测值y hat,我们可以通过均方误差计算主MSA任务损失:
其中|B|是一个批次中的样本数。ConKI采用先预训练后微调的学习机制。我们首先使用外部数据集用Ltask在ConKI中预训练适配器,同时固定预训练主干的模型参数,考虑到ConKI只在具有与骨干相比,可训练的参数要少得多。然后,我们通过优化总体损失L,利用下游目标数据集对ConKI进行微调:
其中λ是平衡MSA任务损失和层次对比损失的超参数。算法1显示了ConKI的完整训练过程。
4 Experiments 实验
本节介绍了一些实验细节,包括数据集、评估指标、基线模型和实验结果。实施细节见附录B。
4.1 Datasets and Metrics 数据集和指标
我们在MSA中的三个公开可用的基准数据集上进行了实验:CMU-MOSI(Zadeh et al.,2016)、CMU-MOEI(Zadehet al.,2018)和SIMS(Yu et al.,2020)。表1显示了数据集的统计数据。附录C描述了这些数据集的详细信息。以回归和分类两种形式报告了我们的实验结果。对于回归,我们报告了平均绝对误差(MAE)和Pearson相关性(Corr)。对于分类,我们报告二元分类准确度(Acc-2)和F1分数。具体而言,对于CMU-MOSI和CMU-MOEI数据集,我们计算了负/正(不包括零)和非负/正的(包括零)设置中的Acc-2和F1分数,以及七类分类准确度(Acc-7),它显示了正确分类到−3和3之间的七个区间中的同一区间的预测百分比。值越高,表示除MAE之外的所有指标的性能越好。
4.2 Baselines 基线
我们将ConKI与MSA中的以下最新基线模型进行比较:TFN、LMF、MulT、ICCN、MISA、MAG-BERT,Self-MM、HyCon和MMIM。这些基线模型的详细信息如附录D所示。
4.3 Results 结果
根据之前的工作,在相同的超参数设置下运行了五次模型,并在表2和表3中报告了所有指标的平均性能。我们可以从这些表中观察到,ConKI在CMU-MOSI、CMU-MOEI和SIMS的一系列基线模型中产生了更好或有竞争力的结果。具体而言,ConKI在CMU-MOSI和SIMS的所有指标以及CMU-MOEI的Corr、Acc-7、Acc-2和F1得分方面都优于所有最先进的基线模型。它还实现了与CMUMOSEI上MAE中的最佳基线模型的闭合性能。
值得注意的是,ConKI在CMUMOSI上的MAE比最佳基线模型MMIM高出约0.02,这表明ConKI能够学习MSA任务的有效表示,因为MAE是回归任务中最常用的评估度量。ConKI在CMUMOSI和CMU-MOSEI数据集上的Corr得分也表现出色。这种优异性能背后的可能原因是,ConKI使用对比学习来识别不同情绪下的样本,这可以在样本之间产生有效的排名结果,从而产生更高的Corr分数(Swinscow等人,2002)。
此外,ConKI对CMU-MOSI的Acc-7比最佳基线高1.78。尽管在回归任务中很难进行分类,尤其是七类分类,但ConKI成功地利用了被分类为七个区间的样本之间的对比度(通过第3.4节中描述的圆函数)来对样本动力学进行建模,这给Acc-7和Acc-2带来了很大的改进,证明了ConKI在MSA的表征学习中的有效性。此外,ConKI在所有数据集上都显示出优异的F1分数,这证明了其在现实世界应用中的潜力,因为F1对于评估不平衡的数据集是有价值的。
4.4 Ablation Study 消融研究
我们首先进行了一项关于模式的消融研究,如表4所示。我们可以观察到,包含所有三种模式显著提高了ConKI的性能。在ConKI中,我们对CMU-MOSI进行了一系列消融实验,如表5和表6所示。ConKI主要包括四个组成部分:外部数据集的使用(C1)、用于知识注入的适配器(C2)、用于泛知识的预训练编码器(C3)和层次对比学习(C4)。
表5显示,通过比较w/o C1和ConKI,C1提供了优势。类似地,C2通过比较w/o C2和ConKI提供了好处。通过比较w/o C3和ConKI,C3是有益的。通过比较w/o C4和ConKI,C4是有益的。由于我们的分层对比学习中的焦点是知识类型之间的对比,我们还将我们的模型与用Lcon训练但没有负对N1的模型进行了比较,即没有将泛知识和特定知识解开。我们可以得出结论,在我们的层次对比学习中,学习区分的泛知识和特定知识表示是必不可少的。为了通过分层对比学习更好地理解所学的泛知识和特定知识表示,我们在附录A.2中对这些表示进行了可视化和分析。
为了进一步检查我们的性能增益是否来自外部数据集,而不是所提出的知识注入和对比学习技术,我们将我们的模型与经过外部数据集微调的最新基线模型进行了比较。表6的结果表明,ConKI仍然优于那些基线模型,即使它们是用外部数据集训练的。
因此,我们从ConKI中获得的不仅仅是添加更多的数据,而是通过多步骤迁移学习的知识注入。如表2所示,考虑到CMU-MOSEI的大小远大于CMUMOSI,将CMU-MOSEI的知识注入CMU-MOSI对下游任务的影响大于将CMU-MOSI注入CMUMOSEI。
5 Conclusion 结论
在本文中,我们提出了ConKI,一种用于多模态情感分析的对比知识注入框架,它通过知识注入和层次对比学习来学习特定知识表示和泛知识表示。ConKI利用预训练的编码器来获得泛知识表示,同时基于在外部知识源上训练的注入适配器来生成特定于知识的表示。有了特定的知识,ConKI能够产生比仅使用泛知识表示更准确的情绪预测。为了进一步改进这些表示的学习,我们专门设计了一个分层对比学习程序,考虑到每个模态内、一个样本内和样本间知识类型之间的对比。在三个基准数据集上的实验结果表明,ConKI在一系列性能指标上优于所有现有技术的方法。
局限性
我们的研究为MSA的知识注入框架迈出了第一步,未来仍有一些局限性需要解决。首先,我们可以通过仔细选择对比对来进一步改进,从而学习更多的解纠缠表示。其次,如果我们用来自不同知识领域的多个外部来源来扩展我们的方法是很有趣的。
一 些words积累
pan-knowledge 泛知识
tokenizer 分词器
pool 合并
ground-truth 真实标签
一 些 Q/A
Q:什么叫损失函数中的温度?
A:
在对比学习中,温度是一个用于调节损失函数中相似度度量的参数。具体来说,温度参数通常用于对比损失函数中的相似性度量进行缩放,以控制样本间距离的分布。通过调整温度参数,可以使得相似性度量在训练过程中更加平滑或更加尖锐,从而影响模型学习到的表示空间的结构。
在上下文中,τ 是一个标量温度参数,用于调节对比损失函数中的相似性度量。通过调整 τ 的数值,可以改变损失函数对样本之间相似度的敏感度,进而影响模型在对比学习任务中的表现和学习效果。通过合理选择和调整温度参数,可以更好地引导模型学习到有意义的表示,并提高任务的性能。