0%

情感计算论文调研

2020.10.24 留:本文未完成。

Introduction

情感计算(affective computing),移情计算(empathetic computing)。

Related Work

论文 模型 标签 评价指标
笔记论文 Zhong et al., 2020 BERT 移情计算 PEC Co-attention R#k MRR
笔记AAAI Zandie et al., 2020 GPT2 移情计算 DailyDialog multi-task learning Three Head perplexity(PPL) Hit#1 BLEU F1
笔记AAAI Lin et al., 2019a GPT 移情计算 EmpatheticDialogues PersonaChat multi-task learning PPL AVG BLEU EMO ACC
笔记ACL Lin et al., 2019b Transformer 移情计算 EmpatheticDialogues Emotion Tracker Emotion Aware Listener Meta Listener Mixture Of Expert response comparison listener analysis visualize Emotion Dist BLEU Relevance Fluency Empathy
笔记ICLR rashkin et al., 2018ACL 2019 Transformer / BERT 移情计算 EmpatheticDialogues PPL P#1,100 AVG BLEU Fluency Empathy Relevance
笔记AAAI Zhou et al., 2017 GRU 情感计算 ESTC Emotion Category Embedding Internal Memory External Memory emotion accuracy loss function PPL EMO ACC Content Emotion
笔记AAAI Wolf et al., 2019 Transformer Hits#1 F1
笔记论文 ------- ----------
--------------------- 粗体代表有启发的论文 粗体代表有启发的思想 ----------------
论文 实现的功能 局限性
Zhong et al., 2020 1)通过二分类,选取候选回复
Zandie et al., 2020 1)使用 GPT-2 进行预训练;2)LM head 可以预测下一条语句;3)NUP head 预测下一条语句是否与输入语句匹配;4)NEP head 预测下一条语句的情绪;4)词嵌入的用法与 Transformer 类似 1)为了使用合适的情绪进行回复,需要使用到情绪动作主题等元信息(作者自己这么认为的);
Lin et al., 2019a 1)使用 GPT 在 BooksCorpus 上预训练;2)在 PersonaChat 上进行预训练3)使用三句话赋予 CAiRE 一个人物定位4)SEN 预测 distractor 是否为真实回复;5)LM 生成回复;6)EMO 预测对话上下文的情绪。 1)
Lin et al., 2019b 1)Emotion Tracker 追踪对话上下文中的情绪2)Emotion Aware Listeners 分别监听 36 种情绪以及一种通用情绪的信息3)Meta Listener 收集多个 Listener 的意见,并产生最终的回复 1)需要为每种情绪都分配一个监听器,未免有些不灵活;
rashkin et al., 2018 1)提出了 EmpatheticDialogues 数据集;2)提出了 Pre-trained、Fine-tuned、EmoPrepend-k、TopicPrepend-k、Multi-taskEnsem-DM 基线模型
Zhou et al. 2017 1)使用情绪分类器对数据集进行自动标注;2)给定用户的输入,通过 embed 层和两个 Memory 组件,能够根据不同的情绪类别,生成特定的情绪化语句;3)外部记忆通过为情感词和通用词分配不同的概率,从而生成更优质的回复 1)在编码过程中,输入需要包含待生成语句的情绪(emotion) \(e\),这是不现实的,因为在实际应用中,你并不知道返回的语句需要包含什么情绪
----------------- 粗体代表不错的想法 斜体代表在以后的论文中此缺点大致已被解决
  1. Zhou et al. 2017 提出了 Emotional Chatting MachineECM),该模型不可控制生成回复的情绪类别。比如说现在系统中定义了 5 种情绪类别,现在用户很悲伤,需要机器生成 “安慰” 的语句。但是 ECM 做不到,它只能遍历所有的情绪类别,然后为每一种类别生成一句回复。
    请注意,由于此论文为 2017 年提出,此时并没有支持 ECM 训练的数据集,所以他们先在 NLPCC2013 和 NLPCC2014 的一个情绪分类数据集上训练了一个情绪分类器(emotion classifier) ,然后使用这个分类器对 STC 数据集进行自动标注,从而生成一个全新的带有情绪的数据集。他们称之为 ESTC,不过由于自动标注,必不可免地拥有噪声。
    Emotion Category Embedding 提取情绪类别的嵌入。Internal Memory 记录用户交谈过程中的短暂情绪变化,该模块中的情绪状态向量 \(M^I\) 会影响解码过程。特别地,其不同于其他模型的记忆模块,当解码过程结束后,记忆模块中的状态应该衰减至 0,这代表着情绪被机器完全地表达出来。External Memory 通过对情感词(emotion words)和通用词(generic words)分配不同的生成概率,从而生成进一步情绪词。由于内部情绪状态和被挑选出的单词之间并不具有明显的关系,而有些词汇可以很好的表达出感情,例如 awesome,所以需要一个外部记忆模块控制这些情绪词。(博主注原论文中并没有写明 Internal Memory(下称 IM) 和 External Memory(下称 EM) 的具体用法,但是我认为 IM 应该是配合着 GRU 使用,它是 GRU 的输入之一,同时 GRU 也会影响 IM 的状态。而 EM 是在 GRU 生成隐藏状态 \(s_t\) 后使用的,EM 用于进一步完善所生成单词的概率分布。
    另外此文的 loss function 设计的很有启发性。
  2. Rashkin et al., 2018 提出了一个数据集 EmpatheticDialogues,以及提出了 Pre-trained、Fine-tuned、EmoPrepend-k、TopicPrepend-k、Multi-taskEnsem-DM 基线模型。
  3. Lin et al., 2019b 提出了 MoLE 架构,在 EmpatheticDialogues 数据集上进行训练,使得其可以生成移情回复。它主要由三大组件组成:1)emotion tracker 编码上下文信息 \(\mathcal{C}\),同时计算用户潜在情绪的分布;2)emotion-aware listeners 独立地关注上述的分布,并计算自己的分布;3)meta listener 采用各个 emotion-aware listener 的加权表征,然后相加为一个表征,并生成最终的回复。。其中 emotion-aware listeners 还包含 shared listener 和 \(n\) 个独立的 empathetic listener,shared listener 捕获通用信息,empathetic listener 捕获其对应情绪的信息。
  4. Lin et al., 2019a 提出了一个对话代理 CAiRE。首先使用 GPT 预训练模型,其中 GPT 已经在大型文本语料库 BooksCorpus 上进行了预训练。其次由于现存的移情对话数据集相对较小,仅在这数据集上进行微调,模型在闲聊时所拥有的话题可能会有相对的局限。为了增强 CAiRE 在闲聊时的能力,参考 Wolf et al., 2019 的迁移学习策略,先在 PersonChat 上对模型进行预训练,此时的预训练不同于之前的预训练。该步的训练使得 CAiRE 拥有一种人格,而之前的预训练是使 CAiRE 拥有理解语言的能力。 另外为了完全利用在 PersonaChat 上预训练的效果,他们自定义了三条 CAiRE 的人物定位(persona)语句。这些语句代表着 CAiRE 的人物定位。
  5. Zandie et al., 2020 提出了 EmpTransfo 架构。他们将序列输入进 Transformer(GPT-2)中得到特征,然后将特征分别输入给三个头,即 Language modeling head(LM),Next utterance prediction head(NUP)和 Next emotion prediction head(NEP)。LM 生成回复语句,与 CAiRERE 类似,NUP 预测干扰项是否为正确回复(感觉这个模块有点问题,可能公式写错了),NEP 预测回复语句所带有的情绪。其中 NUP 是参考了 BERT 的做法。
  6. Zhong et al., 2020 提出了 Persona-based Empathetic ConversationPEC)数据集,提供一个基线,并且证明 persona 对移情回复有着提升性能的效果。他们提出的模型的做法是:对 \(X, P, y\) 分别使用 BERT 提取向量表征,然后使用 Co-attention 机制配上 max-pooling 提取特征。最后将所有向量拼接后做 dot 运算,得到一个值,从而判断某一个候选回复是否为合适的回复。其中 \(X\) 是对话上下文,\(P\) 是 persona 语句(用于提升性能博主注我不太懂这个 persona 是什么意思),\(y\) 是候选回复。所以这个模型的运行方式是,\(X\) 对每一个候选回复 \(y\) 做点积得到一个分数,然后选取分数最高的候选回复返回

