CN111797220A - 对话生成方法、装置、计算机设备和存储介质 - Google Patents

对话生成方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN111797220A
CN111797220A CN202010751314.0A CN202010751314A CN111797220A CN 111797220 A CN111797220 A CN 111797220A CN 202010751314 A CN202010751314 A CN 202010751314A CN 111797220 A CN111797220 A CN 111797220A
Authority
CN
China
Prior art keywords
hidden variable
initial
prior
reply
network
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.)
Granted
Application number
CN202010751314.0A
Other languages
English (en)
Other versions
CN111797220B (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010751314.0A priority Critical patent/CN111797220B/zh
Publication of CN111797220A publication Critical patent/CN111797220A/zh
Application granted granted Critical
Publication of CN111797220B publication Critical patent/CN111797220B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/338Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Machine Translation (AREA)

Abstract

本申请涉及一种对话生成方法、装置、计算机设备和存储介质。该方法包括:获取对话输入语句;将对话输入语句进行编码,得到对话输入向量;基于对话输入向量进行先验分布计算,得到对话输入先验分布,从对话输入先验分布中得到各个对话输入隐变量;分别将各个对话输入隐变量与对话输入向量进行组合,得到各个组合向量,将各个组合向量进行解码,得到各个对话回复语句;其中,先验分布计算的参数和解码的参数是通过知识蒸馏进行训练得到的;从各个对话回复语句中确定目标对话回复语句。采用本方法提高了生成的回复语句与询问语句的匹配性,进而提供对话生成的指令。本申请还涉及一种对话生成模型训练方法、装置、计算机设备和存储介质。

Description

对话生成方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机网络技术领域,特别是涉及一种对话生成方法、装置、计算机设备和存储介质。
背景技术
随着自然语句处理技术的发展,出现了人工智能对话系统,由于对话回复具备多样性,即一个询问语句可以有多个不同但合理的回复。目前,人脸智能对话系统通常使用训练的隐变量模型来进行多样性的对话生成。然而,目前的隐变量模型在使用时由于存在隐变量暴露偏差问题,即在训练时和在部署使用时使用不同的分布生成回复语句,从而使在部署使用时会产生不合理的回复,导致对话中询问语句和回复语句的匹配性降低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高对话中询问语句和回复语句的匹配性的对话生成方法、装置、计算机设备和存储介质。
一种对话生成方法,其特征在于,所述方法包括:
获取对话输入语句;
将对话输入语句进行编码,得到对话输入向量;
基于对话输入向量进行先验分布计算,得到对话输入先验分布,从对话输入先验分布中得到各个对话输入隐变量;
分别将各个对话输入隐变量与对话输入向量进行组合,得到各个组合向量,将各个组合向量进行解码,得到各个对话回复语句;其中,先验分布计算的参数和解码的参数是通过知识蒸馏进行训练得到的;
从各个对话回复语句中确定目标对话回复语句。
在其中一个实施例中,从各个对话回复语句中确定目标对话回复语句,包括:
计算各个对话回复语句对应的语句长度,比较各个语句长度,根据比较结果确定目标对话回复语句。
在其中一个实施例中,从各个用户回复语句中确定目标用户回复语句,包括:
获取各个对话回复语句对应的困惑度,根据各个困惑度确定目标对话回复语句。
一种对话生成装置,所述装置包括:
输入语句获取模块,用于获取对话输入语句;
编码模块,用于将所述对话输入语句进行编码,得到对话输入向量;
隐变量得到模块,用于基于所述对话输入向量进行先验分布计算,得到对话输入先验分布,从所述对话输入先验分布中得到各个对话输入隐变量;
解码模块,用于分别将所述各个对话输入隐变量与所述对话输入向量进行组合,得到各个组合向量,将所述各个组合向量进行解码,得到各个对话回复语句;其中,先验分布计算的参数和解码的参数是通过知识蒸馏进行训练得到的;
回复语句确定模块,用于从所述各个对话回复语句中确定目标对话回复语句。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取对话输入语句;
将对话输入语句进行编码,得到对话输入向量;
基于对话输入向量进行先验分布计算,得到对话输入先验分布,从对话输入先验分布中得到各个对话输入隐变量;
分别将各个对话输入隐变量与对话输入向量进行组合,得到各个组合向量,将各个组合向量进行解码,得到各个对话回复语句;其中,先验分布计算的参数和解码的参数是通过知识蒸馏进行训练得到的;
从各个对话回复语句中确定目标对话回复语句。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取对话输入语句;
将对话输入语句进行编码,得到对话输入向量;
基于对话输入向量进行先验分布计算,得到对话输入先验分布,从对话输入先验分布中得到各个对话输入隐变量;
分别将各个对话输入隐变量与对话输入向量进行组合,得到各个组合向量,将各个组合向量进行解码,得到各个对话回复语句;其中,先验分布计算的参数和解码的参数是通过知识蒸馏进行训练得到的;
从各个对话回复语句中确定目标对话回复语句。
上述对话生成方法、装置、计算机设备和存储介质,通过经过知识蒸馏进行训练得到的先验分布计算得到对话输入先验分布,保证了对话输入先验分布与训练时使用的后验分布一致,然后使用对话输入先验分布生成各个对话回复语句,从而保证了生成的各个对话回复语句都是合理的,即提高了对话中询问语句和回复语句的匹配性,然后从各个对话回复语句中确定目标对话回复语句,从而能够保证得到的目标对话回复语句是合理的,提高了对话生成的质量。
一种对话生成模型训练方法,所述方法包括:
获取已训练的基础隐变量模型以及训练数据,训练数据包括询问语句和回复语句;
将回复语句和询问语句输入到基础隐变量模型中,基础隐变量模型使用询问语句和先验隐变量得到训练回复语句,先验隐变量是从先验隐变量分布中得到的,先验隐变量分布是使用基础隐变量模型中的先验网络得到的;
根据回复语句和训练回复语句调整基础隐变量模型中的先验网络,得到训练完成的目标隐变量模型;
使用目标隐变量模型中训练完成的先验网络得到对话生成模型。
在其中一个实施例中,根据先验隐变量分布、后验隐变量分布、回复语句和训练回复语句计算目标误差信息,包括:
计算先验隐变量分布和后验隐变量分布的距离误差信息,并计算回复语句和训练回复语句的重构误差信息;
基于距离误差信息和重构误差信息确定目标误差信息。
在其中一个实施例中,先验隐变量分布是以第一映射向量为均值,第二映射向量为方差的高斯分布;
从先验隐变量分布中得到先验隐变量,包括:
从标准正态分布中进行采样,得到噪声值,根据噪声值将第一映射向量和第二映射向量进行向量变换,得到先验隐变量。
一种对话生成模型训练装置,所述装置包括:
获取模块,用于获取已训练的基础隐变量模型以及训练数据,训练数据包括询问语句和回复语句;
语句输入模块,用于将回复语句和询问语句输入到基础隐变量模型中,基础隐变量模型使用询问语句和先验隐变量得到训练回复语句,先验隐变量是从先验隐变量分布中得到的,先验隐变量分布是使用基础隐变量模型中的先验网络得到的;
模型训练模块,用于根据回复语句和训练回复语句调整基础隐变量模型中的先验网络,得到训练完成的目标隐变量模型;
使用目标隐变量模型中训练完成的先验网络得到对话生成模型。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取已训练的基础隐变量模型以及训练数据,训练数据包括询问语句和回复语句;
将回复语句和询问语句输入到基础隐变量模型中,基础隐变量模型使用询问语句和先验隐变量得到训练回复语句,先验隐变量是从先验隐变量分布中得到的,先验隐变量分布是使用基础隐变量模型中的先验网络得到的;
根据回复语句和训练回复语句调整基础隐变量模型中的先验网络,得到训练完成的目标隐变量模型;
使用目标隐变量模型中训练完成的先验网络得到对话生成模型。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取已训练的基础隐变量模型以及训练数据,训练数据包括询问语句和回复语句;
将回复语句和询问语句输入到基础隐变量模型中,基础隐变量模型使用询问语句和先验隐变量得到训练回复语句,先验隐变量是从先验隐变量分布中得到的,先验隐变量分布是使用基础隐变量模型中的先验网络得到的;
根据回复语句和训练回复语句调整基础隐变量模型中的先验网络,得到训练完成的目标隐变量模型;
使用目标隐变量模型中训练完成的先验网络得到对话生成模型。
上述对话生成模型训练方法、装置、计算机设备和存储介质,通过使用基础隐变量模型的先验网络得到先验隐变量分布,从先验隐变量分布中得到先验隐变量,并使用询问语句和先验隐变量得到训练回复语句,然后根据回复语句和训练回复语句调整基础隐变量模型中的先验网络,从而能够使基础隐变量模型中的后验网络作为已训练的网络来指导训练先验网络,从而能够使先验隐变量分布与后验隐变量分布一致,从而使得对话生成模型在部署时能够使用先验隐变量分布产生合理的回复时,提高了对话中询问语句和回复语句的匹配性。
附图说明
图1为一个实施例中对话生成方法的应用环境图;
图2为一个实施例中对话生成方法的流程示意图;
图3为一个具体实施例中聊天会话页面的页面示意图;
图4为一个实施例中对话生成模型训练方法的流程示意图;
图5为一个实施例中得到训练回复语句的流程示意图;
图6为一个实施例中得到目标隐变量模型的流程示意图;
图7为一个实施例中得到目标对话生成模型的流程示意图;
图8为一个实施例中得到基础隐变量模型的流程示意图;
图8a为图8实施例中得到隐变量模型的原理示意图;
图9为另一个实施例中得到基础隐变量模型的流程示意图;
图10为一个具体实施例中训练得到基础隐变量模型的流程示意图;
图11为一个具体实施例中得到对话生成模型的流程示意图;
图12为一个实施例中对话生成模型训练的框架示意图;
图13为一个实施例中对话生成装置的结构框图;
图14为一个实施例中对话生成模型训练装置的结构框图;
图15为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的对话生成模型训练方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。服务器104从终端102获取对话输入语句;将对话输入语句进行编码,得到对话输入向量;服务器104基于对话输入向量进行先验分布计算,得到对话输入先验分布,从对话输入先验分布中得到各个对话输入隐变量,服务器104分别将各个对话输入隐变量与对话输入向量进行组合,得到各个组合向量,将各个组合向量进行解码,得到各个对话回复语句;其中,先验分布计算的参数和解码的参数是通过知识蒸馏进行训练得到的;服务器104从各个对话回复语句中确定目标对话回复语句。服务器104将目标对话回复语句发送终端102进行展示。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种对话生成方法,以该方法应用于图1中的服务器为例进行说明,可以理解的是,该方法也可以应用于终端中,本实施例中,包括以下步骤:
步骤202,获取对话输入语句。
其中,对话输入语句是指指需要生成对话回复语句的语句,可以是陈述句、疑问句、祈使句和感叹句,比如,对话输入语句可以是“今天天气这么样?”。该对话输入语句可以是一段对话中的起始对话语句,也可以是中间阶段的对话语句。
具体地,服务器获取到对话输入语句,可以是终端实时获取到用户输入到对话输入语句,终端将该对话输入语句发送的服务器中。也可以是终端实时获取到的用户语音,终端将该用户语音发送到服务器中,服务器将用户语音转换为对话输入语句。还可以直接从服务器数据库中获取对话输入语句,也可以从第三方数据库中获取对话输入语句,该第三方可以是存储有对话语句的服务方。
步骤204,将对话输入语句进行编码,得到对话输入向量。
其中,对话输入向量是指将对话输入语句编码后得到的向量。
具体地,服务器可以使用编码算法对对话输入语句进行编码,得到对话输入向量,该编码算法用于将文本转换为向量,比如可以是向量空间模型、主题模型、分布式表示和深度学习模型等等。
步骤206,基于对话输入向量进行先验分布计算,得到对话输入先验分布,从对话输入先验分布中得到各个对话输入隐变量。
其中,先验分布是根据历史规律确定原因的概率分布,例如,先验分布可以是二项分布和高斯分布等等。对话输入先验分布使用对话输入向量得到的先验分布。对话输入隐变量是根据对话输入向量得到的隐变量,隐变量用于生成回复语句,不同的隐变量会生成不同的回复语句。
具体地,服务器根据对话输入向量进行先验分布计算,得到对话输入先验分布。从对话输入先验分布中进行随机采样得到各个对话输入隐变量。
步骤208,分别将各个对话输入隐变量与对话输入向量进行组合,得到各个组合向量,将各个组合向量进行解码,得到各个对话回复语句;其中,先验分布计算的参数和解码的参数是通过知识蒸馏进行训练得到的。
其中,知识蒸馏是指在训练时使用后验分布计算的参数去指导训练先验分布计算的参数,使先验分布计算的参数与后验分布计算的参数一致,从而使得到的后验分布与得到的先验分布的误差在预设误差范围内。组合向量是指可以是直接将对话输入隐变量和对话输入向量进行拼接,得到拼接后的向量。组合向量也可以是对话输入隐变量和对话输入向量进行向量运算,比如,进行向量相加或者进行向量数乘或者进行向量积运算等等,得到运算后的向量。对话回复语句是指回复对话输入的语句,对话回复语句可以有多个不同且合理的语句。解码是指将向量转换成文本。
具体地,服务器分别将将各个对话输入隐变量与对话输入向量进行组合,得到各个组合向量,比如,可以进行点积运算得到组合向量。然后将各个组合向量使用解码算法进行解码得到各个对话回复语句。
步骤210,从各个对话回复语句中确定目标对话回复语句。
其中,目标对话回复语句是对话输入语句对应的回复语句。
具体地,服务器要从各个对话回复语句中确定目标对话回复语句时,服务器可以获取到对话输入语句相关联的用于指示回复的信息。根据相关联的用于指示回复的信息从各个对话回复语句选择一致的对话回复语句作为目标对话回复语句。比如,对话输入语句为“今天天气这么样”,得到的各个对话回复语句包括“今天是阴天”,“今天是晴天”和“今天下雨”。然后获取到对话输入语句对应的地区的天气预报信息,根据天气预报信息当前为晴时,将“今天是晴天”作为目标回复语句。
在一个实施例中,将各个对话回复语句使用回复语句筛选神经网络模型进行筛选,即识别每个对话回复语句作为目标对话回复语句的可能性,将可能性最高的对话回复语句作为目标对话回复语句。
在一个实施例中,服务器可以随机从各个对话回复语句中选取目标对话回复语句。
上述对话生成方法,通过经过知识蒸馏进行训练得到的先验分布计算得到对话输入先验分布,保证了对话输入先验分布与训练时使用的后验分布一致,然后使用对话输入先验分布生成各个对话回复语句,从而保证了生成的各个对话回复语句都是合理的,即提高了对话中询问语句和回复语句的匹配性,然后从各个对话回复语句中确定目标对话回复语句,从而能够保证得到的目标对话回复语句是合理的,提高了对话生成的质量。
在一个实施例中,对话生成方法还包括以下步骤:
将对话输入语句输入到对话生成模型中,对话生成模型使用编码网络对对话输入语句进行编码,得到对话输入向量,将对话输入向量输入到先验网络中,得到对话输入先验分布,从对话输入先验分布中得到各个对话输入隐变量,并将各个对话输入隐变量与对话输入向量输入到解码网络中进行解码,得到各个对话回复语句。
其中,对话生成模型中包括有编码网络、先验网络和解码网络,编码网络用于进行编码,先验网络用于进行先验分布的计算,解码网络用于进行解码计算。
具体地,服务器将训练完成的对话生成模型部署到服务器中,此时服务器就可以进行对话生成。服务器获取到对话输入语句,可以是终端实时获取到用户输入到对话输入语句,终端将该对话输入语句发送的服务器中。也可以是终端实时获取到的用户语音,终端将该用户语音发送到服务器中,服务器将用户语音转换为对话输入语句。还可以从数据库中获取对话输入语句等。服务器在获取到对话输入语句后,将对话输入语句输入到对话生成模型中进行对话生成,对话生成模型将输入答对话输入语句通过编码网络进行编码,得到对话输入向量,并通过先验网络计算得到对话输入先验分布,从对话输入先验分布中进行采样得到各个对话输入隐变量,然后分别将各个对话输入隐变量与对话输入向量进行组合,将组合后的向量输入到解码网络中进行解码,得到各个对话回复语句。其中,进行组合可以是直接将对话输入隐变量和对话输入向量进行拼接,得到拼接后的向量。进行组合也可以是对话输入隐变量和对话输入向量进行向量运算,比如,进行向量相加或者进行向量数乘或者进行向量积运算等等,得到运算后的向量。
在一个实施例中,对话生成模型只包括先验网络,服务器获取到对话输入语句先进行向量化,得到对话输入向量,将对话输入向量输入到对话生成模型中得到对话输入先验分布,从对话输入先验分布中进行采样得到各个对话输入隐变量。然后服务器将各个对话输入隐变量与对话输入向量进行组合,将组合后的向量进行解码,得到各个对话回复语句。
在一个实施例中,服务器也可将训练完成的对话生成模型部署到云服务器中,第三方对话平台服务器中等等,提供对话生成服务。也可以将训练完成的对话生成模型部署到各种智能对话设备中,比如智能语音音箱,智能语音冰箱,智能语音机器人和智能语音电视等等进行对话处理。
对话生成模型是基于目标隐变量模型中的编码网络、先验网络和解码网络得到的,目标隐变量模型是通过知识蒸馏调整已训练的基础隐变量模型中的先验网络和解码网络得到。
具体地,基础隐变量模型使用自定义损失函数进行模型训练,从而使训练得到的基础隐变量模型中的先验隐变量分布向后验隐变量分布进行靠近。然后使用已训练的基础隐变量模型通过知识蒸馏调整已训练的基础隐变量模型中的先验网络和解码网络得到目标隐变量模型,根据目标隐变量模型中的编码网络、先验网络和解码网络得到对话生成模型,然后将对话生成模型进行部署使用。
在上述对话生成方法中,通过将对话输入语句输入到对话生成模型中,对话生成模型使用对话输入先验分布得到各个对话输入隐变量,并使用各个对话输入隐变量和对话输入向量生成各个对话回复语句,其中,对话生成模型是基于目标隐变量模型中的编码网络、先验网络和解码网络得到的,目标隐变量模型是使用已训练的基础隐变量模型通过知识蒸馏调整已训练的基础隐变量模型中的先验网络和解码网络得到,从而能够保证对话输入先验分布与训练时使用的后验分布一致,保证了生成的各个对话回复语句都是合理的,从而提高了对话中询问语句和回复语句的匹配性。然后从各个对话回复语句中确定目标对话回复语句,从而能够保证目标对话回复语句是合理的,进一步提高了对话生成的质量。
在一个实施例中,从各个对话回复语句中确定目标对话回复语句,包括:
计算各个对话回复语句对应的语句长度,比较各个语句长度,根据比较结果确定目标对话回复语句。
具体地,语句长度是指该对话回复语句的字符串长度。服务器计算各个对话回复语句对应的语句长度,比如各个语句长度,可以将语句长度中最大的语句长度对应的对话回复语句作为目标对话回复语句,也可以将语句长度中最小的语句长度对应的对话回复语句作为目标对话回复语句。
在一个实施例中,从各个用户回复语句中确定目标用户回复语句,包括:
获取各个对话回复语句对应的困惑度,根据各个困惑度确定目标对话回复语句。
其中,困惑度用于衡量对话回复语句作为目标用户回复语句的好坏程度。可以使用加餐困惑度越低,表示对应的对话回复语句作为目标用户回复语句就越好。
具体地,服务器获取到各个对话回复语句对应的困惑度,比较各个困惑度,将困惑度最低的对话回复语句作为目标对话回复语句。
本申请还提供一种应用场景,该应用场景应用上述的对话生成方法。具体地,该对话生成方法在该应用场景的应用如下:
用户与智能手机中的智能对话系统“小微”进行对话。用户通过如图3所示的聊天会话页面示意图与“小微”进行对话,通过聊天会话页面输入“小微,今天你开心吗”,手机接收到输入后发送到智能对话系统服务器,智能对话系统服务器将对话输入语句输入到对话生成模型中,生成各个对话回复语句包括“小微今天很开心”,“小微今天不开心”“您开心,小微就开心”等。然后使用回复语句筛选神经网络模型进行筛选,将可能性最高的“您开心,小微就开心”的语句发送到智能手机中,智能手机在聊天会话页面中展示“您开心,小微就开心”的语句完成对话。
本申请还提供一种应用场景,该应用场景应用上述的对话生成方法。具体地,该对话生成方法在该应用场景的应用如下:
用户与智能机器人进行对话,用户向智能机器人说“你在干什么啊”,智能机器人接收到该语音,将该语音转换为对话输入语句,输入到对话生成模型中,得到的各个对话回复语句,根据各个对话回复语句的困惑度确定“我在上班啊”为目标对话回复语句。智能机器人将“我在巡逻啊”转换为语音进行播放。然后接收到语音“上班有没有工资”,智能机器人接收到该语音,将该语音转换为对话输入语句,输入到对话生成模型中,得到的各个对话回复语句,根据各个对话回复语句的困惑度确定“上班没有工资的”为目标对话回复语句,智能机器人将“上班没有工资的”转换为语音进行播放,然后可以继续进行对话,直到对话完成。
在一个实施例中,如图4所示,提供了一种对话生成模型训练方法,以该方法应用于图1中的服务器为例进行说明,可以理解的是,该方法也可以应用于终端中,本实施例中,包括以下步骤:
步骤402,获取已训练的基础隐变量模型以及训练数据,训练数据包括询问语句和回复语句。
其中,训练数据用于训练对话生成模型的数据。询问语句是指对话中的询问句,该语句可以是疑问句、陈述句、祈使句和感叹句等。回复语句是指回复询问语句的语句,也可以是疑问句、陈述句、祈使句和感叹句等。其中,一个询问语句可以有多个不同且合理的回复语句。比如,询问语句可以是“今天天气怎么样”,回复语句可以是“今天是晴天”,回复语句也可以是“今天是雨天”,回复语句还可以是“今天是阴天”等等。
基础隐变量模型是使用后验网络和先验网络训练得到的隐变量模型,该基础隐变量模型中包括性能较好的后验网络,用于基于知识蒸馏进行训练得到目标隐变量模型。其中,知识蒸馏是指使用后验网络作为教师网络去训练学生网络,即先验网络,实现知识迁移。其中,后验网络是得到后验分布的神经网络,先验网络是得到先验分布的神经网络。基于后验分布和初始询问语句生成初始训练回复语句。该初始训练数据可以和训练数据的数据内容相同,也可以不同,还可以是包括有训练数据中的部分数据内容等。
具体地,服务器获取已训练的基础隐变量模型以及训练数据。其中,服务器可以从,服务器可以从互联网中采集得到训练数据,可以从数据库中获取到训练数据,也可以是第三方获取到训练数据,该第三方是提供询问语句和对应的回复语句的平台,比如,可以从即时通讯应用的第三方服务器中获取到通讯数据,根据通讯数据获取到训练数据。在一个实施例中,服务器可以实时采集用户的语音对话,将语音对话转换为对话文本,将对话文本保存为训练数据。
服务器可以从提供基础隐变量模型的平台中获取到已训练的基础隐变量模型,也可以是服务器预先训练好基础隐变量模型并保存,在使用时直接获取到。
步骤404,将回复语句和询问语句输入到基础隐变量模型中,基础隐变量模型使用询问语句和先验隐变量得到训练回复语句,先验隐变量是从先验隐变量分布中得到的,先验隐变量分布是使用基础隐变量模型中的先验网络得到的。
其中,先验隐变量分布是指根据询问语句通过基础隐变量模型中的先验网络得到的先验分布。先验分布是根据历史规律确定原因的概率分布。先验隐变量是指根据先验隐变量分布确定的隐变量,隐变量用于生成训练回复语句,不同的隐变量会生成不同的训练回复语句。训练回复语句是指训练得到的回复语句。
具体地,服务器可以直接将回复语句和询问语句输入到基础隐变量模型中,基础隐变量模型可以将回复语句和询问语句转换为向量,将回复语句和询问语句对应的向量输入到后验网络中,得到输出的后验隐变量分布。后验隐变量分布是指根据询问语句和回复语句通过基础隐变量模型中的后验网络得到的后验分布。后验分布是指预先已知结果,根据结果估计原因的概率分布。同时将询问语句对应的向量输入到先验网络中,得到输出的先验隐变量分布,从先验隐变量分布中进行采样,得到先验隐变量,将询问语句对应的向量和先验隐变量进行组合,得到组合后的向量,将组合后的向量转换为语句,得到训练回复语句,其中,进行组合可以是直接将询问语句对应的向量和先验隐变量进行拼接,得到拼接后的向量,进行组合也可以是对询问语句对应的向量和先验隐变量进行向量运算,比如,进行向量相加或者进行向量数乘或者进行向量积运算等等,得到运算后的向量。在一个实施例中,服务器可以将回复语句和询问语句转换为向量后输入到基础隐变量模型中,其中,可以使用热编码向量化,TF-IDF((Term Frequency-inverse Document Frequency,词频-逆文档频率)向量化、词袋模型向量化和word2vec(用来产生词向量的相关模型)模型向量化等。
步骤406,根据回复语句和训练回复语句调整基础隐变量模型中的先验网络,得到训练完成的目标隐变量模型。
具体地,服务器根据回复语句和训练回复语句使用模型优化算法调整基础隐变量模型中的先验网络,其中,模型优化算法包括但不限于SGD(stochastic gradientdescent,随机梯度下降算法)算法、ADAM(adaptive moment estimation,自适应矩估计)算法、共轭梯度算法、动量优化法、模拟退火算法和蚁群算法等等。比如,服务器根据回复语句和训练回复语句计算预设损失函数的值,根据预设损失函数的值计算先验网络中网络参数的梯度,然后使用SGD算法更新先验网络中网络参数,当达到预设训练完成条件时,得到训练完成的目标隐变量模型,其中,预设训练完成条件可以是预设损失函数的值达到预设阈值或者训练次数达到最大迭代次数。
步骤408,使用目标隐变量模型中训练完成的先验网络得到对话生成模型。
具体地,服务器使用目标隐变量模型中训练完成的先验网络得到对话生成模型。即服务器在部署对话生成模型时,将目标隐变量模型中训练完成的先验网络进行部署使用。
上述对话生成模型训练方法,通过使用基础隐变量模型的先验网络得到先验隐变量分布,从先验隐变量分布中得到先验隐变量,并使用询问语句和先验隐变量得到训练回复语句,然后根据先验隐变量分布、后验隐变量分布、回复语句和训练回复语句调整基础隐变量模型中的先验网络,从而能够使后验网络作为已训练的网络来指导训练先验网络,从而能够使先验隐变量分布与后验隐变量分布达到一致,即能够去除隐变量暴露偏差问题,同时保留利用后验分布信息的能力,进而使得对话生成模型在部署时能够使用先验隐变量分布产生合理的回复时,提高了对话中询问语句和回复语句的匹配性。
在一个实施例中,基础隐变量模型包括编码网络、先验网络、后验网络和解码网络。
如图5所示,步骤404,将回复语句和询问语句输入到基础隐变量模型中,基础隐变量模型使用询问语句和先验隐变量得到训练回复语句,先验隐变量是从先验隐变量分布中得到的,先验隐变量分布是使用基础隐变量模型中的先验网络得到的,包括:
步骤502,将回复语句和询问语句输入到基础隐变量模型中。
步骤504,基础隐变量模型将回复语句和询问语句输入到编码网络中,得到回复向量和询问向量。
其中,编码网络用于将输入的语句编码为向量,可以使用神经网络,比如深层的全连接网络,CNN(Convolutional Neural Networks,卷积神经网络)神经网络等。
回复向量是指回复语句对应的向量。询问向量是指询问语句对应的向量。
具体地,服务器将回复语句和询问语句输入到基础隐变量模型,该基础隐变量模型包括有编码网络和解码网络。此时,基础隐变量模型分别将回复语句和询问语句输入到编码网络中进行编码,得到输出的回复向量和询问向量。
步骤506,基础隐变量模型将回复向量和询问向量输入到后验网络中,得到后验隐变量分布,将询问向量输入到先验网络中,得到先验隐变量分布,从先验隐变量分布中得到先验隐变量。
具体地,基础隐变量模型将回复向量和询问向量进行组合,将组合后的向量输入到后验网络中,得到的后验隐变量分布,比如,可以使用如下公式(1)得到后验隐变量分布:
qφ(z|x,y) 公式(1)
其中,qφ(z|x,y)表示后验隐变量分布。φ表示后验网络,z表示隐变量。x表示询问向量,y表示回复向量。
同时将询问向量输入到先验网络中,得到先验隐变量分布,比如,可以使用如下公式(2)得到先验隐变量分布。
pπ(z|x) 公式(2)
其中,p表示先验隐变量分布,z表示隐变量,x表示询问向量。然后从先验隐变量分布中进行采样得到先验隐变量。
步骤508,基础隐变量模型将询问向量和先验隐变量输入到解码网络中进行解码,得到训练回复语句。
其中,解码网络用于将向量进行解码得到语句,可以使用神经网络,比如,RNN(Recurrent Neural Network,循环神经网络)神经网络。也可以直接使用与编码网络对称的神经网络作为解码网络。在一个实施例中,解码网络也可以使结合注意力机制网络以及transformer(一种BERT模型)网络等复杂深度神经网络进行解码。
具体地,基础隐变量模型将询问向量和先验隐变量进行组合,将组合后的向量输入到解码网络中进行解码,得到训练回复语句,当采样得到不同的先验隐变量时,会解码得到不同的训练回复语句。
在上述实施例中,通过基础隐变量模型中编码网络和解码网络进行编码和解码,提高了编码和解码的效率和准确性。
在一个实施例中,步骤504,将询问语句输入到编码网络中,得到询问向量,包括:
将询问语句输入到编码网络中进行编码,得到词级别询问向量和句级别询问向量。
其中,词级别询问向量是指将询问语句中每个词进行编码后得到的向量。句级别询问向量是指将询问语句作为整体进行编码后得到的向量。
具体地,服务器将询问语句输入到编码网络中进行编码,编码网络将询问语句中的每个词进行编码得到每个词对应的向量,根据每个词对应的词向量得到词向量矩阵,即词级别询问向量。比如,询问语句中有5个词,每个词转换为100维的向量,得到5x100的词向量矩阵,就得到的词级别询问向量。编码网络同时将询问向量作为整体进行编码,得到句级别询问向量。
步骤506,将询问向量和回复向量输入到后验网络中,得到后验隐变量分布,包括:
将句级别询问向量和回复向量输入到后验网络中,得到后验隐变量分布。
具体地,服务器将句级别询问向量和回复向量进行拼接后,将拼接后的向量输入到后验网络中,得到后验隐变量分布。使用句级别询问向量得到后验隐变量分布,能够提高得到的后验隐变量分布的准确性。
步骤506,将询问向量输入到先验网络中,得到先验隐变量分布,从先验隐变量分布中得到先验隐变量,包括:
将句级别询问向量输入到先验网络中,得到句级别先验隐变量分布,从句级别先验隐变量分布中采样得到句级别先验隐变量。
具体地,句级别先验隐变量分布是使用句级别询问向量经过先验网络得到的。服务器将句级别询问向量输入到先验网络中,得到句级别先验隐变量分布,提高了得到的先验隐变量分布的准确性,然后从句级别先验隐变量分布中采样得到句级别先验隐变量,提高了得到先验隐变量的准确性。
步骤508,将询问向量和先验隐变量输入到解码网络中进行解码,得到训练回复语句,包括:
将词级别询问向量和句级别先验隐变量输入到解码网络中,得到目标训练回复语句。
其中,服务器直接将词级别询问向量和句级别先验隐变量进行组合输入到解码网络中进行解码。得到目标训练回复语句。其中,组合可以是直接将词级别询问向量和句级别先验隐变量进行拼接,得到拼接后的向量,进行组合也可以是对询词级别询问向量和句级别先验隐变量进行向量运算,比如,进行向量相加或者进行向量数乘或者进行向量积运算等等,得到运算后的向量。通过使用词级别询问向量得到目标训练回复语句,提高了得到目标训练回复语句的准确性。
在一个实施例中,步骤406,根据所述回复语句和所述训练回复语句调整所述基础隐变量模型中的先验网络,得到训练完成的目标隐变量模型,包括:
根据先验隐变量分布、后验隐变量分布、回复语句和训练回复语句调整基础隐变量模型中的先验网络和解码网络,得到训练完成的目标隐变量模型。
具体地,服务器根据先验隐变量分布、后验隐变量分布、回复语句和训练回复语句调整基础隐变量模型计算预设损失函数的值,当预设损失函数的值未达到预设阈值或者训练未达到最大迭代次数时,计算先验网络和解码网络中网络参数的梯度,然后使用预先设置好的模型优化算法更新先验网络和解码网络中的网络参数,直到当预设损失函数的值达到预设阈值或者训练达到最大迭代次数时,得到训练完成的目标隐变量模型。其中,其中,模型优化算法包括但不限于SGD(stochastic gradient descent,随机梯度下降算法)算法、ADAM(adaptive moment estimation,自适应矩估计)算法、共轭梯度算法、动量优化法、模拟退火算法和蚁群算法等等。
使用目标隐变量模型中训练完成的先验网络得到对话生成模型,包括:
使用目标隐变量模型中的编码网络、先验网络和解码网络生成对话生成模型。
具体地,服务器将目标隐变量模型中的编码网络、先验网络和解码网络进行部署,得到对话生成模型,使用该对话生成模型进行对话生成。
在上述实施例中,通过使用目标隐变量模型中的编码网络、先验网络和解码网络得到对话生成模型,使对话生成模型提高了生成对话的效率和准确性。
在一个实施例中,如图6所示,根据先验隐变量分布、后验隐变量分布、回复语句和训练回复语句调整基础隐变量模型中的先验网络和解码网络,得到训练完成的目标隐变量模型,包括:
步骤602,根据先验隐变量分布、后验隐变量分布、回复语句和训练回复语句计算目标误差信息。
其中,目标误差信息是用于衡量训练的隐变量模型的好坏程度,可以是预设损失函数的值,该预设损失函数的值越小,说明训练的隐变量模型生成的对话就越准确。
具体地,服务器根据先验隐变量分布和后验隐变量分布之间的误差信息与回复语句和训练回复语句之间的误差信息计算得到目标误差信息。比如,可以根据先验隐变量分布、后验隐变量分布、回复语句和训练回复语句使用证据下界(ELBO,Evidence LowerBound)损失函数计算得到目标误差信息。
步骤604,当目标误差信息未符合预设误差条件时,更新先验网络和解码网络中的网络参数,得到更新隐变量模型。
其中,预设误差条件是指预先设置好的误差阈值。
具体地,当目标误差信息未符合预设误差条件时,进行反向传播更新先验网络和解码网络中的网络参数,得到更新隐变量模型。后验网络和编码网络中的网络参数是已经训练好的,不需要进行更新。
步骤606,将更新隐变量模型作为基础隐变量模型,返回将回复语句和询问语句输入到基础隐变量模型中的步骤执行,直到训练得到的目标误差信息符合预设误差条件时,得到训练完成的目标隐变量模型。
具体地,服务器将得到的更新隐变量模型作为基础隐变量模型,并返回将回复语句和询问语句输入到基础隐变量模型中的步骤执行,直到练得到的目标误差信息符合预设误差条件时,将最后一次训练得到的更新得到更新隐变量模型作为训练完成的目标隐变量模型。
在上述实施例中,通过使用目标误差信息来更新先验网络和解码网络中的网络参数,直到训练得到的目标误差信息符合预设误差条件时,得到训练完成的目标隐变量模型,从而能够得到目标隐变量模型,保证目标隐变量模型的准确性。
在一个实施例中,步骤602,根据先验隐变量分布、后验隐变量分布、回复语句和训练回复语句计算目标误差信息,包括步骤:
计算先验隐变量分布和后验隐变量分布的距离误差信息,并计算回复语句和训练回复语句的重构误差信息;基于距离误差信息和重构误差信息确定目标误差信息。
其中,距离误差信息是指使用KL散度(Kullback–Leibler divergences)损失函数计算得到的误差信息。重构误差信息是指使用交叉熵损失函数计算得到的误差信息。
具体地,服务器使用KL散度损失函数计算先验隐变量分布和后验隐变量分布的距离误差信息,并使用交叉熵损失函数计算回复语句和训练回复语句的重构误差信息。然后计算重构误差信息与距离误差信息之间的差值,得到目标误差信息。在一个具体的实施例中,可以使用如下公式(3)所示计算目标误差信息。
Figure BDA0002610080160000191
其中,x表示询问向量,y表示回复向量,qφ(z|x,y)表示后验隐变量分布,φ表示后验网络,Z表示隐变量,pπ(Z|x)表示先验隐变量分布,π表示先验网络,DKL(qφ(zφ|x,y)||pπ(zπ|x))表示使用KL散度损失函数计算先验隐变量分布和后验隐变量分布的距离误差信息。pθ(y|x,z)是基于询问向量和隐变量的解码网络,解码网络的参数为θ。Z~pπ(Z|x)表示隐变量是使用先验隐变量分布得到的隐变量。
Figure BDA0002610080160000192
表示使用交叉熵损失函数计算回复语句和训练回复语句的重构误差信息。
Figure BDA0002610080160000193
表示目标误差信息。
在一个实施例中,先验隐变量分布是以第一映射向量为均值,第二映射向量为方差的高斯分布。
步骤506,从先验隐变量分布中得到先验隐变量,包括:
从标准正态分布中进行采样,得到噪声值,根据噪声值将第一映射向量和第二映射向量进行向量变换,得到先验隐变量。
具体地,先验网络将输入的询问向量映射为第一映射向量和第二映射向量,得到先验隐变量分布,其中,先验隐变量分布是指第一映射向量为均值,第二映射向量为方差的高斯分布。例如,先验网络将询问向量映射为向量A和向量B,先验隐变量分布就是以向量A为均值,向量B为方差的高斯分布N(A,B)。通过重参数化来得到先验隐变量,其中,标准正态分布是指均值为0,方差为1的正太分布,记为N(0,1)。从标准正态分布中进行采样,得到噪声值,然后使用公式(4)计算得到先验隐变量。
A+xB 公式(4)
其中,A为第一映射向量,B第二映射向量,x为噪声值。
在一个实施例中,初始后验隐变量分布也是以第三映射向量为均值,迪斯映射向量为方差的高斯分布,从初始后验隐变量分布中得到初始后验隐变量,包括:从从标准正态分布中进行采样,得到噪声值,根据噪声值将第三映射向量和第四映射向量进行向量变换,得到初始后验隐变量。
在上述实施例中,通过从标准正态分布中进行采样,得到噪声值,根据噪声值将第一映射向量和第二映射向量进行向量变换,得到先验隐变量,从而能够保证网络中的可微分,提高训练效率。
在一个实施例中,如图7所示,对话生成模型训练方法还包括:
步骤702,获取初始化对话生成模型。
其中,初始化对话生成模型是指模型参数初始化的对话生成模型,该初始化对话生成模型中包括初始化先验网络。
具体地,服务器获取到初始化对话生成模型,该初始化对话生成模型可以是预先设置好模型参数的。也可以在使用时初始化模型参数得到初始化对话生成模型。该初始化对话生成模型是未经训练的模型。该初始化对话生成模型经过训练后能够用于对话生成。
步骤704,将询问语句输入到初始化对话生成模型中,初始化对话生成模型使用初始化先验网络计算询问语句对应的初始化先验隐变量分布,并从初始化先验隐变量分布中得到目标先验隐变量,基于目标先验隐变量与询问语句得到初始化训练回复语句。
其中,初始化先验网络是根据询问语句得到初始化先验隐变量分布的神经网络。目标先验隐变量是指从初始化先验隐变量分布中进行采样得到的先验隐变量。初始化训练回复语句是初始化对话生成模型在训练时输出的回复语句。
具体地,服务器可以将询问语句直接输入到初始化对话生成模型中,初始化对话生成模型先将询问语句转换为询问向量,然后将询问向量输入到初始化先验网络中进行计算,得到初始化先验网络输出的初始化先验隐变量分布。然后从初始化先验隐变量分布中进行采样得到目标先验隐变量。然后将目标先验隐变量与询问向量进行组合,对组合后的向量进行转换得到初始化训练回复语句。在一个实施例中,服务器也可以先将询问语句转换为询问向量,然后将询问向量输入到初始对话生成模型中,得到输出的初始化训练回复语句。
在一个实施例中,初始还对话生成模型包括初始化编码网络、初始化先验网络和初始化解码网络。初始化对话生成模型先将询问语句输入到初始化编码网络中进行编码得到输出的询问向量,然后将询问向量输入到初始化先验网络中进行计算,得到初始化先验网络输出的初始化先验隐变量分布。然后从初始化先验隐变量分布中进行采样得到目标先验隐变量。然后将目标先验隐变量与询问向量进行组合,将组合后的向量输入到初始化解码网络中进行解码,得到输出的初始化训练回复语句。
步骤706,获取后验隐变量分布,后验隐变量分布是基础隐变量模型使用后验网络、询问语句和回复语句得到的。
具体地,服务器可以直接获取到后验隐变量分布。该后验隐变量分布是预先将询问语句和回复语句输入到基础隐变量模型中,基础隐变量模型将询问语句和回复语句转换为询问向量和回复向量,将询问向量和回复向量输入到后验网络中,得到后验隐变量分布,然后将后验隐变量分布进行保存,比如保存在服务器内存或者服务器数据库中,在使用时服务器直接从内存或者数据库中进行获取。
步骤708,根据初始化先验隐变量分布、后验隐变量分布、回复语句和初始化训练回复语句调整初始化对话生成模型,得到训练完成的目标对话生成模型。
具体地,服务器根据初始化先验隐变量分布、后验隐变量分布、回复语句和初始化训练回复语句使用证据下界(ElBO)损失函数计算损失值,当损失值未到达预先设置好的损失阈值时,根据该损失值对初始化对话生成模型进行反向传播更新,得到更新对话生成模型,然后将更新对话生成模型作为初始化对话生成模型,并返回步骤704进行执行,直到损失值到达预先设置好的损失阈值时,将最后一次进行反向传播更新后得到的更新对话生成模型作为训练完成的对话生成模型。然后直接将训练完成的目标对话生成模型进行部署并使用。
在上述实施例中,通过获取到初始化对话生成模型,并对初始化对话生成模型进行训练,通过初始化对话生成模型生成初始化先验隐变量分布,能够提高训练得到的对话生成模型的准确性。
在一个实施例中,如图8所示,基础隐变量模型的训练包括以下步骤:
步骤802,获取初始隐变量模型以及初始训练数据,初始训练数据包括初始询问语句和初始回复语句。
其中,初始隐变量模型是指模型参数初始化的隐变量模型,即是未经过训练的隐变量模型。初始训练数据是指训练初始隐变量模型的数据。初始询问语句是指训练初始隐变量模型中的询问语句。初始回复语句是指训练初始隐变量模型中的回复语句。
具体地,服务器获取到初始隐变量模型以及初始训练数据,其中,服务器可以从互联网采集到初始训练数据,也可以是服务器数据库中获取到初始训练数据,也可以从保存初始训练数据的平台获取到初始训练数据。服务器在使用时直接获取到初始隐变量模型,可以预先设置好模型参数的隐变量模型。在一个具体的实施例中,如图8a所示,为隐变量模型的原理示意图,其中,pθ(y|x,z)是基于询问向量和隐变量的解码网络,解码网络的参数为θ。qφ(z|x,y)表示后验隐变量分布。pπ(Z|x)表示先验隐变量分布。
步骤804,将初始询问语句和初始回复语句输入到初始隐变量模型中,初始隐变量模型使用初始后验网络、初始询问语句和初始回复语句得到初始后验隐变量分布,使用初始先验网络和初始询问语句得到初始先验隐变量分布,从初始后验隐变量分布中得到初始后验隐变量,并使用初始询问语句和初始后验隐变量得到初始训练回复语句。
其中,初始后验网络用于根据初始询问语句和初始回复语句得到初始后验隐变量分布。初始先验网络用于根据初始询问语句得到初始先验隐变量分布。初始后验隐变量是从初始后验隐变量分布采样得到的。初始训练回复语句是使用初始隐变量模型进行训练时输出的回复语句。
具体地,服务器将初始询问语句和初始回复语句输入到初始隐变量模型中进行训练,初始隐变量模型将初始询问语句和初始回复语句转换为对应的向量,并将初始询问语句和初始回复语句对应的向量输入到初始后验网络中计算得到初始后验隐变量分布,同时将初始询问语句对应的向量输入到初始先验网络中进行计算得到初始先验隐变量分布。然后从初始后验隐变量分布中得到初始后验隐变量,并使用初始询问语句对应的向量和初始后验隐变量得到初始训练回复语句。
在一个实施例中,初始隐变量模型中包括初始解码网络和初始编码网络。服务器将初始询问语句和初始回复语句输入到初始隐变量模型中时,初始编码网络对初始询问语句和初始回复语句进行编码得到初始询问向量和初始回复向量,将初始询问向量和初始回复向量进行组合输入到初始后验网络中,得到初始后验隐变量分布。将初始询问向量输入到初始先验网络中,得到初始先验隐变量分布。然后从从初始后验隐变量分布中得到初始后验隐变量,并使用初始询问向量和初始后验隐变量进行组合,将组合后的向量输入到初始解码网络中进行解码得到初始训练回复语句。
步骤806,根据初始先验隐变量分布、初始后验隐变量分布、初始回复语句和初始训练回复语句按照预设优化方向优化初始隐变量模型,当达到优化完成条件时,得到基础隐变量模型。
其中,预设优化方向是指预先设置好的先验隐变量分布向后验隐变量分布靠近的优化方向。优化完成条件是指预先设置好的训练最大迭代次数或者训练达到预设损失阈值。
具体地,服务器根据初始先验隐变量分布、初始后验隐变量分布、初始回复语句和初始训练回复语句使用按照预设优化方向建立的损失函数计算误差信息,当误差信息达到损失阈值或者训练达到最大迭代次数时,得到基础隐变量模型。当误差信息未达到损失阈值或者训练未达到最大迭代次数时,不断进行循环迭代训练,即更新初始隐变量模型中的模型参数,使用更新模型参数的初始隐变量模型继续进行训练,直到误差信息达到损失阈值或者训练达到最大迭代次数。训练得到的基础隐变量模型中包括了经过初步训练的先验网络和训练完成的后验网络,在一个实施例中,该基础隐变量模型中还包括了经过初步训练的解码网络和训练完成的编码网络。
在上述实施例中,通过使用初始隐变量模型以及初始训练数据预先训练得到的基础隐变量模型,方便后续进行基于知识蒸馏的训练,提高效率。
在一个实施例中,步骤806,根据初始先验隐变量分布、初始后验隐变量分布、初始回复语句和初始训练回复语句按照预设优化方向优化初始隐变量模型,当达到优化完成条件时,得到基础隐变量模型,包括步骤:
基于初始回复语句和初始训练回复语句优化初始隐变量模型中的初始后验网络,并基于初始先验隐变量分布、初始后验隐变量分布、初始回复语句和初始训练回复语句优化初始隐变量模型中的初始先验网络,当达到优化完成条件时,得到基础隐变量模型。
具体地,服务器计算初始回复语句和初始训练回复语句之间的误差信息,根据该误差信息进行反向传播更新初始后验网络中的网络参数,当误差信息符合优化完成条件时,得到优化后的初始后验网络。同时服务器计算初始先验隐变量分布、初始后验隐变量分布、初始回复语句和初始训练回复语句的误差信息,根据该误差信息进行反向传播更新初始先验网络中的网络参数,当该误差信息符合优化完成条件时,得到优化后的初始先验网络。根据优化后的初始先验网络和优化后的初始后验网络得到基础隐变量模型。
在一个实施例中,服务器基于初始先验隐变量分布、初始后验隐变量分布、初始回复语句和初始训练回复语句优化初始隐变量模型中的初始先验网络、初始解码网络和初始编码网络。即进行反向传播更新初始先验网络、初始解码网络和初始编码网络的网络参数。当达到优化完成条件时,得到优化后的初始先验网络、初始解码网络和初始编码网络,根据优化后的初始后验网络、初始先验网络、初始解码网络和初始编码网络得到基础隐变量模型。
在上述实施例中,通过使用初始回复语句和初始训练回复语句优化初始隐变量模型中的初始后验网络,避免在优化时后验分布向先验分布靠近,从而能够得到性能较好的后验网络。同时使用初始先验隐变量分布、初始后验隐变量分布、初始回复语句和初始训练回复语句优化初始隐变量模型中的初始先验网络,从而使能够训练得到基础隐变量模型,方便后续的使用。
在一个实施例中,如图9所示,基于初始回复语句和初始训练回复语句优化初始隐变量模型中的初始后验网络,并基于初始先验隐变量分布、初始后验隐变量分布、初始回复语句和初始训练回复语句优化初始隐变量模型中的初始先验网络,当达到优化完成条件时,得到基础隐变量模型,包括步骤:
步骤902,根据初始先验隐变量分布和初始后验隐变量分布计算初始距离误差信息,并根据初始回复语句和初始训练回复语句计算初始重构误差信息,基于初始距离误差信息和初始重构误差信息得到初始目标误差信息。
具体地,初始距离误差信息是指使用KL散度损失函数计算初始先验隐变量分布和初始后验隐变量分布之间的误差信息。初始重构误差信息是指使用交叉熵损失函数计算初始回复语句和初始训练回复语句之间的重构误差信息。可以使用公式(5)计算初始重构误差信息:
Figure BDA0002610080160000251
其中,x0是指初始询问语句,y0是指初始回复语句,z0是指初始隐变量,θ0是指初始解码网络的网络参数。
Figure BDA0002610080160000252
表示初始隐变量是使用初始后验隐变量分布得到的,
Figure BDA0002610080160000253
是指使用交叉熵损失函数计算初始回复语句和初始训练回复语句之间的重构误差信息。
同时也可以使用公式(6)计算初始目标误差信息:
Figure BDA0002610080160000254
其中,
Figure BDA0002610080160000261
是指初始后验网络,π0是指初始先验网络。
Figure BDA0002610080160000262
是指初始后验隐变量分布。
Figure BDA0002610080160000263
是指初始先验隐变量分布。fix(qφ(z|x,y))是指使用fix(·)=stop_gradient(·)操作来固定后验隐变量分布,使初始后验网络中的模型参数未使用距离误差信息进行更新。
Figure BDA0002610080160000264
是指初始距离误差信息。
Figure BDA0002610080160000265
是指初始目标误差信息。
步骤904,当初始重构误差信息和初始目标误差信息未达到优化完成条件时,使用初始重构误差信息更新初始后验网络中的网络参数,并使用初始目标误差信息更新初始先验网络中的网络参数,得到更新隐变量模型。
具体地,当初始重构误差信息和初始目标误差信息未达到优化完成条件时,使用初始重构误差信息进行反向传播更新初始后验网络中的网络参数,并使用初始目标误差信息进行反向传播更新初始先验网络中的网络参数,得到更新隐变量模型。优化完成条件可以是训练达到最大迭代次数或者误差信息符合预设阈值。在一个实施例中,可以使用目标误差信息更新初始先验网络、初始编码网络和初始解码网络中的网络参数,根据更新的初始后验网络、初始先验网络、初始编码网络和初始解码网络得到更新隐变量模型。
步骤906,将更新隐变量模型作为初始隐变量模型,并返回将初始询问语句和初始回复语句输入到初始隐变量模型中的步骤执行,直到训练得到的初始重构误差信息和初始目标误差信息达到优化完成条件时,得到训练完成的基础隐变量模型。
具体地,服务器将更新隐变量模型作为初始隐变量模型,并返回将初始询问语句和初始回复语句输入到初始隐变量模型中的步骤执行,即将初始询问语句和初始回复语句输入到更新隐变量模型中进行迭代循环,直到训练得到的初始重构误差信息和初始目标误差信息达到优化完成条件时,将最后一次更新得到的初始后验网络和初始先验网络作为训练完成的基础隐变量模型。
在上述实施例中,通过使用初始重构误差信息更新初始后验网络中的网络参数,避免使用KL散度损失函数计算得到的误差信息对初始后验网络中的网络参数进行更新,从而避免在优化时后验分布向先验分布靠近,即通过固定后验分布来避免先验网络的影响,使得到性能较好的后验网络。同时使用初始目标误差信息更新初始先验网络中的网络参数,从而使能够训练得到基础隐变量模型,方便后续的使用。
在一个具体的实施例中,提供一种对话生成模型训练方法,具体包括两阶段的训练,第一阶段训练如图10所示,包括以下步骤:
步骤1002,获取初始隐变量模型以及初始训练数据,初始训练数据包括初始询问语句和初始回复语句。初始隐变量模型中包括初始编码网络、初始先验网络、初始后验网络和初始解码网络。
步骤1004,将初始询问语句和初始回复语句输入到初始隐变量模型中,初始隐变量模型使用初始编码网络将初始询问语句和初始回复语句进行编码,得到初始询问向量和初始回复向量,将初始询问向量和初始回复向量输入到初始后验网络中得到初始后验隐变量分布,将初始询问向量输入到初始先验网络得到初始先验隐变量分布,从初始后验隐变量分布中得到初始后验隐变量,并使用初始询问语句和初始后验隐变量得到初始训练回复语句。
步骤1006,根据初始先验隐变量分布和初始后验隐变量分布计算初始距离误差信息,并根据初始回复语句和初始训练回复语句计算初始重构误差信息,基于初始距离误差信息和初始重构误差信息得到初始目标误差信息。
步骤1008,判断初始重构误差信息和初始目标误差信息是否达到优化完成条件时,当是时,执行步骤1010a,当否时,执行步骤1010b并返回步骤1004执行。
步骤1010b,使用初始重构误差信息更新初始后验网络中的网络参数,并使用初始目标误差信息更新初始先验网络、初始编码网络和初始解码网络中的网络参数,得到更新隐变量模型,将更新隐变量模型作为初始隐变量模型。并返回步骤1004执行。
步骤1010a,根据训练完成的初始编码网络、初始先验网络、初始后验网络和初始解码网络得到基础隐变量模型。
通过第一阶段训练得到的基础隐变量模型从而得到的性能较好的后验网络作为教师网络,同时可以给第二阶段提供一个良好的初始化位置,提高第二阶段训练效率。
第二阶段训练如图11所示,包括以下步骤:
步骤1102,获取已训练的基础隐变量模型以及训练数据,训练数据包括询问语句和回复语句。
步骤1104,将回复语句和询问语句输入到基础隐变量模型中,基础隐变量模型将回复语句输入到编码网络中,得到回复向量,将询问语句输入到编码网络中进行编码,得到词级别询问向量和句级别询问向量。
步骤1106,基础隐变量模型将句级别询问向量和回复向量输入到后验网络中,得到后验隐变量分布,将句级别询问向量输入到先验网络中,得到句级别先验隐变量分布,从句级别先验隐变量分布中采样得到句级别先验隐变量,基础隐变量模型将词级别询问向量和句级别先验隐变量输入到解码网络中,得到目标训练回复语句。
步骤1108,计算句级别先验隐变量分布和后验隐变量分布的距离误差信息,并计算回复语句和训练回复语句的重构误差信息,基于距离误差信息和重构误差信息确定目标误差信息。
步骤1110,判断目标误差信息是否符合预设误差条件时,当是时,执行步骤1112a。当否时,执行步骤1112b。
步骤1112b,更新先验网络和解码网络中的网络参数,得到更新隐变量模型,将更新隐变量模型作为基础隐变量模型,返回步骤1104执行。
步骤1112a,得到训练完成的目标隐变量模型,使用目标隐变量模型中训练完成的编码网络、先验网络和解码网络得到对话生成模型。
通过上述两阶段的训练,使得到的对话生成模型提高了对话生成的质量。
在一个具体的实施例中,如图12所示,提供一种对话生成模型训练方法的训练框架示意图,具体来说:
在第一次训练时,将询问语句X输入到编码网络中,得到询问向量,将询问向量输入到先验网络中得到先验隐变量分布。同时将回复语句y输入到编码网络中,得到回复向量,将回复向量和询问向量输入到后验网络中,得到后验隐变量分布,从后验隐变量分布中进行采用得到后验隐变量z。然后将后验隐变量z和询问向量组合输入到解码网络中进行解码得到训练回复语句Y。然后进行反向传播更新,在反向传播更新时使后验隐变量分布向先验隐变量进行靠近,直到达到第一训练完成条件时,得到基础隐变量模型。在第二次训练时,将基础隐变量模型中编码网络和后验网络作为教师网络,先验网络和解码网络作为学生网络基于知识蒸馏进行训练,即将询问语句和回复语句输入到基础隐变量模型中,基础隐变量模型将询问语句X输入到编码网络中,得到询问向量,将询问向量输入到先验网络中得到先验隐变量分布,从先验隐变量分布中进行采用得到先验验隐变量z。同时将回复语句y输入到编码网络中,得到回复向量,将回复向量和询问向量输入到后验网络中,得到后验隐变量分布。然后将先验隐变量z和询问向量组合输入到解码网络中进行解码得到训练回复语句Y。然后进行反向传播更新,直到达到第二次训练完成条件时,得到基础隐变量模型。
在一个具体的实施例中,本申请基于知识蒸馏的训练方法还可以应用到其他改进的隐变量模型中,比如,基于知识的对话系统中序列隐知识选择及其对应的变分下界,如公式(7)所示:
Figure BDA0002610080160000291
其中,将每个句子
Figure BDA0002610080160000292
作为隐变量,隐变量空间是所有的句子集合,整个对话的生成概率是p(y∣x)。整个对话有T轮次,每个轮次的对话输入与输出分别是xt和yt,对于第t轮次,x≤t,y<t视作对话历史。pθ(yt|x≤t,y<t,kt z)是基于对话历史x≤t,y<t与选中句子
Figure BDA0002610080160000293
的解码器,解码器参数为θ,
Figure BDA0002610080160000294
是基于对话历史与知识选择历史的当前先验知识选择分布,缩写为πθ(kt);
Figure BDA0002610080160000295
Figure BDA0002610080160000296
的缩写,代表基于对话历史与知识选择历史与当前对话回复的后验知识选择分布。
在一个具体的实施例中,本申请基于知识蒸馏的训练方法还可以应用到其他改进的隐变量模型中。比如,Wasserstein自编码器(Wasserstein autoencoder,WAE)及其对应的变分下界
Figure BDA0002610080160000297
如公式(8)所示:
Figure BDA0002610080160000301
其中,W(qφ(z∣x,c)||pπ(z∣c))表示后验分布qφ(z∣x,c)与先验分布pπ(z∣c)的Wasserstein距离。z为隐变量,c为回复语句,x为训练语句。
在一个具体的实施例中,对使用本申请进行对话生成和使用传统方法进行对比测试,使用测试数据集为wizard of wikipedia数据集,得到的测试结果如下表1所示:
表1数据集1对比测试结果表
Figure BDA0002610080160000302
其中,测试指标包括ACC(准确率)、PPL(困惑度)和R1是指Rouge(Recall-OrientedUnderstudy for Gisting Evaluation)-1,R2是指Rouge-2,Rouge是基于语句中n元词(n-gram)的共现信息来评价语句,是一种面向n元词召回率的评价方法。其中,测试指标对应的箭头向上表明数值越大越好,箭头向下表明数值越小越好。明显的,在wizard ofwikipedia数据集上使用本申请的方法进行对话生成提高了对话中输入语句和回复语句的匹配性,提高了对话生成质量。
同时,使用Holl-E数据集进行对比测试,得到的对比测试结果如下表2所示:
表2数据集2的对比测试结果表
Figure BDA0002610080160000311
其中,明显的在Holl-E数据集上使用本申请的方法进行对话生成提高了对话中输入语句和回复语句的匹配性,提高了对话生成质量。
在一个具体地实施例中,使用本申请的预设优化方向来训练得到基础隐变量模型和使用其他优化方向来训练得到其他基础隐变量模型,对该本申请的基础隐变量模型和其他基础隐变量模型进行对比测试,得到的对比测试结果如表3所示:
表3基础隐变量模型的对比测试结果表
Figure BDA0002610080160000312
其中,在进行测试的时候都使用后验网络来生成回复语句。明显的可以看出使用本申请优化方向的基础隐变量模型的测试结果明显优于使用其他优化方向来训练得到其他隐变量模型,即说明使用本申请优化方向的基础隐变量模型有更好的性能,从而使生成的对话生成模型具有更好的性能。
应该理解的是,虽然图2、图4-11的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图4-11中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图13所示,提供了一种对话生成装置1300,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:输入语句获取模块1302、编码模块1304、隐变量得到模块1306、解码模块1308和回复语句确定模块1310,其中:
输入语句获取模块1302,用于获取对话输入语句;
编码模块1304,用于将所述对话输入语句进行编码,得到对话输入向量;
隐变量得到模块1306,用于基于所述对话输入向量进行先验分布计算,得到对话输入先验分布,从所述对话输入先验分布中得到各个对话输入隐变量;
解码模块1308,用于分别将所述各个对话输入隐变量与所述对话输入向量进行组合,得到各个组合向量,将所述各个组合向量进行解码,得到各个对话回复语句;其中,先验分布计算的参数和解码的参数是通过知识蒸馏进行训练得到的;
回复语句确定模块1310,用于从所述各个对话回复语句中确定目标对话回复语句
在一个实施例中,对话生成装置1300,还包括:
模型生成模块,用于将对话输入语句输入到对话生成模型中,对话生成模型使用编码网络对对话输入语句进行编码,得到对话输入向量,将对话输入向量输入到先验网络中,得到对话输入先验分布,从对话输入先验分布中得到各个对话输入隐变量,并将各个对话输入隐变量与对话输入向量输入到解码网络中进行解码,得到各个对话回复语句;其中,对话生成模型是基于目标隐变量模型中的编码网络、先验网络和解码网络得到的,目标隐变量模型是通过知识蒸馏调整已训练的基础隐变量模型中的先验网络和解码网络得到。
在一个实施例中,回复语句确定模块1310还用于计算各个对话回复语句对应的语句长度,比较各个语句长度,根据比较结果确定目标对话回复语句。
在一个实施例中,回复语句确定模块1310还用于获取各个对话回复语句对应的困惑度,根据各个困惑度确定目标对话回复语句。
在一个实施例中,如图14所示,提供了一种对话生成模型训练装置1400,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:获取模块1402、语句输入模块1404、模型训练模块1406和模型得到模块1408,其中:
获取模块1402,用于获取已训练的基础隐变量模型以及训练数据,训练数据包括询问语句和回复语句;
语句输入模块1404,用于将回复语句和询问语句输入到基础隐变量模型中,基础隐变量模型使用询问语句和先验隐变量得到训练回复语句,先验隐变量是从先验隐变量分布中得到的,先验隐变量分布是使用基础隐变量模型中的先验网络得到的;
模型训练模块1406,用于根据回复语句和训练回复语句调整基础隐变量模型中的先验网络,得到训练完成的目标隐变量模型;
模型得到模块1408,用于使用目标隐变量模型中训练完成的先验网络得到对话生成模型。
在一个实施例中,基础隐变量模型包括编码网络和解码网络,语句输入模块1404,包括:
语句输入单元,用于将回复语句和询问语句输入到基础隐变量模型中;
编码单元,用于基础隐变量模型将回复语句和询问语句输入到编码网络中,得到回复向量和询问向量;
隐变量得到单元,用于基础隐变量模型将回复向量和询问向量输入到后验网络中,得到后验隐变量分布,将询问向量输入到先验网络中,得到先验隐变量分布,从先验隐变量分布中得到先验隐变量;
解码单元,用于基础隐变量模型将询问向量和先验隐变量输入到解码网络中进行解码,得到训练回复语句。
在一个实施例中,编码单元,还用于将询问语句输入到编码网络中进行编码,得到词级别询问向量和句级别询问向量;
隐变量得到单元还用于将句级别询问向量输入到先验网络中,得到句级别先验隐变量分布,从句级别先验隐变量分布中采样得到句级别先验隐变量;
解码单元还用于将词级别询问向量和句级别先验隐变量输入到解码网络中,得到目标训练回复语句。
在一个实施例中,模型训练模块1406还用于根据先验隐变量分布、后验隐变量分布、回复语句和训练回复语句调整基础隐变量模型中的先验网络和解码网络,得到训练完成的目标隐变量模型;
模型得到模块1408还用于使用目标隐变量模型中的编码网络、先验网络和解码网络生成对话生成模型。
在一个实施例中,模型训练模块1406还用于根据先验隐变量分布、后验隐变量分布、回复语句和训练回复语句计算目标误差信息;当目标误差信息未符合预设误差条件时,更新先验网络和解码网络中的网络参数,得到更新隐变量模型;将更新隐变量模型作为基础隐变量模型,返回将回复语句和询问语句输入到基础隐变量模型中的步骤执行,直到训练得到的目标误差信息符合预设误差条件时,得到训练完成的目标隐变量模型。
在一个实施例中,模型训练模块1406还用于计算先验隐变量分布和后验隐变量分布的距离误差信息,并计算回复语句和训练回复语句的重构误差信息;基于距离误差信息和重构误差信息确定目标误差信息。
在一个实施例中,先验隐变量分布是以第一映射向量为均值,第二映射向量为方差的高斯分布;
语句输入模块1404还用于从标准正态分布中进行采样,得到噪声值,根据噪声值将第一映射向量和第二映射向量进行向量变换,得到先验隐变量。
在一个实施例中,对话生成模型训练装置1400,还包括:
对话模型获取模块,用于获取初始化对话生成模型;
对话模型计算模块,用于将询问语句输入到初始化对话生成模型中,初始化对话生成模型使用初始化先验网络计算询问语句对应的初始化先验隐变量分布,并从初始化先验隐变量分布中得到目标先验隐变量,基于目标先验隐变量与询问语句得到初始化训练回复语句;
后验分布获取模块,用于获取后验隐变量分布,后验隐变量分布是基础隐变量模型使用后验网络、询问语句和回复语句得到的;
对话模型得到模块,用于根据初始化先验隐变量分布、后验隐变量分布、回复语句和初始化训练回复语句调整初始化对话生成模型,得到训练完成的目标对话生成模型。
在一个实施例中,对话生成模型训练装置1400,还包括:
初始数据获取模块,用于获取初始隐变量模型以及初始训练数据,初始训练数据包括初始询问语句和初始回复语句;
初始语句输入模块,用于将初始询问语句和初始回复语句输入到初始隐变量模型中,初始隐变量模型使用初始后验网络、初始询问语句和初始回复语句得到初始后验隐变量分布,使用初始先验网络和初始询问语句得到初始先验隐变量分布,从初始后验隐变量分布中得到初始后验隐变量,并使用初始询问语句和初始后验隐变量得到初始训练回复语句;
基础模型得到模块,用于根据初始先验隐变量分布、初始后验隐变量分布、初始回复语句和初始训练回复语句按照预设优化方向优化初始隐变量模型,当达到优化完成条件时,得到基础隐变量模型。
在一个实施例中,基础模型得到模块,还用于基于初始回复语句和初始训练回复语句优化初始隐变量模型中的初始后验网络,并基于初始先验隐变量分布、初始后验隐变量分布、初始回复语句和初始训练回复语句优化初始隐变量模型中的初始先验网络,当达到优化完成条件时,得到基础隐变量模型。
在一个实施例中,基础模型得到模块,还包括:
误差计算单元,用于根据初始先验隐变量分布和初始后验隐变量分布计算初始距离误差信息,并根据初始回复语句和初始训练回复语句计算初始重构误差信息,基于初始距离误差信息和初始重构误差信息得到初始目标误差信息;
参数更新单元,用于当初始重构误差信息和初始目标误差信息未达到优化完成条件时,使用初始重构误差信息更新初始后验网络中的网络参数,并使用初始目标误差信息更新初始先验网络中的网络参数,得到更新隐变量模型;
循环迭代单元,用于将更新隐变量模型作为初始隐变量模型,并返回将初始询问语句和初始回复语句输入到初始隐变量模型中的步骤执行,直到训练得到的初始重构误差信息和初始目标误差信息达到优化完成条件时,得到训练完成的基础隐变量模型。
关于对话生成模型训练装置和对话生成装置的具体限定可以参见上文中对于生成模型训练方法和对话生成方法的限定,在此不再赘述。上述对话生成模型训练装置和对话生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图15所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储对话训练数据和对话生成数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种对话生成模型训练方法或者对话生成方法。
本领域技术人员可以理解,图15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (15)

1.一种对话生成方法,其特征在于,所述方法包括:
获取对话输入语句;
将所述对话输入语句进行编码,得到对话输入向量;
基于所述对话输入向量进行先验分布计算,得到对话输入先验分布,从所述对话输入先验分布中得到各个对话输入隐变量;
分别将所述各个对话输入隐变量与所述对话输入向量进行组合,得到各个组合向量,将所述各个组合向量进行解码,得到各个对话回复语句;其中,所述先验分布计算的参数和所述解码的参数是通过知识蒸馏进行训练得到的;
从所述各个对话回复语句中确定目标对话回复语句。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述对话输入语句输入到对话生成模型中,所述对话生成模型使用编码网络对所述对话输入语句进行编码,得到对话输入向量,将所述对话输入向量输入到先验网络中,得到对话输入先验分布,从对话输入先验分布中得到各个对话输入隐变量,并将所述各个对话输入隐变量与所述对话输入向量输入到解码网络中进行解码,得到各个对话回复语句;
其中,所述对话生成模型是基于目标隐变量模型中的编码网络、先验网络和解码网络得到的,所述目标隐变量模型是通过知识蒸馏调整已训练的基础隐变量模型中的先验网络和解码网络得到。
3.一种对话生成模型训练方法,其特征在于,所述方法包括:
获取已训练的基础隐变量模型以及训练数据,所述训练数据包括询问语句和回复语句;
将所述回复语句和所述询问语句输入到所述基础隐变量模型中,所述基础隐变量模型使用所述询问语句和先验隐变量得到训练回复语句,所述先验隐变量是从先验隐变量分布中得到的,所述先验隐变量分布是使用所述基础隐变量模型中的先验网络得到的;
根据所述回复语句和所述训练回复语句调整所述基础隐变量模型中的先验网络,得到训练完成的目标隐变量模型;
使用所述目标隐变量模型中训练完成的先验网络得到对话生成模型。
4.根据权利要求3所述的方法,其特征在于,所述基础隐变量模型包括编码网络、先验网络、后验网络和解码网络,
将所述回复语句和所述询问语句输入到所述基础隐变量模型中,所述基础隐变量模型使用所述询问语句和先验隐变量得到训练回复语句,所述先验隐变量是从先验隐变量分布中得到的,所述先验隐变量分布是使用所述基础隐变量模型中的先验网络得到的,包括:
所述将所述回复语句和所述询问语句输入到所述基础隐变量模型中;
所述基础隐变量模型将所述回复语句和所述询问语句输入到所述编码网络中,得到回复向量和询问向量;
所述基础隐变量模型将所述询问向量和所述回复向量输入到所述后验网络中,得到后验隐变量分布,将所述询问向量输入到所述先验网络中,得到先验隐变量分布,从所述先验隐变量分布中得到先验隐变量;
所述基础隐变量模型将所述询问向量和所述先验隐变量输入到所述解码网络中进行解码,得到训练回复语句。
5.根据权利要求4所述的方法,其特征在于,所述将所述询问语句输入到所述编码网络中,得到询问向量,包括:
将所述询问语句输入到所述编码网络中进行编码,得到词级别询问向量和句级别询问向量;
所述将所述询问向量和所述回复向量输入到所述后验网络中,得到后验隐变量分布,包括:
将所述句级别询问向量和所述回复向量输入到所述后验网络中,得到后验隐变量分布;
所述将所述询问向量输入到所述先验网络中,得到先验隐变量分布,从所述先验隐变量分布中得到先验隐变量,包括:
将所述句级别询问向量输入到所述先验网络中,得到句级别先验隐变量分布,从所述句级别先验隐变量分布中采样得到句级别先验隐变量;
所述将所述询问向量和所述先验隐变量输入到所述解码网络中进行解码,得到训练回复语句,包括:
将所述词级别询问向量和所述句级别先验隐变量输入到所述解码网络中,得到目标训练回复语句。
6.根据权利要求4所述的方法,其特征在于,所述根据所述回复语句和所述训练回复语句调整所述基础隐变量模型中的先验网络,得到训练完成的目标隐变量模型,包括:
根据所述先验隐变量分布、所述后验隐变量分布、所述回复语句和所述训练回复语句调整所述基础隐变量模型中的先验网络和解码网络,得到训练完成的所述目标隐变量模型;
所述使用所述目标隐变量模型中训练完成的先验网络得到对话生成模型,包括:
使用所述目标隐变量模型中的编码网络、先验网络和解码网络生成所述对话生成模型。
7.根据权利要求6所述的方法,其特征在于,所述根据所述先验隐变量分布、所述后验隐变量分布、所述回复语句和所述训练回复语句调整所述基础隐变量模型中的先验网络和解码网络,得到训练完成的所述目标隐变量模型,包括:
根据所述先验隐变量分布、所述后验隐变量分布、所述回复语句和所述训练回复语句计算目标误差信息;
当所述目标误差信息未符合预设误差条件时,更新所述先验网络和所述解码网络中的网络参数得到更新隐变量模型;
将所述更新隐变量模型作为基础隐变量模型,返回所述将所述回复语句和所述询问语句输入到所述基础隐变量模型中的步骤执行,直到训练得到的目标误差信息符合所述预设误差条件时,得到训练完成的所述目标隐变量模型。
8.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取初始化对话生成模型;
将所述询问语句输入到所述初始化对话生成模型中,所述初始化对话生成模型使用初始化先验网络计算所述询问语句对应的初始化先验隐变量分布,并从所述初始化先验隐变量分布中得到目标先验隐变量,基于所述目标先验隐变量与所述询问语句得到初始化训练回复语句;
获取后验隐变量分布,所述后验隐变量分布是所述基础隐变量模型使用所述后验网络、所述询问语句和所述回复语句得到的;
根据所述初始化先验隐变量分布、所述后验隐变量分布、所述回复语句和所述初始化训练回复语句调整所述初始化对话生成模型,得到训练完成的目标对话生成模型。
9.根据权利要求3所述的方法,其特征在于,所述基础隐变量模型的训练包括以下步骤:
获取初始隐变量模型以及初始训练数据,所述初始训练数据包括初始询问语句和初始回复语句;
将所述初始询问语句和所述初始回复语句输入到所述初始隐变量模型中,所述初始隐变量模型使用初始后验网络、所述初始询问语句和所述初始回复语句得到初始后验隐变量分布,使用初始先验网络和所述初始询问语句得到初始先验隐变量分布,从所述初始后验隐变量分布中得到初始后验隐变量,并使用所述初始询问语句和所述初始后验隐变量得到初始训练回复语句;
根据所述初始先验隐变量分布、所述初始后验隐变量分布、所述初始回复语句和所述初始训练回复语句按照预设优化方向优化所述初始隐变量模型,当达到优化完成条件时,得到所述基础隐变量模型。
10.根据权利要求9所述的方法,其特征在于,所述根据所述初始先验隐变量分布、所述初始后验隐变量分布、所述初始回复语句和所述初始训练回复语句按照预设优化方向优化所述初始隐变量模型,当达到优化完成条件时,得到所述基础隐变量模型,包括:
基于所述初始回复语句和所述初始训练回复语句优化所述初始隐变量模型中的初始后验网络,并基于所述初始先验隐变量分布、所述初始后验隐变量分布、所述初始回复语句和所述初始训练回复语句优化所述初始隐变量模型中的初始先验网络,当达到优化完成条件时,得到所述基础隐变量模型。
11.根据权利要求10所述的方法,其特征在于,所述基于所述初始回复语句和所述初始训练回复语句优化所述初始隐变量模型中的初始后验网络,并基于所述初始先验隐变量分布、所述初始后验隐变量分布、所述初始回复语句和所述初始训练回复语句优化所述初始隐变量模型中的初始先验网络,当达到优化完成条件时,得到所述基础隐变量模型,包括:
根据所述初始先验隐变量分布和所述初始后验隐变量分布计算初始距离误差信息,并根据所述初始回复语句和所述初始训练回复语句计算初始重构误差信息,基于所述初始距离误差信息和所述初始重构误差信息得到初始目标误差信息;
当所述初始重构误差信息和所述初始目标误差信息未达到所述优化完成条件时,使用所述初始重构误差信息更新所述初始后验网络中的网络参数,并使用初始目标误差信息更新所述初始先验网络中的网络参数,得到更新隐变量模型;
将所述更新隐变量模型作为初始隐变量模型,并返回将所述初始询问语句和所述初始回复语句输入到所述初始隐变量模型中的步骤执行,直到训练得到的初始重构误差信息和所述初始目标误差信息达到所述优化完成条件时,得到训练完成的所述基础隐变量模型。
12.一种对话生成装置,其特征在于,所述装置包括:
输入语句获取模块,用于获取对话输入语句;
编码模块,用于将所述对话输入语句进行编码,得到对话输入向量;
隐变量得到模块,用于基于所述对话输入向量进行先验分布计算,得到对话输入先验分布,从所述对话输入先验分布中得到各个对话输入隐变量,
解码模块,用于分别将所述各个对话输入隐变量与所述对话输入向量进行组合,得到各个组合向量,将所述各个组合向量进行解码,得到各个对话回复语句;其中,先验分布计算的参数和解码的参数是通过知识蒸馏进行训练得到的;
回复语句确定模块,用于从所述各个对话回复语句中确定目标对话回复语句。
13.一种对话生成模型训练装置,其特征在于,所述装置包括:
获取模块,用于获取已训练的基础隐变量模型以及训练数据,所述训练数据包括询问语句和回复语句;
语句输入模块,用于将所述回复语句和所述询问语句输入到所述基础隐变量模型中,所述基础隐变量模型使用所述询问语句和先验隐变量得到训练回复语句,所述先验隐变量是从先验隐变量分布中得到的,所述先验隐变量分布是使用所述基础隐变量模型中的先验网络得到的;
模型训练模块,用于根据所述回复语句和所述训练回复语句调整所述基础隐变量模型中的先验网络,得到训练完成的目标隐变量模型;
模型得到模块,用于使用所述目标隐变量模型中训练完成的先验网络得到对话生成模型。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。
15.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
CN202010751314.0A 2020-07-30 2020-07-30 对话生成方法、装置、计算机设备和存储介质 Active CN111797220B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010751314.0A CN111797220B (zh) 2020-07-30 2020-07-30 对话生成方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010751314.0A CN111797220B (zh) 2020-07-30 2020-07-30 对话生成方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN111797220A true CN111797220A (zh) 2020-10-20
CN111797220B CN111797220B (zh) 2024-02-09

Family

ID=72827891

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010751314.0A Active CN111797220B (zh) 2020-07-30 2020-07-30 对话生成方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN111797220B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254597A (zh) * 2021-06-23 2021-08-13 腾讯科技(深圳)有限公司 模型训练方法、查询处理方法及相关设备
CN113436752A (zh) * 2021-05-26 2021-09-24 山东大学 一种半监督的多轮医疗对话回复生成方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180052825A1 (en) * 2016-08-16 2018-02-22 Microsoft Technology Licensing, Llc Efficient dialogue policy learning
US20180203852A1 (en) * 2017-01-18 2018-07-19 Xerox Corporation Natural language generation through character-based recurrent neural networks with finite-state prior knowledge
CN108763284A (zh) * 2018-04-13 2018-11-06 华南理工大学 一种基于深度学习和主题模型的问答系统实现方法
CN109582767A (zh) * 2018-11-21 2019-04-05 北京京东尚科信息技术有限公司 对话系统处理方法、装置、设备及可读存储介质
CN110245222A (zh) * 2019-06-17 2019-09-17 北京百度网讯科技有限公司 对话模型训练方法及装置、对话生成方法及装置
CN110737764A (zh) * 2019-10-24 2020-01-31 西北工业大学 一种个性化对话内容生成方法
JP2020030403A (ja) * 2018-08-24 2020-02-27 ネイバー コーポレーションNAVER Corporation ディープラーニング生成モデルとマルチモーダル分布を利用してマルチターン会話応答を生成する方法およびシステム
CN111309883A (zh) * 2020-02-13 2020-06-19 腾讯科技(深圳)有限公司 基于人工智能的人机对话方法、模型训练方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180052825A1 (en) * 2016-08-16 2018-02-22 Microsoft Technology Licensing, Llc Efficient dialogue policy learning
US20180203852A1 (en) * 2017-01-18 2018-07-19 Xerox Corporation Natural language generation through character-based recurrent neural networks with finite-state prior knowledge
CN108763284A (zh) * 2018-04-13 2018-11-06 华南理工大学 一种基于深度学习和主题模型的问答系统实现方法
JP2020030403A (ja) * 2018-08-24 2020-02-27 ネイバー コーポレーションNAVER Corporation ディープラーニング生成モデルとマルチモーダル分布を利用してマルチターン会話応答を生成する方法およびシステム
CN109582767A (zh) * 2018-11-21 2019-04-05 北京京东尚科信息技术有限公司 对话系统处理方法、装置、设备及可读存储介质
CN110245222A (zh) * 2019-06-17 2019-09-17 北京百度网讯科技有限公司 对话模型训练方法及装置、对话生成方法及装置
CN110737764A (zh) * 2019-10-24 2020-01-31 西北工业大学 一种个性化对话内容生成方法
CN111309883A (zh) * 2020-02-13 2020-06-19 腾讯科技(深圳)有限公司 基于人工智能的人机对话方法、模型训练方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
XISHUO LI 等: ""Deep Hybrid Networks Based Response Selection for Multi-turn Dialogue Systems"", ICASSP 2019 - 2019 IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH AND SIGNAL PROCESSING (ICASSP) *
方艺臻: ""基于深度学习的开放域情感对话生成研究"", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113436752A (zh) * 2021-05-26 2021-09-24 山东大学 一种半监督的多轮医疗对话回复生成方法及系统
CN113436752B (zh) * 2021-05-26 2023-04-28 山东大学 一种半监督的多轮医疗对话回复生成方法及系统
CN113254597A (zh) * 2021-06-23 2021-08-13 腾讯科技(深圳)有限公司 模型训练方法、查询处理方法及相关设备

Also Published As

Publication number Publication date
CN111797220B (zh) 2024-02-09

Similar Documents

Publication Publication Date Title
US20210327428A1 (en) Adversarial learning and generation of dialogue responses
CN110366734B (zh) 优化神经网络架构
WO2020253060A1 (zh) 语音识别方法、模型的训练方法、装置、设备及存储介质
CN109977201B (zh) 带情感的机器聊天方法、装置、计算机设备及存储介质
CN110326002B (zh) 使用在线注意的序列处理
CN110766142A (zh) 模型生成方法和装置
CN111966800B (zh) 情感对话生成方法、装置及情感对话模型训练方法、装置
US11151324B2 (en) Generating completed responses via primal networks trained with dual networks
US11355097B2 (en) Sample-efficient adaptive text-to-speech
US11183174B2 (en) Speech recognition apparatus and method
CN109558605B (zh) 用于翻译语句的方法和装置
JP2020506488A (ja) バッチ再正規化層
CN108959388B (zh) 信息生成方法及装置
CN112837669B (zh) 语音合成方法、装置及服务器
CN113240115B (zh) 一种生成人脸变化图像模型的训练方法及相关装置
CN114860915A (zh) 一种模型提示学习方法、装置、电子设备及存储介质
KR20200095789A (ko) 번역 모델 구축 방법 및 장치
CN111797220B (zh) 对话生成方法、装置、计算机设备和存储介质
CN108959421A (zh) 候选回复评价装置和问询回复设备及其方法、存储介质
CN110955765A (zh) 智能助理的语料构建方法、装置、计算机设备和存储介质
US20200250279A1 (en) Performing multi-objective tasks via primal networks trained with dual networks
CN114626518A (zh) 使用深度聚类的知识蒸馏
WO2021229643A1 (ja) 音声信号変換モデル学習装置、音声信号変換装置、音声信号変換モデル学習方法及びプログラム
CN111090740A (zh) 一种用于对话系统的知识图谱生成方法
CN109597884B (zh) 对话生成的方法、装置、存储介质和终端设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40029473

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant