扩充训练样本的方法和装置与流程

文档序号:19738213发布日期:2020-01-18 04:48阅读:361来源:国知局
扩充训练样本的方法和装置与流程

本说明书一个或多个实施例涉及计算机领域,尤其涉及扩充训练样本的方法和装置。



背景技术:

在机器人回答用户问题时,机器人与用户之间要进行对话后,针对包括机器语句和用户语句的对话组进行分类,根据分类结果确定用户的述求。上述分类可以包括确定对话组对应的标准问句,以便由机器人提供该标准问句对应的答案。其中,标准问句也称为标准问题,是整理的一些用户可能问的问题。每个问题有一个问题标识。

现有技术中,常常先将历史对话组作为训练样本对分类模型进行训练,然后利用训练好的分类模型对当前对话组进行分类。其中,训练样本的数据不均衡问题十分严重,例如,在5000多个标准问句分别对应的训练样本中,数量多的是数量少的10万倍。数据不均衡会导致分类模型偏向于将对话组确定为数据量大的训练样本的类别,因此如何解决数据不均衡问题成了提升分类准确性的核心问题。



技术实现要素:

本说明书一个或多个实施例描述了一种扩充训练样本的方法和装置,能够实现训练样本的数据均衡。

第一方面,提供了一种扩充训练样本的方法,方法包括:

获取待扩充的初始训练样本组,所述初始训练样本组包括第一数量的训练样本,所述训练样本包括历史对话组中的原始机器语句和原始用户语句,以及该对话组对应的类别标签,所述初始训练样本组中的各训练样本具有第一类别标签;

根据待扩充的目标数量,从所述初始训练样本组中获取第二数量的训练样本;

针对第二数量的训练样本中的各对话组,将与各对话组中的原始机器语句相关的第一机器语句输入预先训练的所述第一类别标签的对话生成模型,通过所述对话生成模型生成与各对话组中的第一机器语句分别对应的第一用户语句;

将所述各对话组中的第一机器语句和对应的第一用户语句作为扩充训练样本加入所述初始训练样本组,得到扩充训练样本组,所述扩充训练样本具有所述第一类别标签。

在一种可能的实施方式中,所述方法还包括:

利用所述扩充训练样本组中的各训练样本对分类模型进行训练。

在一种可能的实施方式中,所述对话组包括多轮对话;

所述将与各对话组中的原始机器语句相关的第一机器语句输入预先训练的所述第一类别标签的对话生成模型,包括:

将与各对话组中的各轮对话的原始机器语句相关的第一机器语句输入预先训练的所述第一类别标签的对话生成模型。

进一步地,所述第一机器语句为各轮对话中的原始机器语句拼接后得到的,所述对话生成模型根据所述第一机器语句,生成所述第一机器语句对应的第一用户语句。

进一步地,所述第一机器语句为各轮对话中的原始机器语句,所述对话生成模型根据各轮对话中的各原始机器语句,分别生成各原始机器语句对应的各第一用户语句。

进一步地,所述对话组包括多轮对话;

所述利用所述扩充训练样本组中的各训练样本对分类模型进行训练,包括:

将所述扩充训练样本组中的各训练样本中各轮对话的用户语句输入待训练的分类模型,根据所述分类模型的输出结果和类别标签,对所述分类模型进行训练。

在一种可能的实施方式中,所述类别标签包括:标准问句和/或人工客服技能组。

在一种可能的实施方式中,所述获取待扩充的初始训练样本组,包括:

根据类别标签,确定多个初始训练样本组,每个初始训练样本组中的训练样本具有相同的类别标签;

确定各初始训练样本组包括的训练样本的最大数量;

将训练样本的数量小于所述最大数量的初始训练样本组作为待扩充的初始训练样本组。

进一步地,所述目标数量为所述最大数量,所述第二数量为所述最大数量与所述第一数量的差值;当所述差值小于所述最大数量的一半时,从所述初始训练样本组中随机抽取所述第二数量的训练样本。

进一步地,所述目标数量为所述最大数量,所述第二数量为所述最大数量与所述第一数量的差值;当所述差值大于所述最大数量的一半时,从所述初始训练样本组中重复获取训练样本直到得到所述第二数量的训练样本。

在一种可能的实施方式中,所述对话生成模型包括:

序列生成(sequencetosequence,s2s)模型、变分自编码器(variationalautoencoder,vae)模型或生成对抗网络(generativeadversarialnetworks,gan)模型。

第二方面,提供了一种扩充训练样本的装置,装置包括:

第一获取单元,用于获取待扩充的初始训练样本组,所述初始训练样本组包括第一数量的训练样本,所述训练样本包括历史对话组中的原始机器语句和原始用户语句,以及该对话组对应的类别标签,所述初始训练样本组中的各训练样本具有第一类别标签;

第二获取单元,用于根据待扩充的目标数量,从所述第一获取单元获取的初始训练样本组中获取第二数量的训练样本;

生成单元,用于针对所述第二获取单元获取的第二数量的训练样本中的各对话组,将与各对话组中的原始机器语句相关的第一机器语句输入预先训练的所述第一类别标签的对话生成模型,通过所述对话生成模型生成与各对话组中的第一机器语句分别对应的第一用户语句;

扩充单元,用于将所述各对话组中的第一机器语句和对应的所述生成单元生成的第一用户语句作为扩充训练样本加入所述初始训练样本组,得到扩充训练样本组,所述扩充训练样本具有所述第一类别标签。

第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。

第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。

通过本说明书实施例提供的方法和装置,首先获取待扩充的初始训练样本组,所述初始训练样本组包括第一数量的训练样本,所述训练样本包括历史对话组中的原始机器语句和原始用户语句,以及该对话组对应的类别标签,所述初始训练样本组中的各训练样本具有第一类别标签;然后根据待扩充的目标数量,从所述初始训练样本组中获取第二数量的训练样本;接着针对第二数量的训练样本中的各对话组,将与各对话组中的原始机器语句相关的第一机器语句输入预先训练的所述第一类别标签的对话生成模型,通过所述对话生成模型生成与各对话组中的第一机器语句分别对应的第一用户语句;最后将所述各对话组中的第一机器语句和对应的第一用户语句作为扩充训练样本加入所述初始训练样本组,得到扩充训练样本组,所述扩充训练样本具有所述第一类别标签。由上可见,本说明书实施例,根据机器问句,通过对话生成模型生成该机器问句对应的用户问句,从而扩充样本数据量小的类别的训练样本,能够实现训练样本的数据均衡。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本说明书披露的一个实施例的实施场景示意图;

图2示出根据一个实施例的针对多轮对话的处理方法流程图;

图3示出根据一个实施例的扩充训练样本的方法流程图;

图4为本说明书实施例提供的一种对话生成模型的处理过程示意图;

图5为本说明书实施例提供的另一种对话生成模型的处理过程示意图;

图6示出根据一个实施例的扩充训练样本的装置的示意性框图。

具体实施方式

下面结合附图,对本说明书提供的方案进行描述。

图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及扩充训练样本,具体地,在利用分类模型确定对话组对应的标准问句之前,先要利用训练样本对分类模型进行训练,由于各个标准问句对应的训练样本的数量不均衡,因此需要针对训练样本的数量少的标准问句扩充训练样本。其中,上述对话组具体包括用户与机器人之间的对话中的机器语句和用户语句。参照图1,第一阶段,进行的是用户跟机器对话,也就是说,由机器人回答用户问题,其中,机器人具体可以为机器人客服。第二阶段,进行的是用户跟小二对话,可以理解的是,小二即人工客服,也就是说,由人工客服回答用户问题。在第一阶段,用户与机器人之间的多轮对话的轮数达到预先设定的对话总轮数阈值时,会进入第二阶段,由人工客服回答用户问题。

可以理解的是,可以预先针对用户跟机器对话的轮数设定阈值,例如,设定阈值为3,第一阶段,当用户跟机器对话的轮数达到3轮,且用户仍然表示机器确定的标准问句不满足其述求时,由第一阶段切换为第二阶段,由人工客服回答用户问题。

图2示出根据一个实施例的针对多轮对话的处理方法流程图,该方法涵盖了图1所示的第一阶段和第二阶段的处理过程。在第一阶段,引导用户说出需求,机器跟用户对话,详细分析用户需求,进行问题识别,也就是确定对话文本对应的标准问句。当问题识别不成功时,进入第二阶段,智能派单,小二跟用户对话并且标注用户问题,其中,智能派单即确定多轮对话对应的人工客服技能组,标注用户问题即标注对话文本对应的标准问句。

在一个示例中,机器在接收到用户问句后,针对用户问句,确定该用户问句对应的标准问句,并将确定的标准问句展示给用户,由用户确认该标准问句是否满足其述求,如果用户确认该标准问句不满足其述求,则由用户补充部分描述,机器会针对与用户之间的多轮对话,再次确定该多轮对话对应的标准问句。当机器与用户之间的对话轮数达到预设阈值,并且仍然不满足用户述求时,确定多轮对话对应的人工客服技能组,由人工客服跟用户对话并且标注多轮对话对应的标准问句。

本说明书实施例,多轮对话对应的标准问句即对话文本对应的标准问句,当用户与机器人之间已经进行了多轮对话时,可以将用户的各轮对话的对话文本结合起来确定用户述求,也就是说,将用户的各轮对话的对话文本结合起来确定标准问句。

通常地,根据机器人与用户的历史对话获取训练样本,由于某些类别是用户不常关注的,因此这些类别对应的训练样本的数量较少,导致样本数据的不均衡,本说明书实施例,通过扩充训练样本,从而能够实现训练样本的数据均衡。

图3示出根据一个实施例的扩充训练样本的方法流程图,该方法可以基于图1所示的应用场景。如图3所示,该实施例中扩充训练样本的方法包括以下步骤:步骤31,获取待扩充的初始训练样本组,初始训练样本组包括第一数量的训练样本,训练样本包括历史对话组中的原始机器语句和原始用户语句,以及该对话组对应的类别标签,初始训练样本组中的各训练样本具有第一类别标签;步骤32,根据待扩充的目标数量,从初始训练样本组中获取第二数量的训练样本;步骤33,针对第二数量的训练样本中的各对话组,将与各对话组中的原始机器语句相关的第一机器语句输入预先训练的第一类别标签的对话生成模型,通过对话生成模型生成与各对话组中的第一机器语句分别对应的第一用户语句;步骤34,将各对话组中的第一机器语句和对应的第一用户语句作为扩充训练样本加入初始训练样本组,得到扩充训练样本组,扩充训练样本具有第一类别标签。下面描述以上各个步骤的具体执行方式。

首先在步骤31,获取待扩充的初始训练样本组,初始训练样本组包括第一数量的训练样本,训练样本包括历史对话组中的原始机器语句和原始用户语句,以及该对话组对应的类别标签,初始训练样本组中的各训练样本具有第一类别标签。可以理解的是,可以预先根据已有的各训练样本的类别标签,将各训练样本划入各初始训练样本组,属于同一初始训练样本组中的训练样本具有同一类别标签。

在一个示例中,所述类别标签包括:标准问句和/或人工客服技能组。相应地,本说明书实施例,训练样本用于训练分类模型,该分类模型可以实现确定对话组对应的标准问句和/或人工客服技能组。其中,上述对话组具体可以包括一轮对话或多轮对话。下面通过一个具体的示例对对话组进行说明,参见表一所示的机器人客服与用户的多轮对话表。

表一:机器人客服与用户的多轮对话表

参照表一,机器人客服与用户之间总共进行了三轮对话,对话组可以包括这三轮对话中每轮对话的机器语句和用户语句。该对话组对应的类别标签可以为标准问句“收到不是本人操作的短信怎么办”。此外,用户语句可以为用户输入的语音描述、语音描述转换的文本描述或者用户输入的文本描述。

在一个示例中,根据类别标签,确定多个初始训练样本组,每个初始训练样本组中的训练样本具有相同的类别标签;确定各初始训练样本组包括的训练样本的最大数量;将训练样本的数量小于所述最大数量的初始训练样本组作为待扩充的初始训练样本组。

在另一个示例中,根据类别标签,确定多个初始训练样本组,每个初始训练样本组中的训练样本具有相同的类别标签;确定各初始训练样本组包括的训练样本的最大数量;当该最大数量小于预先设定的数量阈值时,将多个初始训练样本组均作为待扩充的初始训练样本组。

然后在步骤32,根据待扩充的目标数量,从初始训练样本组中获取第二数量的训练样本。可以理解的是,目标数量可以是预先设定的,也可以是根据已有的各个类别标签的训练样本数确定的。

在一个示例中,所述目标数量为所述最大数量,所述第二数量为所述最大数量与所述第一数量的差值;当所述差值小于所述最大数量的一半时,从待扩充的初始训练样本组中随机抽取所述第二数量的训练样本。例如,目标数量为5万,第一数量为3万,则第二数量为2万,也就是说,需要扩充的训练样本数为2万,可以从已有的3万训练样本中随机抽取2万的训练样本,用于后续根据抽取的2万的训练样本生成2万的扩充训练样本。

在一个示例中,所述目标数量为所述最大数量,所述第二数量为所述最大数量与所述第一数量的差值;当所述差值大于所述最大数量的一半时,从待扩充的初始训练样本组中重复获取训练样本直到得到所述第二数量的训练样本。例如,目标数量为5万,第一数量为2万,则第二数量为3万,也就是说,需要扩充的训练样本数为3万,可以从已有的2万训练样本中重复获取训练样本直到得到3万的训练样本,用于后续根据获取的3万的训练样本生成3万的扩充训练样本。

