APP下载

基于位置感知的情感可控对话生成模型研究

2022-04-19马志强王春喻

中文信息学报 2022年3期
关键词:解码器解码编码器

杨 瑞,马志强,2,王春喻,斯 琴

(1.内蒙古工业大学 数据科学与应用学院,内蒙古 呼和浩特 010080;2.内蒙古自治区基于大数据的软件服务工程技术研究中心,内蒙古 呼和浩特 010080)

0 引言

对话生成的目的是希望能构建一个理解自然语言的机器人,完成智能客服、闲聊、百科问答和智能导航等对话任务。典型的对话生成有微软小冰、淘宝智能客服、搜狗立知等,已经成为生活中必不可少的AI助手。情感作为人类交流的重要组成部分,将情感因素融入对话生成,能够提升用户满意程度。在情感慰藉、用户陪伴、抚平消费者情绪等方面有着重要价值。情感可控对话生成强调感知和理解人类情感,控制生成回复产生情感反馈,实现符合情境的情感回复。

可控是对情感输出和控制生成情感类别的定义,为多样性、一致性等情感对话生成问题提供方法。本文认为,一个好的情感可控对话生成模型是在生成情感词的同时生成流畅且符合语法的回复。目前情感可控对话生成采用序列到序列的编解码框架,整个框架以神经网络为基础,通过最大似然估计进行训练,随机情感词在解码器端的加入会造成生成回复不符合语法或情感词堆叠,因此确定情感词的位置信息,根据情感词生成符合语法的回复被视为一项重要的研究内容。

最近很多研究者提出可控对话生成模型,Wu等[1]实现了基于动态词表的对话生成研究,当语义上与输入词汇相距很远的词汇加入生成解码时,会产生大量通用回复,作者利用动态词表的方式,为当前输入过滤掉不相关词汇并保留有用词汇,进而控制模型训练时间和生成的句子质量。为了控制生成回复的全局功能特征,使功能控制和内容丰富性达到兼容的效果,清华对话式人工智能课题组[2]引入条件变分自编码器,利用隐变量建模和类别控制器控制生成回复的话题和句式,实现生成内容与输入信息高度相关的解码,提高生成的回复质量。Zhang等[3]在对话生成中通过优化Seq2Seq采用的Kullback-Leibler(KL)方式,设计了三种不同的一致性分数,并将一致性分数作为奖励函数融入强化学习中,改进对话生成的通用回答现象。可控对话生成随着情感信息的加入,被赋予了感知和理解对话的能力,Li等[4]利用用户评论,识别用户情感意图,设计新的序列模型生成推荐信息,实现了有效的生成推荐。Chen等[5]利用半监督的方式,设计了一种新的条件变分自编码器模型,用于情感可控的生成。传统编码器和解码器都采用从第一个词到最后一个词的顺序解码方式,不仅耗时,还缺乏对未来信息的利用,Zhou等[6]提出同步双向序列生成模型,采用从两端到中间的对话生成方式,提高对话生成质量和解码速度。Mou等[7]利用关键词作为内容引导,以关键词为中心,确定关键词生成位置后采用关键词向前和向后的生成方式,从一定程度上缓解了万能回复问题。Ma等[8]设计控制单元和不同的情感通道实现了情感可控对话生成。不同方法的提供为对话生成创造了无限可能,大多数情感对话生成都强调是否有情感词[9],但情感词在解码器端的强制加入,在一定程度上会造成生成的回复中情感词堆叠或生成的句子不符合语法。Sun等[10]通过抽取对话生成中的情感词、主题词和主语词,采用正向加反向的双向异步框架生成一个新句子,并将句法约束加入解码器,保证了对话生成的流畅性和合乎语法性,然而解码器的预测能力依然限制在特定范围内,不能产生较长的真实句子。