论文笔记

情感计算论文笔记

Dataset

Emotion
简称 数据集名称 来源 类型 语言 公开
PEC Persona-based Empathetic Conversations Reddit persona + empathy en 是?
ED EmpatheticDialogues CS empathy en
PCR persona-based conversations from Reddit Reddit persona en
none MojiTalk Twitter emotion en
none Dailydialog various websites emotion + topic + action en
-- Emotion Analysis in Chinese Weibo Texts weibo
Persona
简称 数据集名称 来源 类型 语言 公开
PEC Persona-based Empathetic Conversations Reddit persona + empathy en 是?
PC PersonaChat CS persona en

情感分析

这个领域说实话挺乱的,有叫 sentiment analysis(情感分析)/sentiment classification 的,也有叫 emotion classification(情绪分类)/emotion analysis/emotion detection 的。不过这两种任务实际上有一点不同,sentiment analysis 分析的是消极积极的程度,一般是二分类,但是也有多分类的。比如说在影评的时候,如果满分是 10 分,那么就是十分类问题。而 emotion classification 是对语句所包含的情绪进行分类,例如喜悦、快乐、满足、幸福、恐惧、悲伤等等等等。虽然说有点不一样,但是说白了都是对于情感/情绪的一个分类问题。

总而言之,简单来说,喜怒哀乐是 emotion,消极中性积极是 sentiment。【2】