接着在步骤33,针对第二数量的训练样本中的各对话组,将与各对话组中的原始机器语句相关的第一机器语句输入预先训练的第一类别标签的对话生成模型,通过对话生成模型生成与各对话组中的第一机器语句分别对应的第一用户语句。可以理解的是,可以预先针对每个类别标签,根据具有该类别标签的历史对话组训练该类别标签的对话生成模型。

在一个示例中,所述对话组包括多轮对话;将与各对话组中的各轮对话的原始机器语句相关的第一机器语句输入预先训练的所述第一类别标签的对话生成模型。图4为本说明书实施例提供的一种对话生成模型的处理过程示意图。参照图4,该对话生成模型是一种编码器-解码器结构的模型,输入是一个序列,输出也是一个序列。具体的,第一机器语句经过编码,再经过解码后,得到第一用户语句。

在一个示例中,所述对话生成模型包括:

序列生成(sequencetosequence,s2s)模型、变分自编码器(variationalautoencoder,vae)模型或生成对抗网络(generativeadversarialnetworks,gan)模型。

进一步地,第一机器语句为各轮对话中的原始机器语句拼接后得到的,所述对话生成模型根据第一机器语句,生成该第一机器语句对应的第一用户语句。例如,对话组包括三轮对话,这三轮对话包括的原始机器语句分别为机器语句1、机器语句2和机器语句3,将机器语句1、机器语句2和机器语句3拼接后得到第一机器语句,根据第一机器语句,生成该第一机器语句对应的第一用户语句。

其中,第一机器语句中可以包括拼接符,由拼接符连接各轮对话中的原始机器语句,相应的,第一用户语句中也可以包括拼接符,从而将第一用户语句分隔成多个用户语句,可以理解的是,第一机器语句和第一用户语句可以拆分成多轮对话。

需要说明的是,本说明书实施例可以利用历史对话组中各轮对话的原始机器语句和原始用户语句对对话生成模型进行训练,其中,可以将各轮对话的原始机器语句和各轮对话的原始用户语句分别进行拼接,将拼接后的机器语句和拼接后的用户语句作为训练样本。进一步地,第一机器语句为各轮对话中的原始机器语句,所述对话生成模型根据各轮对话中的各原始机器语句,分别生成各原始机器语句对应的各第一用户语句。例如,对话组包括三轮对话,这三轮对话包括的原始机器语句分别为机器语句1、机器语句2和机器语句3,将机器语句1、机器语句2和机器语句3输入对话生成模型,通过对话生成模型输出机器语句1对应的用户语句1,机器语句2对应的用户语句2,机器语句3对应的用户语句3,可以理解的是,当第一机器语句为机器语句1时,对应的第一用户语句为用户语句1,以此类推。

图5为本说明书实施例提供的另一种对话生成模型的处理过程示意图。参照图5,以对话组包括三轮对话为例,分别根据各轮对话中的机器语句生成对应的用户语句,其中,引入了上下文信息,可以理解的是,针对多轮对话的特点,可以对现有的对话生成模型进行改进,例如,采用层次化的s2s模型、层次化的vae模型等,以便针对多轮对话中的各轮对话分层次处理。

在一个示例中,对话生成模型具体为层次编解码(hierarchicalencoderdecoder,hred)神经网络模型,hred模型基于上下文信息生成各轮对话中各原始机器语句对应的各第一用户语句。

在另一个示例中,对话生成模型具体为可变的层次编解码(variablehierarchicalencoderdecoder,vhred)神经网络模型,vhred模型在基于上下文信息生成各轮对话中各原始机器语句对应的各第一用户语句的过程中,引入了高斯随机变量,以改善模型产生对话的多样性。

在另一个示例中,对话生成模型具体为注意力与意图(attentionwithintention,awi)神经网络模型,awi模型也是采用分层的s2s模型来解决多轮对话问题,在s2s模型中融入了注意力机制,以改善模型的效果。

最后在步骤34,将各对话组中的第一机器语句和对应的第一用户语句作为扩充训练样本加入初始训练样本组,得到扩充训练样本组,扩充训练样本具有第一类别标签。可以理解的是,由于第一用户语句是利用第一类别标签的对话生成模型生成的,因此包括第一用户语句的扩充训练样本具有第一类别标签。

在一个示例中,利用所述扩充训练样本组中的各训练样本对分类模型进行训练。

进一步地,所述对话组包括多轮对话;将所述扩充训练样本组中的各训练样本中各轮对话的用户语句输入待训练的分类模型,根据所述分类模型的输出结果和类别标签,对所述分类模型进行训练。

通过本说明书实施例提供的方法,根据机器问句,通过对话生成模型生成该机器问句对应的用户问句,从而扩充样本数据量小的类别的训练样本,能够实现训练样本的数据均衡。

针对各类别,使用历史上机器跟用户的对话训练对话生成模型,对话生成模型输入机器说的话,输出用户的回答。根据目标类别的训练数据训练出了针对该目标类别的对话生成模型。针对分类模型需要的训练数据量少的类别,用相对应的该类别的对话生成模型生成模拟对话,来扩充训练数据,直到各个类别训练数据量均等,这种扩充训练样本的方法可以增强数据的多样性。

根据另一方面的实施例,还提供一种扩充训练样本的装置,该装置用于执行本说明书实施例提供的扩充训练样本的方法。图6示出根据一个实施例的扩充训练样本的装置的示意性框图。如图6所示,该装置600包括:

第一获取单元61,用于获取待扩充的初始训练样本组,所述初始训练样本组包括第一数量的训练样本,所述训练样本包括历史对话组中的原始机器语句和原始用户语句,以及该对话组对应的类别标签,所述初始训练样本组中的各训练样本具有第一类别标签;

第二获取单元62,用于根据待扩充的目标数量,从所述第一获取单元61获取的初始训练样本组中获取第二数量的训练样本;

生成单元63,用于针对所述第二获取单元62获取的第二数量的训练样本中的各对话组,将与各对话组中的原始机器语句相关的第一机器语句输入预先训练的所述第一类别标签的对话生成模型,通过所述对话生成模型生成与各对话组中的第一机器语句分别对应的第一用户语句;

扩充单元64,用于将所述各对话组中的第一机器语句和对应的所述生成单元63生成的第一用户语句作为扩充训练样本加入所述初始训练样本组,得到扩充训练样本组,所述扩充训练样本具有所述第一类别标签。

可选地,作为一个实施例,所述装置还包括:

训练单元,用于利用所述扩充单元得到的扩充训练样本组中的各训练样本对分类模型进行训练。

可选地,作为一个实施例,所述对话组包括多轮对话;

所述生成单元63,具体用于将与各对话组中的各轮对话的原始机器语句相关的第一机器语句输入预先训练的所述第一类别标签的对话生成模型。

进一步地,所述第一机器语句为各轮对话中的原始机器语句拼接后得到的,所述对话生成模型根据所述第一机器语句,生成所述第一机器语句对应的第一用户语句。

进一步地,所述第一机器语句为各轮对话中的原始机器语句,所述对话生成模型根据各轮对话中的各原始机器语句,分别生成各原始机器语句对应的各第一用户语句。

进一步地,所述对话组包括多轮对话;

所述训练单元,具体用于将所述扩充训练样本组中的各训练样本中各轮对话的用户语句输入待训练的分类模型,根据所述分类模型的输出结果和类别标签,对所述分类模型进行训练。

可选地,作为一个实施例,所述类别标签包括:标准问句和/或人工客服技能组。

可选地,作为一个实施例,所述第一获取单元61,具体用于:

根据类别标签,确定多个初始训练样本组,每个初始训练样本组中的训练样本具有相同的类别标签;

确定各初始训练样本组包括的训练样本的最大数量;

将训练样本的数量小于所述最大数量的初始训练样本组作为待扩充的初始训练样本组。

进一步地,所述目标数量为所述最大数量,所述第二数量为所述最大数量与所述第一数量的差值;所述第二获取单元,具体用于当所述差值小于所述最大数量的一半时,从所述初始训练样本组中随机抽取所述第二数量的训练样本。

进一步地,所述目标数量为所述最大数量,所述第二数量为所述最大数量与所述第一数量的差值;所述第二获取单元,具体用于当所述差值大于所述最大数量的一半时,从所述初始训练样本组中重复获取训练样本直到得到所述第二数量的训练样本。

可选地,作为一个实施例,所述对话生成模型包括:

序列生成s2s模型、变分自编码器vae模型或生成对抗网络gan模型。

通过本说明书实施例提供的装置,根据机器问句,通过对话生成模型生成该机器问句对应的用户问句,从而扩充样本数据量小的类别的训练样本,能够实现训练样本的数据均衡。

根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图3所描述的方法。

根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图3所描述的方法。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1