【论文翻译】Emotional Chatting Machine: Emotional Conversation Generation with Internal and External Memor
Emotional Chatting Machine: Emotional Conversation Generation with Internal and External Memory
原文:Emotional Chatting Machine: Emotional Conversation Generation with Internal and External Memory
代码地址:https://github.com/declare-lab/conv-emotion
注意:全文有部分机翻内容,没来得及校对和理解,很抱歉。
翻译帮助:百度翻译
摘要
情感的感知和表达是对话系统或对话代理成功的关键因素。然而,到目前为止,这一问题还没有在大规模的对话生成中进行研究。在本文中,我们提出了情感聊天机(ECM),它不仅可以在内容(相关性和语法性)上,而且可以在情感(情感一致性)上产生适当的响应。据我们所知,这是第一个解决大规模的对话生成中情感因素的工作。ECM使用三种新的机制来解决这个问题,分别是
- 通过嵌入情绪类别对情绪表达的高层抽象进行建模
- 捕获内隐情绪状态的变化
- 通过外部情绪词汇表使用外显情绪表达
实验表明,该模型不仅能产生内容上的响应,而且能产生情感上的响应。
介绍
作为人类智力的重要组成部分,情商被定义为感知、整合、理解和调节情绪的能力( Mayer 和 Salovey ,1997)。使机器能够理解情感和情绪一直是人工智能的长期目标( Picard 和 Picard ,1997)。为了创建一个能够与用户在人类层面上进行交流的聊天机器人,有必要让机器具备感知和表达情感的能力。
现有研究表明,在对话系统或对话代理中处理情感( affect )和情绪( emotion )可以提高用户满意度( Prendinger 、Mori 和 Ishizuka ,2005年),并减少对话中的失败( Martinovski 和 Traum ,2003年)。在调整对话行为以适应用户的情绪状态( Polzin 和 Waibel ,2000年)以及在内容和情感相关层面( Skowron ,2010年)生成针对用户话语的响应方面也做了一些初步工作。
然而,这些研究大多受心理学研究的启发,要么基于规则,要么局限于小规模数据。最近,在大规模数据上训练的神经模型显著改善了开放域对话生成(Ritter、Cherry 和 Dolan ,2011;Vinyals 和 Le,2015;Shang、Lu 和 Li,2015;Serban 等人,2016)。这些模型大多旨在提高会话生成的内容质量(Gu 等,2016;Li 等,2016a;Xing 等,2017;Mou 等,2016;Li 等,2016b)。据我们所知,在现有的会话生成神经模型中,情感因素尚未得到处理。表1显示了一些有/没有考虑情绪的例子。我们可以看到,我们的ECM模型在情感上更具参与性和同理心。
在处理大规模会话生成中的情感因素时,有几个挑战。
首先,大规模语料库中很少有高质量的情绪标记数据,因为情绪标注是一项相当主观的任务,情绪分类也很具有挑战性。
第二,我们必须以一种自然和连贯的方式来考虑情感,因为我们需要平衡语法和情感上的表达,正如( Ghosh 等人,2017)所述。
最后,如我们的实验所示,在现有的神经模型中简单地嵌入情感信息,是无法生成令人满意的情感响应的,而只能生成难以感知的一般表达(这些表达只包含在情感上非常含蓄或模棱两可的常用词,这些占了我们数据集中所有情感响应的73.7%)。
在本文中,我们讨论了在开放域会话系统中生成情感响应的问题,并提出了一种情感聊天机(简称 ECM )。为了获得的大规模情感标记数据给 ECM ,我们在人工标注的语料库上训练神经分类器。分类器被用来自动注释大规模对话数据给 ECM 进行训练。为了在句子中自然连贯地表达情感,我们设计了一个 Seq2Seq 的生成模型,该模型配备了新的情感表达生成机制,即为了捕获情感表达的高层抽象概念的情感类别嵌入,内部情感状态用于动态平衡语法性和情感性,外部情绪记忆有助于产生更易懂和明确的情绪表达。
总结一下,本文做出了以下改善:
- 本文提出了在大规模会话生成中处理情感因素。据我们所知,这是关于该主题的第一项研究工作。
- 本文提出了一个端到端框架(称为 ECM ),将情感影响整合到了大规模对话生成中。它有三种新的机制:情感类别嵌入、内部情感记忆和外部记忆。
- 结果表明,与传统的 Seq2Seq 模型相比, ECM 可以产生更高的内容和情感分数的响应。我们相信,未来的研究工作,如移情计算机代理和情感交互模型可以基于 ECM 进行。
相关工作
在人机交互中,检测人类情感迹象并对其作出适当反应的能力可以丰富交流。例如,移情情感表达的展示加强了用户的表现( Partala 和 Surakka 2004),并使得用户满意度提高( Prendinger 、Mori 和 Ishizuka 2005)。( Prendinger 和 Ishizuka ,2005)的实验表明,移情计算机代理可以促进对交互的更积极的感知。在( Martinovski 和 Traum 2003)一书中,作者指出,如果机器能够识别用户的情绪状态并对其作出敏感的反应,那么许多错误是可以避免的。( Polzin 和 Waibel 2000)中的研究工作介绍了如何根据用户的情绪状态调整对话行为。Skowron(2010)提出了一种被称为情感听众( affect listeners )的对话系统,它可以在内容相关和情感相关的层面上对用户的话语做出响应。
这些研究工作主要受心理学研究发现的启发,要么基于规则,要么局限于小规模数据,因此很难应用于大规模的对话生成中。最近, Seq2Seq 生成模型(Sutskever、Vinyals 和 Le 2014;Bahdanau、Cho 和 Bengio 2014)已成功应用于大规模的对话生成(Vinyals 和 Le 2015),包括神经响应机(Shang、Lu 和 Li 2015)、分层递归模型(Serban 等人 2015)和许多其他模型。这些模型侧重于提高生成的响应的内容质量,包括提升多样性( Li 等人 2016a),考虑额外信息( Xing 等人 2017;Mou 等人 2016;Li 等人 2016b;Herzig 等人 2017),以及处理未知单词(Gu 等人 2016)。
然而,还没有研究涉及到大规模会话生成中的情感因素。这里有几项研究用可控变量生成文本。( Hu 等人 2017)提出了一个生成模型,该模型可以根据语言的某些属性(如情感和时态)生成句子。( Ghosh 等人,2017年)提出了情感语言模型,该模型生成基于上下文词语和情感类别的文本。( Cagan、Frank 和 Tsarfaty 2017)整合了语法信息,使用情感观点和主题为文档生成评论。我们的工作在两个主要方面有所不同:
- 先前的研究在文本生成中严重依赖于语言工具或定制参数,而我们的模型完全是数据驱动的,没有任何手动调整;
- 先前的研究无法模拟输入和回应之间的多重情感互动,生成的文本只是延续了主要的上下文的情感。
Emotional Chatting Machine
背景:encoder-decoder 框架
我们的模型基于通用序列到序列(简称 seq2seq )模型( Sutskever、Vinyals 和 Le 2014)中的编码器-解码器框架。它通过门控循环单元(GRU)实施( Cho 等人 2014;Chung 等人 2014)。编码器将输入序列 \(\boldsymbol{X}=\left(x_{1}, x_{2}, \cdots, x_{n}\right)\) 转换成隐式表述 \(\boldsymbol{h}=\left(h_{1}, h_{2}, \cdots, h_{n}\right)\) ,定义如下:(式1)
\[\boldsymbol{h}_{t}=\mathbf{G} \mathbf{R U}\left(\boldsymbol{h}_{t-1}, x_{t}\right) \]解码器将上下文向量 \(c_{t}\) 和先前解码的单词 \(\boldsymbol{e}\left(y_{t-1}\right)\) 的嵌入作为输入要使用另一个 GRU 更新其状态 \(\boldsymbol{s}_{t}\) :(式2)
\[\boldsymbol{s}_{t}=\mathbf{G} \mathbf{R} \mathbf{U}\left(\boldsymbol{s}_{t-1},\left[\boldsymbol{c}_{t} ; \boldsymbol{e}\left(y_{t-1}\right)\right]\right) \]其中 \(\left[\boldsymbol{c}_{t} ; \boldsymbol{e}\left(y_{t-1}\right)\right]\) 是两个向量的连接( concatenation ),用为 GRU 单元的输入。上下文向量 \(c_{t}\) 被设计用于在解码期间动态关注输入的关键信息( Bahdanaau、Cho 和 Bengio 2014)。一旦获得状态向量 \(\boldsymbol{s}_{t}\) ,解码器通过从解码器的状态 \(\boldsymbol{s}_{t}\) 计算的输出概率分布 \(\boldsymbol{o}_{t}\) 进行采样来生成令牌,如下所示:(式3、4)
\[\begin{aligned} y_{t} \sim \boldsymbol{o}_{t} &=P\left(y_{t} \mid y_{1}, y_{2}, \cdots, y_{t-1}, \boldsymbol{c}_{t}\right) \\ &=\operatorname{softmax}\left(\mathbf{W}_{\mathbf{o}} \boldsymbol{s}_{t}\right) \end{aligned} \]任务定义和概述
我们的问题描述如下:
给一个输入 \(\boldsymbol{X}=\left(x_{1}, x_{2}, \cdots, x_{n}\right)\) 和将要生成的响应的情感分类 \(e\) (解释如下),目标是生成和情感分类 \(e\) 一致的响应 \(\boldsymbol{Y}=\left(y_{1}, y_{2}, \cdots, y_{m}\right)\) 。究其根本,该模型估计了以下概率:
\[P(\boldsymbol{Y} \mid \boldsymbol{X}, e)=\prod_{t=1}^{m} P\left(y_{t} \mid y_{情绪类别为{ Angry, Disgust, Happy, Like, Sad, Other },采用中文情绪分类挑战任务。
在我们的问题陈述中,我们假设要生成的响应的情绪类别是给定的,因为情绪是高度主观的。给定一个输入,可能有多种情绪类别适合响应这个输入,这取决于受访者的态度。例如,对于一个悲伤的故事,有人可能会给予同情(作为朋友)回应,有人可能会感到愤怒(作为易怒的陌生人),但有人可能会高兴(作为敌人)。输入和回复之间灵活的情感互动与之前的研究( Hu 等人 2017;Ghosh 等人 2017;Cagan、Frank 和 Tsarfaty 2017)有着重要区别,这些先前研究使用与输入相同的情感或情绪进行回复。
因此,由于情绪反应的主观性,我们选择集中解决核心问题:在给定输入和反应的情绪类别的情况下生成情绪响应。因此,我们的模型在不考虑反应情绪类别的情况下工作。请注意,有多种方法可以让聊天机器人选择情绪类别进行响应。一种方法是给聊天机器人一个个性和一些背景知识。另一种方法是使用训练数据为给定输入中的情绪找到最常见的响应情绪类别,并将其用作响应情绪。这种方法是合理的,因为它反映了人们的普遍情绪。我们把这项研究留给未来的工作。
在上一节讨论的生成框架的基础上,我们提出的情感聊天机( ECM )使用了三种机制生成情感表达:
- 由于情感类别是情感表达的高级抽象,ECM 嵌入情感类别,并将情感类别嵌入反馈给解码器。
- 我们假设在解码过程中,存在一个内部情绪状态,为了捕获该状态的隐含变化并动态平衡语法状态和情绪状态之间的权重,ECM 采用了一个内部存储模块。
- 通过外部记忆模块显式选择一般(非情绪)词或情绪词,对情绪的显式表达进行建模。
ECM 的概述如图1所示。在训练过程中,将 post-response 对语料库输入到情绪分类器,生成每个响应的情绪标签,然后使用这个三元组数据对ECM进行训练: post 、响应和响应的情绪标签。在推理过程中,一个 post 被反馈给 ECM ,以产生拥有不同情绪类别的情绪响应。
情感类别嵌入
由于情感类别(例如:Angry, Disgust, Happy )提供了情绪表达的高级抽象,因此在响应生成中对情感进行建模的最直观方法是将要生成的响应的情绪类别作为附加输入。每个情感类别由值为实数的低维向量表示。对于每个情感类别 \(e\) ,我们随机初始化情感类别 \(\boldsymbol{v}_{e}\) 的向量,然后通过训练学习情绪类别的向量。情感类别嵌入 \(\boldsymbol{v}_{e}\) 、单词嵌入 \(\boldsymbol{e}(y_{t-1})\) 和上下文向量 \(\boldsymbol{c}_ {t}\) 被馈入解码器以更新解码器的状态 \(\boldsymbol{s}_{\boldsymbol{t}}\) :(式5)
\[\boldsymbol{s}_{\boldsymbol{t}}=\mathbf{G} \mathbf{R} \mathbf{U}\left(\boldsymbol{s}_{t-1},\left[\boldsymbol{c}_{t} ; \boldsymbol{e}\left(y_{t-1}\right) ; \boldsymbol{v}_{e}\right]\right) \]基于 \(\boldsymbol{s}_{\boldsymbol{t}}\) ,可通过之前的式子相应地计算解码概率分布以生成下一令牌 \(y_{t}\) 。
内部记忆
前一节中介绍的方法比较静态:情感类别嵌入在生成过程中不会发生变化,这可能会损害句子的语法正确性,如( Ghosh 等人 2017)所述。受情感响应相对短暂且涉及变化的心理学发现( Gross 1998;Hochschild 1979)和情感反应中的动态情感情境( Alam、Danieli 和 Riccardi 2017)的启发,我们设计了一个内部记忆模块,以捕捉解码过程中的情感动态。我们模拟情感表达的过程如下:在解码过程开始之前,每个类别都有一个内部情感状态;在每一步中,情绪状态都会有一定程度的衰退;一旦解码过程完成,情绪状态应衰减为零,表明情绪已完全表达。
内部记忆模块的详细过程如图2所示。在每个步骤 t ,ECM 使用先前解码的词 \(\boldsymbol{e}(y_{t}-1)\) 的词嵌入,解码器的先前状态 \(\boldsymbol{s}_{t-1}\) 和当前上下文向量 \(\boldsymbol{c}_{t}\) 的输入来计算读取门 $\boldsymbol{g}{t}^{r} $ 。在解码器的状态向量 \(s_{t}\) 上计算写入门 $\boldsymbol{g}{t}^{w} $ 。读取门和写入门定义如下:(式6、7)
\[\begin{aligned} \boldsymbol{g}_{t}^{r} &=\operatorname{sigmoid}\left(\mathbf{W}_{\mathbf{g}}^{\mathbf{r}}\left[\boldsymbol{e}\left(y_{t-1}\right) ; \boldsymbol{s}_{t-1} ; \boldsymbol{c}_{t}\right]\right) \\ \boldsymbol{g}_{t}^{w} &=\operatorname{sigmoid}\left(\mathbf{W}_{\mathbf{g}}^{\mathbf{w}} \boldsymbol{s}_{t}\right) \end{aligned} \]读取门和写入门分别用于从内部记忆模块中读取和写入。因此,情感状态在每一步都被一定量( $\boldsymbol{g}_{t}^{w} $ )擦除。在最后一步,内部情感状态将衰减为零。该过程正式描述如下:(式8、9)
\[\begin{aligned} \boldsymbol{M}_{r, t}^{I} &=\boldsymbol{g}_{t}^{r} \otimes \boldsymbol{M}_{e, t}^{I} \\ \boldsymbol{M}_{e, t+1}^{I} &=\boldsymbol{g}_{t}^{w} \otimes \boldsymbol{M}_{e, t}^{I} \end{aligned} \]其中, \(\otimes\) element-wise 乘法, \(r/w\) 分别表示读取/写入, \(I\) 意思是内部。GRU 根据前一个目标单词 \(\boldsymbol{e}(y_{t}-1)\) 、解码器的先前状态 \(\boldsymbol{s}_{t-1}\) 、上下文向量 \(\boldsymbol{c}_{t}\) 以及情绪状态更新 \(\boldsymbol{M}_{r, t}^{I}\) 更新其状态 \(\boldsymbol{s}_{t}\) ,具体如下:(式10)
\[\boldsymbol{s}_{\boldsymbol{t}}=\mathbf{G} \mathbf{R} \mathbf{U}\left(\boldsymbol{s}_{t-1},\left[\boldsymbol{c}_{t} ; \boldsymbol{e}\left(y_{t-1}\right) ; \boldsymbol{M}_{r, t}^{I}\right]\right) \]基于该状态,可以获得词生成分布 \(\boldsymbol{o}_{t}\) ,并且可以对下一个词 \(y_{t}\) 进行采样。在生成下一个词后, \(\boldsymbol{M}_{r, t+1}^{I}\) 被回写到内部记忆中。注意,如果多次执行式9,则相当于将矩阵连续相乘,从而产生衰减效应因为 \(1≤ sigmoid(·) ≤ 1\) 。这类似于记忆网络中的删除操作(Miller 等人,2016)。
外部记忆
在内部记忆模块中,内部情感状态的变化与单词选择之间的相关性是隐性的,不能直接观察到。由于情感表达与句子中包含的情感词(Xu 等人 2008)非常不同,如 lovely 和 awesome ,与一般(非情感)词(如 person 和 day )相比,这些词带有强烈的情感,我们提出了一个外部记忆模块,通过给情感词和一般词分配不同的生成概率来显式地建模情感表达。因此,该模型可以选择从情感词汇表或一般词汇表生成单词。
带有外部记忆模块的解码器如图3所示。给定解码器的当前状态 \(s_{t}\) ,分别对从外部记忆模块和通用词汇读取的情感词汇表计算情感 softmax \(P_{e}(y_{t}=w_{e})\) 和通用 softmax \(P_{g}(y_{t}=w_{g})\) 。类型选择器 \(α_{t}\) 控制生成情感或一般词 \(y_{t}\) 的权重。最后,从下一个单词概率(两个加权概率的 concatenation )中对下一个单词进行采样。该过程可制定如下:(式11-14)
\[\begin{aligned} \alpha_{t} &=\operatorname{sigmoid}\left(\mathbf{v}_{\mathbf{u}}{ }^{\top} s_{t}\right), \\ P_{g}\left(y_{t}=w_{g}\right) &=\operatorname{softmax}\left(\mathbf{W}_{\mathbf{g}}^{\mathrm{o}} s_{t}\right), \\ P_{e}\left(y_{t}=w_{e}\right) &=\operatorname{softmax}\left(\mathbf{W}_{\mathrm{e}}^{\mathrm{o}} s_{t}\right), \\ y_{t} \sim \boldsymbol{o}_{t}=P\left(y_{t}\right) &=\left[\begin{array}{r} \left(1-\alpha_{t}\right) P_{g}\left(y_{t}=w_{g}\right) \\ \alpha_{t} P_{e}\left(y_{t}=w_{e}\right) \end{array}\right], \end{aligned} \]其中, \(\alpha_{t}\in[0,1]\) 是一个标量,用于平衡情感词 \(w_{e}\) 和一般词 \(w_{g}\) 之间的选择, \(P_{g}/P_{e}\) 分别是一般词/情感词的分布, \(P_{(y_{t})}\) 是最终的单词解码分布。请注意,这两个词汇表没有交集,最终分布 \(P_{(y_{t})}\) 是两个分布的 concatenation 。
损失函数
损失函数是训练语料中预测的令牌分布 \(\boldsymbol{o}_{t}\) 和黄金分布( gold distribution ) \(\boldsymbol{p}_{t}\) 之间的交叉熵误差。此外,我们应用了两个正则化项:一个在内部记忆上,强制内部情感状态在解码结束时衰减为零;另一个在外部记忆上,限制情感词或一般词的选择。一个样本 \(<\boldsymbol{X},\boldsymbol{Y}>(\boldsymbol{X}=x_{1},x_{2},...
其中 \(\boldsymbol{M}_{e, m}^{I}\) 是最后一步 m 的内在情感状态, \(α_{t}\) 是选择情感词或一般词的概率, \(q_{t}∈ \{0,1\}\) 是 \(\boldsymbol{Y}\) 中情感词或一般词的正确选择。第二项用于监督选择情感词或一般词的概率。第三项用于确保一旦生成完成,内部情绪状态已完全表达。
数据准备
由于没有现成的数据来训练 ECM ,我们首先使用 NLPCC 情绪分类数据集训练情绪分类员,然后使用分类员对 STC 对话数据集( Shang、Lu 和 Li 2015)进行注释,以构建我们自己的实验数据集。数据准备过程中有两个步骤:
1. 建立情感分类器
我们在 NLPCC 数据集上培训了几个分类器,然后选择最佳分类器进行自动注释。该数据集用于 NLPCC20132 和 NLPCC20143 中情感分类的挑战性任务,包括从微博收集的23105句句子。它被手动标注为8种情绪类别:Angry,Disgust,Fear,Happy,Like,Sad,Surprise 和 Other 。除去不常见的类别( Fear(1.5%)和 Surprise (4.4%)),我们有六种情绪类别,即 Angry,Disgust,Happy,Like,Sad 和 Other 。
然后,我们以8:1:1的比例将 NLPCC 数据集划分为训练集、验证集和测试集。在过滤后的数据集上培训了几个情感分类器,包括基于词典的分类器( Liu 2012)(我们在(Xu 等人2008年)中使用了的情感词典)、RNN( Mikolov 等人2010年)、LSTM( Hochreiter 和 Schmidhuber 1997年)和双向 LSTM(Bi-LSTM)(Graves、Fernandez 和 Schmidhuber 2005年)。表2中的结果表明,所有使用了神经网络的分类器的性能都优于基于词典的分类器,表现最好的是 Bi-LSTM 分类器,精度为0.623。
2.用情感诠释STC
我们采用最佳分类法 Bi-LSTM 对 STC 数据集的六种情绪类别进行注释。在注释之后,我们获得了一个情感标记的数据集,我们称之为 Emotional STC(ESTC)数据集。ESTC 数据集的统计数据如表3所示。虽然 ESTC 数据集的情感标签由于自动注释而有噪声,但该数据集足以在实践中训练模型。作为未来的工作,我们将研究分类错误如何影响响应生成。
实验
实施细节
我们使用 Tensor?ow 来实现所提出的模型。编码器和解码器两层 GRU 结构,每层有256个隐藏单元,并分别使用不同的参数集。词嵌入大小设置为100。词汇量限制为40000。情感类别的嵌入大小设置为100。内部记忆是一个大小为6×256的可训练矩阵,外部记忆是一个40000个单词的列表,其中包含一般单词和情感单词(但情感单词有不同的标记)。为了产生不同的响应,我们在解码过程中采用了波束搜索,其中波束大小设置为20,然后在移除包含未知词的响应后,根据生成概率重新排列响应。
我们使用小批量随机梯度下降(SGD)算法。批量大小和学习率分别设置为128和0.5。为了加快训练过程,我们在 STC 数据集上训练了一个带有预训练的词嵌入的 seq2seq 模型。然后我们在 ESTC 数据集上训练我们的模型,参数由预先训练的 seq2seq 模型的参数初始化。我们运行了20个 epoches ,每个模型的训练阶段在 Titan X GPU 机器上大约需要一周的时间。
基线模型
如上所述,本文是第一篇探讨大规模会话生成中情感因素的研究。我们在文献中没有发现密切相关的基线。Affect-LM(Ghosh 等人 2017)不能作为我们的基线,因为它不能对同一篇文章产生不同情感的反应。相反,它只是复制并使用输入帖子的情感。此外,它严重依赖于语言资源,需要手动调整参数。
然而,我们选择了两个合适的基线:一般的 seq2seq 模型( Sutskever、Vinyals 和 Le 2014)和我们创建的情感类别嵌入模型(Emb),其中情感类别嵌入到向量中,向量作为每个解码位置的输入,类似于用户嵌入的想法(Li 等人 2016b)。由于情感类别是情感表达的高级抽象,因此这是我们模型的适当基线。
自动评估
度量指标
如( Liu 等人,2016)所述, BLEU 不适合测量对话生成,因为其与人类判断的相关性较低。我们在内容层面(内容是否相关和语法性)采用困惑度( perplexity )来评估模型。为了在情感层面评估模型,我们采用了情感准确性来检测预期情感类别(作为模型的输入)和情感分类器生成的反应的预测情感类别之间的一致性。
结果
结果如表4所示。可以看出,ECM 在情感准确性方面表现最好,而在困惑度方面表现比 Seq2Seq 好,但比 Emb 差。这可能是因为 ECM 的损失功能不仅在困惑度上受到监督,而且在一般词或情感词的选择上也受到监督(见等式15)。在实践中,情感准确性比困惑度更重要,因为生成的句子已经流畅且符合语法,困惑度为68.0。
为了研究不同模块的影响,我们进行了消融试验,每次从 ECM 中取出三个模块中的一个。正如我们所看到的,没有外部记忆模块的ECM在困惑度中获得了最好的性能。通过引入内部记忆模块,我们的模型可以在不牺牲语法性的情况下生成响应,模块可以动态平衡语法和情感之间的权重。去除外部记忆模块后,情感准确性下降幅度最大,表明外部记忆模块由于明确选择了情绪词,所以有较高的情感准确性。请注意, Seq2Seq 的情感准确性极低,因为它会为不同的情感类别生成相同的响应。
人工评估
为了从内容和情感角度更好地分析生成的响应的质量,我们进行了手动评估。给定一个帖子和一个情感类别,所有模型产生的反应被随机分配给三个人类注释者。
度量指标
注释者被要求根据内容(评分范围为0、1、2)和情感(评分范围为0、1)对响应进行评分,并说明更倾向于两种系统中哪一个。内容定义为对 post 的响应是否恰当、自然,是否可能是由人做出的,这是研究人员和对话挑战性任务经常使用的衡量标准,来自(Shang、Lu 和 Li 2015)。情感定义为响应的情感表达是否与给定的情感类别一致。
注释统计
我们从测试集中随机抽取了200个 post 。对于每个模型,我们总共生成了1200个响应:对于 Seq2Seq ,我们为每个 post 生成了前6个响应;对于 Emb 和 ECM ,我们生成了对应于6个情感类别的前6个响应。
我们计算了 Fleiss’ kappa( Fleiss 1971)来衡量评分者之间的一致性。内容和情感的 Fleiss’ kappa 分别为0.441和0.757,表示“中度一致”和“极其一致”。
结果
结果如表6所示。ECM 的所有响应分数在两个指标上都显著优于其他方法(双尾t检验,内容层面 p < 0.05,情感层面 p < 0.005)。与 Emb 相比,在加入内部记忆模块和外部记忆模块后,ECM 在情感层面的性能得到了提高,表明我们的模型能够生成更为明确的情感表达。此外,内容表现从 Emb 的1.256提高到 ECM 的1.299,这表明 ECM 能够控制情感权重,并生成内容合适的响应。
对于所有情感类别,ECM 在情感层面的表现均优于其他方法。然而,ECM 在 Disgust 和 Angry 类别中的内容层面的表现不如基线模型,因为这两个类别没有足够的训练数据。例如,在我们的 ESTC 数据集中,愤怒类别只有234635个响应,远远少于其他类别。
为了评估 ECM 是否能够产生在内容和情感层面都合适的响应,我们同时考虑内容和情感得分,得出了表5中的结果。如我们所见,ECM 生成的响应中有27.2%的内容分数为2,情感分数为1,而 Emb 和 Seq2Seq 分别只有22.8%和9.0%。这表明 ECM 在内容和情感方面都能更好地产生高质量的响应。
偏好测试
此外,情感模型( Emb 和 ECM )比 Seq2Seq 更受欢迎,与表7所示的其他方法相比, ECM 更受注释者的青睐(双尾t检验,p < 0.001)。有着不同的情绪的响应比 Seq2Seq 模型产生的一般响应更吸引用户。由于情感的明确表达以及内容的恰当性,ECM 更受青睐。
情感互动分析与案例研究
图5显示了 ESTC 数据集中 post 和响应的情感互动模式。情感互动模式(EIP)定义为 \(
我们在图4中给出了一些示例。可以看出,对于给定的 post ,有多种情感类别适合其在对话中的响应。 Seq2Seq 生成带有随机情感的响应。 ECM 可以根据每个情感类别产生情感响应。所有这些响应都适用于该 post ,表明存在多个 EIP ,以及为什么应将情感类别指定为我们系统的输入。
我们可以看到,如果预先指定的情感类别和 post 的情感属于常见的 EIP 之一, ECM 可以生成适当的响应。彩色单词表明, ECM 可以通过应用外部记忆模块来明确表达情感,在解码过程中,外部记忆模块可以选择一般(非情感)词或情感词。对于低频 EIP ,如图4最后两行所示的< Happy,Absort >和< Happy,Angry >,由于缺乏训练数据和/或情感分类导致的错误,响应不适合情感类别。
结论和今后的工作
在本文中,我们提出了情感聊天机( ECM )来模拟大规模对话生成中的情感影响。提出了三种情感因素模型,包括情感类别嵌入、内部情绪记忆和外部记忆。客观和手动评估表明, ECM 不仅可以在内容层面上生成适当的响应,而且可以在情感层面上生成适当的响应。
在我们未来的工作中,我们将探索感与 ECM 的交互作用:模型应该为响应确定最合适的情感类别,而不是指定情感类别。然而,这可能具有挑战性,因为这样的任务取决于主题、上下文或用户的情感。