说实话,在中文中,情绪和情感这两个词其实一般没有很大的区别。但是在中英文互翻的时候就有问题了,比如 sentiment analysis,我觉得叫情绪分析更为贴切。个人认为情感是人类对事物的某种表达,它常常有多种类别,例如喜怒哀乐等,这些都是人类经过长时的积淀而产生的。但是情绪更像是瞬发的表达,正如影评分类之类的任务,并不会包含过多的情感,更多是情绪。例如电影好不好看,菜好不好吃,这些都是瞬时的【3】。虽然本文的主要关注点是情感计算,本来想使用 emotion classification 这个名词,但是由于 sentiment analysis 使用较广,并且名词是在太多,所以避免语义上的问题,下文仅使用名词“情感分析”。

本人在网络上找到了一些综述性质的文章,并将其中的几篇引用较高的论文拿出来做一项总结【1,4】。本文将总结几篇情感分析的论文。

相关工作

参考资料

  1. awesome-sentiment-analysis
  2. 深度学习中的情感分析(sentiment)和情绪分析 (emotion) 的区别是什么?
  3. 在心理学上,「情绪」与「情感」之间有何异同?
  4. 「情感分析领域」简单调研

情感回复生成

论文 模型 标签 评价指标
笔记ACL Song et al., 2019 ------- ----------
笔记Springer Asghar et al., 2017 ------- ----------
笔记论文 ------- ----------
--------------------- 粗体代表有启发的论文 粗体代表有启发的思想 ----------------
论文 实现的功能 局限性
Song et al., 2019
Asghar et al., 2017
----------------- 粗体代表不错的想法 斜体代表在以后的论文中此缺点大致已被解决

论文笔记

情感回复生成论文笔记

参考资料

  1. 赛尔笔记 | 对话中的情感分析与生成简述
  2. awesome-sentiment-analysis