CN111782788A - 一种面向开放域对话系统的情感回复自动生成方法 - Google Patents

一种面向开放域对话系统的情感回复自动生成方法 Download PDF

Info

Publication number
CN111782788A
CN111782788A CN202010634898.3A CN202010634898A CN111782788A CN 111782788 A CN111782788 A CN 111782788A CN 202010634898 A CN202010634898 A CN 202010634898A CN 111782788 A CN111782788 A CN 111782788A
Authority
CN
China
Prior art keywords
reply
word
emotion
input
embedding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010634898.3A
Other languages
English (en)
Inventor
刘梦娟
包笑明
赵培
罗莉娟
杨云帆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN202010634898.3A priority Critical patent/CN111782788A/zh
Publication of CN111782788A publication Critical patent/CN111782788A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开一种面向开放域对话系统的情感回复自动生成方法,目的是使对话系统能够根据用户的输入语句自动生成内容丰富、情感合适的回复。首先,基于词嵌入表和VAD情感字典对语料库中每个样本的输入和回复语句进行预处理得到输入与回复的词嵌入序列和情感嵌入序列;其次,将词嵌入和情感嵌入拼接对词嵌入进行扩充并向模型引入回复的情感分布信息,将拼接序列在编码器中编码得到输入和回复包含情感信息的语义表示向量;最后,使用语义表示向量预测条件先验分布和后验分布的近似并采样潜变量,通过潜变量重构回复和回复的情感分布;在生成回复语句时,通过多次采样产生多条回复,然后结合序列到序列模型以及VAD字典,从回复的语法、语义和情感角度自动评分并选择最佳回复。

Description

一种面向开放域对话系统的情感回复自动生成方法
技术领域
本发明属于自然语言处理的人机对话领域,特别涉及一种基于深度神经网络的开放域对话系统的情感回复自动生成方法。
背景技术
近年来,对话机器人逐渐融入了人们的日常生活。例如Siri、小度、天猫精灵等语音助手,可以通过对话帮助人们完成一些简单的任务,例如定闹钟、播放音乐、闲聊等。目前,已有的对话系统根据领域知识划分,可以分为特定域对话系统和开放域对话系统两种类型。特定域对话系统局限于某个特定领域的背景知识来进行对话,与之相关的是面向任务的对话系统,例如电影购票辅助机器人。开放域对话系统没有这方面的限制,可以进行关于任何内容的闲聊,帮助人们放松心情,打发时间。除此之外,根据实现方式,对话系统还可以划分为基于检索、基于模板和生成式对话系统。传统的对话系统,主要是通过基于检索和基于模板的方法实现的。基于模板的对话系统需要耗费大量的人力制定模板,并基于机器学习算法填充模板里的槽值。基于检索的对话系统则需要拥有一个庞大的语料库作为支撑,并且无法回复语料库中没有的内容。这些方式可以很好的运用在面向任务的特定域对话系统中,但由于其缺陷无法很好的用于开放域的闲聊。最近,大量大规模公共数据集的出现和深度学习的兴起,使得基于数据驱动和深度神经网络的生成式方法成为可能。本发明提供的情感回复自动生成方法正是针对单轮对话场景的开放域生成式对话系统。
目前生成式对话系统最主要的模型是序列到序列(Sequence-to-Sequence,Seq2Seq)模型,它能够将一个序列转换到另一个序列,从而实现从输入到回复的转换,其结构如附图1所示。模型的结构为编码器-解码器(Encoder-Decoder)结构。首先将输入句子的每个词语转化成词嵌入,传入到由循环神经网络(RNN)构成的编码器中进行编码,得到输入句子的整体语义向量表示,然后利用这个语义向量初始化与编码器类似的解码器,最终得到对于这个输入的回复。这种模型存在的一个问题就是生成的回复缺乏多样性。根据语料库不同,产生的回复中一般都会存在几句出现频率较高且缺乏内容的通用的句子,例如“我不知道”,“我不确定”。产生这个问题主要的原因是模型使用最大似然估计方法确定生成的词语,容易导致训练数据中出现频次高的词被选中,从而造成回复偏向通用。
最新用于对话的条件变分自编码器(Conditional Variational Auto-Encoders,CVAE)模型在编码器-解码器的结构上引入了潜变量,通过采样潜变量并进行解码就能够得到一条与输入相关的回复,通过多次潜变量采样,就可以生成多个回复,从而实现了对话中输入与回复一对多的映射,大大提高了回复内容的多样性,其结构如附图2所示。但是,提高多样性带来的一个问题就是上下文的相关性降低。除此之外,传统预训练的词向量通常是由语言模型训练得到的,不包含任何的情感信息,容易造成模型生成的内容在情感表达上不合适。
为了使模型产生情感和内容上更合适且多样的回复,一种有效的方法就是通过VAD字典向模型引入额外的情感信息。VAD字典通过Best-Worst Scaling(BWS)的人为评价方式将词语映射到了词语语义中最重要且最独立的三个维度,分别是valence(价)、arousal(唤起)和 dominance(支配),值从0到1代表从最弱到最强。Valence是表示词语消极与积极程度的维度,例如“宴会”比“葬礼”更积极,所以“宴会”的V值(0.765)大于“葬礼”的V值(0.073)。 Arousal是表示词语被动与主动程度的维度,例如“紧张”比“懒散”更主动,所以“紧张”的A值(0.820)大于“紧张”的A值(0.264)。Dominance是表示词语顺从与统治程度的维度,例如“斗争”比“柔弱”更具有统治力,所以“斗争”的D值(0.809)大于“柔弱”的 D值(0.366)。在对话系统中引入VAD字典,可以使生成模型理解语义的情感信息,从而加深模型对自然语言的理解,产生情感上更合适的回复。
为此本发明提供一个将VAD情感字典与条件变分自编码器相结合、面向开放域对话系统的、针对单轮对话的回复自动生成方法。本发明提供的方法不仅学习回复中隐含的情感分布,使情感更大程度上影响模型对生成词语的选择,而且对生成回复的内容和情感进行显式的控制,从而使对话系统生成的回复在内容和情感上更加丰富、合适且多样。
发明内容
本发明提供一个面向开放域对话系统的回复自动生成方法,该方法能够结合VAD情感字典产生内容丰富、情感合适的回复。为实现上述发明目的,本发明提供的面向开放域对话系统的情感回复自动生成方法,其特征在于,包括以下步骤:
步骤1:构建对话语料库,对语料库中的输入-回复对(X,Y)进行分词处理,得到输入和回复语句的词序列,输入语句的词序列记为X={w1,w2,...,wM},回复语句的词序列记为 Y={w1,w2,...,wN},wi代表句子中的第i个词语,M和N分别是输入和回复语句中包含的词语数量;
步骤2:基于预训练得到的词嵌入表,将输入和回复语句的词序列分别映射为词嵌入向量, X={w1,w2,...,wM}→eX={e1,e2,...,eM},Y={w1,w2,...,wN}→eY={e1,e2,...,eN},这里ei是词语wi的词嵌入向量,词嵌入把每个词语表示成为固定维度为L的向量,两个向量的距离越小,表示两个向量对应词语的词义越近;基于人为制定的VAD情感字典,将输入和回复句子的词序列分别映射为情感嵌入向量,X={w1,w2,...,wM}→aX={a1,a2,...,aM},Y={w1,w2,...,wN}→ aY={a1,a2,...,aN},这里ai是词语wi人为标注的情感向量,它包含了3个固定情感维度,分别是V(valence)、A(arousal)、D(dominance)值;
步骤3:将输入语句的词嵌入向量和情感嵌入向量按每个词语进行拼接,得到拼接后的表示向量,记为{eX aX}={(e1 a1),(e2 a2),...,(eM aM)},这里(ei ai)表示输入语句中第i个词语的词嵌入向量和情感嵌入向量拼接后的表示向量,其向量维度为L+3;将回复语句的词嵌入向量和情感嵌入向量按每个词语进行拼接,得到拼接后的表示向量,记为{eYaY}= {(e1 a1),(e2 a2),...,(eN aN)},这里(ei ai)表示回复语句中第i个词语的词嵌入向量和情感嵌入向量拼接后的表示向量,其向量维度为L+3;
步骤4:将输入和回复语句拼接后的表示向量{eX aX}和{eY aY},分别输入到由GRU构成的输入编码器EncoderX和回复编码器EncoderY中,编码器结构如附图3所示,采用公式(1) 更新编码器每个时刻的状态,GRU(·)表示由GRU构成的编码器的输出,这里ht-1和ht分别表示GRU编码器在时刻t-1和时刻t的输出向量,(et at)表示第t个词语对应的词嵌入和情感嵌入拼接后的表示向量;输入语句的编码器最后时刻的输出向量记为hM,回复语句的编码器最后时刻的输出向量记为hN,hM和hN分别作为输入和回复的语义表示向量cX和cY,该语义向量也包含了句子的情感信息;
ht=GRU(ht-1,(et at)) (1)
步骤5:通过语义表示向量cX预测条件先验概率P(z|X,AX),P(z|X,AX)表示在数据X和 AX出现的情况下潜变量z的概率分布,这里AX表示输入X的情感信息;通过语义表示向量cX和cY预测后验概率P(z|X,AX,Y,AY)的近似,P(z|X,AX,Y,AY)表示在数据X和AX,以及后验数据Y和AY同时出现的情况下潜变量z的概率分布,这里AY表示回复Y的情感信息;使用重参数化的技巧从条件先验分布和后验分布的近似中分别采样潜变量z'和z,具体步骤为:
步骤5.1:将输入语句的语义表示向量cX输入到由全连接神经网络构成的条件先验网络 pθ(z|X,AX)中,这里条件先验网络pθ(z|X,AX)假定为d维独立高斯分布
Figure RE-GDA0002620511150000031
基于公式(2)预测d维独立高斯分布的均值μ'和方差σ'2,θ代表条件先验网络的参数,这里W1、W2是全连接先验网络的权值矩阵,b1、b2是全连接先验网络的偏置项,条件先验网络结构如附图4 所示;
μ'=W1cX+b1,σ'2=W2cX+b2 (2)
步骤5.2:将输入的语义表示向量cX和回复的语义表示向量cY拼接得到{cX cY},输入到由全连接神经网络构成的识别网络qφ(z|X,AX,Y,AY)中,后验概率的近似假定为d维独立高斯分布
Figure RE-GDA0002620511150000032
基于公式(3)预测d维独立高斯分布的均值μ和方差σ2,φ代表识别网络的参数,这里W3、W4是全连接识别网络的权值矩阵,b3、b4是全连接识别网络的偏置项,识别网络结构如附图5所示;
μ=W3(cX;cY)+b3,σ2=W4(cX;cY)+b4 (3)
步骤5.3:从d维独立标准高斯分布
Figure RE-GDA0002620511150000033
中采样d维变量ε'和ε,通过重参数化的方法,即公式(4)和(5)分别从条件先验和识别网络中得到满足d维独立高斯分布
Figure RE-GDA0002620511150000034
Figure RE-GDA0002620511150000035
的d维潜变量z'和z;
z'=μ'+ε'σ' (4)
z=μ+εσ (5)
步骤6:使用潜变量z和输入语句的语义表示向量cX初始化解码器,解码器结构如附图6 所示,顺序解码得到每个时刻t,模型对词汇表V中每个词语预测的生成概率Y′t={p1,p2,...,p|V|},具体步骤为:
步骤6.1:将潜变量z和输入语句的语义表示向量cX拼接得到(z cX),然后通过线性变换 W((z cX))+b转换到和解码器网络输出相同的维度,作为解码器的初始状态h0,这里W是线性变换的权值矩阵,b是偏置项;
步骤6.2:在回复语句拼接后的表示向量{eY aY}的起始位置加入句子起始标志<s>的词嵌入向量和情感嵌入向量的拼接(e0(<s>)a0(<s>)),作为解码器第一个时刻的输入,用来预测真实回复Y中的第一个词语w1,而{eY aY}的最后一个拼接(eN aN)用来预测句子的结束标志</s>,将序列{(e0 a0),(e1 a1),(e2 a2),...,(eN aN)}顺序输入到由GRU构成的解码器中,通过公式(6)计算每个时刻t,解码器的输出状态ht,由于最后需要预测句子结束标志</s>表示句子的结束,所以t∈[1,N+1],
Figure RE-GDA0002620511150000041
ht=GRU(ht-1,(et at)) (6)
步骤6.3:将ht输入到由全连接神经网络构成的输出层,通过公式(7)将编码器输出维度转换到词汇表的维度|V|,预测每个时刻t,词汇表V中每个词语的生成概率Y′t={p1,p2,...,p|V|},这里Wo是全连接输出层的权值矩阵,bo是全连接输出层的偏置项;
Figure RE-GDA0002620511150000042
步骤7:计算重构真实回复中每个词语VAD值时的情感损失,计算重构真实回复中每个词语时的NLL(Negative Log-Likelihood)损失,计算条件先验分布和识别网络预测的真实后验分布的近似之间的KL(Kullback-Leibler)散度损失,将三部分损失加权求和作为最终的损失,并使用KL退火训练回复生成模型,具体步骤为:
步骤7.1:将时刻t每个词语的预测概率Yt'作为权值,通过公式(8)对情感字典VAD={vad1,vad2,...,vad|V|}进行加权求和计算当前时刻t输出的VAD情感值,vadi代表词汇表中第i个词语的3维VAD值,pi代表时刻t词汇表中第i个词语的生成概率;
Figure RE-GDA0002620511150000043
步骤7.2:通过公式(9)计算情感重构的损失,这里
Figure RE-GDA0002620511150000044
是真实回复Y中第t个词语的3维 VAD值,||·||代表L2范数;
Figure RE-GDA0002620511150000045
步骤7.3:根据公式(10)计算语义重构的NLL损失,P(yt'=wt)代表在时刻t预测的词语yt' 是加上结束标志的真实回复序列{w1,w2,...,wN,wN+1}中词语wt的概率,其中wN+1=</s>代表句子结束标志;
Figure RE-GDA0002620511150000051
步骤7.4:通过公式(11)计算条件先验分布
Figure RE-GDA0002620511150000052
和真实后验分布近似
Figure RE-GDA0002620511150000053
之间的 KL散度损失,
Figure RE-GDA0002620511150000054
Figure RE-GDA0002620511150000055
都是d维独立高斯分布,Σ'和Σ分别是条件先验分布
Figure RE-GDA0002620511150000056
和真实后验分布近似
Figure RE-GDA0002620511150000057
的协方差矩阵,这里cij表示d维独立高斯分布第i个分量Xi和第j个分量Xj的协方差COV(Xi,Xj),由于d维独立高斯分布各个分量独立,所以 cij=0(i≠j),
Figure RE-GDA0002620511150000058
tr(·)代表矩阵的迹;
Figure RE-GDA0002620511150000059
Figure RE-GDA00026205111500000510
步骤7.5:重新定义变分下界为公式(12),由于模型的对数似然函数
Figure RE-GDA00026205111500000511
所以最大化变分下界等同于对模型进行极大似然估计,由最大化该变分下界得到最小化三部分损失之和,即基于损失函数公式(13)训练模型,这里λ是条件先验分布
Figure RE-GDA00026205111500000512
和真实后验分布近似
Figure RE-GDA00026205111500000513
之间的KL散度损失的权值,训练时对第三项KL散度损失进行周期性退火,一个周期为T,在0到T/2时刻,λ从0逐渐增加到1,在T/2到T时刻,λ保持为1,然后开始下个周期的训练,再次使λ从0逐渐增加到1,然后保持为1,通过训练,最终获得模型编码器、解码器、先验网络及识别网络的参数;
Figure RE-GDA00026205111500000514
Figure RE-GDA00026205111500000515
步骤8:对于一个新的用户输入语句,执行1-5步中对输入语句的处理,从条件先验分布中采样C个潜变量z',对于C个潜变量都执行一次步骤6,通过公式(14)选择每个时刻t,模型生成的词语yt',从而产生C个候选回复;
y′t=argmaxY′t (14)
步骤9:使用三个评分器主要从生成回复的语法、语义、情感三个方面对C个候选回复评分,并从C个候选回复中选择一个合适的回复作为模型最终输出的回复,具体步骤为:
步骤9.1:执行步骤1-3,将输入和回复的词嵌入序列和情感嵌入序列按每个词语拼接得到拼接序列{eX aX}和{eY aY},将其作为输入,并使用交叉熵损失训练一个引入VAD情感信息的Seq2Seq模型,Seq2Seq模型的编码器和解码器都采用和本模型相同的结构,模型结构如附图7所示;
步骤9.2:在评估生成回复时,将输入和生成回复作为模型输入通过公式(15)计算困惑度指标(Perplexity,PPL)作为回复的语法分数ssyntax,这里
Figure RE-GDA0002620511150000061
代表生成回复的长度,
Figure RE-GDA0002620511150000062
代表Seq2Seq模型预测的第t个词语y′t是生成回复
Figure RE-GDA0002620511150000063
中第t个词语
Figure RE-GDA0002620511150000064
的概率;
Figure RE-GDA0002620511150000065
步骤9.3:在将输入的词嵌入序列和情感嵌入序列按每个词语拼接得到拼接序列{eX aX},通过公式(16)计算得到包含情感信息的输入语句的嵌入EX,对于生成的回复以同样的方式计算得到回复语句的嵌入EY
Figure RE-GDA0002620511150000066
步骤9.4:通过公式(17)计算输入和回复语句嵌入之间的余弦相似度作为回复的语义分数 ssemantics
Figure RE-GDA0002620511150000067
步骤9.5:通过公式(18)计算输入语句的情感嵌入EAX,这里ai是句子中第i个词语的VAD 值,以同样的方式计算回复语句的情感嵌入EAY,在计算时忽略输入和回复中中性情感的词语,即VAD值为[0.5,0.5,0.5]的词语;
Figure RE-GDA0002620511150000068
步骤9.6:从V值表示情感积极与消极、A值表示情感主动与被动、D值表示情感支配与服从的实际含义出发,制定三项奖励
Figure RE-GDA0002620511150000069
Figure RE-GDA00026205111500000610
对句子的情感进行控制,鼓励V值相近,A和D值不相近的句子,让对话能够易于进行下去,将三部分求和作为一个候选回复的整体情感分数saffection=sV+sA+sD
步骤9.7:对于C个候选回复的C个语法分数通过公式(19)归一化得到归一化后的语法分数
Figure RE-GDA00026205111500000611
这里smin表示C个候选回复中最低的语法分数,smax表示C个候选回复中最高的语法分数,si表示第i个候选回复的语法分数,以同样的方式对语义和情感分数归一化得到归一化后的语义分数
Figure RE-GDA00026205111500000612
和情感分数
Figure RE-GDA00026205111500000613
Figure RE-GDA00026205111500000614
步骤9.8:对语法、语义、情感分数通过公式(20)进行加权求和作为最后的分数,对生成的多个回复进行重排序,选择一个得分最高的回复进行输出,这里α、β、γ是预先设置的超参数。
Figure RE-GDA0002620511150000071
附图8是本发明的发明内容提供的面向开放域对话系统的回复自动生成方法的整体结构图。
附图说明
图1是本发明背景技术提供的序列到序列模型的结构示意图
图2是本发明背景技术提供的条件变分自编码器模型的结构示意图
图3是本发明的发明内容提供的编码器结构图
图4是本发明的发明内容提供的条件先验网络结构图
图5是本发明的发明内容提供的识别网络结构图
图6是本发明的发明内容提供的解码器结构图
图7是本发明的发明内容提供的引入VAD情感信息的Seq2Seq模型结构图
图8是本发明的发明内容提供的面向开放域对话系统的回复自动生成方法的整体结构图
图9是本发明的具体实施方式提供的面向开放域对话系统的回复自动生成方法的流程图
图10是本发明的具体实施方式提供的从条件先验分布和后验分布近似中采样潜变量方法的流程图
图11是本发明的具体实施方式提供的解码器预测生成回复的流程图
图12是本发明的具体实施方式提供的计算模型损失并训练模型的流程图
图13是本发明的具体实施方式提供的解码器预测情感的结构图
图14是本发明的具体实施方式提供的模型计算回复得分并选择生成回复的流程图
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
图9是本发明提供的一种面向开放域对话系统的回复自动生成方法的流程图,步骤包括:
步骤1:构建对话语料库,对语料库中的输入-回复对(X,Y)进行分词处理,得到输入和回复语句的词序列,输入语句的词序列记为X={w1,w2,...,wM},回复语句的词序列记为 Y={w1,w2,...,wN},wi代表句子中的第i个词语,M和N分别是输入和回复语句中包含的词语数量;
步骤2:基于预训练得到的词嵌入表,将输入和回复语句的词序列分别映射为词嵌入向量,X={w1,w2,...,wM}→eX={e1,e2,...,eM},Y={w1,w2,...,wN}→eY={e1,e2,...,eN},这里ei是词语wi的词嵌入向量,词嵌入把每个词语表示成为固定维度为L的向量,两个向量的距离越小,表示两个向量对应词语的词义越近;基于人为制定的VAD情感字典,将输入和回复句子的词序列分别映射为情感嵌入向量,X={w1,w2,...,wM}→aX={a1,a2,...,aM},Y={w1,w2,...,wN}→ aY={a1,a2,...,aN},这里ai是词语wi人为标注的情感向量,它包含了3个固定情感维度,分别是V(valence)、A(arousal)、D(dominance)值;
步骤3:将输入语句的词嵌入向量和情感嵌入向量按每个词语进行拼接,得到拼接后的表示向量,记为{eX aX}={(e1 a1),(e2 a2),...,(eM aM)},这里(ei ai)表示输入语句中第i个词语的词嵌入向量和情感嵌入向量拼接后的表示向量,其向量维度为L+3;将回复语句的词嵌入向量和情感嵌入向量按每个词语进行拼接,得到拼接后的表示向量,记为{eYaY}= {(e1 a1),(e2 a2),...,(eN aN)},这里(ei ai)表示回复语句中第i个词语的词嵌入向量和情感嵌入向量拼接后的表示向量,其向量维度为L+3;
步骤4:将输入和回复语句拼接后的表示向量{eX aX}和{eY aY},分别输入到由GRU构成的输入编码器EncoderX和回复编码器EncoderY中,编码器结构如附图3所示,采用公式(1) 更新编码器每个时刻的状态,GRU(·)表示由GRU构成的编码器的输出,这里ht-1和ht分别表示GRU编码器在时刻t-1和时刻t的输出向量,(et at)表示第t个词语对应的词嵌入和情感嵌入拼接后的表示向量;输入语句的编码器最后时刻的输出向量记为hM,回复语句的编码器最后时刻的输出向量记为hN,hM和hN分别作为输入和回复的语义表示向量cX和cY,该语义向量也包含了句子的情感信息;
步骤5:通过语义表示向量cX预测条件先验概率P(z|X,AX),P(z|X,AX)表示在数据X和 AX出现的情况下潜变量z的概率分布,这里AX表示输入X的情感信息;通过语义表示向量cX和cY预测后验概率P(z|X,AX,Y,AY)的近似,P(z|X,AX,Y,AY)表示在数据X和AX,以及后验数据Y和AY同时出现的情况下潜变量z的概率分布,这里AY表示回复Y的情感信息;使用重参数化的技巧从条件先验分布和后验分布的近似中分别采样潜变量z'和z,附图10是从条件先验分布和后验分布近似中采样潜变量的流程图,具体步骤为:
步骤5.1:将输入语句的语义表示向量cX输入到由全连接神经网络构成的条件先验网络 pθ(z|X,AX)中,这里条件先验网络pθ(z|X,AX)假定为d维独立高斯分布
Figure RE-GDA0002620511150000081
基于公式(2)预测d维独立高斯分布的均值μ'和方差σ'2,θ代表条件先验网络的参数,这里W1、W2是全连接先验网络的权值矩阵,b1、b2是全连接先验网络的偏置项,条件先验网络结构如附图4 所示;
步骤5.2:将输入的语义表示向量cX和回复的语义表示向量cY拼接得到{cX cY},输入到由全连接神经网络构成的识别网络qφ(z|X,AX,Y,AY)中,后验概率的近似假定为d维独立高斯分布
Figure RE-GDA0002620511150000082
基于公式(3)预测d维独立高斯分布的均值μ和方差σ2,φ代表识别网络的参数,这里W3、W4是全连接识别网络的权值矩阵,b3、b4是全连接识别网络的偏置项,参数随机进行初始化,识别网络结构如附图5所示;
步骤5.3:从d维标准高斯分布
Figure RE-GDA0002620511150000091
中采样d维变量ε'和ε,通过重参数化的方法,即公式(4)和(5)分别从条件先验和识别网络中得到满足d维高斯分布
Figure RE-GDA0002620511150000092
Figure RE-GDA0002620511150000093
的d 维潜变量z'和z;
步骤6:使用潜变量z和输入语句的语义表示向量cX初始化解码器,解码器结构如附图6 所示,顺序解码得到每个时刻t,模型对词汇表V中每个词语预测的生成概率Yt'={p1,p2,...,p|V|},附图11是解码器预测生成回复的流程图,具体步骤为:
步骤6.1:将潜变量z和输入语句的语义表示向量cX拼接得到(z cX),然后通过线性变换 W((z cX))+b转换到和解码器网络输出相同的维度,作为解码器的初始状态h0,这里W是线性变换的权值矩阵,b是偏置项,参数随机进行初始化;
步骤6.2:在回复语句拼接后的表示向量{eY aY}的起始位置加入句子起始标志<s>的词嵌入向量和情感嵌入向量的拼接(e0(<s>)a0(<s>)),作为解码器第一个时刻的输入,用来预测真实回复Y中的第一个词语w1,而{eY aY}的最后一个拼接(eN aN)用来预测句子的结束标志</s>,将序列{(e0 a0),(e1 a1),(e2 a2),...,(eN aN)}顺序输入到由GRU构成的解码器中,通过公式(6)计算每个时刻t,解码器的输出状态ht,由于最后需要预测句子结束标志</s>表示句子的结束,所以t∈[1,N+1],
Figure RE-GDA0002620511150000094
步骤6.3:将ht输入到由全连接神经网络构成的输出层,通过公式(7)将编码器输出维度转换到词汇表的维度|V|,预测每个时刻t,词汇表V中每个词语的生成概率Yt'={p1,p2,...,p|V|},这里Wo是全连接输出层的权值矩阵,bo是全连接输出层的偏置项,参数随机进行初始化;
步骤7:计算重构真实回复中每个词语VAD值时的情感损失,计算重构真实回复中每个词语时的NLL(Negative Log-Likelihood)损失,计算条件先验分布和识别网络预测的真实后验分布的近似之间的KL(Kullback-Leibler)散度损失,将三部分损失加权求和作为最终的损失,并使用KL退火训练回复生成模型,附图12是计算模型损失并训练模型的流程图,具体步骤为:
步骤7.1:将时刻t每个词语的预测概率Yt'作为权值,通过公式(8)对情感字典VAD={vad1,vad2,...,vad|V|}进行加权求和计算当前时刻t输出的VAD情感值,vadi代表词汇表中第i个词语的3维VAD值,pi代表时刻t词汇表中第i个词语的生成概率;附图13是解码器预测情感的结构图;
步骤7.2:通过公式(9)计算情感重构的损失,这里
Figure RE-GDA0002620511150000095
是真实回复Y中第t个词语的3维 VAD值,||·||代表L2范数;
步骤7.3:根据公式(10)计算语义重构的NLL损失,P(yt'=wt)代表在时刻t预测的词语yt' 是加上结束标志的真实回复序列{w1,w2,...,wN,wN+1}中词语wt的概率,其中wN+1=</s>代表句子结束标志;
步骤7.4:通过公式(11)计算条件先验分布
Figure RE-GDA0002620511150000096
和真实后验分布近似
Figure RE-GDA0002620511150000097
之间的 KL散度损失,
Figure RE-GDA0002620511150000098
Figure RE-GDA0002620511150000099
都是d维独立高斯分布,Σ'和Σ分别是条件先验分布
Figure RE-GDA0002620511150000101
和真实后验分布近似
Figure RE-GDA0002620511150000102
的协方差矩阵,这里cij表示d维独立高斯分布第i个分量Xi和第j个分量Xj的协方差COV(Xi,Xj),由于d维独立高斯分布各个分量独立,所以 cij=0(i≠j),
Figure RE-GDA0002620511150000103
tr(·)代表矩阵的迹;
步骤7.5:重新定义变分下界为公式(12),由于模型的对数似然函数所以最大化变分下界等同于对模型进行极大似然估计,由最大化该变分下界得到最小化三部分损失之和,即基于损失函数公式(13)训练模型,这里λ是条件先验分布
Figure RE-GDA0002620511150000105
和真实后验分布近似
Figure RE-GDA0002620511150000106
之间的KL散度损失的权值,训练时对第三项KL散度损失进行周期性退火,一个周期为T,在0到T/2时刻,λ从0逐渐增加到1,在T/2到T时刻,λ保持为1,然后开始下个周期的训练,再次使λ从0逐渐增加到1,然后保持为1,通过训练,最终获得模型编码器、解码器、先验网络及识别网络的参数;
步骤8:对于一个新的用户输入语句,执行1-5步中对输入语句的处理,从条件先验分布中采样C个潜变量z',对于C个潜变量都执行一次步骤6,通过公式(14)选择每个时刻t,模型生成的词语yt',从而产生C个候选回复;
步骤9:使用三个评分器主要从生成回复的语法、语义、情感三个方面对C个候选回复评分,并从C个候选回复中选择一个合适的回复作为模型最终输出的回复,附图14是模型计算回复得分并选择生成回复的流程图,具体步骤为:
步骤9.1:执行步骤1-3,将输入和回复的词嵌入序列和情感嵌入序列按每个词语拼接得到拼接序列{eX aX}和{eY aY},将其作为输入,并使用交叉熵损失训练一个引入VAD情感信息的Seq2Seq模型,Seq2Seq模型的编码器和解码器都采用和本模型相同的结构,模型结构如附图7所示;
步骤9.2:在评估生成回复时,将输入和生成回复作为模型输入通过公式(15)计算困惑度指标(Perplexity,PPL)作为回复的语法分数ssyntax,这里
Figure RE-GDA0002620511150000107
代表生成回复的长度,
Figure RE-GDA0002620511150000108
代表Seq2Seq模型预测的第t个词语yt'是生成回复
Figure RE-GDA0002620511150000109
中第t个词语
Figure RE-GDA00026205111500001010
的概率;
步骤9.3:在将输入的词嵌入序列和情感嵌入序列按每个词语拼接得到拼接序列{eX aX},通过公式(16)计算得到包含情感信息的输入语句的嵌入EX,对于生成的回复以同样的方式计算得到回复语句的嵌入EY
步骤9.4:通过公式(17)计算输入和回复语句嵌入之间的余弦相似度作为回复的语义分数 ssemantics
步骤9.5:通过公式(18)计算输入语句的情感嵌入EAX,这里ai是句子中第i个词语的VAD 值,以同样的方式计算回复语句的情感嵌入EAY,在计算时忽略输入和回复中中性情感的词语,即VAD值为[0.5,0.5,0.5]的词语;
步骤9.6:从V值表示情感积极与消极、A值表示情感主动与被动、D值表示情感支配与服从的实际含义出发,制定三项奖励
Figure RE-GDA00026205111500001011
Figure RE-GDA00026205111500001012
对句子的情感进行控制,鼓励V值相近,A和D值不相近的句子,让对话能够易于进行下去,将三部分求和作为一个候选回复的整体情感分数saffection=sV+sA+sD
步骤9.7:对于C个候选回复的C个语法分数通过公式(19)归一化得到归一化后的语法分数
Figure RE-GDA0002620511150000111
这里smin表示C个候选回复中最低的语法分数,smax表示C个候选回复中最高的语法分数,si表示第i个候选回复的语法分数,以同样的方式对语义和情感分数归一化得到归一化后的语义分数
Figure RE-GDA0002620511150000112
和情感分数
Figure RE-GDA0002620511150000113
步骤9.8:对语法、语义、情感分数通过公式(20)进行加权求和作为最后的分数,对生成的多个回复进行重排序,选择一个得分最高的回复进行输出,这里α、β、γ是预先设置的超参数,α、β、γ实施分别设置为0.1,0.5,0.4,更注重上下文的相关性和句子的情感。
实施例
为使本发明的目的、技术方案和优点更加清楚,下面结合实施例对其中的技术方案进行清楚、完整地描述。
步骤1:构建对话语料库,对语料库中的输入-回复对(X,Y)进行分词处理,得到输入和回复语句的词序列,输入语句的词序列记为X={w1,w2,...,wM},回复语句的词序列记为 Y={w1,w2,...,wN},wi代表句子中的第i个词语,M和N分别是输入和回复语句中包含的词语数量,在本实施例中,假设对话语料库中存在一个训练样本:(X,Y)=(“你猜什么?我有个大新闻!”,“是什么?”),对其进行分词处理得到输入和回复的词语序列 X={你,猜,什么,?,我,有,个,大新闻,!},Y={是,什么,?},M=9,N=3;
步骤2:基于预训练得到的词嵌入表,将输入和回复句子的词序列分别映射为词嵌入序列, X={w1,w2,...,wM}→eX={e1,e2,...,eM},Y={w1,w2,...,wN}→eY={e1,e2,...,eN},基于人为制定的VAD 情感字典,将输入和回复句子的词序列分别映射为情感嵌入序列, X={w1,w2,...,wM}→aX={a1,a2,...,aM},Y={w1,w2,...,wN}→aY={a1,a2,...,aN},词嵌入是固定维度为L=3的向量,情感嵌入也是固定维度为3的向量,表1是输入和回复的词嵌入和情感嵌入表:
表1输入和回复的词嵌入和情感嵌入表
Figure RE-GDA0002620511150000114
Figure RE-GDA0002620511150000121
步骤3:将输入和回复的词嵌入序列和情感嵌入序列按每个词语拼接得到6维的向量序列 {eX aX}={(e1 a1),(e2 a2),...,(eM aM)}和{eY aY}={(e1 a1),(e2 a2),...,(eNaN)},以输入的第一个词语“你”为例:
(e1 a1)=[0.3757,-0.8385,0.1606,0.53,0.64,0.51]T
步骤4:将各个词语拼接后的嵌入{eX aX}和{eY aY}顺序输入到由1层GRU构成的输入编码器EncoderX和回复编码器EncoderY中,更新编码器每个时刻的状态,编码器的输出维度为 3;将输入和回复编码器的最终状态hM和hN分别作为输入和回复的语义表示向量cX和cY
cX=hM=[-0.2268,1.3772,-3.1126]T,cY=hN=[-0.6768,-0.3677,-0.2707]T
步骤5:通过语义表示向量cX预测条件先验概率P(z|X,AX),通过语义表示向量cX和cY预测后验概率P(z|X,AX,Y,AY)的近似,使用重参数化的技巧从条件先验和后验的近似中分别采样潜变量z'和z,具体如下:
步骤5.1:将输入句子的语义向量cX输入到由全连接神经网络构成的条件先验网络 pθ(z|X,AX)中,条件先验网络的参数如下:
Figure RE-GDA0002620511150000122
b1=[-0.5491,-1.5039,0.4348]T
Figure RE-GDA0002620511150000123
b2=[-0.6128,-0.2332,0.0720]T
条件先验网络pθ(z|X,AX)假定为3维独立高斯分布
Figure RE-GDA0002620511150000124
预测高斯分布的均值μ'和方差σ'2,为了计算方便,这里预测logσ'2
Figure RE-GDA0002620511150000125
logσ'2=W2cX+b2=[-1.6428,1.1716,-1.5954]T
步骤5.2:将输入的语义向量cX和回复的语义向量cY拼接成(cX cY):
(cX cY)=[-0.2268,1.3772,-3.1126,-0.6768,-0.3677,-0.2707]T
将其输入到由全连接神经网络构成的识别网络qφ(z|X,AX,Y,AY),识别网络的参数如下:
Figure RE-GDA0002620511150000131
b3=[0.3988,0.0702,0.1727]T
Figure RE-GDA0002620511150000132
b4=[0.2655,-0.9289,-0.7198]T
后验概率的近似假定为3维独立高斯分布
Figure RE-GDA0002620511150000133
预测高斯分布的均值μ和方差σ2,为了计算方便,这里预测logσ2
Figure RE-GDA0002620511150000134
logσ2=W4(cX cY)+b4=[2.4889,-1.3515,4.3727]T
步骤5.3:从3维独立标准高斯分布
Figure RE-GDA0002620511150000135
中采样d维变量ε'和ε:
ε'=[-0.4834,1.3985,-0.4597]T
ε=[-1.6431,2.3455,1.0437]T
通过重参数化的方法分别从条件先验和识别网络中得到满足3维独立高斯分布
Figure RE-GDA0002620511150000139
Figure RE-GDA0002620511150000136
的潜变量z'和z:
Figure RE-GDA0002620511150000137
Figure RE-GDA0002620511150000138
步骤6:使用潜变量z和语义向量cX初始化解码器,顺序解码得到每个时刻t词汇表中每个词语预测的概率Yt',具体如下:
步骤6.1:将潜变量z和输入的语义向量cX拼接得到(z cX):
(z cX)=[-6.4721,-0.4472,10.5619,-0.2268,1.3772,-3.1126]T
通过线性变换W(z cX)+b转换到解码器网络的输出维度3,作为解码器的初始状态h0
Figure RE-GDA0002620511150000141
步骤6.2:在回复语句拼接后的表示向量{eY aY}的起始位置加入句子起始标志<s>的词嵌入向量和情感嵌入向量的拼接(e0(<s>)a0(<s>)),作为解码器第一个时刻的输入,用来预测真实回复Y中的第一个词语w1,而{eY aY}的最后一个拼接(eN aN)用来预测句子的结束标志</s>,将序列{(e0 a0),(e1 a1),(e2 a2),...,(eN aN)}顺序输入到由GRU构成的解码器中,通过公式(6)计算每个时刻t,解码器的输出状态ht,由于最后需要预测句子结束标志</s>表示句子的结束,所以t∈[1,N+1],
Figure RE-GDA0002620511150000142
步骤6.3:将ht输入到由全连接神经网络构成的输出层,通过公式(7)预测每个时刻t词汇表 V中每个词语的概率Yt'={p1,p2,...,p|V|},表2是各个时刻模型对词汇表中词语生成概率的预测:
表2各个时刻模型对词汇表中词语生成概率的预测
什么 </s>
t=1 0.6 0.2 0.1 0.1
t=2 0.1 0.7 0.1 0.1
t=3 0.1 0.1 0.6 0.2
t=4 0.1 0.1 0.2 0.6
步骤7:计算重构真实回复中,每个词语VAD值时的情感损失,计算重构真实回复中每个词语时的NLL(Negative Log-Likelihood)损失,计算条件先验分布和识别网络预测的真实后验分布的近似之间的KL(Kullback-Leibler)散度损失,将三部分损失加权求和作为最终的损失,并使用KL退火训练回复生成模型,具体如下:
步骤7.1:表3是情感字典:
表3情感字典
词语 情感嵌入
[0.51,0.55,0.51]<sup>T</sup>
什么 [0.45,0.57,0,6]<sup>T</sup>
[0.5,0.5,0.5]<sup>T</sup>
</s> [0.5,0.5,0.5]<sup>T</sup>
将每个时刻t每个词语预测概率作为权值,对情感字典进行加权求和计算当前时刻t的重构后验VAD情感值:
Figure RE-GDA0002620511150000151
同样计算
Figure RE-GDA0002620511150000152
Figure RE-GDA0002620511150000153
步骤7.2:通过公式(9)计算情感重构的损失;
Figure RE-GDA0002620511150000154
步骤7.3:根据公式(10)计算计算语义重构的NLL损失;
Figure RE-GDA0002620511150000155
步骤7.4:通过公式(11)计算条件先验分布
Figure RE-GDA0002620511150000156
和真实后验分布近似
Figure RE-GDA0002620511150000157
之间的 KL散度损失;
Figure RE-GDA0002620511150000158
步骤7.5:计算三部分损失之和,基于损失函数公式(13)训练模型,训练时对第三项KL散度损失进行周期性退火,假定一个周期为5000次参数更新,在0到2500次更新中,λ以速率 1/2500从0逐渐增加到1,在2500次到5000次参数更新时,λ保持为1,然后开始下个周期的训练,再次使λ从0逐渐增加到1,然后保持为1;
步骤8:对于一个新的用户输入语句,执行1-5步中对输入的处理,从条件先验分布中采样3个潜变量z',对于每个采样的潜变量都执行一次步骤6,通过公式(14)选择每个时刻t生成的词语yt',从而产生3个候选回复,表4是对于输入“你猜什么?我有个大新闻!”的3条生成回复:
表4对于输入生成的3条候选回复
Figure RE-GDA0002620511150000159
Figure RE-GDA0002620511150000161
步骤9:使用三个评分器主要从生成回复的语法、语义、情感三个方面对C个候选回复评分,并从C个候选回复中选择一个合适的回复作为模型最终输出的回复,具体如下:
步骤9.1:执行步骤1-3,将输入和回复的词嵌入序列和情感嵌入序列按每个词语拼接得到拼接序列{eX aX}和{eY aY},将其作为输入,并使用交叉熵损失训练一个引入VAD情感信息的Seq2Seq模型,Seq2Seq模型的编码器和解码器都采用和本模型相同的结构;
步骤9.2:在评估生成回复时,将输入和生成回复作为模型输入通过公式(15)计算PPL作为回复的语法分数ssyntax,以第一条回复“我不认为你有一个好消息。”举例,表5是各个时刻 Seq2Seq模型对第一条回复中的词语{我,不,认为,你,有,一个,好消息,。}的预测概率:
表5各个时刻Seq2Seq模型对回复中词语的预测概率
时刻 1 2 3 4 5 6 7 8
词语 认为 一个 好消息
生成概率 0.9 0.5 0.5 0.7 0.8 0.3 0.6 0.9
语法分数为
Figure RE-GDA0002620511150000162
以同样的方式计算得到第二条和第三条回复的语法分数;
步骤9.3:在将输入的词嵌入序列和情感嵌入序列按每个词语拼接得到拼接序列{eX aX},通过公式(16)计算得到包含情感信息的输入的句子嵌入EX
Figure RE-GDA0002620511150000163
以同样的方式计算3条生成回复的句子嵌入;
步骤9.4:通过公式(17)计算输入和回复句子嵌入之间的余弦相似度作为回复的语义分数 ssemantics
步骤9.5:通过公式(18)计算输入的句子情感嵌入EAX,并且计算时忽略输入和回复中中性情感的词语,即VAD值为[0.5,0.5,0.5]的词语:
Figure RE-GDA0002620511150000164
以同样的方式计算3条生成回复的情感嵌入;
步骤9.6:从V值表示情感积极与消极、A值表示情感主动与被动、D值表示情感支配与服从的实际含义出发,制定三项奖励
Figure RE-GDA0002620511150000171
Figure RE-GDA0002620511150000172
对句子的情感进行控制,鼓励V值相近,A和D值不相近的句子,让对话能够易于进行下去,将三部分求和作为一个候选回复的整体情感分数saffection=sV+sA+sD
步骤9.7:对于3个候选回复的3个语法分数通过公式(19)归一化得到归一化后的语法分数
Figure RE-GDA0002620511150000173
例如3条候选回复的语法分数分别为1.633,1,2
Figure RE-GDA0002620511150000174
以同样的方式计算
Figure RE-GDA0002620511150000175
Figure RE-GDA0002620511150000176
步骤9.8:对语法、语义、情感分数通过公式(20)进行加权求和作为最后的分数,对生成的多个回复进行重排序,选择一个得分最高的回复进行输出,在本实施例中α、β、γ分别设置为0.1,0.5,0.4,更注重上下文的相关性和句子的情感,表6是3条生成的具体分数和加权得分:
表6各个生成回复的自动评分
语法 语义 情感 总分
我不认为你有一个好消息。 0.633 0 0.543 0.2805
所以,你失败了是个好消息。 0 1 0 0.5
真的吗?我在想是什么! 1 0.754 1 0.877
最后选择得分最高的“真的吗?我在想是什么!”作为模型的输出。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

Claims (3)

1.一种面向开放域对话系统的情感回复自动生成方法,其特征在于,包括以下步骤:
步骤1:构建对话语料库,对语料库中的输入-回复对(X,Y)进行分词处理,得到输入和回复语句的词序列X和Y;
步骤2:基于预训练得到的词嵌入表,将输入和回复语句的词序列分别映射为词嵌入向量eX和eY;基于人为制定的VAD情感字典,将输入和回复句子的词序列分别映射为情感嵌入向量aX和aY
步骤3:将输入语句的词嵌入向量和情感嵌入向量按每个词语进行拼接,得到拼接后的表示向量{eX aX};将回复语句的词嵌入向量和情感嵌入向量按每个词语进行拼接,得到拼接后的表示向量{eY aY};
步骤4:将输入和回复语句拼接后的表示向量{eX aX}和{eY aY},分别输入到输入编码器EncoderX和回复编码器EncoderY中,得到输入和回复的语义表示向量cX和cY
步骤5:通过语义表示向量cX预测条件先验概率P(z|X,AX),P(z|X,AX)表示在数据X和AX出现的情况下潜变量z的概率分布,这里AX表示输入X的情感信息;通过语义表示向量cX和cY预测后验概率P(z|X,AX,Y,AY)的近似,P(z|X,AX,Y,AY)表示在数据X和AX,以及后验数据Y和AY同时出现的情况下潜变量z的概率分布,这里AY表示回复Y的情感信息;使用重参数化的技巧从条件先验分布和后验分布的近似中分别采样潜变量z'和z;
步骤6:使用潜变量z和输入语句的语义表示向量cX初始化解码器,顺序解码得到每个时刻t,模型对词汇表V中每个词语预测的生成概率Y′t={p1,p2,...,p|V|};
步骤7:计算重构真实回复中每个词语VAD值时的情感损失,计算重构真实回复中每个词语时的NLL(Negative Log-Likelihood)损失,计算条件先验分布和识别网络预测的真实后验分布的近似之间的KL(Kullback-Leibler)散度损失,将三部分损失加权求和作为最终的损失,并使用KL退火训练回复生成模型;
步骤8:对于一个新的用户输入语句,执行1-5步中对输入语句的处理,从条件先验分布中采样C个潜变量z',对于C个潜变量都执行一次步骤6,在每个时刻t选择生成概率最大的词语作为当前时刻t的输出,从而产生C个候选回复;
步骤9:使用三个评分器主要从生成回复的语法、语义、情感三个方面对C个候选回复评分,并从C个候选回复中选择一个合适的回复作为模型最终输出的回复。
2.如权利要求1所述的方法,其特征在于,所述步骤7在条件变分自编码器中使用包含情感损失的损失函数训练对话模型的方法,包括:
步骤7.1:将时刻t每个词语的预测概率Y′t作为权值,通过公式(1)对情感字典VAD={vad1,vad2,...,vad|V|}进行加权求和计算当前时刻t输出的VAD情感值,vadi代表词汇表中第i个词语的3维VAD值,pi代表时刻t词汇表中第i个词语的生成概率;
Figure RE-FDA0002620511140000021
步骤7.2:通过公式(2)计算情感重构的损失,这里
Figure RE-FDA0002620511140000022
是真实回复Y中第t个词语的3维VAD值,||·||代表L2范数;
Figure RE-FDA0002620511140000023
步骤7.3:根据公式(3)计算语义重构的NLL损失,P(yt'=wt)代表在时刻t预测的词语yt'是加上结束标志的真实回复序列{w1,w2,...,wN,wN+1}中词语wt的概率,其中wN+1=</s>代表句子结束标志;
Figure RE-FDA0002620511140000024
步骤7.4:通过公式(4)计算条件先验分布
Figure RE-FDA0002620511140000025
和真实后验分布近似
Figure RE-FDA0002620511140000026
之间的KL散度损失,
Figure RE-FDA0002620511140000027
Figure RE-FDA0002620511140000028
都是d维独立高斯分布,Σ'和Σ分别是条件先验分布
Figure RE-FDA0002620511140000029
和真实后验分布近似
Figure RE-FDA00026205111400000210
的协方差矩阵,这里cij表示d维独立高斯分布第i个分量Xi和第j个分量Xj的协方差COV(Xi,Xj),由于d维独立高斯分布各个分量独立,所以cij=0(i≠j),
Figure RE-FDA00026205111400000211
tr(·)代表矩阵的迹;
Figure RE-FDA00026205111400000212
其中
Figure RE-FDA00026205111400000213
步骤7.5:重新定义变分下界为公式(5),由于模型的对数似然函数
Figure RE-FDA00026205111400000214
所以最大化变分下界等同于对模型进行极大似然估计,由最大化该变分下界得到最小化三部分损失之和,即基于损失函数公式(6)训练模型,这里λ是条件先验分布
Figure RE-FDA00026205111400000215
和真实后验分布近似
Figure RE-FDA00026205111400000216
之间的KL散度损失的权值,训练时对第三项KL散度损失进行周期性退火,一个周期为T,在0到T/2时刻,λ从0逐渐增加到1,在T/2到T时刻,λ保持为1,然后开始下个周期的训练,再次使λ从0逐渐增加到1,然后保持为1,通过训练,最终获得模型编码器、解码器、先验网络及识别网络的参数;
Figure RE-FDA00026205111400000217
Figure RE-FDA00026205111400000218
3.如权利要求1所述的方法,其特征在于,所述步骤9结合VAD字典对条件变分自编码器多次采样生成结果从语法、语义和情感三方面自动评估的方法,包括:
步骤9.1:执行步骤1-3,将输入和回复的词嵌入序列和情感嵌入序列按每个词语拼接得到拼接序列{eX aX}和{eY aY},将其作为输入,并使用交叉熵损失训练一个引入VAD情感信息的Seq2Seq模型,Seq2Seq模型的编码器和解码器都采用和本模型相同的结构,模型结构如附图7所示;
步骤9.2:在评估生成回复时,将输入和生成回复作为模型输入通过公式(7)计算困惑度指标(Perplexity,PPL)作为回复的语法分数ssyntax,这里
Figure RE-FDA0002620511140000031
代表生成回复的长度,
Figure RE-FDA0002620511140000032
代表Seq2Seq模型预测的第t个词语yt'是生成回复
Figure RE-FDA0002620511140000033
中第t个词语
Figure RE-FDA0002620511140000034
的概率;
ssyntax=ex,其中
Figure RE-FDA0002620511140000035
步骤9.3:在将输入的词嵌入序列和情感嵌入序列按每个词语拼接得到拼接序列{eXaX},通过公式(8)计算得到包含情感信息的输入语句的嵌入EX,对于生成的回复以同样的方式计算得到回复语句的嵌入EY
Figure RE-FDA0002620511140000036
步骤9.4:通过公式(9)计算输入和回复语句嵌入之间的余弦相似度作为回复的语义分数ssemantics
Figure RE-FDA0002620511140000037
步骤9.5:通过公式(10)计算输入语句的情感嵌入EAX,这里ai是句子中第i个词语的VAD值,以同样的方式计算回复语句的情感嵌入EAY,在计算时忽略输入和回复中中性情感的词语,即VAD值为[0.5,0.5,0.5]的词语;
Figure RE-FDA0002620511140000038
步骤9.6:从V值表示情感积极与消极、A值表示情感主动与被动、D值表示情感支配与服从的实际含义出发,制定三项奖励
Figure RE-FDA0002620511140000039
Figure RE-FDA00026205111400000310
对句子的情感进行控制,鼓励V值相近,A和D值不相近的句子,让对话能够易于进行下去,将三部分求和作为一个候选回复的整体情感分数saffection=sV+sA+sD
步骤9.7:对于C个候选回复的C个语法分数通过公式(11)归一化得到归一化后的语法分数
Figure RE-FDA00026205111400000311
这里smin表示C个候选回复中最低的语法分数,smax表示C个候选回复中最高的语法分数,si表示第i个候选回复的语法分数,以同样的方式对语义和情感分数归一化得到归一化后的语义分数
Figure RE-FDA00026205111400000312
和情感分数
Figure RE-FDA00026205111400000313
Figure RE-FDA0002620511140000041
步骤9.8:对语法、语义、情感分数通过公式(12)进行加权求和作为最后的分数,对生成的多个回复进行重排序,选择一个得分最高的回复进行输出,这里α、β、γ是预先设置的超参数;
Figure RE-FDA0002620511140000042
CN202010634898.3A 2020-07-03 2020-07-03 一种面向开放域对话系统的情感回复自动生成方法 Pending CN111782788A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010634898.3A CN111782788A (zh) 2020-07-03 2020-07-03 一种面向开放域对话系统的情感回复自动生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010634898.3A CN111782788A (zh) 2020-07-03 2020-07-03 一种面向开放域对话系统的情感回复自动生成方法

Publications (1)

Publication Number Publication Date
CN111782788A true CN111782788A (zh) 2020-10-16

Family

ID=72758404

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010634898.3A Pending CN111782788A (zh) 2020-07-03 2020-07-03 一种面向开放域对话系统的情感回复自动生成方法

Country Status (1)

Country Link
CN (1) CN111782788A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112783324A (zh) * 2021-01-14 2021-05-11 科大讯飞股份有限公司 人机交互方法及设备、计算机存储介质
CN113094490A (zh) * 2021-05-13 2021-07-09 重庆度小满优扬科技有限公司 一种会话交互方法、装置、电子设备及存储介质
CN114416948A (zh) * 2022-01-18 2022-04-29 重庆邮电大学 一种基于语义感知的一对多对话生成方法及装置
CN116737888A (zh) * 2023-01-11 2023-09-12 北京百度网讯科技有限公司 对话生成模型的训练方法和答复文本的确定方法、装置
CN116737888B (zh) * 2023-01-11 2024-05-17 北京百度网讯科技有限公司 对话生成模型的训练方法和答复文本的确定方法、装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150032771A1 (en) * 2013-07-25 2015-01-29 Alessandro BERIO System and method for sharing geo-localized information in a social network environment
CN109658928A (zh) * 2018-12-06 2019-04-19 山东大学 一种家庭服务机器人云端多模态对话方法、装置及系统
CN109800295A (zh) * 2019-01-11 2019-05-24 南京信息工程大学 基于情感词典和词概率分布的情感会话生成方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150032771A1 (en) * 2013-07-25 2015-01-29 Alessandro BERIO System and method for sharing geo-localized information in a social network environment
CN109658928A (zh) * 2018-12-06 2019-04-19 山东大学 一种家庭服务机器人云端多模态对话方法、装置及系统
CN109800295A (zh) * 2019-01-11 2019-05-24 南京信息工程大学 基于情感词典和词概率分布的情感会话生成方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHENYANG HUANG等: "Generating Responses Expressing Emotion in an Open-Domain Dialogue System", 《SPRINGER NATURE SWITZERLAND AG 2019》 *
车万翔等: "人机对话系统综述", 《人工智能》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112783324A (zh) * 2021-01-14 2021-05-11 科大讯飞股份有限公司 人机交互方法及设备、计算机存储介质
CN112783324B (zh) * 2021-01-14 2023-12-01 科大讯飞股份有限公司 人机交互方法及设备、计算机存储介质
CN113094490A (zh) * 2021-05-13 2021-07-09 重庆度小满优扬科技有限公司 一种会话交互方法、装置、电子设备及存储介质
CN113094490B (zh) * 2021-05-13 2022-11-22 度小满科技(北京)有限公司 一种会话交互方法、装置、电子设备及存储介质
CN114416948A (zh) * 2022-01-18 2022-04-29 重庆邮电大学 一种基于语义感知的一对多对话生成方法及装置
CN116737888A (zh) * 2023-01-11 2023-09-12 北京百度网讯科技有限公司 对话生成模型的训练方法和答复文本的确定方法、装置
CN116737888B (zh) * 2023-01-11 2024-05-17 北京百度网讯科技有限公司 对话生成模型的训练方法和答复文本的确定方法、装置

Similar Documents

Publication Publication Date Title
CN111897933B (zh) 情感对话生成方法、装置及情感对话模型训练方法、装置
CN111966800B (zh) 情感对话生成方法、装置及情感对话模型训练方法、装置
Merdivan et al. Dialogue systems for intelligent human computer interactions
CN111782788A (zh) 一种面向开放域对话系统的情感回复自动生成方法
CN110321418A (zh) 一种基于深度学习的领域、意图识别和槽填充方法
CN113435211B (zh) 一种结合外部知识的文本隐式情感分析方法
CN111401084A (zh) 一种机器翻译的方法、设备以及计算机可读存储介质
CN111914556B (zh) 基于情感语义转移图谱的情感引导方法及系统
CN111125316B (zh) 一种融合多损失函数及注意力机制的知识库问答方法
CN116127095A (zh) 一种序列模型与知识图谱结合的问答方法
CN113204611A (zh) 建立阅读理解模型的方法、阅读理解方法及对应装置
CN114020906A (zh) 基于孪生神经网络的中文医疗文本信息匹配方法及系统
CN113360610A (zh) 基于Transformer模型的对话生成方法及系统
CN112818106A (zh) 一种生成式问答的评价方法
CN112364148A (zh) 一种基于深度学习方法的生成型聊天机器人
CN114328866A (zh) 应答流畅准确的强拟人化智能对话机器人
Zhao et al. Tibetan Multi-Dialect Speech and Dialect Identity Recognition.
Chharia et al. Deep recurrent architecture based scene description generator for visually impaired
CN112307179A (zh) 文本匹配方法、装置、设备及存储介质
CN112349294A (zh) 语音处理方法及装置、计算机可读介质、电子设备
CN109918484B (zh) 对话生成方法和装置
CN116450787A (zh) 一种基于多模态知识增强的生成式对话方法和系统
CN114239575B (zh) 语句分析模型的构建方法、语句分析方法、装置、介质和计算设备
CN115510230A (zh) 一种基于多维特征融合与比较增强学习机制的蒙古语情感分析方法
Jiang et al. An affective chatbot with controlled specific emotion expression

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20201016

WD01 Invention patent application deemed withdrawn after publication