摘要
情感是人类互动的固有组成部分,因此,开发能够理解和识别人类情感的人工智能系统势在必行。在涉及不同人的谈话中,一个人的情绪受到另一个说话人的语句和自己对语句的情绪状态的影响。在本文中,我们提出了基于上下文化图神经网络的多模态情感识别(COGMEN)系统,该系统利用了局部信息(即说话者之间的相互/内部依赖)和全局信息(上下文)。该模型使用基于图神经网络(GNN)的架构对会话中的复杂依赖关系(局部和全局信息)进行建模。我们的模型在IEMOCAP和MOSEI数据集上给出了最先进(SOTA)的结果,详细的消融实验表明了在这两个层面上建模信息的重要性。
1.概述
情绪是人类固有的,它对人类行为具有指导作用,并表明潜在的思维过程。因此,理解和识别情绪对于开发与人类直接互动的人工智能技术(例如,个人数字助理)至关重要。在一群人之间的谈话中,每个人都会经历和表达情绪的起伏。多模态情绪识别的任务解决了监测个体在不同环境(如对话)中表达的情绪(通过各种模式,例如视频(面部)、音频(语音))的问题
情绪是经过认知处理的生理、行为和交际反应。情绪往往是内部生理变化的结果,这些生理反应可能不会被他人察觉,因此属于个体的。例如,在会话环境中,情绪可能是一种交际反应,它起源于另一个人所说的一句话,作为一种刺激。语句表达的情绪状态与语境直接相关;如,如果潜在的上下文是关于一个快乐的话题,比如庆祝节日或描述假期,那么就会有更多的积极情绪,比如快乐和惊喜。
图1 两个说话者之间的对话示例,每个语句都会引发相应的情绪。
考虑图1所示的示例,其中上下文描述了一个令人兴奋的对话。Speaker-1
对自己的承认感到兴奋,影响了整个语境中的情绪流动。Speaker-2
的情绪状态在\(U_2\)、\(U_4\)和\(U_6\)中表现出对 Speaker-1
的依赖,并通过好奇 Speaker-1
的反应来维持\(U_8\)和\(U_{10}\)中描述的内部状态。
范例对话描述了说话者的整体信息以及说话者之间和内部的依赖对语句情绪状态的影响。此外,情绪是一种多模态现象;一个人从不同的方式(如音频、视频)中获取线索来推断他人的情绪,因为很多时候,不同形式的信息是相辅相成的。
在本文中,我们利用这些直觉,提出了COGMEN:基于上下文化图神经网络的多模式情感识别架构,该架构既解决了上下文对语句的影响,也解决了用于预测会话中每个说话者的每一语句情感的相互依赖性和内部依赖性。关于单模态(仅使用文本)预测已经有很多工作,但我们的重点是多模态情绪预测。正如在多模态情绪预测的文献中所做的那样,我们并不关注与单模态模型的比较。如实验和消融研究所示,我们的模型利用信息源(即局部和全局),在多模态情绪识别数据集IEMOCAP和MOSEI上给出最先进的(SOTA)结果。
简而言之,我们在本文中做出了以下贡献
- 我们提出了一种基于上下文化图神经网络(GNN)的多模式情感识别架构,用于预测会话中每语句每说话者的情感。我们的模型在对话中同时利用了本地和全局信息。我们使用图形变换器在多模态情感识别系统中建模说话人关系
- 我们的模型在IEMO CAP和MOSEI的多模态情感识别数据集上给出了SOTA结果。
- 我们对模型及其不同组件进行了全面分析,以显示本地和全局信息的重要性以及GNN组件的重要性。我们发布了用于模型和实验的代码:https://github.com/Exploration-Lab/COGMEN
2.相关性工作
情绪识别是NLP中一个积极研究的问题。近年来,从情绪理解系统、语料库的意见挖掘到情绪生成等广泛的应用都引起了人们的积极研究兴趣。基准多模式数据集的可用性,如CMU-MOSEI和IEMOCAP,加速了该领域的进展。总的来说,该领域的大多数现有工作主要可分为两个领域:单模态法和单模态法。单模态法倾向于将文本视为一种突出的交流模式,并仅使用文本模态来解决情绪识别任务。相比之下,多模态方法更自然,考虑多种模态(音频+视频+文本),并将其融合以识别情绪。在本文中,我们提出了一种多模式的情绪识别方法。尽管如此,我们还是简要概述了一些突出的单模态法,因为其中一些技术适用于我们的设定
3.拟建模型
在涉及不同说话人的对话中,每个说话人的情绪都有持续的起伏,通常是由上下文和其他说话人的反应引发的。在这种直觉的启发下,我们提出了一个多模态情绪预测模型,该模型利用对话中的上下文信息、说话者之间和说话者内部的关系。
在我们的模型中,我们同时利用了对话的上下文和附近语句的效果。我们通过两种方式对这两种信息来源进行建模:
- 全局信息:如何捕捉潜在上下文对语句情绪状态的影响?
- 局部信息:如何在对话中建立邻近语句之间的关系,保持说话人之间和说话人内部对语句的依赖?
全局信息:
我们希望有一个统一的模型,可以捕捉潜在的上下文,并处理它对对话中出现的每个语句的影响。Transformer编码器(Vaswani et al.,2017)架构是实现这一目标的合适选择。
在我们的方法中,没有采用通过在输入中添加位置编码的传统时序编码,而是使用了一个简单的没有任何位置编码的Transformer编码器,利用整体的上下文有效地生成与每个语句对应的分布式表示(distributed representations)(特征)。在预测特定语句的情绪时,Transformer促进了来自所有语句的信息流动。
局部信息:
语句中所表达的情感往往是由邻近语句中的信息触发的。我们在邻近的语句之间建立了一种关系,这种关系能够捕捉说话者之间和说话者内部的刺激对语句情绪状态的影响。
我们的方法接近于 DialogueGCN (Ghosalet al., 2019),我们定义了一个图,其中每个语句是一个节点,有向边代表各种关系。我们定义了节点\(R_{ij} = u_i → u_j\)之间的关系(有向边),其中箭头的方向表示说话的顺序。我们将定向关系分为两类,一类是同一说话人的语句之间的自我依赖关系\(R_{intra}\),另一类是不同说话人的语句之间的相互关系\(R_{inter}\)。我们将使用关系型GCN (Schlichtkrull et al.,2018)和GraphTransformer (Shi et al., 2021)来捕获由关系定义的依赖项。
3.1 整体架构
图2显示了详细的架构。输入语句作为输入进入Context Extractor模块,该模块负责捕获全局上下文。通过说话者之间的交互形成了一个图,上下文提取器(Context Extractor)基于此为每个语句提取的特征。该图作为输入依次进入一个Relational GCN和GraphTransformer,其中GraphTransformer使用已形成的图来捕获语句之间的内部关系。最后,两个线性层作为情绪分类器,使用为所有语句获得的特征来预测相应的情绪。
图2 提出的CPGMEN模型结构
Context Extractor
Context Extractor 将多种模式(音频、视频、文本)的连接特征作为每个对语句句的输入\((u_i;i= 1,...,n)\),并使用Transformer 编码器捕获上下文。语句\(u_i\)的特征向量与可用的模式、音频\((u^{(a)}_i∈\mathbb{R}^{d_a})\)、文本\((u^{(t)}_i∈\mathbb{R}^{d_t})\)和视频\((u^{(v)}_i∈\mathbb{R}^{d_v})\)对应的输入特征为:
\[x^{(atv)}_i= [u^{(a)}_i⊕u^{(t)}_i⊕u^{(v)}_i]∈\mathbb{R}^d \]其中\(d=d_a+d_t+d_v\)
对话中所有语句的组合特征矩阵为:
\[X=x^{(atv)}= [x^{(atv)}_1,x^{(atv)}_2...,x^{(atv)}_n]^T \]我们定义了一个Query,一个Key和一个Value 向量来编码输入特征\(X∈\mathbb{R}^{n×d}\),如下所示:
\[Q^{(h)}=XW_{h,q},\\ K^{(h)}=XW_{h,k},\\V^{(h)}=XW_{h,v}, \]其中,\(W_{h,q},W_{h,k},W_{h,v}∈\mathbb{R}^{d×k}\)
注意机制捕获Key和Query向量之间的交互,用以输出一个注意图\(α^{(h)}\),其中\(σ_j\)表示由\(j\)索引的行向量上的softmax函数
\[α^{(h)}=σ_j(\frac{Q^{(h)}(K^{(h)})^T}{\sqrt{k}}) \]其中,\(α^{(h)}∈\mathbb{R}^{n×n}\)表示单个注意力头\((h)\)的注意力权重。
得到的注意图用于计算每个语句值的加权和:
\[\begin{align} head^{(h)}&=α^{(h)}(V^{(h)})∈\mathbb{R}^{n×k}\notag\\ U^′&= [head^{(1)}⊕head^{(2)}⊕...head^{(H)}]W^o\notag \end{align} \]其中,\(W^o∈\mathbb{R}^{kH×d}\);\(H\)表示多头注意的头部总数;注意 \(U^′∈\mathbb{R}^{n×d}\)。
添加残差连接\(X\),应用LayerNorm,然后是前馈层和Add & Norm层:
\[\begin{align} \rm U &= \rm LayerNorm(X+U^′;γ_1,β_1);\notag\\ \rm Z′&= \rm ReLU (UW_1)W_2;\notag \\ \rm Z&= \rm LayerNorm(U+Z^′;γ_2,β_2);\notag \end{align} \]其中,\(γ_1,β_1∈\mathbb{R}^d\),\(W_1∈\mathbb{R}^{d×m}\),\(W_2∈\mathbb{R}^{m×d}\),\(γ_2,β_2∈\mathbb{R}^d\).
Transformer编码器提供了与对话中的每个语句相对应的特征\(([z_1,z_2,...,z_n]^T=Z∈\mathbb{R}^{n×d})\)。
Graph Formation
Graph Formation是一张捕捉说话者内部和说话者之间的依赖关系图表。每个语句都充当一个使用有向关系(过去和将来关系)连接的图的节点。我们将关系类型定义为说话者到说话者。
从形式上讲,将\(M\)个说话者之间的对话被定义为对话\(D=\{\mathcal{U}^{S_1},\mathcal{U}^{S_2},....,\mathcal{U}^{S_M}\}\),其中\(\mathcal{U}^{S_1}=\{u^{(S1)}_1,u^{(S1)}_2,...,u^{(S1)}_n\}\)代表 说话者1
所说的语句集。
我们定义了同一说话者所说的语句之间的内部关系\(R_{intra}∈ \{\mathcal{U}^{S_i}→ \mathcal{U}^{S_i)}\}\)和不同说话者所说的语句之间的相互关系\(R_{intrr}∈ \{\mathcal{U}^{S_i}→ \mathcal{U}^{S_j)}\}_{i\neq j}\)。
我们进一步设定一个窗口大小,并使用\(\mathcal{P}\)和\(\mathcal{F}\)作为超参数,在对话中的每个语句中形成过去\(\mathcal{P}\)语句和未来\(\mathcal{F}\)语句之间的关系。
例如,语句\(u^{(S1)}_i\)(说话者1
发言)中的\(R_{intra}\)和\(R_{inter}\)被定义为:
其中\(←\)和\(→\)分别代表过去和未来的关系类型(示例在附录F)。
Relational Graph Convolutional Network (RGCN)
vanilla RGCN通过标准化的和,根据图中存在的边的类型和方向,帮助积累相邻节点的特定关系转换。在我们的例子中,它捕捉了说话者之间和说话者内部对连接语句的依赖。
\[x^′_i= Θ_{root}·\rm z_i+\sum _{r∈R} \sum_{j∈\mathcal{N}_r(i)}\frac{1}{|\mathcal{N}_r(i)|}Θ_r·\rm z_j \]其中\(\mathcal{N}_r(i)\)表示关系\(r∈ \mathbb{R}\)下节点\(i\)的邻居指数集,\(Θ_{root}\)和\(Θ_r\)表示RGCN的可学习参数,\(|\mathcal{R}_r{(i)}|\)是归一化常数,\(\rm z_j\)是来自Transformer的语句水平特征。
GraphTransformer
为了从节点特征中提取丰富的表示,我们使用GraphTransformer。GraphTransformer通过考虑通过边连接的节点,将vanilla 多头注意引入到图学习中。
给定从RGCN获取的节点特征 \(H=x^′_1,x^′_2,...,x^′_n\),
\[h^′_i=W_1x^′_i+\sum _{j∈\mathcal{N}(i)}α_{i,j}W_2x^′_j \]其中,注意系数\(α_{i,j}\)由多头点积注意力计算获得:
\[α_{i,j}=\rm softmax(\frac{(W_3x^′_i)^⊤(W_4x^′_j)}{\sqrt{d}}) \]Emotion Classifier
GraphTransformer \((h^′_i)\)提取的特征之上的线性层,用于预测与语句对应的情绪。
其中\(\hat{y}_i\)是为语句\(u_i\)预测的情感标签
4 实验
我们在两个广泛使用的数据集IEMOCAP和MOSEI上进行情感识别任务的实验。数据集统计数据见表。
Dataset | Number of dialogues [utterances] | ||
---|---|---|---|
train | valid | test | |
IEMOCAP | 120 [5810 (5146+664)] | 31 [1623] | |
MOSEI | 2249 [16327] | 300 [1871] | 646 [4662] |
IEMOCAP是一个二元多模态情绪识别数据集,其中对话中的每个语句都被标记为六种情绪类别之一:愤怒、兴奋、悲伤、快乐、沮丧和中性。据知,有两种IEMOCAP设置用于测试,一种有4种情绪(愤怒、悲伤、快乐、中性),另一种有6种情绪。我们对这两种设置都进行了实验。
MOSEI是一个多模态情绪识别数据集,包含7种情绪(-3(高度消极)到+3(高度积极))和6种情绪标签(快乐、悲伤、厌恶、恐惧、惊讶和愤怒)。值得注意的是,情感标签在不同的数据集中是不同的。我们使用加权f1分数和准确性作为评估指标(详见附录C)。
实现细节:
对于IEMOCAP,音频特征(大小100)使用OpenSmile提取,视频特征(大小512)从Baltrusaitis提到的方法中提取,文本特征(大小768)使用sBERT提取。
MOSEI数据集的音频特征取自Delbrouck,这些特征使用librosa提取,具有80个滤波器组,使特征向量大小为80。视频特征(大小35)使用Zadeh。文本特征(大小为768)是使用sBERT获得的。
文本特征是句子级静态特征。对于音频和视觉模式,我们通过平均所有标记级别特征来使用句子/语句级别特征。
我们通过拼接融合了所有可用形式(A(音频)+T(文本)+V(视频):ATV)的特征。我们还探索了其他融合机制(附录G.1)。然而,串联提供了最好的性能。
我们使用贝叶斯优化技术对我们提出的模型进行超参数搜索(详见附录A)。
基线
我们通过将COGMEN与一些基线模型进行比较来对其进行全面评估。
对于IEMOCAP,我们将我们的模型与现有的多模态框架(表2)进行比较,其中包括dialguernn, bc-LSTM, CHFusion , memnet, TFN ,MFN, CMN, ICON 和Af-CAN。
对于MOSEI,COGMEN与多模态模型进行了比较(表4),包括multilog-net和TBJE(在§6中有基线的详细信息和分析)
5 结果与分析
IEMOCAP:
表2显示了IEMOCAP(6类)多模态设置的结果。总体而言,COGMEN在使用准确性和F1-score测量时表现得比之前的所有基线都要好。我们还看到了快乐、悲伤、中性和兴奋情绪的分类F1的改善。这种改进可能是由于我们在模型中使用的GNN架构(在后面的分析中描述),而之前的多模态基线都没有在其架构中使用GNN。
IEMOCAP (4类)设置的结果见表3。在这个设置中,COGMEN比以前的SOTA模型提高了7.7%。
MOSEI:
对于跨越6个情感类别的情感分类,我们使用了两种设置(如前所述):跨每个情感标签的二元分类,其中每个情感类别都训练一个单独的模型;以及多元分类,其中句子被标记了多个情感,并且单个模型预测多个类别。这样做的原因是Multilogue- net提供了二元分类设置的结果,TBJE提供了多元设置的结果。
我们在这些设置下运行了两个模型。为了进行公平的比较,我们使用与我们的设置相似的相同的语句级文本特征(从sBERT提取),并在这两个设置上训练Multilogue-net架构。最初,Multilogue-net使用GloVe embeddings来实现文本特征,论文中的实际结果与之前所述的不同。对于TBJE,因为它使用token-level特性,我们直接使用其论文提供的特性。
表4 MOSEI数据集上的结果。对于情绪分类,使用加权f1分数。对于情感分类,使用准确性报告结果。二元情绪只包括积极情绪和消极情绪。七级情绪包括从高度消极(-3)到高度积极(+3)的情绪。对于显示“-”的单元格,由于论文中没有提供结果,又因为TBJE使用了token 级特征而我们使用的是句子级特征,因此我们无法重现结果
COGMEN在大多数情况下优于基线模型(表4)。对于二元情绪分类,COGMEN优于之前A+T的最高准确率为85%的基线。对于七元情绪,我们的模型显示了相当的性能。
所有的多模态方法在添加视觉模态时往往表现不佳,可能是因为视觉模态中存在噪声,以及与其他模态缺乏对齐。相比之下,我们的模型可以捕获各种模式之间的丰富关系,并在添加可视模式的同时显示性能提升。
我们对模型进行了进一步的分析。虽然由于篇幅限制,下面的结果主要描述了IEMOCAP上的实验,但在MOSEI上也观察到了类似的趋势。
本地和全局信息的影响
我们在两种信息利用设置中测试我们的架构:全局和本地。为了测试上下文在我们的架构中的重要性,我们使用IEMOCAP (4-way)设置创建了一个子数据集,方法是将每个对话分割为\(n\)个语句并训练我们的架构。
表5 对话中语境的重要性。实验在IEMOCAP(4-way)上进行
表5显示了对话中出现的语句数量对性能的影响(关于窗口大小影响的详细信息,请参见附录G.2)。这个实验有助于理解对话中语境的重要性。此外,它还指出了开发实时系统的挑战(详情见§6)。
我们通过去掉GNN模块,直接将上下文提取的特征传递给情感分类器来测试局部信息假设。
表6 IEMOCAP数据集消融研究。所有值均为F1-score(%)。结果表明了GCN层的重要性
表6显示了当GNN组件从架构中移除时,各种模式的性能下降,使我们的本地信息假设更加具体。
关系类型的效果
我们还通过将所有关系设置为相同类型并训练架构来测试对话图中对话间和对话内部关系的效果。我们观察到,在graph formation这一步保持关系不变,将会导致性能下降(表6)。显式关系的形成有助于捕获对话中出现的局部依赖关系。
模态量的影响
这项工作的重点是多模式情绪识别。然而,只是为了比较,我们也比较了单模态(纯文本)方法。我们比较(表7) EmoBERTa, DAG-ERC, CESTa, SumAgg-GIN , dialguecrn , DialogXL 和dialguegcn。基于文本的模型专门针对文本模式进行了优化,并对架构进行了更改以适应文本。从这个角度与我们的多模态方式进行比较是不公平的。
表7 IEMOCAP数据集上与单模结构的比较
如结果所示,COGMEN作为一种相当通用的体系结构,相对于SOTA单模态体系结构,它仍然提供了更好的(对于IEMOCAP (4-way))或类似的性能。在我们的模型中,通过其他模式添加更多的信息有助于提高性能。不同情态组合的结果见附录D。
错误分析
在分析了整个数据集的预测后,我们发现我们的模型在区分相似的情绪方面存在不足,例如快乐vs兴奋,愤怒vs沮丧(图3)。
图3 IEMOCAP下的混淆矩阵(类)
此问题也存在于Shen 和Ghosal 之前报告的方法中。我们还发现,因为中性标签的例子比例更大,我们的模型错误地将其他情绪标签归类为中性。此外,我们观察到我们的模型在分类具有情感转移的例子时的准确性是53.6%,而在情感保持不变时是74.2%(更多细节见附录B)。
GNN层的功效
为了观察GNN组件在我们的架构中的效果,我们还可视化了GNN组件之前和之后的特征。图4清楚地显示了情绪簇的更好形成,描述了捕捉语句中的局部依赖关系对更好地表现情绪识别的重要性(详见附录E和附录图- 9)。
图4 UMAP GNN前后IEMOCAP (4-way)特征的表示
语句的重要性
为了验证语句的影响及其在对话预测中的重要性,我们通过一次掩盖一个语句并计算F1-score来推断训练后的模型对对话的影响。图5显示了从IEMOCAP (4-way)随机获取的对话实例(附录表10)的结果(详见附录E)。
图5 IEMOCAP (4-way)中话语的重要性。在预测期间屏蔽9th,10th和11th语句时会观察到性能下降
在前4种语句中,情绪状态为中性时,掩蔽语句的效果明显较小。相比之下,用情绪变化掩盖语句(9,10,11)完全降低了对话的f1得分,这表明我们的架构捕捉到了语句中情绪的影响。
6. 讨论
与基线的比较
在多模态对话环境中的情感识别伴随着两个广泛描述的研究挑战:
- 一个模型捕捉对话中当前的全局和本地上下文的能力
- 保持说话者之间自身和彼此的依赖的能力
所有流行的基线,如Dialogue-GCN,DialogueRNN, bc-LSTM, Af-CAN等,都试图通过提出各种架构来解决这些挑战。bc-LSTM(双向上下文LSTM使用LSTM来捕获上下文信息,并保持过去和将来话语之间的长关系。另一个当代架构Af-CAN 利用基于上下文注意力的循环神经网络来建模说话者之间的交互和依赖,并使用双向GRU单元来捕捉过去和未来的全局特征。
我们建议使用一个统一的架构来解决这些问题,该架构在保持自身和彼此依赖状态的同时,捕捉上下文对话语的影响。我们使用transformers来编码全局上下文,并使用GraphTransformers来捕获自身和彼此依赖关系。我们在话语之间形成关系图的方法接近于DialogueGCN(单模态架构)。我们进一步使用一个共享的情感分类器从所有获得的话语层次特征中预测情绪。此外,我们的统一架构可以有效地处理多种模态,并在添加其他模态的信息后显示出性能的提高。
限制(脱机设置)
所有提出的情绪识别方法(包括当前的方法)都有一个值得注意的局限性,即它们使用来自过去和将来话语的全局上下文来预测情绪。然而,本文所比较的基线系统也是离线系统。
离线设置指的是,所有话语都已经存在,可以在推理期间使用。这意味着,情感识别系统可以使用过去和未来的话语来预测情感。在线设置指的是,情感识别系统必须在实时输入时预测情感,而不是使用所有话语。在线设置需要一种方法来维护上下文,以便模型可以预测情感,而不是采用完整对话。
例如,bc-LSTM(双向上下文LSTM)和Af-CAN使用过去和将来的话语来预测情绪。其他流行的基线,如Dialogue-GCN和DialogueRNN(BiDi-alogueRNN)也窥视了未来,假设预测期间(离线设置)所有的话语都存在。所有这些依赖于未来信息的系统只能在脱机环境中使用,以处理和标记对话。
能够在在线设置中工作的情感识别系统展示了另一条值得探索的未来工作方向,因为它在现场直播和电信中有广泛的用例。在在线设置中保持上下文的可能方法是采用较小上下文大小的缓冲区,在实时输入时,模型可以预测情感,而不是采用完整对话。我们还尝试使用在线缓冲区维护较小上下文窗口的子数据集进行实验。我们使用IEMOCAP (4-way)设置创建了一个子数据集,将每个对话分割为n话语并训练我们的架构。我们在表5中的结果显示并发现随着对话中话语数量的减少,性能下降,这表明了上下文在对话中的重要性。在线实时工作时性能改进值得探索,并且是未来研究的有趣方向。
7. 结论及未来工作
我们提出了一种使用GNN进行多模态情感识别的新方法,并提出COGMEN:基于上下文化GNN的多模态情感识别。我们在两 个广为 人知的多模态 情绪识别数据集IEMOCAP和MOSEI上测试COGMEN。COGMEN在多模态情感识别方面优于现有的最先进的方法(即IEMOCAP(4-way)的f1分数提高了7.7%)。通过对COGMEN的综合分析和烧蚀研究,我们展示了不同模块的重要性。COGMEN有效地融合了来自多种模式的信息,以提高情绪预测任务的表现。我们进行了详细的错误分析,发现错误分类主要集中在相似类和情感转移案例之间。我们计划在未来的工作中解决这个问题,重点是结合一个组件来捕捉情绪变化,进行细粒度的情绪预测。
标签:模态,语句,情绪,COGMEN,IEMOCAP,上下文,GNN,我们 From: https://www.cnblogs.com/agitm/p/17368472.html