首页 > 其他分享 >Sentiment Knowledge Enhanced Self-supervised Learning for Multimodal Sentiment Analysis

Sentiment Knowledge Enhanced Self-supervised Learning for Multimodal Sentiment Analysis

时间:2024-06-07 18:29:04浏览次数:25  
标签:模态 表征 mathbf Knowledge Sentiment Self 情感 文本 mathrm

文章目录

SKESL:多模态情感分析中的情感知识增强型自监督学习

总结:从未标注的视频数据中挖掘情感先验信息可以为标注数据带来更好的预测效果。未标记视频数据量越大,语言建模能力越强,性能越好。(自监督学习,扩大数据集)

文章信息

作者:Fan Qian,Jiqing Han

单位:Harbin Institute of Technology(哈尔滨工业大学)

会议/期刊:Findings of the Association for Computational Linguistics: ACL 2023

题目:Sentiment Knowledge Enhanced Self-supervised Learning for Multimodal Sentiment Analysis

年份:2023

研究目的

由于缺乏标注数据,应用于多模态情感分析任务的监督模型存在严重的过拟合和泛化能力差的问题,所以想要促进在有限的标记数据上的进一步学习。

研究内容

提出了一种情感知识增强自监督学习(SKESL)方法,该方法使用上下文和非语言信息来预测单词的细粒度情感强度,以学习观点视频中常见的情感模式。

  • 利用来自大规模未标记视频的情感知识来促进改进的情感表征学习(多模态情感分析的自监督学习)
  • 提出了一种新的非语言信息聚合方法,用于获得音频和视觉信息增强的文本序列表征。

研究方法

Alt
SKESL流程:给定一个没有情感注释的说话人视频,首先使用自动语音识别(ASR)技术获得转录文本,然后根据预先指定的情感词典掩盖文本中最情感突出的单词。利用预训练的语言表征模型来获取处理后文本的序列表征。为了将非语言信息整合到文本表征中(其实就是多模态融合),使用了一种基于跨模态注意机制的非语言信息聚合方法,以获得非语言信息增强的文本表征。最后,利用掩蔽词表征来预测情感强度。

image-20240513175057474

情感知识增强自监督学习(SKESL)包含两个部分:(1)情感词屏蔽 SWM,根据情感词典搜索输入句子中情感最突出的词,并用一个特殊标记[MASK]替换它,生成一个被破坏的版本。(2) 情感强度预测,要求模型根据上下文和非语言信息推断出准确的情感强度。

1.Sentiment Word Masking

情感词语屏蔽(SWM)旨在为每个输入序列构建一个情感信息被屏蔽的损坏版本。

