掌桥专利:专业的专利平台
掌桥专利
首页

对话模型的训练方法、装置、设备和存储介质

文献发布时间:2023-06-19 12:10:19


对话模型的训练方法、装置、设备和存储介质

技术领域

本公开涉及计算机技术领域,具体涉及自然语言处理、人机对话等技术领域,尤其涉及对话模型的训练方法、装置、设备和存储介质。

背景技术

为了提高对话系统生成的回复的相关性,一般会在对话系统中引入知识(knowledge)。针对引入知识的对话系统,对话系统采用的对话模型包括知识选择模型。

相关技术中,可以采用人工标注的方式为知识打标签,有监督的训练知识选择模型;或者,以词袋(Bag of Words,BoW)和KL散度(Kullback-Leibler divergence)等为优化目标,进行无监督的训练。

发明内容

本公开提供了一种对话模型的训练方法、装置、设备和存储介质。

根据本公开的一方面,提供了一种对话模型的训练方法,所述对话模型包括知识选择模型和回复生成模型,所述方法包括:采用所述知识选择模型,处理对话样本和知识库,以确定与所述对话样本匹配的知识,并确定所述知识对应的第一概率,所述第一概率为所述知识被选中的概率;采用所述回复生成模型,处理所述对话样本和所述知识,以确定预测回复对应的第二概率,所述第二概率为所述预测回复为回复样本的概率;基于所述第一概率和所述第二概率,确定损失函数,并基于所述损失函数训练所述知识选择模型和所述回复生成模型。

根据本公开的另一方面,提供了一种对话模型的训练装置,所述对话模型包括知识选择模型和回复生成模型,所述装置包括:知识选择模块,用于采用所述知识选择模型,处理对话样本和知识库,以确定与所述对话样本匹配的知识,并确定所述知识对应的第一概率,所述第一概率为所述知识被选中的概率;回复生成模块,用于采用所述回复生成模型,处理所述对话样本和所述知识,以确定预测回复对应的第二概率,所述第二概率为所述预测回复为回复样本的概率;训练模块,用于基于所述第一概率和所述第二概率,确定损失函数,并基于所述损失函数训练所述知识选择模型和所述回复生成模型。

根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述任一方面的任一项所述的方法。

根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如上述任一方面的任一项所述的方法。

根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据上述任一方面的任一项所述的方法。

根据本公开的技术方案,可以将相关知识引入对话系统且训练方式具有较强的通用性。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本公开的限定。其中:

图1是根据本公开第一实施例的示意图;

图2是根据本公开第二实施例的示意图;

图3是根据本公开第三实施例的示意图;

图4是根据本公开第四实施例的示意图;

图5是根据本公开第五实施例的示意图;

图6是根据本公开第六实施例的示意图;

图7是用来实现本公开实施例的对话模型的训练方法中任一方法的电子设备的示意图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

在对话系统中,人们往往希望能引入和对话相关的知识,使得系统能够在回复中围绕相关知识和用户进行讨论,提升回复的相关度、信息量和趣味性。

在对话系统中引入知识,即通过对话信息,在知识库中选择出合理的相关知识,结合到系统的回复生成中,目前主流方案主要有两种:一种是有监督的训练方式,另一种是基于后验概率的无监督的训练方式。前者主要是对知识进行标注,训练时要求知识选择模型尽可能输出标注为正确的知识;后者不需要人工标注,主要利用当前回复中蕴含的后验信息,对话上文作为先验信息,分别产生知识选择的先验概率和后验概率,通常使用词袋(BagofWords,BoW)建立按后验概率选择出来的知识和后验信息(回复)之间的联系,提升后验概率的准确性,然后再通过KL Divergence等方式拉近先验概率和后验概率的分布。

但是,上述方案都存在一定的问题,前者方案成本昂贵,且由于人力和时间等因素,人工标注无法穷尽所有合理知识,纯依靠人工标注的知识具有片面性;后者模型训练难度较大,常需要大量的经验技巧,才能获得较好的收敛效果,比如需要针对数据集特定的一些词频特性做清洗、在数据集上纯使用后验信息预训练BoW等,导致系统训练时间成本高,训练方式不够通用,可复现性差。

为了至少在一定程度上解决上述至少一个方面的问题,本公开实施例提出一种对话模型的训练方法,该训练方法属于无监督的训练方法,从而可以解决有监督的训练方法存在的人工标注量大等问题,另外,该训练方法以回复作为优化目标,而不是以Bow和KLDivergence为优化目标,避免目前的无监督的训练方式存在的通用性差等问题。

图1是根据本公开第一实施例的示意图,本实施例提供一种对话模型的训练方法,对话模型包括知识选择模型和回复生成模型,如图1所示,该方法包括:

101、采用所述知识选择模型,处理对话样本和知识库,以确定与所述对话样本匹配的知识,并确定所述知识对应的第一概率,所述第一概率为所述知识被选中的概率。

102、采用所述回复生成模型,处理所述对话样本和所述知识,以确定预测回复对应的第二概率,所述第二概率为所述预测回复为回复样本被选中的概率。

103、基于所述第一概率和所述第二概率,确定损失函数,并基于所述损失函数训练所述知识选择模型和所述回复生成模型。

对话过程一般包括:对话系统获取对话信息(context),对话系统采用对话模型对该对话信息进行处理,以生成回复(response)。对话信息也可以称为上下文、上文等,是指对话过程中产生的信息,比如包括:用户当前输入的检索语句(query),另外,由于对话过程一般是多轮的,对话信息还可以包括之前已经发生的对话内容。

如图2所示,对话模型可以包括:知识选择模型201和回复生成模型202。对话过程中,知识选择模型201的输入包括对话信息(c)和知识库,知识库用于存储知识,知识选择模型的输出为与输入的对话信息最匹配的一个(top-1)知识(knowledge)(k),回复生成模型202的输入为知识和对话信息,输出为回复(r)。

知识(knowledge)是指对生成回复有价值的信息,知识可以存储在知识库中,知识可以包括各种不同领域的知识,各种不同领域比如包括:天气、娱乐、智能客服、交通导航等。以娱乐为例,知识比如包括某部电影的演员、导演、评价等信息。

为了与对话过程中的对话信息(context)和回复(response)进行区分,在训练阶段,相应的参数称为对话样本(context样本)和回复样本(response样本),另外,在训练阶段,基于对话样本和知识生成的回复可以称为预测回复。

在训练阶段,将对话样本输入到知识选择模型中,知识选择模型的另一输入为预先配置的知识库中的知识,知识库中包括多个知识,经过知识选择模型的处理,可以输出与对话样本匹配的多个(top-k)知识,即,按照匹配值从高到低的顺序选择的k个知识,k为可设置值。知识选择模型可以包括编码模型(encoder),编码模型(encoder)的参数是可训练的,encoder可以为深度神经网络模型,比如为Transformer模型的encoder,encoder可以将输入(对话样本和知识)编码成对应的向量,以基于向量选择知识。另外,可以根据匹配值计算知识对应的第一概率,比如,第一概率为对上述的匹配值进行归一化处理后得到的归一化值。

在得到k个知识后,可以将对话样本和k个知识作为回复生成模型的输入,回复生成模型可以得到预测回复对应的概率,包括预测回复为回复样本的概率,该概率可以称为第二概率。需要说明的是,在训练阶段,可以依据该第二概率进行后续处理,不需要将第二概率映射到对应的回复,但是,在对话过程中,即,应用阶段,回复生成模型得到预测回复对应的概率后,可以选择概率最大的文本作为回复。回复生成模型可以为深度神经网络模型,比如为Transformer模型,回复生成模型的参数是可训练的。

在得到第一概率和第二概率时,可以基于第一概率和第二概率确定损失函数,损失函数可以为边际损失(Marginal Loss)函数,用公式表示为:

其中,p(k

在得到损失函数后,可以基于损失函数训练对话模型。对话模型包括知识选择模型和回复生成模型,在训练时,可以联合训练知识选择模型和回复生成模型,比如,调整知识选择模型的参数和回复生成模型的参数,直至达到基于损失函数确定的优化目标,而不是单独确定知识选择模型对应的损失函数以单独训练知识选择模型。

本实施例中,通过知识选择模型的处理,可以将知识引入对话系统,在将知识引入对话系统时,损失函数基于第一概率和第二概率确定,第一概率采用知识选择模型确定,第二概率采用回复生成模型确定,因此,可以对知识选择模型和回复生成模型进行联合训练,避免单独训练知识选择模型时存在的人工标注量大的问题,并且,第二概率与回复相关,以回复作为优化目标,相对于以BoW和KL散度等为优化目标的方式,可以使得训练方式更为通用,可复现性更强。

图3是根据本公开第三实施例的示意图,本实施例提供一种对话模型的训练方法,对话模型包括知识选择模型和回复生成模型,如图3所示,该方法包括:

301、构建训练语料。

其中,可以从历史对话中收集训练语料,每组训练语料可以表示为<对话样本,回复样本>。

302、采用所述知识选择模型中的编码模型,将对话样本编码成对话向量,以及,将所述知识库中各个知识分别编码成知识向量。

303、确定所述对话向量与所述知识向量的内积值。

304、按照所述内积值从大到小的顺序,选择预设个数的知识,确定为与所述对话样本匹配的知识。

305、对所述知识对应的内积值进行归一化处理,以得到归一化值,将所述归一化值确定为所述知识对应的第一概率。

如图4所示,为知识选择模型的一种结构示意图,知识选择模型可以包括:编码模型401,编码模型401的输入包括对话样本和知识库中的各个知识,经过编码模型401的处理,可以将输入转换为对应的向量,可以分别称为对话向量(Rep-c)和知识向量(Rep-k)。之后,可以计算对话向量和知识向量的内积值,按照内积值从大到小的顺序,选择预设的k个知识作为对话样本匹配的知识。

针对k个匹配的知识,各个知识对应的第一概率可以是对应的内积值的归一化后的值,比如,假设第i个知识用k

通过按照内积值从大到小的顺序选择,可以获取与对话样本匹配的知识。通过对内积值进行归一化处理,可以简便地得到第一概率。

306、采用所述回复生成模型的输入层,采用所述输入层对所述对话样本和所述知识进行处理,以得到输入向量。

307、采用所述回复生成模型的隐层对所述输入向量进行处理,以得到状态向量。

308、采用所述回复生成模型的输出层对所述状态向量进行处理,以确定预测回复对应的第二概率,所述第二概率为所述预测回复为回复样本的概率。

如图5所示,为回复生成模型的一种结构示意图,回复生成模型可以包括:输入层501、隐层502和输出层503。输入层501用于将输入文本转换为输入向量,输入文本用x表示;本实施例中,输入文本包括对话样本、与对话样本匹配的知识,以及已经生成的回复。隐层502用于对输入向量进行处理,输出状态向量,状态向量用h表示。输出层503的输入为状态向量,在训练阶段的输出为预测回复为各个候选文本的概率,候选文本包括回复样本,因此,输出层的输出包括预测回复为回复样本的概率,该概率称为第二概率,用p(r|c,k

进一步地,输入层可以包括类型嵌入(type embeddding)层,所述类型嵌入层的输入包括互不相同的对话信息类型标识、知识类型标识和回复类型标识。比如,回复类型标识(type id)为0,对话信息类型标识(type id)为1,知识类型标识(type id)为2。可以理解的是,输入层还可以包括其他的一些通用层,比如,位置嵌入(position embedding)层和标记嵌入(token embedding)层。

通过引入类型嵌入层,并采用不同的类型标识分别标识对话信息、知识和回复,可以更好地区分和使用知识。

隐层和输出层的骨干结构可以为Transformer模型,比如,隐层包括Transformer模型的encoder,输出层包括Transformer模型的decoder。图5中隐层以包括L个Transformer块(block)为例。

进一步地,隐层包括自注意力层模型,所述自注意力模型包括第一部分和第二部分,所述第一部分是对话样本和知识对应的部分,所述第二部分是已生成回复对应的部分,所述第一部分采用双向自注意力机制,所述第二部分采用单向自注意力机制。

如图5所示,对话样本(图5中用上文表示)和知识对应的部分的自注意力机制为双向(用实线表示),回复对应的部分的自注意力机制为单向(用虚线表示)。

通过对自注意力层的第一部分采用双向自注意力机制,可以更好地提取对话样本和知识中的信息,并且一部分采用双向,另一部分采用单向,而不是全部单向或双向,可以提高灵活性。

通过上述的输入层、隐层和输出层,可以确定与回复样本相关的第二概率,从而可以以回复作为优化目标,可以使得训练更稳定,更具通用性。

309、基于所述第一概率和所述第二概率,确定损失函数。

在得到第一概率和第二概率时,可以基于第一概率和第二概率确定损失函数,损失函数可以为边际损失(Marginal Loss)函数,用公式表示为:

其中,p(k

310、基于所述损失函数联合训练所述知识选择模型和回复生成模型。

训练目标(Training Objectives)可以是最小化上述的Marginal Loss。即,在得到损失函数后,可以调整知识选择模型和回复生成模型的参数,直至达到上述的训练目标。

图6是根据本公开第六实施例的示意图。如图6所示,该实施例提供一种对话模型的训练装置。所述对话模型包括知识选择模型和回复生成模型,该装置600包括:知识选择模块601、回复生成模块602和训练模块603。知识选择模块601用于采用所述知识选择模型,处理对话样本和知识库,以确定与所述对话样本匹配的知识,并确定所述知识对应的第一概率,所述第一概率为所述知识被选中的概率;回复生成模块602用于采用所述回复生成模型,处理所述对话样本和所述知识,以确定预测回复对应的第二概率,所述第二概率为所述预测回复为回复样本的概率;训练模块603用于基于所述第一概率和所述第二概率,确定损失函数,并基于所述损失函数训练所述知识选择模型和所述回复生成模型。

一些实施例中,所述回复生成模型包括输入层、隐层和输出层,所述回复生成模块602具体用于:采用所述输入层对所述对话样本和所述知识信息处理,以得到输入向量;采用所述隐层对所述输入向量进行处理,以得到状态向量;采用所述输出层对所述状态向量进行处理,以确定预测回复对应的第二概率。

一些实施例中,所述输入层包括:类型嵌入层,所述类型嵌入层的输入包括互不相同的对话信息类型标识、知识类型标识和回复类型标识。

一些实施例中,所述隐层包括:自注意力模型,所述自注意力模型包括第一部分和第二部分,所述第一部分是对话样本和知识对应的部分,所述第二部分是已生成回复对应的部分,所述第一部分采用双向自注意力机制,所述第二部分采用单向自注意力机制。

一些实施例中,所述知识选择模型包括编码模型,所述匹配的知识从所述知识库中确定,所述知识库包括至少一个知识,所述知识选择模块601具体用于:采用所述编码模型,将对话样本编码成对话向量,以及,将所述知识库中各个知识分别编码成知识向量;确定所述对话向量与所述知识向量的内积值;按照所述内积值从大到小的顺序,选择预设个数的知识,确定为与所述对话样本匹配的知识。

一些实施例中,所述知识选择模块601具体用于:

对所述知识对应的内积值进行归一化处理,以得到归一化值,将所述归一化值确定为所述知识对应的第一概率。

本实施例中,通过知识选择模型的处理,可以将知识引入对话系统,在将知识引入对话系统时,损失函数基于第一概率和第二概率确定,第一概率采用知识选择模型确定,第二概率采用回复生成模型确定,因此,可以对知识选择模型和回复生成模型进行联合训练,避免单独训练知识选择模型时存在的人工标注量大的问题,并且,第二概率与回复相关,以回复作为优化目标,相对于以BoW和KL散度等为优化目标的方式,可以使得训练方式更为通用,可复现性更强。

可以理解的是,本公开实施例中,不同实施例中的相同或相似内容可以相互参考。

可以理解的是,本公开实施例中的“第一”、“第二”等只是用于区分,不表示重要程度高低、时序先后等。

根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图7所示,电子设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储电子设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。

电子设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许电子设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如对话模型的训练方法。在一些实施例中,对话模型的训练方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM702和/或通信单元709而被载入和/或安装到电子设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的对话模型的训练方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行对话模型的训练方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

相关技术
  • 对话模型的训练方法、装置、设备和存储介质
  • 对话模型的训练方法、装置、设备和存储介质
技术分类

06120113195421