CN109977212B - 对话机器人的回复内容生成方法和终端设备 - Google Patents
对话机器人的回复内容生成方法和终端设备 Download PDFInfo
- Publication number
- CN109977212B CN109977212B CN201910244935.7A CN201910244935A CN109977212B CN 109977212 B CN109977212 B CN 109977212B CN 201910244935 A CN201910244935 A CN 201910244935A CN 109977212 B CN109977212 B CN 109977212B
- Authority
- CN
- China
- Prior art keywords
- loss function
- word
- decoder
- reply
- model
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000012549 training Methods 0.000 claims abstract description 38
- 238000013528 artificial neural network Methods 0.000 claims abstract description 37
- 238000007781 pre-processing Methods 0.000 claims abstract description 13
- 230000006870 function Effects 0.000 claims description 68
- 238000004590 computer program Methods 0.000 claims description 19
- 230000015654 memory Effects 0.000 claims description 16
- 238000009826 distribution Methods 0.000 claims description 15
- 230000011218 segmentation Effects 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 6
- 238000001914 filtration Methods 0.000 claims description 6
- 230000009471 action Effects 0.000 claims description 3
- 230000002452 interceptive effect Effects 0.000 abstract 1
- 239000013598 vector Substances 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000007476 Maximum Likelihood Methods 0.000 description 3
- YTAHJIFKAKIKAV-XNMGPUDCSA-N [(1R)-3-morpholin-4-yl-1-phenylpropyl] N-[(3S)-2-oxo-5-phenyl-1,3-dihydro-1,4-benzodiazepin-3-yl]carbamate Chemical compound O=C1[C@H](N=C(C2=C(N1)C=CC=C2)C1=CC=CC=C1)NC(O[C@H](CCN1CCOCC1)C1=CC=CC=C1)=O YTAHJIFKAKIKAV-XNMGPUDCSA-N 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000003058 natural language processing Methods 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 239000013604 expression vector Substances 0.000 description 2
- 210000004205 output neuron Anatomy 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 241000238558 Eucarida Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002996 emotional effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
Abstract
本发明提供一种对话机器人的回复内容生成方法和终端设备,方法包括:获取对话文本并进行数据预处理得到神经网络生成模型的训练样本;选取基于编码器‑解码器结构的神经网络生成模型;在解码器中引入词预测网络并在词预测网络添加损失函数,进而修正原始负对数似然损失函数;在修正的原始负对数似然损失函数中增加最大熵正则项,得到最终损失函数;对神经网络生成模型进行模型训练得到最优参数;训练好的所述神经网络生成模型接收用户的输入并生成相应的回复。具有良好的泛化能力:不限于特定结构的编码器‑解码器模型,可以与任何端到端模型相结合。显著提高回复多样性的同时,又能兼顾回复的质量,令用户拥有更好的交互体验。
Description
技术领域
本发明涉及计算机自然语言处理领域,尤其涉及一种对话机器人的回复内容生成方法和终端设备。
背景技术
对话系统的回复内容生成属于计算机自然语言处理领域,对话系统可以被用于多个领域,购物时商城的购物助手,手机上的语音助手等,例如我们熟悉的微软小冰和Siri等,都是对话系统的应用,对话系统具有广泛的潜在应用和有吸引力的商业价值。非任务导向的对话系统通常情况下主要集中在开放的领域与人交谈,提供合理的回复和娱乐消遣功能,在许多实际应用程序中都发挥了作用。数据显示,在网上购物场景中,近80%的话语是聊天信息,处理这些问题的方式与用户体验密切相关。
序列到序列(Seq2Seq)模型由于其灵活性逐渐成为对话生成系统的主流模型。通常,Seq2Seq模型由两个循环神经网络作为其编码器和解码器,编码器将源文本编码为内容向量,然后解码器将内容向量解码为目标文本。Seq2Seq模型的标准训练方法基于最大似然估计。然而,这种端到端模型倾向于产生重复和普遍的回复,如“我不知道”,“谢谢。”,缺乏多样性和信息内容而被用户诟病。
现有的提高生成的回复内容的多样性的方法包括:(1)将变分自动编码器(VAE)引入Seq2Seq模型,通过增加可变性来丰富信息。(2)基于波束搜索的方法,提高波束中生成的候选序列之间的多样性,以期进一步提高最佳回复的多样性。(3)引入其他信息或知识,如背景,关键词或知识库至回复生成过程以产生更多信息内容。虽然有效,但这些方法实际上通过引入随机潜变量的随机性或外部信息来绕过低多样性问题,潜在的Seq2Seq模型在多样性方面仍然不是最优的。
现有的基于编码器-解码器框架的生成模型在训练阶段,解码器都是基于先前观察到的单词子序列来迭代地生成下一个目标词,因此,在每一步生成时,模型只能看到先前已生成的子序列,无法考虑目标序列的全部信息,这直接导致目标句子的整体语义信息的丢失。并且,如果先前的单词输出分布存在问题,则它将对后续输出产生进一步的影响,并且随着生成的序列长度的增加,问题将会变得突出。另外,研究表明,采用最大似然法作为目标函数对模型进行训练,会鼓励数据集中高频词的生成,而忽视富有信息但频率较低的表达。
不借助外部信息,而是通过充分发挥Seq2Seq模型的学习潜力来促进生成的回复的多样性,从模型的学习策略出发,改进解码策略和学习目标,可以实质性地有效解决上面提出的低多样性问题。但是目前对于生成式对话系统回复的多样性问题,还很少有人提出具有以上优点的通用学习策略。
发明内容
本发明为了解决现有中对话机器人的回复生成会造成句子语义丢失和低多样性,提供一种对话机器人的回复内容生成方法和终端设备。
为了解决上述问题,本发明采用的技术方案如下所述:
一种对话机器人的回复内容生成方法,包括如下步骤:S1:获取对话文本并进行数据预处理得到神经网络生成模型的训练样本;S2:选取基于编码器-解码器结构的神经网络生成模型作为基本网络架构,所述神经网络生成模型包含原始负对数似然损失函数;S3:在所述解码器中引入词预测网络并在所述词预测网络添加损失函数,进而修正所述原始负对数似然损失函数;S4:在修正的所述原始负对数似然损失函数中增加最大熵正则项,得到最终损失函数;S5:基于所述训练样本,利用所述最终损失函数对所述神经网络生成模型进行模型训练得到最优参数;S6:训练好的所述神经网络生成模型接收用户的输入并生成相应的回复内容。
在本发明的一种实施例中,所述数据预处理包括词语切分、词频统计、词表构建、低频词语过滤;所述引入词预测网络的方法包括如下步骤:所述解码器的初始状态s0;目标序列为Y={y1,y2,...,yT},长度为T;所述解码器预测包含所有目标单词(y1,y2,...,yT)的单词集合,所述目标单词彼此独立且无序;所述解码器将来自所述目标序列中的每个所述目标单词的未来信息压缩到初始状态s0中;所述步骤S3中添加的所述损失函数优化词预测网络的方法是最小化所述词预测网络的每一步预测的平均条件概率的负对数似然;所述步骤S4中增加所述最大熵正则项的方法是:向所述原始负对数似然损失函数添加负熵损失;所述负熵损失的计算方式是:整个词表上每个解码时间步的输出分布的熵的总和。步骤S4中的所述最终损失函数L为:L=LNLL+αLWP+βLME;其中,LNLL为原始负对数似然损失函数,LWP为在所述词预测网络添加损失函数,LME为最大熵正则项,超参数α和β的取值范围为[0,1],分别是控制词预测网络和最大熵正则项的作用强度的权重系数;步骤S6中所述接收用户输入任意长度,任意次数的内容。
本发明还提供一种对话机器人的回复生成的终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上任一所述方法的步骤。
本发明又提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述方法的步骤。
本发明的有益效果为:提供对话机器人的回复内容生成方法,具有良好的泛化能力:它不限于特定结构的编码器-解码器模型;不借助额外的信息和知识,通过在解码器中设计预测网络从Seq2Seq模型自身引入未来信息辅助生成,要求解码器在每一步解码中预测目标话语中还未生成的子序列,这使得在训练过程中模型能够基于目标话语的整体语义信息进行生成,同时又为解码过程中提供了更丰富的信息,有利于生成更具多样性和语义一致性的回复。此外,为了改进当前最大似然损失函数的弊端,本发明在损失函数中增加最大熵正则项,在每一解码时间步,通过惩罚低熵输出分布来鼓励最大化输出分布的熵,可以减轻模型对高频词的过度估计。本发明针对现有的Seq2Seq模型在对话生成任务上的弊端,改进解码策略和损失函数,使对话系统可以生成更丰富多样的回复,并且不牺牲生成的回复的质量。
附图说明
图1是本发明实施例中一种对话机器人的回复内容生成方法示意图。
图2是本发明实施例中一种对话机器人的回复生成的终端设备的示意图。
具体实施方式
为了使本发明实施例所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要说明的是,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者间接在该另一个元件上。当一个元件被称为是“连接于”另一个元件,它可以是直接连接到另一个元件或间接连接至该另一个元件上。另外,连接即可以是用于固定作用也可以是用于电路连通作用。
需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多该特征。在本发明实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
实施例1
本发明实施例针对对话系统,提出了一种对话机器人的回复内容生成方法。首先收集作为神经网络生成模型的训练对话样本,进行数据的准备:从相关对话平台获取对话文本,进行数据预处理,主要包括词语切分、词频统计、词表构建、低频词语过滤等;选取一种基于编码器-解码器结构的神经网络生成模型,作为基本网络架构;然后,在选取的神经网络生成模型的解码器中引入词预测网络,要求解码器在每一步解码中预测目标话语中当前还未生成的子序列,并添加额外的损失函数到训练过程中,用于优化词预测网络;此外,在损失函数中增加最大熵正则项,鼓励最大化解码器中每一步的输出分布的熵;然后,根据预处理后的训练样本数据,利用改动后的损失函数并结合改进后的解码策略,对神经网络生成模型进行训练,得到网络的最优参数;最后,利用训练好的神经网络生成模型,接收用户输入,生成相应的回复。使用词预测网络,可以使模型在训练阶段预测目标回复中的每个词时,都能考虑整体目标话语的语义信息进行解码,又丰富了可用于解码的信息。最大熵正则项通过在解码阶段的每一时间步上惩罚低熵输出分布来规范模型,以减轻高频词的过度估计。
如图1所示,一种对话机器人的回复内容生成方法包括如下步骤:
S1:获取对话文本并进行数据预处理得到神经网络生成模型的训练样本;
数据预处理包括词语切分、词频统计、词表构建、低频词语过滤。
S2:选取基于编码器-解码器结构的神经网络生成模型作为基本网络架构,所述神经网络生成模型包含原始负对数似然损失函数;
S3:在所述解码器中引入词预测网络并在所述词预测网络添加损失函数,进而修正所述原始负对数似然损失函数;
在编码器中引入词预测网络,可以改进解码策略,要求解码器在每一步解码中预测目标话语中当前还未生成的子序列,使神经网络生成模型在生成每个词时,都能考虑整体目标话语的语义信息进行解码,又丰富了可用于解码的信息;同时,增加损失函数到训练过程中,用于优化词预测网络。
S4:在修正的所述原始负对数似然损失函数中增加最大熵正则项,得到最终损失函数;
S5:基于所述训练样本,利用所述最终损失函数对所述神经网络生成模型进行模型训练得到最优参数;
S6:训练好的所述神经网络生成模型接收用户的输入并生成相应的回复。
上述方法中的重点环节是步骤S3和S4,而步骤S1中文本的获取与预处理为S5中的神经网络生成模型的训练提供了数据准备和基础,S2中网络架构的选择为最终增强神经对话系统回复生成的多样性的学习策略提供了模型基础,S5中对模型的训练和调优是对话系统的应用的前提准备,S6是对话系统的应用验收环节。
步骤S1中,对于数据的获取,由于本步骤中预处理后的数据将用于S5步骤中的对话生成模型训练,而训练生成模型需要大量的数据,因此可以获取的对话文本越多越好,为了较好的效果,对话条数大于50万条为宜。对于数据准备阶段的数据预处理,主要包括词语切分、词频统计、词表构建、低频词语过滤等步骤。具体可以如下进行:(a)词语切分:对于中文文本,由于词语之间没有形式的分界,在进行相关问题处理时,需要首先对文本进行词语切分,也即找出词语之间的界限,将文本表示成词语序列。而英文文本词语之间由空格符分隔开,可直接根据空格符进行词语切分。我们利用Python进行数据预处理,中文词语切分使用jieba模块,英文词语切分使用nltk模块。此外中科院的ICTCLAS系统也是一款优秀的中文分词工具,具体用法请参见其网站;(b)词频统计可以很方便的进行,这里建议先对所得文本进行切分后的词语进行哈希编码,我们可以根据词语的Unicode值,利用哈希函数将词语重新编码,这样每次访问该词语时可以做到瞬时访问,然后就可以快速的进行词频统计;(c)词表构建:确定词表大小K,根据词频统计的结果,选取频率最高的前K个单词,并为每个单词建立索引,得到大小为K的词表,并以索引序号代表每个单词作为网络的输入序列。(d)词频是词语频率的简称,其大小是词语在全部对话文本中出现的次数。低频词的过滤,一般是过滤掉词表范围之外的词,也就是把因词频排序靠后而超出词表大小的词语过滤掉。本发明涵盖的范围不限于所列举的方法。
步骤S2中,由于本发明的方法具有通用性,适用于任何的端对端网络,选取的作为网络基本架构的神经网络生成模型只要满足基于编码器-解码器结构这一条件即可。
基于编码器-解码器结构的Seq2Seq生成模型,通常由两个循环神经网络(RNN)分别作为其编码器和解码器,编码器将源文本编码为内容向量,然后由解码器将内容向量解码为目标文本。具体地,对于长度为T个词的源序列X=(x1,x2,...,xT),以及长度为T′个词的目标序列Y=(y1,y2,…,yT′),编码器逐词读入源序列X,并由RNN网络通过如下方式把X编码为隐层表示H=(h1,h2,...,hr):
ht=f(e(xt),ht-1) (1)
其中,f表示非线性函数单元,例如,长短期记忆单元(LSTM)或门控循环单元(GRU),e(xt)是单词xt的词嵌入表示,通过训练得到词表中每个词的词嵌入表示,ht是编码器RNN网络在时间步t时的隐层状态。
对话生成模型首先由编码器对对话历史输入进行建模表示,以获得对话历史的内容向量c,解码器是一个以对话历史内容向量c为额外条件输入的RNN语言模型,由解码器RNN网络基于内容向量c逐词生成回复Y。解码器RNN首先更新隐层状态st,然后在每个时间步t按如下方式估计候选词的概率分布pt:
pt=softmax(st,e(yt-1)) (2)
st=f(st-1,e(yt-1),c) (3)
其中,st是解码器RNN网络在时间步t时的隐层状态,e(yt-1)是目标序列中单词yt-1的词嵌入表示。解码器RNN网络与编码器RNN网络不共享参数。Seq2Seq模型的目标是最大化条件生成概率p(Y|X),Seq2Seq模型的损失函数定义如下:
LNLL=-log p(Y|X) (4)
步骤S3主要是设计词预测网络改进解码策略:增加生成的回复的多样性的一种直观方法是在解码中引入和利用更多的信息。因此,我们设计了词预测网络,可以在解码阶段为每个单词的生成引入Seq2Seq模型自身的未来信息。词预测网络要求解码器在每一步解码中预测目标话语中当前还未生成的子序列中的单词集合。这里,我们假设目标单词彼此独立,并且在预测任务中不考虑待预测的子序列中的单词顺序。以这种方式,在训练阶段中的每个时间步,解码器不仅以先前已生成的子序列为条件,而且在考虑目标话语中尚未观察到的未来单词的情况下预测每个单词,从而能基于整体目标话语的语义信息来进行解码。编码器用于编码对话历史得到语义向量传到解码器中,使得解码器可以根据对话历史来生成相关联的回复,所以根据上下文的语义进行解码,编码器发挥了很大的作用。对解码器改进的动机在于在解码时可以获得目标回复整体的语义信息,而不是对话历史,可以理解为是目标回复中的上下文语义。具体地,对于解码器中的每个时间步j,隐层状态sj需要预测无序的单词集合在时间步j时的隐层状态sj处,词预测网络的条件概率Pj定义如下:
P(yt|y<j,X)=MLP2([e(yj-1);sj;cj]) (7)
其中,Yj~T′是时间步j时目标回复Y中的未来子序列的单词集合。MLP2是含有两层隐藏层的多层感知机,使用tanh函数作为激活函数。输出层采用sigmoid函数作用于每个输出神经元。我们以多分类方式预测目标单词集合,由于我们的词预测网络假设目标单词彼此独立,所以,在每个输出神经元上使用sigmoid函数来获得词表中每个词的独立的预测概率。sj就是解码时间步j时刻的解码器的隐层状态,e(yj-1)是单词yj-1的词嵌入表示,cj是来自注意机制的内容向量。cj计算方式如下:
eji=tanh(Watt[sj-1,hi]) (10)
其中,Watt是注意力机制的权重参数矩阵,hi与公式(1)一致,代表编码器中的源序列对应的i时刻的隐层状态,αji是注意力机制的权重,取值在[0,1]。
注意力机制,就是更多的去注意相关的输入部分,不那么注意关系不大的部分。注意力机制的权重αji就是这个注意程度的大小。
特别地,对于解码器的初始状态s0,需要预测包含所有目标单词的单词集合,以便将来自目标序列中的每个词的未来信息压缩到初始状态中。以这种方式,解码器可以在初始时间步,通过词预测网络看到整个目标话语。初始状态s0处的词预测网络的条件概率P0的定义如下:
P(yt|X)=MLP1([s0;c0]) (12)
为了优化词预测网络,我们添加额外的损失函数LWP到训练过程中,如下所示:
其中,P0和Pj如先前所定义,对数系数用于计算每步预测的平均概率。添加的损失函数优化词预测网络的方法是最小化所述词预测网络的每一步预测的平均条件概率的负对数似然。
S3步骤是将词预测网络引入到解码网络中构成了一个联合网络,因为要对词预测网络进行训练,所以增加了损失函数LWP。步骤S3之后得到的联合网络的训练所用的损失函数是LNLL+αLWP,可以使得解码器在每一步解码中基于添加的损失函数LWP预测目标话语中当前还未生成的子序列,这样解码网络就能基于整个目标序列而非仅仅是先前已解码的子序列来进行训练。
步骤S4中增加所述最大熵正则项的方法是:向所述原始负对数似然损失函数添加负熵损失:当对话生成模型产生安全回复时,高频词的预测是过于自信的,即整个输出概率分布集中在高频词上,导致输出分布的熵很低。因此,在每步解码中最大化输出分布的熵有利于模型产生更多样化的回复。通过这种方式,单词级别的分布P(yt|y<t,X)能被更好地约束以减轻高频词的过度估计。因此,在训练阶段向负对数似然损失函数添加负熵损失。负熵损失的计算方式是:整个词表上每个解码时间步的输出分布的熵的总和。为了最小化总体损失函数,模型鼓励熵的最大化。具体地,最大熵正则的损失函数LME表示如下:
其中,H(·)是时间步t时的在整个词表范围上的输出分布的熵,|V|是词表长度,wi是词表中的第i个词。
所述步骤S5中,根据S1中得到的数据,利用S3、S4中改动后的损失函数并结合S3中的解码策略,对S2中的神经网络生成模型进行训练,得到网络的最优参数,具体指,(a)我们将公式(13)和公式(14)中分别定义的LWP和LME添加到公式4中定义的原始负对数似然损失函数LNLL中。本发明训练过程中的最终损失函数L如下:
L=LNLL+αLWP+βLME (16)
其中,超参数α和β的取值范围为[0,1],分别是控制词预测网络和最大熵正则项的作用强度的权重系数。词预测网络在原始Seq2Seq模型中引入预测任务来优化解码器,使得解码器在生成每一个词时,在句子级别而不是单词之间的转换上来构建训练目标。基于最大熵的输出分布正则器使得损失函数能够考虑词汇表中的每个单词。(b)使用梯度下降算法或其他优化算法,例如Adam优化器,通过梯度反向传播方法来优化神经网络的参数,并调节超参数的值以获得最优的模型性能。
步骤S6中,对话生成模型训练好后,可投入应用,由用户输入聊天话语,对话系统基于用户的输入内容生成相应的回复反馈给用户。接收的输入可以为任意长度,对话轮数没有限制,用户可以输入任意次数。
实施例2
在本实施例中,利用现有的英文对话数据集DailyDialog划分训练集和测试集,训练集和测试集不存在交叉,在训练集上对模型进行训练,在测试集上评测对话生成的质量和多样性。DailyDialog是数据集发布者通过爬取英语口语对话网站构造的针对日常聊天场景的多轮对话数据集,包含的都是日常生活中的对话,涵盖了很多情感信息,也有很多比较自然的对话模式。选取了三种现有技术中的对话生成模型进行对比,分别如下:
(1)具有注意力机制的Seq2Seq(AttnSeq2Seq):具有注意机制的Seq2Seq模型,已经在各种自然语言处理任务上显示出了有效性。
(2)分层编码器-解码器(HRED):由于多轮对话历史由一系列的话语序列组成,而每句话语又包含一系列的单词序列,HRED在单词序列和话语序列两个级别上对这种对话层次性进行建模。HRED首先在单词级别对每一句话语中的单词序列用RNN网络进行编码得到每个话语的表示向量,再在话语级别对话语向量用另外的RNN网络进行编码得到最终的对话历史的内容表示向量。由于HRED具有很好的上下文感知建模能力,HRED在对话生成中表现出很好的性能。
(3)分层潜变量编码器-解码器(VHRED):VHRED在解码器中引入随机潜变量来增强HRED模型,其通过最大化对数似然的变分下界进行训练。随机潜变量有助于生成具有更多信息内容的话语,并且有助于维持对话上下文的内容相关性。
分别比较了单轮回复生成和两轮对话生成的效果,生成结果示例如表1所示。输入为两个说话人之间的多轮对话历史。我们可以看出,示例1是面试官和候选人之间发生的面试对话。本发明的对话模型(Ours)捕捉到了该对话是一个面试场景,并生成了一个与面试情况相匹配的问题作为回复。相比之下,现有技术中的对比模型生成的回复都是通用回复,与当前面试场景并无明显关联。在示例2中,本发明的对话模型捕获到说话人A喜欢杂志这一情绪信息,从而生成了更具体和信息丰富的回复,同时,生成的两轮连续的对话匹配了不同说话人的角色。而现有技术中的对比模型生成的对话结果都是很单调的通用回复。可以发现,本发明的对话生成方法明显优于现有技术,生成的对话具体细节更多,多样性更高,此外,可以看出本发明的方法生成的对话与上下文内容更相关。
表1
实施例3
如图2所示,是本发明一实施例提供的对话机器人的回复生成的终端设备的示意图。该实施例的对话机器人的回复生成的终端设备包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如数据处理程序。所述处理器执行所述计算机程序时实现上述各个对话机器人的回复内容生成方法实施例中的步骤,例如图1所示的步骤S1-S6。
示例性的,所述计算机程序可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述对话机器人的回复生成终端设备中的执行过程。例如,所述计算机程序可以被分割成:获取数据模块;神经网络生成模型模块;词预测网络模块;最大熵正则项修正模块;模型训练模块;对话生成模块。各模块具体功能如下:获取对话文本并进行数据预处理得到神经网络生成模型的训练样本;选取基于编码器-解码器结构的神经网络生成模型作为基本网络架构,所述神经网络生成模型包含原始负对数似然损失函数;在所述解码器中引入词预测网络并在所述词预测网络添加损失函数,进而修正所述原始负对数似然损失函数;在修正的所述原始负对数似然损失函数中增加最大熵正则项,得到最终损失函数;基于所述训练样本,利用所述最终损失函数对所述神经网络生成模型进行模型训练得到最优参数;训练好的所述神经网络生成模型接收用户的输入并生成相应的回复。
所述对话机器人的回复生成的终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述对话机器人的回复生成的终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是对话机器人的回复生成的终端设备的示例,并不构成对对话机器人的回复生成的终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述对话机器人的回复生成的终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述对话机器人的回复生成的终端设备的控制中心,利用各种接口和线路连接整个对话机器人的回复生成的终端设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述对话机器人的回复生成的终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
实施例4
所述对话机器人的回复生成的终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。
Claims (10)
1.一种对话机器人的回复内容生成方法,其特征在于,包括如下步骤:
S1:获取对话文本并进行数据预处理得到神经网络生成模型的训练样本;
S2:选取基于编码器-解码器结构的神经网络生成模型作为基本网络架构,所述神经网络生成模型包含原始负对数似然损失函数;
S3:在所述解码器中引入词预测网络并在所述词预测网络添加损失函数,进而修正所述原始负对数似然损失函数;
S4:在修正的所述原始负对数似然损失函数中增加最大熵正则项,得到最终损失函数;
S5:基于所述训练样本,利用所述最终损失函数对所述神经网络生成模型进行模型训练得到最优参数;
S6:训练好的所述神经网络生成模型接收用户的输入并生成相应的回复内容。
2.如权利要求1所述的对话机器人的回复内容生成方法,其特征在于,所述数据预处理包括词语切分、词频统计、词表构建、低频词语过滤。
3.如权利要求1所述的对话机器人的回复内容生成方法,其特征在于,引入词预测网络的方法包括如下步骤:所述解码器的初始状态s0;目标序列为Y={y1,y2,…,yT},长度为T;所述解码器预测包含所有目标单词(y1,y2,…,yT)的单词集合,所述目标单词彼此独立且无序;所述解码器将来自所述目标序列中的每个所述目标单词的未来信息压缩到初始状态s0中。
4.如权利要求1所述的对话机器人的回复内容生成方法,其特征在于,所述步骤S3中添加所述损失函数优化所述词预测网络的方法是最小化所述词预测网络的每一步预测的平均条件概率的负对数似然。
5.如权利要求1所述的对话机器人的回复内容生成方法,其特征在于,所述步骤S4中增加所述最大熵正则项的方法是:向所述原始负对数似然损失函数添加负熵损失。
6.如权利要求5所述的对话机器人的回复内容生成方法,其特征在于,所述负熵损失的计算方式是:整个词表上每个解码时间步的输出分布的熵的总和。
7.如权利要求1所述的对话机器人的回复内容生成方法,其特征在于,步骤S4中的所述最终损失函数L为:L=LNLL+αLWP+βLME;
其中,LNLL为原始负对数似然损失函数,LWP为在所述词预测网络添加损失函数,LME为最大熵正则项,超参数α和β的取值范围为[0,1],分别是控制词预测网络和最大熵正则项的作用强度的权重系数。
8.如权利要求1所述的对话机器人的回复内容生成方法,其特征在于,步骤S6中接收用户输入任意长度,任意次数的内容。
9.一种对话机器人的回复生成的终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-8任一所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910244935.7A CN109977212B (zh) | 2019-03-28 | 2019-03-28 | 对话机器人的回复内容生成方法和终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910244935.7A CN109977212B (zh) | 2019-03-28 | 2019-03-28 | 对话机器人的回复内容生成方法和终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109977212A CN109977212A (zh) | 2019-07-05 |
CN109977212B true CN109977212B (zh) | 2020-11-24 |
Family
ID=67081372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910244935.7A Active CN109977212B (zh) | 2019-03-28 | 2019-03-28 | 对话机器人的回复内容生成方法和终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109977212B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569338B (zh) * | 2019-07-22 | 2022-05-03 | 中国科学院信息工程研究所 | 一种生成式对话系统解码器训练方法及解码方法 |
CN110421574B (zh) * | 2019-07-22 | 2020-07-03 | 北京理工大学 | 一种机器人创意动作评估生成系统 |
CN110795549B (zh) * | 2019-10-31 | 2023-03-17 | 腾讯科技(深圳)有限公司 | 短文本对话方法、装置、设备及存储介质 |
CN110837548B (zh) * | 2019-11-05 | 2022-11-11 | 泰康保险集团股份有限公司 | 答案匹配方法、装置、电子设备及存储介质 |
CN111221318B (zh) * | 2019-12-11 | 2023-03-28 | 中山大学 | 一种基于模型预测控制算法的多机器人状态估计方法 |
CN111160010B (zh) * | 2019-12-31 | 2023-04-18 | 思必驰科技股份有限公司 | 缩略句理解模型的训练方法及系统 |
CN111522921B (zh) * | 2020-03-06 | 2023-06-02 | 国网浙江省电力有限公司营销服务中心 | 一种基于语句改写的面向端到端对话的数据增强方法 |
CN111341293B (zh) * | 2020-03-09 | 2022-11-18 | 广州市百果园信息技术有限公司 | 一种文本语音的前端转换方法、装置、设备和存储介质 |
CN113761136B (zh) * | 2020-06-02 | 2024-07-19 | 阿里巴巴集团控股有限公司 | 对话处理、信息处理、模型训练方法、设备及存储介质 |
CN111967577B (zh) * | 2020-07-29 | 2024-04-05 | 华北电力大学 | 一种基于变分自编码器的能源互联网场景生成方法 |
CN112632240B (zh) * | 2020-12-16 | 2024-02-09 | 深圳平安智慧医健科技有限公司 | 基于知识库导向的网络文本生成方法、装置及存储介质 |
CN112329907A (zh) | 2020-12-24 | 2021-02-05 | 北京百度网讯科技有限公司 | 对话处理方法、装置、电子设备和存储介质 |
CN112765333B (zh) * | 2021-01-08 | 2023-04-07 | 山东师范大学 | 基于情感与提示词结合的自动对话生成方法及系统 |
CN112364993B (zh) * | 2021-01-13 | 2021-04-30 | 深圳市友杰智新科技有限公司 | 模型联合训练方法、装置、计算机设备和存储介质 |
CN113436752B (zh) * | 2021-05-26 | 2023-04-28 | 山东大学 | 一种半监督的多轮医疗对话回复生成方法及系统 |
CN113704424A (zh) * | 2021-08-27 | 2021-11-26 | 广东电力信息科技有限公司 | 一种基于指针网络的自然语言任务生成方法 |
CN114925659B (zh) * | 2022-05-18 | 2023-04-28 | 电子科技大学 | 动态宽度最大化解码方法、文本生成方法及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776578A (zh) * | 2017-01-03 | 2017-05-31 | 竹间智能科技(上海)有限公司 | 用于提升对话系统对话性能的方法及装置 |
CN107885756A (zh) * | 2016-09-30 | 2018-04-06 | 华为技术有限公司 | 基于深度学习的对话方法、装置及设备 |
CN108062388A (zh) * | 2017-12-15 | 2018-05-22 | 北京百度网讯科技有限公司 | 人机对话的回复生成方法和装置 |
CN108491514A (zh) * | 2018-03-26 | 2018-09-04 | 清华大学 | 对话系统中提问的方法及装置、电子设备、计算机可读介质 |
CN108681610A (zh) * | 2018-05-28 | 2018-10-19 | 山东大学 | 生成式多轮闲聊对话方法、系统及计算机可读存储介质 |
CN108763504A (zh) * | 2018-05-30 | 2018-11-06 | 浙江大学 | 一种基于强化双通道序列学习的对话回复生成方法及系统 |
-
2019
- 2019-03-28 CN CN201910244935.7A patent/CN109977212B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107885756A (zh) * | 2016-09-30 | 2018-04-06 | 华为技术有限公司 | 基于深度学习的对话方法、装置及设备 |
CN106776578A (zh) * | 2017-01-03 | 2017-05-31 | 竹间智能科技(上海)有限公司 | 用于提升对话系统对话性能的方法及装置 |
CN108062388A (zh) * | 2017-12-15 | 2018-05-22 | 北京百度网讯科技有限公司 | 人机对话的回复生成方法和装置 |
CN108491514A (zh) * | 2018-03-26 | 2018-09-04 | 清华大学 | 对话系统中提问的方法及装置、电子设备、计算机可读介质 |
CN108681610A (zh) * | 2018-05-28 | 2018-10-19 | 山东大学 | 生成式多轮闲聊对话方法、系统及计算机可读存储介质 |
CN108763504A (zh) * | 2018-05-30 | 2018-11-06 | 浙江大学 | 一种基于强化双通道序列学习的对话回复生成方法及系统 |
Non-Patent Citations (1)
Title |
---|
基于Seq2Seq的生成式自动问答系统应用与研究;李武波等;《现代计算机》;20171231(第12期);第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109977212A (zh) | 2019-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109977212B (zh) | 对话机器人的回复内容生成方法和终端设备 | |
CN112487182B (zh) | 文本处理模型的训练方法、文本处理方法及装置 | |
US20200251099A1 (en) | Generating Target Sequences From Input Sequences Using Partial Conditioning | |
CN109840287A (zh) | 一种基于神经网络的跨模态信息检索方法和装置 | |
CN109582952B (zh) | 诗歌生成方法、装置、计算机设备和介质 | |
Liu et al. | Two efficient lattice rescoring methods using recurrent neural network language models | |
Kumar et al. | Lattice rescoring strategies for long short term memory language models in speech recognition | |
US20200134471A1 (en) | Method for Generating Neural Network and Electronic Device | |
US11200885B1 (en) | Goal-oriented dialog system | |
CN110069611B (zh) | 一种主题增强的聊天机器人回复生成方法及装置 | |
CN113505198B (zh) | 关键词驱动的生成式对话回复方法、装置及电子设备 | |
CN111814448B (zh) | 预训练语言模型量化方法和装置 | |
CN117236911B (zh) | 一种基于人工智能的面试评价方法及系统 | |
CN109637527A (zh) | 对话语句的语义解析方法及系统 | |
JP7329393B2 (ja) | 音声信号処理装置、音声信号処理方法、音声信号処理プログラム、学習装置、学習方法及び学習プログラム | |
US11393454B1 (en) | Goal-oriented dialog generation using dialog template, API, and entity data | |
CN115186056A (zh) | 文本风格迁移方法、装置、电子设备及存储介质 | |
Xu et al. | Mixed precision low-bit quantization of neural network language models for speech recognition | |
CN117350304B (zh) | 一种多轮对话上下文向量增强方法及系统 | |
CN117473951A (zh) | 文本处理方法、装置及存储介质 | |
CN109918484B (zh) | 对话生成方法和装置 | |
CN117494762A (zh) | 学生模型的训练方法、素材处理方法、装置及电子设备 | |
CN114969554B (zh) | 用户情绪调节方法、装置、电子设备和存储介质 | |
CN116644797A (zh) | 神经网络模型量化压缩方法、电子设备和存储介质 | |
CN114333790A (zh) | 数据处理方法、装置、设备、存储介质及程序产品 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |