重磅推荐专栏: 《Transformers自然语言处理系列教程》
手把手带你深入实践Transformers,轻松构建属于自己的NLP智能应用!
情绪的感知与表达能力在对话领域中起到了至关重要的作用。Emotional Chatting Machine (ECM) 模型,将情绪信息引入到对话生成模型中,提升了对话中对情绪的表达能力并且使得生成的对话更为恰当,下图为本模型的总体框架:
ECM模型框架如下,可以分为两个大的部分:基于GRU模型结合Attention机制的Encoder-Decoder模型和情感模型。这两个模型密不可分,情感模型的输出是Decoder的输入,同时Decoder的输出也是情感模型的输入,最终Encoder-Decoder和情感模型的输出联合生成最终应答句子:
情感模型主要包括三个部分:情感类别嵌入、内部记忆模型和外部记忆模型:
-
情感类别嵌入:这个主要是将这个句子的情感类别作为Decoder输入的一部分:
其中是 c t c_t ct 基于 s t − 1 s_{t-1} st−1 与 h h h 的 attention, e ( y t − 1 ) e(y_{t-1}) e(yt−1)是上一步输出的词语 y t − 1 y_{t-1} yt−1的embedding, v e v_e ve是情绪类别的embedding -
内部记忆模型
不用被这张图吓到了,这个部分主要完成了两件事:当机器准备生成第 t t t个应答词,有多大概率使用当前状态的情感状态 M e , t I M^I_{e,t} Me,tI,并更新下一时刻 t + 1 t+1 t+1的情感状态。
论文中使用的gate,可以理解 g t r g_t^r gtr成生成第 t t t个词时考虑情感状态的概率,而 g t w g_t^w gtw则可以理解为更新情感状态的概率:
-
外部记忆模型:这个在生成应答词的最后使用,内部记忆模型隐式地考虑了生成词时对情感因子的使用,但是最终要生成具体的词语,这就要显式地考虑情感因子。这部分的工作简而言之就是,首先根据当前的隐含情感状态选择情感词并根据当前Decoder输出的隐含状态选择其他非情感词,然后均衡考虑情感词和其他非情感词,生成最终应答词:
输出门 g t o g^o_t gto可以理解为应答词 y t y_t yt为情感词的概率: