文章目录

  • 摘要
  • 引言
  • 相关工作
  • RECCON任务
  • 模型
    • 任务1:Causal Span Extraction
    • 任务2:Causal Emotion Entailment
    • E2E Cause Span and Entailment model
  • 实验部分
    • Causal Span Extraction
    • Causal Emotion Entailment
  • 分析
  • 总结
  • 参考文献

摘要

论文出自印度坎普尔理工学院

在NLP中,文本中的情感预测是一个比较成熟的研究问题。而近来文本中的情绪原因抽取成为一个活跃的研究领域。之前大多数工作都在解决文档中的情绪原因抽取(causal emotion entailment)在本文中,我们提出了一个神经网络模型来抽取对话中的情绪原因片段及原因话语(extract emotion cause span and entailment in conversations)。我们采用RECCON数据集来学习模型。特别地,相对于现有的基线模型使用真实的情感标签来抽取原因,我们提出MuTEC,一个端到端的多任务学习框架来抽取对话中的emotions,emotion cause and entailment。实验表明MuTEC的性能在RECCON上提供的多重数据上要优于基线模型。

引言

情绪是人类行为中固有的一部分。我们所做的选择和所采取的行为都受到了我们当前时刻情绪的直接影响。情绪指示并影响着我们潜在的思维过程[1]。近来人工智能系统已经成为我们生活不可或缺的一部分。为了能够与人类连续互动,人工智能系统必须能够了解一个人所经历的情绪以及导致该情绪的原因[2] 。针对这个目标,在过去二十年里,情感识别领域有了很大发展。为了理解是什么导致了情绪以及一个人的情绪是如何影响他人的,文档中的情绪原因抽取已经成为了一个活跃的研究领域。Poria等人将这个任务延伸到对话中,提出了一个新的任务,即给定对话中的情绪话语,该任务要抽取出对应的原因片段。同时公开了RECCON数据集,该数据集中的对话来自DailyDialog[3]和IEMOCAP[4],并且进行了原因片段的标注。Poria等人在RECCON数据集上提出了两个极具挑战的任务:causal span extraction(CSE)和causal emotion entailment(CEE)。该作者在推断中使用了真实的情绪标注。然而,这并不是一个实际的假设。因此我们所作贡献如下:

  • 对于CSE和CEE任务,我们提出一个端到端的多任务学习框架MuTEC来抽取emotions,emotion cause and cause entailment,其中情绪预测作为一个辅助任务,原因片段抽取和因果情绪蕴含作为主任务。我们同时提出一个单独的端到端框架来解决两个任务。相比于显示使用真实的情绪标签,将情绪预测直接整合到模型中可以得到与之可比的性能,甚至在某些情况下要更优。我们的实验和模型代码地址:https://github.com/Exploration-Lab/MuTEC.
  • 我们对数据集和模型做了一个完整的分析。由于负样本很多,原始的RECCON数据集中分布非常不平衡,导致了性能的下降。我们创建了一个新的平衡的数据集,并在其上进行实验来表明减少负样本的数量能够帮助提升模型性能。

    黄色标注的是原因片段,箭头从情绪话语指向原因话语。

相关工作

首先是文本中的情绪原因抽取ECE(给定情绪标注,抽取原因),该任务的解决方法有经典的机器学习方法、基于规则的方法和深度学习方法。然而在测试阶段要提前标注情绪的需要限制了它在实际场景中的应用,而且先标注情绪后抽取原因忽略了两者之间的相互依赖。
为了克服这些缺陷,Xia和Ding提出了一个新的任务ECPE,旨在抽取文档中的情绪话语句对。ECPE任务在测试阶段不需要提供情绪标注,而且情绪子句和原因子句之间能够相互指示。为了解决这个任务,Xia和Ding提出了一个tow-step的方法,第一步抽取出情绪子句和原因子句的集合,第二步是进行配对和过滤。这个方法存在两个问题:首先第一步的错误会传播到第二步从而影响第二步的性能;其次是模型的训练目标不是最终的情绪原因句对。为解决上述问题,Ding等人提出了2D表示方案,集成句对交互、预测和表示到一个框架中。Song等人和Fan等人使用基于图的方法来识别句对。Wei的能人使用排序策略来将候选句对排序,并通过GAT建模子句之间的关系。Sun等人强调上下文重要性,并提出一个上下文感知的对偶问答注意力网络来抽取句对。
还有近年来对话中的情绪识别研究领域比较活跃。有一些基于transformer结构的工作,还有一些基于图神经网络和序列模型建模话语间关系的工作等。

RECCON任务

Causal Span Extranction与Causal Emotion Entailment。
可阅读论文:《Recognizing Emotion Cause in Conversations》
Poria等人将CSE任务看作问答任务,其中一个正样本如下:

将CEE任务作为自然语言推断任务

但是不同于上述方法,对于CSE和CEE任务来说,我们模型的输入为[目标话语],[原因话语]和[上下文]拼接,对于CSE任务,那么在上下文中预测开始和结束位置;对于CEE任务,预测标签为0或1.

模型

我们提出基于transformer的多任务学习模型来同时学习情绪和原因,并且在inference时不用提供真实的情绪标签。

任务1:Causal Span Extraction

我们使用一个两步的模型,包含Emotion Predictor和Cause-Span Predictor。两步模型的一个优点就是模块化。然而还是存在两个缺点:错误传播;情绪预测任务与原因预测任务互相独立。为克服上述缺陷,我们提出一个端到端的架构。

  • 训练:输入包括目标话语,候选原因话语和上下文(或者没有上下文)。我们将输入送到基于transformer的预训练模型,然后对预训练的12层进行mean pool,获得输出为:

    池化后的输出用于情绪预测,具体为:通过一个MLP层,然后softmax得到预测结果。
    在训练阶段,将原始的隐藏层状态h1’,h2’…送入到多采样dropout(MSDropout)来得到start logit,这个end logit会经过一层softmax得到开始位置的预测结果;但是我们会用数据集中给定的开始位置来预测结束位置,我们将开始位置的隐藏层状态hs与原始的隐藏层状态h1’,h2’…拼接,然后送入到多采样dropout(MSDropout)来得到end logit,这个end logit会经过一层softmax得到结束位置的预测结果。整个训练损失如下:
  • 测试:在测试阶段,我们没有已知的开始位置,所以我们会找到top-k个开始索引,然后将每个索引的隐藏层状态拼接到原始的隐藏层状态,得到k个不同的end candidate logits。根据这k个,我们再次找到top-k个结束索引。我们将这个k作为beam size。我们可以得到k*k个start-end索引对,然后采用argmax操作来得到开始和结束位置。

任务2:Causal Emotion Entailment

我们提出一个多任务学习框架,包括3个模块。第一个模块学习输入的上下文表示,第二个模块建模情绪和原因话语之间的关系来获得更好的表示,第三个模块拼接上述表示进行预测。同样的,情绪预测作为辅助任务。

  • 建模情绪-原因关系:将第一个模块得到的Ut的token表示输入到BiLSTM(em)中,然后它的输出使用mean pool后进行预测。
    为了建模情绪话语和原因话语之间的关系,将BiLSTM(em)的输入与Ui的token表示拼接,输入到BiLSTM(ca)中。
  • Entailment Prediction:将BiLSTM(ca)的输出进行mean池化,然后与BiLSTM(em)的池化输出拼接,送入到MLP中进行分类。
  • 损失函数:

E2E Cause Span and Entailment model

为了在一个模型中同时训练两个任务,我们使用了一个类似于上述模型的结构,在顶上添加一个原因预测头部。我们使用RoBERTa-base作为底层,然后上面三个头:emotion head,cause span head and cause entailment head。整个模型以端到端的形式训练。损失函数如下:

实验部分

数据集采用的是RECCON,为了训练一个模型,利用非原因话语去构造负样本。Poria等人采用了3中策略来构造负样本,分别是:

指标的具体计算在论文附录。

Causal Span Extraction


从表1中可以看到,不论是带上下文还是不带上下文,EMpos和F1pos在大多数情况下都要高于其它模型,我们也注意到数据集中高比例的负样本会影响正样本的指标。
在某些情况下,我们的模性在负样本指标上要低于基线,这些情况不包括fold2,fold3,IEMO(w/CC)
。一个可能的原因是因为在这些情况下,模型能够更容易区分正负样本。而在非原因话语来自同一个对话时,模型容易gets confused。
在IEMOCAP上的测试结果要低,可能是因为两个数据集非常不同,模型并不能很好地适应。
作者同时在fold2和fold3上训练模型,结果有着类似地趋势。具体结果可见附录。

Causal Emotion Entailment


从表2数据可知,对于Dailydialog数据集,我们的模型大部分情况下要优于基线,但是对于IEMOCAP数据集,结果要低于基线,表明模型泛化性能不好。RoBERTa-large模型在IEMOCAP数据集上性能更好表明大预训练模型在跨数据集上表现良好。同时在fold2和fold3上训练的结果与fold1一致,详细可见原论文俘虏。

分析

  • 消融实验:去掉情绪预测任务,发现性能有很大下降。

    而且作者做了beam size的实验,最终选择了3。
  • 在均匀的数据集上实验:我们通过减少负样本去构造一个均匀的数据集,实验结果表明这样能帮助模型学的更好。

总结

本文提出的多任务学习模型在测试阶段不需要情绪标注。我们同时也提出一个整体的端到端架构来同时学习两个任务,实验结果与没有情绪标注的最好结果相当。未来工作可能会进行原因片段间的因果推理,同时将其延伸到多人对话中。

参考文献

[1] Marvin Minsky. The emotion machine: Commonsense thinking, artificial intelligence, and the future of the human mind. Simon and Schuster, 2007.
[2] Aaditya Singh, Shreeshail Hingane, Saim Wani, and Ashutosh Modi. An end-to-end network for emotion-cause pair extraction. In Proceedings of the Eleventh Workshop on Computational Approaches to Subjectivity, Sentiment and Social Media Analysis, pages 84–91, Online, April 2021. Association for Computational Linguistics.
[3] Yanran Li, Hui Su, Xiaoyu Shen, Wenjie Li, Ziqiang Cao, and Shuzi Niu. DailyDialog: A
manually labelled multi-turn dialogue dataset
. In Proceedings of the Eighth International Joint Conference on Natural Language Processing (Volume 1: Long Papers), pages 986–995, Taipei,Taiwan, November 2017. Asian Federation of Natural Language Processing.
[4] Carlos Busso, Murtaza Bulut, Chi-Chun Lee, Abe Kazemzadeh, Emily Mower, Samuel Kim,
Jeannette N Chang, Sungbok Lee, and Shrikanth S Narayanan. Iemocap: Interactive emotional dyadic motion capture database. Language resources and evaluation, 42(4):335–359, 2008.

论文阅读——Multi-Task Learning Framework for Extracting Emoton Cause Span and Entailment in Conversations相关推荐

  1. 论文阅读 [TPAMI-2022] On Learning Disentangled Representations for Gait Recognition

    论文阅读 [TPAMI-2022] On Learning Disentangled Representations for Gait Recognition 论文搜索(studyai.com) 搜索 ...

  2. 【论文阅读】Cross-X Learning for Fine-Grained Visual Categorization

    [论文阅读]Cross-X Learning for Fine-Grained Visual Categorization 摘要 具体实现 OSME模块 跨类别跨语义正则化(C3SC^{3} SC3S ...

  3. Multi task learning多任务学习背景简介

    2020-06-16 23:22:33 本篇文章将介绍在机器学习中效果比较好的一种模式,多任务学习(Multi task Learning,MTL).已经有一篇机器之心翻译的很好的博文介绍多任务学习了 ...

  4. 《论文阅读》Multi-Task Learning of Generation and Classification for Emotion-Aware Dialogue Response Gener

    <论文阅读>Multi-Task Learning of Generation and Classification for Emotion-Aware Dialogue Response ...

  5. 论文阅读 [CVPR-2022] BatchFormer: Learning to Explore Sample Relationships for Robust Representation Lea

    论文阅读 [CVPR-2022] BatchFormer: Learning to Explore Sample Relationships for Robust Representation Lea ...

  6. 论文阅读:Deep Learning in Mobile and Wireless Networking:A Survey

    论文阅读:Deep Learning in Mobile and Wireless Networking:A Survey 从背景介绍到未来挑战,一文综述移动和无线网络深度学习研究 近来移动通信和 5 ...

  7. 论文阅读|DeepWalk: Online Learning of Social Representations

    论文阅读|DeepWalk: Online Learning of Social Representations 文章目录 论文阅读|DeepWalk: Online Learning of Soci ...

  8. Re3:读论文 PGE A Representation Learning Framework for Property Graphs

    诸神缄默不语-个人CSDN博文目录 论文下载地址:A Representation Learning Framework for Property Graphs 代码:yaobaiwei/PGE: A ...

  9. 【论文阅读笔记】Learning To Detect Unseen Object Classes by Between-Class Attribute Transfer

    摘要: 本文主要研究训练和测试类别不相交时(即没有目标类别的训练示例)的对象分类问题.在此之前并没有对于毫无关联的训练集和测试集进行对象检测的工作,只是对训练集所包含的样本进行分类.实验表明,通过使用 ...

最新文章

  1. 『原创』+『参考』基于PPC的图像对比程序——使用直方图度量
  2. Android开发者值得深入思考的几个问题,大厂面经合集
  3. ABB 机器人 压包指令PackRawBytes 解包指令UnpackRawBytes
  4. PHP7数字三角形代码,倒数字三角
  5. python里删除range里的数字_python中range函数与列表中删除元素
  6. MySQL执行计划extra中的using index 和 using where using index 的区别
  7. python实现微信小游戏打飞机代码
  8. 想要学习C++,到底能从事哪种行业?
  9. 域名申请/ssl证书申请
  10. 支付宝 java 签名_支付宝APP支付(Java后台生成签名具体步骤)
  11. java处理word文档 替换文本 水印 页眉
  12. 【Python】计算文件的MD5、SHA1、SHA256值(校验文件完整性)
  13. 接口测试平台代码实现86: 全局请求头-1
  14. java md5 签名_java md5签名
  15. 「华流才是顶流」?分享你心目中的YYDS
  16. IAR获取固件编译的时间
  17. Android Q中外部存储盘路径正则表达式的理解
  18. linux clk模型
  19. php 凯撒加密解密,PHP脚本实现凯撒加(解)密
  20. 这样回答离职原因,一定没问题!

热门文章

  1. C++中的随机数函数(
  2. 第三天-01-批处理文件
  3. 从软件工程师到一个愤青IT猎头的经历
  4. 计算机word2003试题,计算机应用基础Word2003试题新
  5. Word或WPS中批量设置表格样式的宏
  6. 推荐几款高性价比电机驱动芯片
  7. 选中DataGridView行,将数据返填到TextBox控件
  8. PHP实现无限极分类代码
  9. Python Matplotlib 散点图的绘制
  10. padStart与padEnd方法