本文提出基于位置感知的情感可控对话生成模型(LAECCM),解决随机情感词在解码器加入后造成的情感词堆叠、缺乏情感上下文等情感可控对话生成问题。在编码器中,当前输入词向量和位置向量共同参与编码,让情感词建立起全局位置信息。同时利用最近适合做语言生成的MASS模型[11],形成以情感词为中心的情感下文信息,因为情感词加入解码器后,Attention[12]只是单独给予了情感词的注意力,并未给予情感词上下文的注意力,解码器会因为缺乏上下文信息而单独解码情感词,从而造成情感词堆叠或者情感词随机生成在回复句的任何位置,造成生成的回复句不符合语法。受Wu等[13]的启发,本文采用遮蔽情感词下文的方式进行情感下文信息的生成,将情感下文信息融入解码器实现最终的对话生成。实验结果表明,与基线模型相比,LAECCM能更好地生成符合语法的回复。

1 研究基础

1.1 Seq2Seq模型

Seq2Seq模型[14]的编码器和解码器以循环神经网络(RNN)、长短时记忆网络(LSTM)或门控循环单元(GRU)为基础[15-17],每次读取一个token,并预测输出,对于句子比较长的情况,LSTM和GRU的实验效果明显优于RNN。编码器能够将当前输入编码成中间语义向量C,其计算如式(1)所示。

C=ht=LSTM(ht-1,xt)

(1)

其中,ht是编码器编码形成的中间隐藏层状态,每一个隐藏层的状态联合起来进行非线性组合形成中间语义向量,因为LSTM是时间序列的建模方式,可以直接将最后一个时刻t的隐藏层状态看作中间语义向量。xt代表当前输入。

解码器解码过程与编码过程相反,在解码阶段,生成的输出是利用编码器生成的中间语义向量和上一时刻解码器解码的输出共同生成当前输出。解码的计算如式(2)所示。

yt=g({y1,y2,…,yt-1},C)

(2)

其中,{y1,y2,…,yt-1}是t时刻前的所有输出,g()是非线性激活函数。在整个编码解码过程中,每个句子都需要加开始符号和结束符号,例如,,目的是告诉编码器和解码器在什么时候开始、什么时候结束,实现任意长度的句子编码和生成。

1.2 MASS模型

自然语言处理的预训练方法为下游任务带来了很大的性能提升。但在生成方面,训练过程需要编码器和解码器的联合训练。2019年微软亚洲研究院提出Masked Sequence to Sequence Pre-training(MASS)预训练模型,通过遮蔽连续长度的片段,并将该遮蔽片段在解码器端进行生成,提高了编码器,解码器的学习能力。

MASS最主要的方式就是遮蔽连续的片段,该过程是随机过程,被遮蔽的片段长度为k,通过调整k的大小调整遮蔽片段的长度。具体模型如图1所示。

图1 MASS模型结构图

在编码器中,xi表示输入,_表示被遮蔽的词,解码器xi表示预测编码器被遮蔽的词。图1表明,编码器在遮蔽了连续三个词后进行解码,解码器的输入是编码器被遮蔽词的输入,解码器需要学习编码器未给的输入信息进行预测输出,强制进行了编码解码联合训练。对编码器而言,未给出的信息需要编码器提升对已有输入序列语义理解能力,对解码器而言,解码器的连续预测提升了语言建模能力。整个模型使用log似然函数作为目标函数,具体计算如式(3)所示。

(3)

其中,x∈χ是未配对的源语句,xu:v是从u到v被遮蔽的序列,预测生成的序列是被遮蔽的序列。

2 基于位置感知的情感可控对话生成模型

2.1 模型结构

位置感知在情感可控对话生成中的作用是学习句子结构信息,强调生成回复的语法正确性。LAECCM模型利用注意力机制加强情感上下文建模,将普通解码和情感词遮蔽解码进行联合训练,实现解码生成回复,整体模型结构如图2所示。

图2 LAECCM模型结构

位置感知对位置信息的处理分为编码器的位置处理和解码器的情感位置处理两部分,编码器在编码时记录输入句的位置逻辑,并利用注意力机制对每个词进行注意力计算,捕获长距离依赖信息。解码器利用遮蔽语言模型的性能,强制解码器学习情感词周围的位置信息进行解码记忆,并按序生成一个回复序列,实现情感可控对话生成的位置感知。

2.2 编码解码过程

位置感知的主要目的是分别捕捉给定输入和生成回复的句子语义,使模型能够根据词语的位置关系生成符合逻辑的回复。为了实现这一功能,模型需要在编码过程中嵌入每个词语的位置信息,即分配位置标号,该方法在很大程度上保存了编码信息的内容完整度。以输入“我想我会一直孤单,过着孤单的生活”为例,首先句子进行分词,分词为“我想”“我”“会”“一直”“孤单”等,每个词以词向量和位置向量拼接的方式进入编码器。在情感字典的作用下确定情感词为“孤单”,遮蔽解码会屏蔽第一次出现“孤单”后面的信息进行新的句子生成,例如,生成“孤单的人儿”,将生成的句子嵌入解码器,与解码器共同完成最终的生成回复“原来都曾经孤单,或是正在孤单的人儿”。

模型利用词嵌入的方式,将当前输入w={w1,w2,…,wi,…,wn}进行向量转换,为了对位置信息编码,需对每个w进行位置编码[18],每个词的当前向量和位置编码向量共同作为编码器的输入,具体细节如式(4)所示。

v=post(w)+position(w)

(4)

其中,v表示最终进入编码器的状态向量,post表示对输入的每个词进行词向量表示,position表示词的位置信息编码向量,利用词在句子中出现的顺序进行编码,如果某些词在句子中具有相对关系,则表现出相似的正弦或余弦波形。position为每个当前输入分配的位置信息,记录了当前输入词与词之间的语义关系。在编码阶段,上文句子进行普通编码,将其作为用户隐含的状态反馈,进行对话生成的长期优化,编码器以当前编码和上文编码的分层编码方式形成中间状态向量,训练出带有位置信息的位置感知编码器,位置编码如图3所示。在图3中,E1和Ew1分别代表位置标记信息和词嵌入信息。

图3 当前输入的编码结构

在编码过程中,对于进入编码器的向量,在经过注意力机制时会产生中间状态向量Ct,则中间状态向量Ct可以表示为:

其中,ht是包含了不同位置的隐藏层向量信息,vα,Wa和Ua是模型训练过程中学习的参数。在Ct中,et被反向传播的softmax进行计算,得到权重概率。

在解码阶段,首先借助情感词典[19]确定情感词所在的位置,情感词位置之后的信息为情感下文信息。因为遮蔽的方法是在连续k个遮蔽词的遮蔽作用下实现的,所以模型最终选择遮蔽情感下文的方式生成情感下文信息,训练推理生成的能力,实现情感信息的多粒度生成,即情感信息在生成回复的基础上,额外加入了带情感的情感下文信息。情感下文信息向量可以表示为C,将给定的C和Ct共同参与解码生成yt,yt的计算如式(7)所示。

yt=g({y1,y2,…,yt-1},Ct,C)

(7)

2.3 LAECCM模型训练

LAECCM的模型训练,首先在编码器端进行词嵌入编码,每个词被编码成词向量的形式,词向量作为词的编码形式保存了每个词的语义特性,即将词进行编码器的可识别编码。区别于直接词向量的编码方式,模型加入了位置信息编码,二者进行拼接共同完成词嵌入向量训练。得到的词向量在编码-解码框架中进行联合训练,通过训练过程中的编码解码对齐进行神经网络参数更新,在反向传播的作用下,通过最小化损失函数的方法,更新网络权重信息。

情感信息作为解码信息的一部分,为了保证生成回复的语义连贯性,在对情感遮蔽解码训练时,采用和编码器联合训练的方式进行情感下文信息生成,得到情感下文信息解码向量,该向量与普通解码向量一起完成回复生成。情感信息以向量的形式进入解码器,目的是和编码器形成的中间状态一致,都以向量的形式参与解码生成。训练过程的遮蔽现象,完成了解码器对编码器信息的学习和捕捉,强制解码器进行解码生成的方式是遮蔽语言模型对解码器学习能力增强的方式。在整个网络训练过程中,模型在各个激活函数的作用下,模拟神经网络之间的信息交互,训练出符合逻辑的生成回复模型。LAECCM的训练算法如算法1所示。

算法1:LAECCM的训练算法输入:w,s输出:基于位置感知的情感可控对话生成模型LAECCM,生成回复1. initalize(LAECCM)//模型初始化2.fore

在该训练算法中,C表示注意力机制形成的中间状态向量,w、s和e分别代表当前输入、上文句子信息和情感信息。模型在训练时采取Seq2Seq的训练方式,生成的y值会和真实值做比较,进行反向传播,更新网络参数。在模型训练中,实验利用迭代次数和loss的变化关系进行参数调整,最终得到LAECCM模型。

3 实验

3.1 实验设置

情感对话语料库相对较少,中文情感对话语料库相比更少,实验使用2017年NLPCC任务4发布的语料,由六类情感组成。语料数据情感信息统计如表1所示。

表1 语料数据情感信息统计

在模型训练过程中,数据格式以数据编号,问句、回复句和情感标签的方式进行组织,采用制表符进行分割。在编码过程中,每个数据在token中都含有额外的位置信息。

实验采取save_steps为1 000的方式展开,权重衰减为0.01,最长问句和回复句长度分别设置为64和100,初始学习率为2e-5,batch_size为16,隐藏层的处理方式为Relu()函数。模型使用Tensorflow 1.13.1实现,实验系统为Ubuntu 16.04,显卡为GTX 1080,Python IDE为Pycharm。

3.2 评价指标

客观指标可以更有针对性地发现对话生成的问题,根据不同指标可以有的放矢地提高对话模型性能,促进情感可控对话生成的研究。在对话生成中,很难使用单一的标准来衡量生成句子的拟人程度。为了评价模型的有效性,实验采取以下几类评价指标,从不同角度验证模型效果。

BLEU值: 在保证生成情感的前提下提升句子语法质量,可以有效地突出对话生成效果。BLEU[20]计算生成语句与语料库中的参考语句的n-gram,n可以取1,2,3,4。

PPL: PPL用于衡量语言表达能力。2016年Liu等人的研究表明[21],只用评价指标BLEU,无法完整地表示评分与人类评价的相关性,所以在此基础上引入困惑度PPL(Perplexity),越低的困惑度,越能表示模型上下文约束能力;越强的上下文约束能力,表明语言的表述能力越强,因而具有更好的模型性能。选取困惑度作为评价指标,在内容层面上证明了对话生成的生成质量。

BPC: bits-per-character(BPC),计算基于字符长度单位的困惑度。

人工评价: 因人工评价耗时耗力,文本选取测试集中120条句子进行评价打分,参考NLPCC2019开放领域对话质量评测标准,将从语言形式(是否语法正确,是否自然流畅)和上下文关联(是否不存在答非所问)等方面进行打分,完成最终的系统性能评测。所有打分采取二分类形式,进行“是/否”打分,Y表示是,得一分;N表示否,为零分。以上下文设定为例,所有人工评价指标采取相同的计算方法,计算如式(8)所示。

(8)

其中,C表示上下文得分,S表示总分,最终结果为得分概率值。

3.3 基线模型

为了多角度评价LAECCM模型,在实验过程中,采用以下基线模型的对比实验,验证模型效果。

Seq2Seq+Attention: 带有注意力机制的序列到序列模型,被广泛应用于对话生成任务的对比实验中,可以作为生成回复流畅度对比实验。在对比实验中不采用beam search的搜索方式。

ECM: ECM[9]是典型的情感对话生成模型,增加了解码器对情感词的解码。ECM作为对比实验,可以验证模型在情感生成方面的能力。

ECCM: ECCM[8]是情感可控对话模型,增加了控制单元对情感的控制。ECCM作为对比实验,可以验证模型的生成回复语言质量。

3.4 实验结果与分析

自动评价结果如表2所示。可以看出,PPL和BPC表明模型在训练过程中可以无视词之间的距离关系进行学习,编码器和解码器能够学习句子的内在结构,获得更多的句子内容。由具体实验结果可知,LAECCM与Seq2Seq相比,在PPL、BLEU和BPC指标上分别提高了10.8%、7.4%和2.6%,表明情感数据在参与对话生成过程中得到了情感下文信息,增强了对话生成中的情感信息补偿和反馈,也取得了比ECM和ECCM模型更好的效果,表明模型对情感下文信息注入的理解,也表明位置信息编码在深度网络中的训练可以实现信息的上下文约束效果,增加情感可控对话生成的内容质量。