对于没有情感注释的说话者视频,首先要利用良好的 ASR 技术将语音转录为文本 S = { w 1 , w 2 , . . . , w N } \mathrm{S}=\{w_1,w_2,...,w_N\} S={w1​,w2​,...,wN​}。然后使用情感词典(包含每个情感词的明确情感强度得分)来搜索文本中情感最突出的情感词并屏蔽它们(即使用特殊标记[MASK]来代替它们),同时选择情感强度最高的得分 y M A S K y_{MASK} yMASK​ 作为引导 SKESL 的标签。这样就得到了一个情感信息被屏蔽的句子, S ′ = { w 1 , w 2 , . . . , w M A S K , . . . , w N } \mathrm{S'}=\{w_1,w_2,...,w_{\mathrm{MASK}},...,w_N\} S′={w1​,w2​,...,wMASK​,...,wN​}其中 wMASK 表示屏蔽词。

⚠注意:有情感倾向的句子不一定有情感词。为了应对这种情况,采用了随机屏蔽策略,并为被屏蔽词赋予情感强度为 "0.0 "的标签。这样做可以诱导预训练模型根据上下文和非语言信息来区分被屏蔽位置是否包含没有任何情感的词语。这样,模型对句子中的单词就有了更强的情感语义认知,并能学习到更好的情感多模态表征。

2.Text representation learning

在得到被破坏的句子 S′ 后,将其通过文本编码器BERT,提取文本模态特征。
X T : = { x 1 T , x 2 T , . . . , x N T } = f θ L M ( S ′ ) \mathbf{X}^T:=\{x_1^T,x_2^T,...,x_N^T\}=f_{\theta_{\mathrm{LM}}}\left(S^{\prime}\right) XT:={x1T​,x2T​,...,xNT​}=fθLM​​(S′)

符号含义
X m = { x 1 m , x 2 m , . . . , x T m m } \mathbf{X}^m=\{x_1^m,x_2^m,...,x_{T_m}^m\} Xm={x1m​,x2m​,...,xTm​m​}多模态序列
x i m ∈ R d m {x_i^m}\in\mathbb{R}^{d_m} xim​∈Rdm​与模态 m 相对应的提取后的情感特征
d m d_m dm​特征维度
T m T_m Tm​模态 m 的序列长度
θ L M \theta_{\mathrm{LM}} θLM​BERT的参数

3.Non-verbal information injection(multimodal fusion)

通过学习两种模态特征的注意力,利用音频和视觉模态的低级特征反复强化文本表征。低级特征有利于模型保留非语言行为的原始情感语义,并学习以文本为中心的多模态表征。

Alt

CMA单元:首先计算相应模态的 Q、K、V。其次分别计算文本模态与视觉模态,文本模态与语音模态的注意力权重。然后利用注意力权重对视觉与语音表征进行加权,得到对文本模态有用的视觉信息与音频信息。
Q m T = L N ( X l − 1 T ) ⋅ W Q m K m = L N ( X 0 m ) ⋅ W K m V m = L N ( X 0 m ) ⋅ W V m \mathbf{Q}^{mT}=\mathrm{LN}\left(\mathbf{X}_{l-1}^T\right)\cdot\mathbf{W}_Q^m\\\mathbf{K}^m=\mathrm{LN}\left(\mathbf{X}_0^m\right)\cdot\mathbf{W}_K^m\\\mathbf{V}^m=\mathrm{LN}\left(\mathbf{X}_0^m\right)\cdot\mathbf{W}_V^m QmT=LN(Xl−1T​)⋅WQm​Km=LN(X0m​)⋅WKm​Vm=LN(X0m​)⋅WVm​

Y l m = C M A ( Q m T , K m , V m ) = s o f t m a x ( Q m T ⋅ K m d T ) ⋅ V m \begin{aligned} \mathbf{Y}_{l}^{m}& =\mathrm{CMA}\left(\mathbf{Q}^{mT},\mathbf{K}^m,\mathbf{V}^m\right) \\ &=\mathrm{softmax}\left(\frac{\mathrm{Q}^{mT}\cdot\mathrm{K}^m}{\sqrt{d_T}}\right)\cdot\mathrm{V}^m \end{aligned} Ylm​​=CMA(QmT,Km,Vm)=softmax(dT​ ​QmT⋅Km​)⋅Vm​

接着将增强后的文本表征 Y l m {Y}_{l}^{m} Ylm​ 与之前的文本表征 X l − 1 T {X}_{l-1}^T Xl−1T​ 融合在一起。=>将音频和视频信息注入文本表征中。
Y l = Y l A + L N ( X l − 1 T ) + Y l V \mathbf{Y}_l=\mathbf{Y}_l^A+\mathrm{LN}\left(\mathbf{X}_{l-1}^T\right)+\mathbf{Y}_l^V Yl​=YlA​+LN(Xl−1T​)+YlV​
最后,将融合后的表征 Y l Y_l Yl​​ 经过LayerNorm与FFNN,并使用残差连接,得到最终的文本表征。
X l T = f θ F F ( L N ( Y l ) ) + Y l \mathbf{X}_l^T=f_{\theta_{\mathrm{FF}}}\left(\mathrm{LN}\left(\mathbf{Y}_l\right)\right)+\mathbf{Y}_l XlT​=fθFF​​(LN(Yl​))+Yl​

符号含义
L N ( ⋅ ) \mathrm{LN}(\cdot) LN(⋅)层归一化
Y l m {Y}_{l}^{m} Ylm​通过音频和视频信息增强后的文本模态表征
θ F F \theta_{\mathrm{FF}} θFF​FFNN 的参数

4.Sentiment Intensity Prediction

使用一个具有非线性激活函数的双层全连接网络来预测屏蔽词的情感强度。
y p r e d = f θ F C ( x M A S K , L T ) y_{\mathrm{pred}}=f_{\theta_{\mathrm{FC}}}\left(x_{\mathrm{MASK},L}^T\right) ypred​=fθFC​​(xMASK,LT​)

符号含义
X L T X_L^T XLT​经过 L 个区块后,提炼出的文本表征
x M A S K , L T x_{\mathrm{MASK},L}^T xMASK,LT​屏蔽词[MASK]对应的表征
θ F C \theta_{\mathrm{FC}} θFC​全连接层的参数
y p r e d y_{\mathrm{pred}} ypred​预测的情感强度

5.Loss Function

L \mathcal{L} L 为平均绝对误差 (MAE) 损失函数
θ ∗ = arg ⁡ min ⁡ θ L ( y p r e d , y M A S K ) θ = { θ L M , θ C M A , θ F F , θ F C } \theta^*=\arg\min_\theta\mathcal{L}(y_{\mathrm{pred}},y_{\mathrm{MASK}})\\ \theta=\{\theta_{\mathrm{LM}},\theta_{\mathrm{CMA}},\theta_{\mathrm{FF}},\theta_{\mathrm{FC}}\} θ∗=argθmin​L(ypred​,yMASK​)θ={θLM​,θCMA​,θFF​,θFC​}

6.Fine-tuning

在预训练语言模型和多模态融合模块的基础上,添加了一个输出层来执行特定任务的预测。然后在标注的多模态数据上对神经网络进行微调。

实验分析

  • 本文介绍了一种基于无监督预训练的多模态情感分析模型,该模型在两个数据集上均取得了最先进的性能表现。

image-20240513214715941

  • 作者还研究了无标签视频数据量(预训练数据量)和语言模型大小对模型性能的影响,发现更多的预训练数据和更强的语言模型可以显著提高模型性能。

image-20240513215304757

  • 通过在CMU-MOSI数据集上进行了消融实验,结果表明SKESL对情感预测任务的准确性和F1分数有显著贡献。同时,如果只使用BERT语言模型进行情感预测,而不使用音频和视觉模态,性能将进一步降低。

Alt

  • 作者在CMU-MOSI数据集的测试集中展示了一些例子来验证模型的可靠性。

局限性

  • 情感知识增强的自监督学习方法存在一些限制,包括视频预处理耗时费力、模型预训练对GPU资源要求较高。
  • 避免模型存在偏差和无法学习情感知识,应避免过多没有情感词的视频。

代码和数据集

代码:https://github.com/qianfan1996/SKESL

数据集:VoxCeleb1与VoxCeleb2用于预训练模型;CMU-MOSI与CMU-MOSEI用于微调和测试模型。

实验环境:NVIDIA RTX 3090(24G)

标签:模态,表征,mathbf,Knowledge,Sentiment,Self,情感,文本,mathrm
From: https://blog.csdn.net/weixin_48958956/article/details/139532085

相关文章

  • C# NewtonJson Self referencing loop detected for property 'Parent' with type
    privatevoidImage_MouseLeftButtonDown(objectsender,MouseButtonEventArgse){stringimgJson1=JsonConvert.SerializeObject(img1);System.IO.File.AppendAllText($"{DateTime.Now.ToString("yyyyMMddHHmmssffff")}_img.json",imgJso......
  • Dated Data: Tracing Knowledge Cutoffs in Large Language Models
    本文是LLM系列文章,针对《DatedData:TracingKnowledgeCutoffsinLargeLanguageModels》的翻译。日期数据:追踪大型语言模型中的知识截断摘要1引言2相关工作3方法4结果5为什么模型与截止日期不一致?6结论摘要已发布的大型语言模型(LLM)通常与声称的......
  • BGP中next-hop-self 小实验
    next-hop-self在EBGP和IBGP边界使用,对ibgp下一跳邻居使用配置命令routerbgp1234neighbor2.2.2.2next-hop-self使用Next-hop-self原因EBGP的路由传进IBGP时,带的下一跳是EBGP的地址。在IBGP中传给下一跳的IBGP路由器时,携带的还是EBGP的地址。由于第二跳的IBGP没有EBGP......
  • ProgGen: Generating Named Entity Recognition Datasets Step by step with Self Ref
    本文是LLM系列文章,针对《ProgGen:GeneratingNamedEntityRecognitionDatasetsStepbystepwithSelfReflexiveLargeLanguageModels》的翻译。ProgGen:使用自反射大型语言模型逐步生成命名实体识别数据集摘要1引言2相关工作3方法4实验5结论6局限性......
  • Engage with world in another way, Strench myself. dataism已经进入房间, 等待历史
    忘记历史,你就不会被历史所羁绊,你看到的每一天都是全新的。engagewithyourlife,而不是藏在生活的后面,liveinyourlife,notbehindoraboveyourlife,notpretenttolive,justliveinit.体现物体特性的其实是分子,而不是原子。虽然游离态的原子更自由,但是原子性质更单......
  • Ubuntu 22.04 使用self-service-password搭建自主修改密码平台
    Ubuntu系统安装准备正常操作是安装成功系统,安装的时候设置好静态密码。参考官方文档:https://self-service-password.readthedocs.io/en/stable/installation.html根据文档提示安装会报错,网上查了些资料需要按照如下步骤安装依赖。正式安装vi/etc/apt/sources.list.d/ltb-p......
  • 探索大语言模型:理解Self Attention
    一、背景知识在ChatGPT引发全球关注之后,学习和运用大型语言模型迅速成为了热门趋势。作为程序员,我们不仅要理解其表象,更要探究其背后的原理。究竟是什么使得ChatGPT能够实现如此卓越的问答性能?自注意力机制的巧妙融入无疑是关键因素之一。那么,自注意力机制究竟是什么,它是如何创造......
  • python类函数定义第一个参数必须是self
     如果不写self,则会报错   加上之后错误就会消失 ......
  • 类函数,=>,->,::,self,$this用法
    <?php//比较最大数值classMath{publicstaticfunctionMax($num1,$num2){return$num1>$num2?$num1:$num2;}}$a=1000;$b=5000;echo"显示$a和$b中的最大值是";echoMath::Max($a,$b);//返回5000......
  • super & self
    在一本过时的django里看到一段代码:classPublishedManager(models.Manager):defget_queryset(self):returnsuper(PublishedManager,self).get_queryset().filter(status='published')心想这写的这是啥啊,难道是递归?太复杂了!认真学习之后才知道,super有两个参......