EmpDG: Multi-resolution Interactive Empathetic Dialogue Generation论文笔记

文章目录

  • 一,先看问题
  • 二,再看评价
  • 三,方法
    • (一)整体架构
    • (二)特征表示及处理
    • (三)Improved WGAN
  • 四,实验的结果
  • 五,总结

一,先看问题

这是我读的第一篇跟generation有关的论文。读这篇的原因是,在GitHub上我直接使用关键词Empathetic dialogue搜索,开源代码排序靠前的是这篇,coling 2020上的paper。翻译下标题:EmpDG:多分辨率交互式共情对话生成。不确定Multi-resolution是否是专有术语。

​ paper解决的问题属于chitchat,人机闲聊型对话,重点关注机器的response带有共情色彩,具体输入输出如下:

对话1 情绪标签:hopeful:
输入:My husband lost a job but I am hoping he can find a full time job soon. (我的丈夫丢了工作,但我很希望他能很快找到一份全职工作)

机器输出:I am sorry to hear that. I hope he gets better.(听到这个消息我很难过。我希望他好起来。)

标准答案:He will, I have faith. (他会的,我有信心。)

对话2:情绪标签:grateful

输入: I joined a fifirm 6 months ago and then I got a promotion for junior manager.(我6个月前加入了一家公司,然后我得到了一个初级经理的晋升。)

​ Congratulations. That sounds like the fast track.(祝贺这听起来像是快车道。)

​ Yes, they thought that I have some extraordinary talent and that is the reason I got that position.(是的,他们认为我有非凡的天赋,这就是我得到那个职位的原因。)

机器输出:Wow, that is amazing. I am sure they do great.(哇,太棒了。我相信他们做得很好。)

标准答案:Cool. Maybe next year you will be a partner! (也许明年你会成为合伙人!)

​ 论文使用ACL 2019的论文Towards Empathetic Open-domain Conversation Models: a New Benchmark and Dataset发布的数据集Empathetic dialogue dataset。本论文的问题就是在这个数据集上训练一个chatbot,使机器生成的response尽可能接近标准答案。

二,再看评价

评价指标的数值高低决定论文能不能投,我们先看评价指标。评价指标分成两类,自动评估和人类评估。

自动评估指标有BLEU、METEOR、ROUGE,这三个指标都不合适。

自动评估指标还有perplexity和distinct-1、distinct-2

人类评估指雇用3个标注者,对生成的response从三个方面进行打分,分数范围1-5,1最差,5最好,3中等。三个方面分别是 Empathy (共情性)、 Relevance(相关性一致性)、 Fluency(流畅性)。

三,方法

(一)整体架构

方法框架基于WGAN进行设计。generator是基于transformer设计的encoder-decoder。discriminator是使用的Wasserstein-1 distance。架构图如下:
EmpDG: Multi-resolution Interactive Empathetic Dialogue Generation论文笔记_第1张图片

(二)特征表示及处理

先看左侧生成器,生成器下方是encoder,上方是decoder。encoder输入的特征有两项,分别是蓝色的semantic understanding和粉色multi-resolution emotion perception。semantic understanding指对话的上下文组成的单词序列,用预训练好的glove词向量表示。multi-resolution emotion指使用 the NRC Emotion Lexicons (NRC) (Mohammad and Turney, 2013) 把对话上下文中的情感词专门挑出组成了一个额外的序列,也用glove词向量表示。两者拼接。经过linear layer判断是什么情绪标签,之后情绪标签参与后续decoder过程。

​ 再看右侧鉴别器,也按左侧类似操作,将蓝色semantic和粉色emotion分开,训练两个鉴别器。并在每个鉴别器中加入feedback特征。feedback也是本文的卖点之一,假如某个gold对话共有4个语句,一问一答一问一答,输入是刚开始的两句一问一答,机器输出第三句,第四句作为feedback参与到鉴别器的训练中,这能为整个模型提供额外的特征。

​ 鉴别器先使用LSTM对输入的序列进行特征处理,之后每个隐层挑出,再使用CNN对特征继续处理,最后做分类。gold是正类,generated response是负类。

(三)Improved WGAN

鉴别器输入gold分类分数最大,输入generated response分类分数最小,目的就是鉴别什么是真的,什么是生成的。

​ 生成器希望generated response能骗过鉴别器,即generated response输入给鉴别器时,希望鉴别器输出的分数变大,使generated response逼近gold。

​ 我们先看鉴别器的损失函数,注意鉴别器的目的,输入gold分类分数最大,输入generated response分类分数最小:
EmpDG: Multi-resolution Interactive Empathetic Dialogue Generation论文笔记_第2张图片
整个公式是加了惩罚项的improved WGAN。其中,红色框住的是1-Lipschitz函数指非常平滑的函数,鉴别器函数越平滑,越能促进生成的分布逐步逼近gold的分布,如果不平滑参数可能没法更新导致没法训练。1-Lipschitz函数等价于gradient norm等于1的函数。计算所有样本的gradient norm并使之等于1很难,于是使用公式(18)在正样本和负样本之间的连线上进行采样,如果样本的gradient norm不等于1,损失就会增加。

​ 蓝框框住的是鉴别器对负样本打的分数,分数越小越好,如果分数变大,损失就会增加。

​ 绿框框住的是鉴别器对正样本打的分数,分数越大越好,如果分数变小,损失就会增加。
在这里插入图片描述
鉴别器训练好后,会把损失黄框框住内容加到生成器损失后面。训练生成器的过程中,希望生成器的损失慢慢变小,也就会促使generated response输入到鉴别器时鉴别器输出的分数慢慢变大,这样生成的样本越来越好。

四,实验的结果

贴两张图在这
EmpDG: Multi-resolution Interactive Empathetic Dialogue Generation论文笔记_第3张图片
这张图能更清晰的观察到EmpDG的输入都是什么。和三之(二)特征表示及处理对应。其中MoEL是其中一个baseline,该baseline没有额外的emotional context特征输入,也没有feedback的操作。
EmpDG: Multi-resolution Interactive Empathetic Dialogue Generation论文笔记_第4张图片
表5中的EmpDG为本文的结果,和其他baseline比从人类的角度看,似乎也并没有什么特别,比如和baseline中的EmoPrepend-1的结果进行比较。

五,总结

总结,本文对我最大的帮助是促使我学习了GAN、WGAN、Improved WGAN,整个WGAN在本文中的描述只有10行,但我却花了一天看了六集李宏毅的视频才想明白,信息量大。

你可能感兴趣的:(对话系统,情感分析/情绪分析,自然语言处理,人工智能,深度学习)