多模态 | Supervised Prototypical Contrastive Learning for Emotion Recognition in Conversation论文详解及实现

本文主要详细描述了Supervised Prototypical Contrastive Learning for Emotion Recognition in Conversation论文详解及实现。

论文详解

2022.10.17_Supervised Prototypical Contrastive Learning for Emotion Recognition in Conversation

 用于对话中情绪识别的监督原型对比学习

Paper:https://arxiv.org/pdf/2210.08713v2.pdf

☀论文的主要贡献

  1. 提出一个监督的原型对比学习(SPCL)实现ERC任务,它可以在类平衡的数据上有效地进行监督式对比学习,并且不需要大的批量大小。
  2. 第一个将监督式对比学习和课程学习应用到此任务。
  3. 在三个广泛使用的基准上取得了最先进的结果。实验结果进一步证明了提出的SPCL损失和课程学习策略的有效性。

论文的简介

论文在对话中捕捉情绪在现代对话系统中起着至关重要的作用。然而,情感和语义之间的弱相关性给会话中的情感识别(ERC)带来了许多挑战。即使是语义相似的话语,情绪也可能因上下文或说话者而有很大差异。在本文中,为 ERC 任务提出了监督原型对比学习 (SPCL) 损失。利用原型网络,SPCL 旨在通过对比学习解决不平衡分类问题,并且不需要大批量。同时,我们设计了一个基于班级距离的难度度量函数,引入课程学习来减轻极端样本的影响。论文在三个广泛使用的基准测试中取得了最先进的结果。

 论文的主要知识点:

自监督对比学习 (SPCL):

  • 将对比学习与课程学习融合。
  • 建立一个基于提示的语境编码器

训练策略:

基于抽样的方法构建从简单到难的子集

设R为训练周期,在k个周期训练模型

论文中实验中的数据集

 实验结果

项目实现

GitHub - caskcsg/SPCL: code for "Supervised Prototypical Contrastive Learning for Emotion Recognition in Conversation, EMNLP 22"

 克隆项目命令

git clone https://github.com/caskcsg/SPCL

训练代码

python train.py -tr -wp 128 -epochs 16 -temp 0.05 -tsk meld -psz 256 -ssz 64 -train_obj spcl -cl -seed 2333

如果出错参考【PS1】

 修改相关参数可修改配置文件config.py

 

训练时错误与解决 

【PS1】torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 128.00 MiB (GPU 0; 23.65 GiB total capacity; 22.73 GiB already allocated; 116.56 MiB free; 22.78 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

 训练代码时,注意调节gpu指定号码,我指定的是0和1,如果只有一个的话就指定0.也可以调小batchsize.

结果

参考文献

猜你喜欢

转载自blog.csdn.net/weixin_44649780/article/details/130639782
今日推荐