Recognition Emotion Cause in Conversations
识别对话中的情绪原因
1.解决了在对话中识别情绪原因的问题,定义了这个问题的两个新的子任务
2.提供了相应的对话级数据集RECCON,根据原因的来源定义不同的原因类型
3.提供了基于transformer的基线
已经解决了在对话中识别情感原因的问题,并引入了一个新的对话级数据集RECCON,包含超过1,126个对话(对偶对话)和10,600个话语因果跨度对。我们确定了各种情绪类型和关键挑战,使这项任务极具挑战性。此外,我们提出了两个子任务,并制定了基于transformer的强基线来处理这些子任务。
贡献如下
1.定义了相关的情感原因类型(情感原因类型)。
2.为这个任务描述了一个新的带注释的数据集,RECCON,包括行为和现实世界的二元对话(构建RECCON数据集)。
3.引入了两个需要复杂推理的具有挑战性的子任务,并建立了强大的基线来解决子任务(实验)。这些基线的性能超过了几种新引入的复杂神经方法,如ECPE-MLL[13]、RankCP[36]和ECPE-2D[12]。
巴拉巴拉
Emotion evidence
情绪证据是文本的一部分,它表明说话者的情绪状态中存在一种情绪(强调情绪的存在性)。它在现实世界中作用于文本和读者之间。
Emotion cause
情感原因是由情感证据所给予的表达说话人感受情感的原因的部分。它在描述的世界中起作用,介于(描述的)环境和(描述的)说话者的情绪状态之间。识别情绪原因是本文所考虑的任务。(强调引起情绪的原因)
Ut:代表对话中的第t个句子
Et:第t个句子所对应的情感标签(已知)
Hu:包含u以及其所有上文的对话历史
CSu:一段对话的因果跨度集
Cu:所有因果话语的集合,Cu⊆Hu
UCS pair:pair(U,S)S⊆CSu
将正确的UCS作为正例,
而对于S∉CSu的UCS作为负例
在之后的生成反例中,会详细介绍反例的抽样策略
使用了两个对话级数据集IEMOCAP和DailyDialog
IEMOCAP:六个标签anger, excited, frustrated, happy, neutral, sad
数据集中的对话跨越 16 种对话情况。 为了避免冗余,从每种情况中只挑选了一个对话。将包含这些对话的数据集的子集表示为RECCON-IE。
DailyDialog:七个标签anger, disgust, fear, happy, neutral, sad, surprise
由于数据集是倾斜的(83% 中性标签),随机选择了至少有四个非中性话语的对话。 将包含来自 DailyDialog 的这些对话的 RECCON 子集表示为 RECCON-DD
IEMOCAP相较于DailyDialog更加复杂
注释者都很专业,hhh,让他们在一个可验证的数据集上标注,再和真实对比,效果好才让他们上,真正的“人工智能”
在RECCON中,定义了五类情绪原因
Type1: No Context(无上下文)原因存在于目标话语本身,即目标话语明确的表面了情绪原因
Type2: Inter-personal (人际交往)情绪原因存在于其他说话者的话语中
2a)Trigger Events/Situations(触发事件/情境) 情绪原因存在于一个他人提及的事件或者概念
2b)Emotional Dependency(情感依赖 ) 目标说话者的情绪是由其他说话者对某些事件/情况的情绪引起的。
Type3: Self-contagion(自我感染)在很多情况下,情绪原因是由于在先前的对话回合中诱发的说话者的稳定情绪。
Type4: Hybrid Emotion(混合情感)由类型2和类型3的共同混合作用
Type5: Unmentioned Latent Cause(未提及的潜在原因)在会话历史中并没有明确的提出情绪原因,或者情绪原因会在之后的对话中提及,例子:A:我很害怕 B:怎么了 A:我撞鬼了,在该例子中A的情绪原因为我撞鬼了,但在A说出我很害怕时,无法分析之后的语句,故也标记为Latent
作者制定了两个不同的子任务来识别情绪原因
(i)因果跨度提取
(ii)因果情感蕴含
将RECCON-DD拆成训练集、验证集、测试集,然而验证集和测试集中的数据太少了,作者从原始训练集拿了一些给他们
子集RECCON-IE由IEMOCAP数据集组成,这个数据集非常小,仅包含16轮对话,作者将其作为另一个测试集,模拟分布外泛化测试
作者基于在RECCON-DD上训练的模型并报告此数据集的结果。 在实验中,作者忽略了只有潜在情感原因的话语。
生成负例
带注释的数据集 RECCON(由子集 RECCON-DD 和 RECCON-IE 组成)仅包含正面示例,其中包含情感的目标话语使用从其会话历史上下文中提取的因果跨度进行注释。 然而,为了训练识别对话任务中情绪原因的模型,需要负样本,之后会继续使用问题定义中的术语
作者使用了三种不同的策略来创建负面示例。 在本节中,将详细讨论fold 1。然后,在进一步分析和讨论中,为了进一步分析模型的性能,除了折fold1,将采用fold2 和fold3 两种策略来创建负 例子:
Fold1:
考虑对话 D 和 D 中的目标话语 Ut。我们将完整的否定示例集构造为 {(Ut, Ui)∣Ui ∈ H(Ut) ⧵ C(Ut)} ,其中 H(Ut) 是会话历史 C(Ut) 是 Ut 的因果话语集。(没看懂)
Fold2:
在这个方案中,我们从数据集中的另一个对话中随机抽取非因果话语 Ui 以及相应的历史会话上下文 H(Ui) 以创建一个反例。
Fold3:
这类似于带有约束的Fold2。 在这种情况下,仅当非因果话语 Ui 及其来自其他对话的历史会话上下文 H(Ui) 的情感与目标话语 Ut 的情感匹配时才会对其进行采样,以构建反例。
请注意,与折叠 1 不同,折叠 2 和 3 中包含非因果话语 Ui 和目标话语 Ut 的反例属于不同的对话。 对于因果跨度不在目标话语中的情况,我们在折叠 2 和 3 中创建正例时将目标话语从其历史上下文中删除。因此,它有助于防止模型学习任何琐碎的模式
因果跨度提取是识别目标非中性话语的因果跨度(情绪原因)的任务。 在我们的实验设置中,我们将因果跨度提取制定为机器阅读理解 (MRC) 任务,类似于斯坦福问答数据集 [34] 中的任务。 类似的 MRC 技术已在文献中用于各种 NLP 任务,例如命名实体识别 [27] 和零镜头关系提取 [26]。 在这项工作中,我们提出了两种不同的跨度提取设置:(i)有会话上下文和(ii)没有会话上下文。
我们相信会话上下文的存在将是跨度提取算法的关键。 为了评估这个假设,我们设计了这个子任务,其中对话历史可用于模型。
模型
RoBERTa
在隐藏状态输出之上添加一个线性层来计算跨度开始和结束 logits。 根据[11]计算候选跨度的分数,并选择得分最高的跨度作为答案。
SpanBERT
在 SQuAD 上微调的 SpanBERT 我们使用 SpanBERT [23] 作为第二个基线模型。 与 RoBERTa 相比,SpanBERT 遵循不同的预训练目标(例如,预测掩码的连续跨度而不是标记),并且在问答任务中表现更好。 在这项工作中,我们使用在 SQuAD 2.0 数据集上微调的 SpanBERT 基础模型。
Evaluation Metrics(评价指标)
我们使用以下评估指标。 EMPos(精确匹配):EM 表示,对于黄金标准数据,模型准确提取了多少因果跨度。 F1Pos:这是 [34] 引入的 F1 分数,用于评估抽取式 QA 模型的预测并计算数据中的正例。 F1Neg:Negative F1 表示检测负例相对于金标准数据的 F1 分数。 在这里,对于目标话语 Ut,基本事实是空跨度。 F1:这个指标类似于 F1Pos,但计算每个正例和负例,然后是它们的平均值。 虽然所有这些指标对于评估都很重要,但我们强调未来的工作应该特别考虑 EMPos、F1Pos 和 F1 的性能
是跨度提取任务的更简单版本。 在这个任务中,给定一个目标非中性话语 (Ut),目标是预测对话历史 H(Ut) 中哪些特定话语对目标话语中的非中性情绪负责。 按照前面的设置,我们在有和没有历史会话上下文的情况下制定这个任务。
模型
RoBERTa base and large
在前面使用 标记和目标话语 Ut 的情感标签 ,并在中间加入带有 的对或三元组元素来创建输入。 分类是 标记的相应最终层向量执行的。 我们使用 [30] 中的 roberta-base/-large 模型作为基线。
Evaluation Metrics(评估方法)
对正例和负例都使用 F1 分数,表示为 Pos.F1 和Neg.F1,分别。 还报告了整体的宏观 F1。
见表