表2 自动评价结果 (单位: %)

人工评价指标以生成句子的可视化方式,采用式(8)进行生成句子质量打分。若将实验数据全部打分,大量的工作耗时耗力,故选择120句作为验证集,雇用5位评价者进行评测,取5位评价者打分的平均分作为最后实验结果。评分统计的实验结果如表3所示。

表3 人工评价结果

实验以情感类别为标准,统计了不同情感类别的句子生成质量评分。

LAECCM的整体表现优于Seq2Seq。在“哀”的情感类别中,Seq2Seq取得最低的语言形式分数,但LAECCM模型不仅提升了语言形式分数,并在上下文关联方面取得5.8%的分数提升。Seq2Seq的“其他”情感类别涉及的知识范围较广,表现形式大多是百科知识,导致语言形式得分相较于其他情感类别较低。LAECCM的“其他”情感类别虽然相较于同级别的情感类别有着较低的分数,但因位置感知的加入,能够很好学习句子百科知识的特征,也有效提升了语言形式和上下文关联能力。

由表4的生成示例可知,在LAECCM模型中,有效避免了情感词堆叠现象的产生,例如,情感类别“恶”中避免了“不错不错”情感词的连续生成。在情感类别“哀”中,LAECCM在理解问句的基础上生成回复,改进了Seq2Seq模型的不符合逻辑和语法顺序的回复。同时LAECCM减少了对话生成中通用回答的现象,在“乐”的对话生成回复中,模型因为位置编码的原因,构建了妈妈和孩子的关系,并将情感信息进行扩展,生成“快乐的小孩”这样的回复生成效果。在“怒”的情感类别中,LAECCM模型捕捉到了生气的情感,但由于语料库模型学习的原因,生成回复被构建出新的名词“小萝莉”,进行了生成扩展。在“哀”的情感类别中,模型虽生成了相关回复,但情感词生成不明显,这也是模型后续需要改进的地方。值得注意的是,位置感知和情感生成有着话题扩散或者提升多样性的作用,因为在“好”的情感类别中,模型可以根据阳光等词生成关于心情很好的回复,进一步反映了LAECCM在生成回复内容质量方面的提升。在所有生成回复的样例中,LAECCM都生成了符合语法的句子,证明模型在情感对话生成中句子质量生成方面的有效性,提高了词与词之间的特征学习能力。

表4 LAECCM模型生成带情感的回复示例

LAECCM模型利用情感信息的生成和位置感知的重要性,在一定程度上扩展了对情感信息内容丰富度和情感信息准确性的捕捉能力。情感信息符合语法的生成,有助于提高生成内容质量,同时内容丰富性和符合语法的条件完成了情感可控对话生成类人化想法的目标。

4 结论

本文提出基于位置感知的情感可控对话生成模型,利用位置信息的构建防止情感词堆叠现象的发生,并增强了情感下文信息的生成。与现有的情感对话生成方法相比,该模型所设计的位置编码和情感信息解码结合的方式,让情感词建立起全局位置信息,遮蔽方法的加入强制了解码器对情感下文的学习,有助于提高解码器的内容理解能力。实验结果为:

(1)不同评价指标的评价结果表明,位置感知的使用提升了生成语句的语法质量,在PPL指标上比序列到序列模型提升了7.36%。

(2)人工评价和可视化方式对句子生成效果的展示,表明模型可以生成情感内容丰富和符合语法的回复。

猜你喜欢

解码器解码编码器
融合CNN和Transformer编码器的变声语音鉴别与还原
《解码万吨站》
科学解码器(一)
设定多圈绝对值编码器当前圈数的方法
转炉系统常用编码器选型及调试
科学解码器(二)
科学解码器(三)
舞台机械技术与设备系列谈(二)
——编码器
线圣AudioQuest 发布第三代Dragonfly Cobalt蓝蜻蜓解码器
解码eUCP2.0