一种对话策略模型训练、对话的方法和系统与流程

文档序号:25586786发布日期:2021-06-22 17:02阅读:124来源:国知局
一种对话策略模型训练、对话的方法和系统与流程

本说明书涉及信息技术领域,特别涉及一种对话策略模型训练、对话的方法和系统。



背景技术:

人与智能设备(例如,智能机器人)进行聊天对话是智能时代一种重要的互动方式。对于智能设备来说,如何响应人们的对话对整个聊天体验的影响至关重要。

通常多轮对话交互过程中,智能设备需要遵循一定的话术约束和流程约束来完成对话,目前所使用的话术和流程都是由人工制定,而人工制定的方式费时费力,效率低。

因此,有必要提出一种对话策略模型训练方法,以使得智能设备可以更好的完成对话任务。



技术实现要素:

本说明书实施例的一个方面提供一种对话策略模型训练方法。所述对话策略模型训练方法包括:基于多轮历史对话,确定第一训练数据以及第二训练数据;其中,所述第一训练数据中的第一训练样本包括样本对话上文和样本对话策略;第二训练数据中的第二训练样本至少包括样本对话上文、样本对话策略以及相应的目标奖励值;使用第一训练数据对对话策略模型进行第一阶段训练,使得所述对话策略模型能够基于对话上文输出与之对应的对话策略,进而获得所述对话策略模型的第一模型参数;使用第二训练数据对经过第一阶段训练后的对话策略模型进行第二阶段训练,调整所述第一模型参数,使得所述对话策略模型基于对话上文输出的对话策略能够与预设对话目标适配,进而获得所述对话策略模型的第二模型参数。

本说明书实施例的另一个方面提供一种对话策略模型训练系统。所述系统包括:第一确定模块,可以用于基于多轮历史对话,确定第一训练数据以及第二训练数据;其中,所述第一训练数据中的第一训练样本包括样本对话上文和样本对话策略;第二训练数据中的第二训练样本至少包括样本对话上文、样本对话策略以及相应的目标奖励值;第一训练模块,可以用于使用第一训练数据对对话策略模型进行第一阶段训练,使得所述对话策略模型能够基于对话上文输出与之对应的对话策略,进而获得所述对话策略模型的第一模型参数;第二训练模块,可以用于使用第二训练数据对经过第一阶段训练后的对话策略模型进行第二阶段训练,调整所述第一模型参数,使得所述对话策略模型基于对话上文输出的对话策略能够与预设对话目标适配,进而获得所述对话策略模型的第二模型参数。

本说明书实施例的另一个方面提供一种对话的方法。所述方法包括:获取对话上文;将所述对话上文输入至对话策略模型,确定用于回答所述对话上文的对话策略;中,所述对话策略模型采用如上所述的方法训练得到;基于所述对话策略确定应答话术并输出。

本说明书实施例的另一个方面提供一种对话的系统。所述系统包括:获取模块,可以用于获取对话上文;第二确定模块,可以用于将所述对话上文输入至对话策略模型,确定用于回答所述对话上文的对话策略;其中,所述对话策略模型采用如上所述的方法训练得到;第三确定模块,可以用于基于所述对话策略确定应答话术并输出。

本说明书实施例的另一个方面提供一种对话策略模型训练装置包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现对话策略模型训练方法。

本说明书实施例的另一个方面提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行对话策略模型训练方法。

本说明书实施例的另一个方面提供一种对话的装置包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现对话的方法。

本说明书实施例的另一个方面提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行对话的方法。

附图说明

本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:

图1是根据本说明书一些实施例所示的智能对话场景示意图;

图2是根据本说明书一些实施例所示的对话策略模型训练方法的示例性流程图;

图3是根据本说明书一些实施例所示的训练样本的获取方法的示例性流程图;

图4是根据本说明书一些实施例所示的对话策略模型第二阶段训练方法的示例性示意图;

图5是根据本说明书一些实施例所示的对话策略模型训练系统的示例性模块图;

图6是根据本说明书一些实施例所示的对话的系统的示例性模块图;

图7是根据本说明书一些实施例所示的对话策略模型的结构示意图。

具体实施方式

为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。

应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。

如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。

本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。

人机对话目前广泛应用于各个领域,例如,电商领域、金融领域等。在不同领域中,人机对话有着不同的对话目标(例如,催债、推销、反欺诈等)。作为示例,在金融领域中,随着数字金融和电子支付行业的蓬勃发展,欺诈者通过线上平台对用户进行的金融欺诈也随之增多。例如,欺诈者冒充用户好友,通过线上社交平台诱导用户向欺诈者的银行账户转账。又例如,欺诈者在银行系统上通过手机号码登录用户的账户,骗取用户收到的手机验证码,从而操作用户的银行账户,盗取用户的资金。在一些实施例中,线上平台可以通过用户的操作识别出欺诈风险,并通过阻断用户操作来阻止用户被欺诈。例如,线上平台监测到用户当前的操作可能存在被欺诈时,线上平台可以对用户进行风险提示。例如,线上平台可以通过人机对话进行反欺诈干预。

在人机对话的过程中,为了完成不同场景对应的业务目标(或称为对话目标),多轮对话交互过程中,智能设备要遵循一定的话术约束和流程约束。目前广泛使用的fst(有限状态自动机)技术,其包含的话术和流程都是由人工去制定的。具体的,需要根据业务知识人工去编写话术,并制定话术流转的路径,从而形成整体的话术流程。但是这种方式在实际应用中存在一些问题,例如,由人工制定话术流程随着对话交互轮数的提升,对话复杂度指数级别增高,对话路径的定义难度会随之增加;人工制定对话路径,对于人工经验要求较高,难以保证很好应对真实用户,通常表现为覆盖度不够,从而给非典型用户带来较差的体验;由人工去制定对话路径,通常只能满足当前对话的直接目标,与实际业务目标(或对话目标)之间存在偏差,导致现有的对话策略并不能很好的与对话业务目标匹配,影响对话效果。

因此,本说明书一些实施例提出一种对话策略模型训练方法,对对话策略模型进行两阶段的训练,第一阶段利用从人工客服日志中学习人工的对话来对模型进行训练,使得对话策略模型可以输出与对话上文对应的对话策略;第二阶段对第一阶段训练得到的对话策略模型进行目标导向训练,使得训练后的对话策略模型基于对话上文输出的对话策略能够与对话目标适配,以更好地完成对话任务。需要说明的是,以上例子仅出于示例的目的,并不旨在对本说明书所披露的技术方案的应用场景进行限定。以下通过对附图的描述详细阐述本说明实施例所披露的技术方案。

图1是根据本说明书一些实施例所示的智能对话场景示意图。

如图1所示,场景100可以包括处理设备110、网络120、存储设备130和用户终端140。

在一些实施例中,处理设备110可以基于多轮历史对话,确定第一训练数据以及第二训练数据;处理设备110可以使用第一训练数据对对话策略模型进行第一阶段训练,使得所述对话策略模型能够基于对话上文输出与之对应的对话策略,进而获得所述对话策略模型的第一模型参数;处理设备110可以使用第二训练数据对经过第一阶段训练后的对话策略模型进行第二阶段训练,调整所述第一模型参数,使得所述对话策略模型基于对话上文输出的对话策略能够与预设对话目标适配,进而获得所述对话策略模型的第二模型参数。

在一些实施例中,训练得到的对话策略模型可以用于确定智能设备与用户进行对话的应答话术。在一些实施例中,处理设备110可以与用户终端140交互以与用户进行对话,进而获取对话上文;处理设备110可以将所述对话上文输入至对话策略模型,确定用于回答所述对话上文的对话策略;处理设备110可以基于所述对话策略确定应答话术并输出。例如,将应答话术输出至用户终端140。

处理设备110可以用于处理来自场景100的至少一个组件或外部数据源(例如,云数据中心)的数据和/或信息。在一些实施例中,处理设备110可以是单一服务器或服务器组。该服务器组可以是集中式或分布式的(例如,处理设备110可以是分布式系统)。在一些实施例中,处理设备110可以是区域的或者远程的。在一些实施例中,处理设备110可以在云平台上实施,或者以虚拟方式提供。仅作为示例,云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。

存储设备130可以用于存储数据(如多轮历史对话、训练数据等)和/或指令。存储设备130可以包括一个或多个存储组件,每个存储组件可以是一个独立的设备,也可以是其他设备的一部分。在一些实施例中,存储设备130可包括随机存取存储器(ram)、只读存储器(rom)、大容量存储器、可移动存储器、易失性读写存储器等或其任意组合。示例性地,大容量储存器可以包括磁盘、光盘、固态磁盘等。在一些实施例中,存储设备130可在云平台上实现。仅作为示例,云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。在一些实施例中,存储设备130可以集成或包括在系统的一个或多个其他组件(例如,处理设备110、用户终端140或其他可能的组件)中。

用户终端140指用户所使用的一个或多个终端设备或软件。在一些实施例中,用户可以使用用户终端140通过网络120与处理设备110通信,将人机对话的用户话语发送到处理设备110,并接收处理设备110反馈的应答话术。例如,用户可以通过用户终端140接收处理设备110发起的智能外呼,收听应答话术以及将用户话语通过网络120发送到处理设备110。在一些实施例中,用户终端140可以是移动设备140-1、平板计算机140-2、膝上型计算机140-3、台式计算机140-4、其他具有输入和/或输出功能的设备等或其任意组合。上述示例仅用于说明所述用户终端140设备范围的广泛性而非对其范围的限制。

网络120可以连接场景100中的各组成部分和/或连接场景内部的组成部分与外部部分。网络120使得场景各组成部分之间以及与场景外部部分之间可以进行通讯,促进数据和/或信息的交换。在一些实施例中,网络120可以是有线网络或无线网络中的任意一种或多种。例如,网络120可以包括电缆网络、光纤网络、电信网络、互联网、局域网络(lan)、广域网络(wan)、无线局域网络(wlan)、城域网(man)、公共交换电话网络(pstn)、蓝牙网络、紫蜂网络(zigbee)、近场通信(nfc)、设备内总线、设备内线路、线缆连接等或其任意组合。在一些实施例中,场景中各部分之间的网络连接可以采用上述一种方式,也可以采取多种方式。在一些实施例中,网络120可以是点对点的、共享的、中心式的等各种拓扑结构或者多种拓扑结构的组合。在一些实施例中,网络120可以包括一个或以上网络接入点。例如,网络120可以包括有线或无线网络接入点,例如基站和/或网络交换点120-1、120-2、…,通过这些网络接入点,场景100的一个或多个组件可连接到网络120以交换数据和/或信息。

图2是根据本说明书一些实施例所示的对话策略模型训练方法的示例性流程图。在一些实施例中,流程200可以由处理设备执行。例如,流程200可以以程序或指令的形式存储在存储装置(如处理设备的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现流程200。又或者流程200可以由部署于处理设备的对话策略模型训练系统500实现。流程200可以包括以下操作。

步骤202,基于多轮历史对话,确定第一训练数据以及第二训练数据。在一些实施例中,步骤202可以由第一确定模块510执行。

历史对话可以是指人工客服与用户之间已经发生的对话。在一些实施例中,多轮历史对话的形式可以是文本形式。例如,在即时聊天工具中的对话框中以文字消息和图片消息等形式进行的对话。多轮历史对话的形式也可以是语音对话的形式。例如,通过语音消息进行的对话。多轮历史对话的形式还可以是实时通话的形式。例如,电话通信、语音通信和视频通信等。在一些实施例中,处理设备可以通过语音识别技术,将语音和实时通话类型的对话转换成文本形式的多轮历史对话。

在一些实施例中,一段用户话语和一段客服话语的组合可以称为一轮对话,例如,以u表示用户话语,a表示客服话语,则一轮对话可以表示为u1a1,多轮历史对话可以表示为u1a1u2a2……。

在一些实施例中,第一训练数据中包括第一训练样本。第一训练样本包括样本对话上文和样本对话策略。对话上文可以是处理设备(或智能客服机器人)需要应答的对话内容,作为示例,对话上文可以是结束语为用户话语的一轮或多轮对话,例如,对话上文可以是一句用户话语,例如,u1,对话上文也可以包括多个用户话语和一个或多个客服话语(也可以称为应答话术),例如,u1a1u2。对话策略是指用于应答对话上文的应答计策或谋略,具体可以体现为对用户话语进行应答的应答话术的类型。例如,问候类应答话术可以包括:你好、最近怎么样等。询问离开时间类应答话术可以包括:你什么时候走、您是明天离开吗等。在一些实施例中,可以对历史对话中的客服话术(或称为客服话语,即客服说的话)进行聚类(如将客服话术基于语义进行聚类),可以得到多个应答话术类型或对话策略。样本对话上文、样本对话策略则是指用于模型训练的对话上文和对话策略。

在一些实施例中,第一训练数据可以包括正负样本,即第一训练样本可以是第一训练正样本,也可以是第一训练负样本。第一训练正样本中的样本对话策略为多轮历史对话中对应于该样本中的样本对话上文的对话策略。第一训练负样本中的样本对话策略非多轮历史对话中对应于该样本中的样本对话上文的对话策略。例如,假设多轮历史对话为u1a1u2a2,其中a1属于对话策略k1,那么第一训练正样本则可以是u1k1。第一训练负样本则可以是u1s1,其中,s1表示不是基于多轮历史对话u1a1u2a2得到的样本对话策略。在一些实施例中,s1可以是人为构造的,并不适于对话上文u1的对话策略。

在一些实施例中,第二训练数据中包括第二训练样本。第二训练样本至少包括样本对话上文、样本对话策略以及相应的目标奖励值。第二训练样本中的样本对话策略为多轮历史对话中对应于该样本中的样本对话上文的对话策略。换句话说,第二训练样本中的样本对话策略是适于该训练样本中样本对话上文的。沿用上述示例,第二训练样本中的样本对话上文为u1时,样本对话策略则为k1。目标奖励值可以用于反映样本对话策略与样本对话上文之间的组合与预设对话目标的适配程度,或者说,目标奖励值可以反映当基于样本对话策略应答样本对话上文时,对达成预设对话目标所做的贡献多少。

在一些实施例中,可以先确定一通完整的历史对话(可以进一步包括多轮历史对话)的总体奖励值,即该通完整的历史对话使得预设对话目标达成所做的贡献。具体的,可以基于该通历史对话结束时间到预设对话目标达成时间之间的间隔长短来确定总体奖励值,如时间间隔越小,总体奖励值越大。进一步,可以将总体贡献值分配给该通历史对话中的各轮历史对话,从而得到各轮历史对话的目标奖励值。如,可以平均分配或者随机分配,但是各轮历史对话的目标奖励值的和等于所述总体奖励值。例如,在一通历史对话中,一共有10轮对话,总体奖励值为10分,则可以按照平均分配的方式为每一轮对话分配目标奖励值1分。

在一些实施例中,所述第二训练样本还包括历史对话中对应于该样本中的样本对话上文的下一轮样本对话上文以及下一轮样本对话策略。例如,第二训练样本可以是<样本对话上文,样本对话策略,目标奖励值,下一轮样本对话上文,下一轮样本对话策略>,第二训练样本与多轮历史对话具有对应关系,且第二训练样本的两轮对话上文和对话策略来自于同一通历史对话(或称为多轮历史对话)。例如,多轮历史对话为u1a1u2a2,那么样本对话上文可以对应u1,样本对话策略与a1所属的对话策略k1对应,下一轮样本对话上文与u2对应,下一轮样本对话策略与a2所属的对话策略k2对应。

在一些实施例中,第二训练数据中的样本对话上文和样本对话策略可以与第一训练数据中的相同,也可以不同。

关于第二训练数据中的样本对话上文和样本对话策略的更多说明可以参见上文对第一训练数据的描述,此处不再赘述。

在一些实施例中,第一训练样本和/或第二训练样本还可以包括样本对话上文对应用户的用户信息。对应用户是指参与对话的用户。用户信息可以包括用户的姓名、年龄、性别等可以体现用户属性的特征信息。

在训练样本中加入用户信息进行模型训练,可以使得模型在训练过程中有针对性地学习到不同的用户对话习惯,从而提高对话策略模型基于对话上文输出的对话策略与对话上文和/或预设对话目标的适配程度。此时,训练得到的对话策略模型的输入除了对话上文外,还包括用户信息,模型的输出为对话策略或者对应于多个已知对话策略的概率值。

在一些实施例中,处理设备可以从多轮历史对话中提取客服话术,并基于客服话术进行聚类得到一组或多组对话策略,然后可以使用聚类得到的对话策略替换历史对话中的客服话术,最后按照对话轮次对历史对话进行拆分,从拆分结果中得到第一训练样本或第二训练样本。关于基于多轮历史对话,确定第一训练样本和/或第二训练样本的更多细节,可以参见图3及其相关描述,此处不再赘述。

步骤204,使用第一训练数据对对话策略模型进行第一阶段训练,使得所述对话策略模型能够基于对话上文输出与之对应的对话策略,进而获得所述对话策略模型的第一模型参数。在一些实施例中,步骤204可以由第一训练模块520执行。

在一些实施例中,处理设备可以将第一训练数据输入对话策略模型,以对对话策略模型进行第一阶段训练。

在一些实施例中,所述对话策略模型可以是多分类模型,其输入包括对话上文,输出包括对应于两个或以上对话策略的概率值。

例如,对话策略模型可以输出1-n个对话策略的概率值,其可以表示为[0.1,0.05,……,0.2],最高概率值对应的对话策略即为策略模型输出的与对话上文对应的对话策略。

在一些实施例中,对话策略模型可以包括bert模型、cnn模型、rnn模型、transformers模型、gpt模型等。

如图7所示,对话策略模型可以基于bert模型构建,模型的输入可以是对话上文,具体可以是对话上文中各字符对应的嵌入向量e,各字符的嵌入向量经过bert编码器处理后得到多个输出向量,可以将[cls]位置对应的输出向量进行多层感知器(mlp)处理后,得到输入对话上文在多个对话策略下的概率值。需要说明的是,图7中的嵌入向量,如e11、e2p、en2等旨在简化示例对话上文中各字符的嵌入向量,在一些实施例中,嵌入向量可以包含多种,例如各字符所在分段的嵌入向量(segmentembedding)、各字符在其所在分段中位置的嵌入向量(positionembedding)、各字符的字符嵌入向量(tokenembedding)等。

在一些实施例中,可以基于第一训练数据对对话策略模型进行有监督训练。具体的,可以构建损失函数,通过损失函数来反映对话策略模型预测的对话策略与样本对话上文实际的对话策略之间的差异,进而根据该差异对对话策略模型的参数进行调整,得到对话策略模型的第一模型参数。仅作为示例,构建的损失函数可以是交叉熵损失函数,如以下等式(1)所示。

其中,losspi表示交叉熵损失函数值,n表示第一训练样本的数量,m表示模型输出的对话策略的数量,ai,j表示第i个第一训练样本中样本对话上文对应的第j个对话策略的标签,ai,j的取值可以是0或1,例如,当第i个第一训练样本为正样本,且其中的样本对话策略对应模型输出的第j个对话策略,ai,j取值可以是1,否则取值为0;π(si,j)为对话策略模型预测的结果,具体可以表示模型对第i个第一训练样本的样本对话上文si进行处理得到的第j个对话策略的预测概率。

通过最小化交叉熵损失函数,不断地对对话策略模型的参数进行调整,即可得到所述对话策略模型的第一模型参数。训练完成之后可以使得对话策略模型能够基于对话上文输出与其对应的对话策略。

步骤206,使用第二训练数据对经过第一阶段训练后的对话策略模型进行第二阶段训练,调整所述第一模型参数,使得所述对话策略模型基于对话上文输出的对话策略能够与预设对话目标适配,进而获得所述对话策略模型的第二模型参数。在一些实施例中,步骤206可以由第二训练模块530执行。

预设对话目标可以是指期望通过对话达成的目标。例如,催债、推销、反欺诈等。对话策略与预设对话目标适配可以是指该对话策略能够引导对话的方向朝着预设对话目标靠近。或者说,模型输出的对话策略与预设对话目标相关,进而能够通过对话促进预设目标达成。

在一些实施例中,处理设备可以通过构建目标函数的方式来对第一模型参数进行调整,详细说明可以参见图4及其相关描述,此处不再赘述。

本说明书实施例中,通过从历史对话中确定用于对对话策略模型进行训练的第一训练样本和第二训练样本,通过两阶段训练后,对话策略模型可以从人工客服与用户的对话历史中学习到对话策略,人工只需要参与审核,可以有效地节省人力。在第二阶段的模型训练中,通过引入目标奖励值的方式来进行对话策略模型进行参数调优,使得训练目标本身为实际对话目标,减小训练目标与实际对话目标之间存在的偏差,进而有效地提高对话策略模型的预测准确度。通过两阶段模型训练的方法,可以高效地从人工客服的历史日志里挖掘对话策略知识,避免资源浪费。

本说明书一些实施例还披露了一种对话的方法。

该方法包括:获取对话上文。

对话上文可以是一句用户话语,也可以是以用户话语为结束语的多轮对话。在一些实施例中,处理设备可以从对话的聊天日志中读取得到对话上文,也可以从语音对话或视频对话中接收语音消息,并将语音消息转换成文本,得到对话上文。

将所述对话上文输入至对话策略模型,确定用于回答所述对话上文的对话策略。

例如,将对话上文输入至对话策略模型后,对话策略模型可以输出多个对话策略的概率值,可以将最大概率值对应的对话策略作为回答所述对话上文的对话策略。其中,所述对话策略模型可以是采用如本说明书实施例所描述的对话策略模型训练方法训练得到的模型。

基于所述对话策略确定应答话术并输出。

在一些实施例中,每种对话策略对应一个话术库,话术库中具有多条客服话术,在确定对话策略之后,可以随机或按照一定规则(例如,按顺序等)从对应的话术库中的多个客服话术中选择一个作为应答话术。例如,可以随机或按照一定规则从对话策略对应的话术库中选择一个作为应答话术。输出可以是将应答话术以文本的形式输出到聊天框,或以语音的形式进行播报等。

图3是根据本说明书一些实施例所示的训练样本的获取方法的示例性流程图。在一些实施例中,流程300可以由处理设备执行。例如,流程300可以以程序或指令的形式存储在存储装置(如处理设备的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现流程300。又或者流程300可以由部署于处理设备的对话策略模型训练系统500的第一确定模块510实现。流程300可以包括以下操作。

步骤302,从多轮历史对话中提取客服话术,并将提取得到的客服话术聚类为一组或多组。

在一些实施例中,处理设备可以从一个或多个多轮历史对话中提取客服话术。

聚类可以是指将客服话术按照其语义对其进行分组,语义相同或相近的划分为一组。

在一些实施例中,处理设备可以使用预设的算法或者预先训练好的机器学习模型处理从多轮历史对话中提取的客服话术,得到各客服话术对应的语义向量表达,并基于各语义向量表达进行聚类,进而得到一组或多组客服话术,其中同一组中的客服话术的语义相同或相近。

步骤304,基于聚类得到的一组或多组客服话术,确定一个或多个对话策略。

在一些实施例中,处理设备可以将聚类后的一组客服话术作为一类对话策略,并赋予其一个策略名称。例如,包含您好、最近怎么样等话术的一组客服话术可以作为“问候寒暄”类的对话策略。在一些实施例中,还可以将各组客服话术进一步作为对应对话策略的话术库。

步骤306,将所述多轮历史对话中的客服话术替换为对应的对话策略。

在一些实施例中,处理设备可以将多轮历史对话中的客服话术替换为对应的对话策略。例如,多轮历史对话表示为u1a1u2a2,将其中的客服话术替换为对应的对话策略,则得到u1k1u2k2。更加具体的,若客服话术u1为“你好”,“你好”对应的对话策略为“问候寒暄”,则k1表示“问候寒暄”类的对话策略。

步骤308,将客服话术替换为对话策略后的多轮历史对话按轮进行拆分。

在一些实施例中,将多轮历史对话按轮进行拆分可以是一轮一轮的进行拆分。例如,将客服话术替换为对话策略后的多轮历史对话为u1k1u2k2……,对其按轮进行拆分后,u1k1为一轮对话,u2k2为一轮对话,以此类推。

将客服话术替换为对话策略后的多轮历史对话按轮进行拆分后,可以将每一轮的对话作为一个训练样本,从而得到多个第一训练正样本。例如,上述u1k1、u2k2即可以作为第一训练正样本。在一些实施例中,将第一训练正样本中的对话策略随机替换成其他对话策略,即可得到对应的第一训练负样本。

在一些实施例中,在将多轮历史对话按轮进行拆分后,还可以按照步骤310所示的操作,获得一个或多个第二训练样本。

步骤310,从拆分后的多轮历史对话中获取对话上文、其对应的对话策略、其对应的下一轮对话上文以及该下一轮对话上文对应的对话策略,分别作为第二训练样本中的样本对话上文、样本对话策略、下一轮样本对话上文以及下一轮样本对话策略。

例如,假设多轮对话为u1k1u2k2u3k3……,按轮拆分后,可以得到u1k1、u2k2、u3k3……。

在一些实施例中,可以将u1作为对话上文,k1为其对应的对话策略,u2为下一轮对话上文,k2为该下一轮对话上文对应的对话策略。

在一些实施例中,还可以将u1a1u,作为对话上文,k2为其对应的对话策略,u3为下一轮对话上文,k3为该下一轮对话上文对应的对话策略。需要说明的是,以上例子仅出于示例的目的,在本说明书实施例中,对对话上文中的对话轮数不作限定。

需要说明的是,在使用相同的多轮历史对话获取第一训练样本和第二训练样本时,可以直接执行步骤302至308获取第一训练样本,在获取第一训练样本的同时或之后,按照步骤310所示的操作获取第二训练样本。在使用与获取第一训练样本不同的多轮历史对话获取第二训练样本时,可以按照步骤302-310所示的操作,以获取第二训练样本。

图4是根据本说明书一些实施例所示的对话策略模型第二阶段训练方法的示例性示意图。在一些实施例中,流程400可以由处理设备执行。例如,流程400可以以程序或指令的形式存储在存储装置(如处理设备的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现流程400。又或者流程400可以由部署于处理设备的对话策略模型训练系统500的第二训练模块530实现。流程400可以包括以下操作。

步骤402,使用经过第一阶段训练后的对话策略模型处理第二训练样本中的样本对话上文,获得对应于该样本中的样本对话策略的第一概率值。

在一些实施例中,处理设备可以将第二训练样本输入经过第一阶段训练后的对话策略模型,对话策略模型会输出对应于该样本对话上文的多个对话策略的概率值。多个概率值中,与样本对话策略相同的对话策略的概率值即为所述第一概率值。

参见图7,对话策略模型可以对样本对话上文进行处理,例如,将样本对话上文转化为相应的嵌入向量,然后对嵌入向量进行处理,得到多个对话策略的概率值。例如,图7中的p1、p2、……、pm。而第二训练样本中的样本对话策略对应模型输出的第3个对话策略,则第一概率值为p3。

步骤404,使用经过第一阶段训练后的对话策略模型处理第二训练样本中的下一轮样本对话上文,获得对应于该样本中的下一轮样本对话策略的第二概率值。

在一些实施例中,对话策略模型可以对下一轮样本对话上文进行处理,获得第二概率值。更详细的说明可以参考步骤402的描述,此处不再赘述。

步骤406,构造目标函数,所述目标函数反映目标奖励值与第二概率值的合值与第一概率值的差异。

所述合值可以是将目标奖励值与第二概率值进行某种运算后的结果,所述运算可以是加权求和或相乘等。该差异可以反映经过第一阶段训练后的对话策略模型输出的对话策略与实际对话目标之间的偏差。

在一些实施例中,构建的目标函数可以是损失函数,例如,sarsa函数,构造的目标函数可以如以下等式(2)所示。

其中,losspft表示损失函数值,n为第二训练样本的数量,γ为折扣因子,取值范围可以是0~1,si表示第i个第二训练样本中样本对话上文,ai表示第i个第二训练样本中样本对话上文对应的对话策略,s′i和a′i分别表示下一轮样本对话上文和下一轮样本对话策略,r(si,ai)表示第i个第二训练样本的目标奖励值,q(s,a)为值函数,表示基于对话策略a对对话上文s进行应答的收益值得分。具体的,q(si,ai)可以用所述第一概率值表示,q(s′i,a′i)可以用所述第二概率值表示,在目标函数中其可以表示基于样本对话策略ai对样本对话上文si进行应答的未来收益。

步骤408,调整第一模型参数,以使得所述目标函数最小化,进而获得所述对话策略模型的第二模型参数。

由于第二训练样本中的样本对话上文、样本对话策略、下一轮样本对话上文、下一轮样本对话策略来自于实际发生的同一个历史对话中,因此,样本对话上文、样本对话策略与下一轮的样本对话上文和样本对话策略之间是存在关联的,对话的目标都是指向同一个对话目标,因此,通过对经过第一阶段训练的对话策略模型进行强化学习,最小化目标函数,可以减少第一阶段训练得到的对话策略模型与实际对话目标之间的偏差,那么在经过第二阶段训练之后,使用对话策略模型来选择的对话策略可以变得更加目标导向。

应当注意的是,上述有关各流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,步骤202可以拆分为两个步骤,又例如步骤302与步骤304可以合并等。

图5是根据本说明书一些实施例所示的对话策略模型训练系统的示例性模块图。如图5所示,系统500可以包括第一确定模块510、第一训练模块520和第二训练模块530。

第一确定模块510可以用于基于多轮历史对话,确定第一训练数据以及第二训练数据。

在一些实施例中,所述第一训练数据中的第一训练样本包括样本对话上文和样本对话策略;第二训练数据中的第二训练样本至少包括样本对话上文、样本对话策略以及相应的目标奖励值。

在一些实施例中,第一确定模块510可以从多轮历史对话中提取客服话术,并基于客服话术进行聚类得到一组或多组对话策略,然后可以使用聚类得到的对话策略替换历史对话中的客服话术,最后按照对话轮次对历史对话进行拆分,从拆分结果中得到第一训练样本或第二训练样本。例如,第一确定模块510可以从多轮历史对话中提取客服话术,并将提取得到的客服话术聚类为一组或多组;基于聚类得到的一组或多组客服话术,确定一个或多个对话策略;将所述多轮历史对话中的客服话术替换为对应的对话策略;将客服话术替换为对话策略后的多轮历史对话按轮进行拆分,以得到多个第一训练正样本;以及,可以从拆分后的多轮历史对话中获取对话上文、其对应的对话策略、其对应的下一轮对话上文以及该下一轮对话上文对应的对话策略,分别作为第二训练样本中的样本对话上文、样本对话策略、下一轮样本对话上文以及下一轮样本对话策略。

第一训练模块520可以用于使用第一训练数据对对话策略模型进行第一阶段训练,使得所述对话策略模型能够基于对话上文输出与之对应的对话策略,进而获得所述对话策略模型的第一模型参数。

在一些实施例中,第一训练模块520可以将第一训练数据输入对话策略模型,以对对话策略模型进行第一阶段训练。对话策略模型的输出为预测的多个对话策略与输入的样本对话上文对应的概率值。在一些实施例中,所述对话策略模型为多分类模型,其输入包括对话上文,输出包括对应于两个或以上对话策略的概率值。所述对话策略模型包括bert模型。

在一些实施例中,第一训练模块520可以构建损失函数,通过损失函数来反映对话策略模型预测的对话策略与样本对话策略之间的差异,进而根据该差异对对话策略模型的参数进行调整,得到对话策略模型的第一模型参数。

第二训练模块530可以用于使用第二训练数据对经过第一阶段训练后的对话策略模型进行第二阶段训练,调整所述第一模型参数,使得所述对话策略模型基于对话上文输出的对话策略能够与预设对话目标适配,进而获得所述对话策略模型的第二模型参数。

在一些实施例中,第二训练模块530可以使用经过第一阶段训练后的对话策略模型处理第二训练样本中的样本对话上文,获得对应于该样本中的样本对话策略的第一概率值;可以使用经过第一阶段训练后的对话策略模型处理第二训练样本中的下一轮样本对话上文,获得对应于该样本中的下一轮样本对话策略的第二概率值;可以构造目标函数,所述目标函数反映目标奖励值与第二概率值的和值与第一概率值的差异;可以调整第一模型参数,以使得所述目标函数最小化,进而获得所述对话策略模型的第二模型参数。

图6是根据本说明书一些实施例所示的对话的系统的示例性模块图。如图6所示,系统600可以包括获取模块610、第二确定模块620和第三确定模块630。

获取模块610可以用于获取对话上文。

在一些实施例中,获取模块610可以从对话的聊天日志中读取得到对话上文,也可以从语音对话或视频对话中接收语音消息,并将语音消息转换成文本,得到对话上文。

第二确定模块620可以用于将所述对话上文输入至对话策略模型,确定用于回答所述对话上文的对话策略。

在一些实施例中,第二确定模块620可以将对话上文输入至对话策略模型,对话策略模型可以输出一个或多个分别用于回答所述对话上文的对话策略的概率值,可以将最大概率值对应的对话策略作为回答所述对话上文的对话策略。其中,所述对话策略模型可以是采用如本说明书实施例所描述的对话策略模型训练方法训练得到的模型。

第三确定模块630可以用于基于所述对话策略确定应答话术并输出。

在一些实施例中,第三确定模块630可以随机或按照一定规则从对话策略对应的话术库中选择一个作为应答话术。输出可以是将应答话术以文本的形式输出到聊天框,或以语音的形式进行播报等。

关于以上所述系统的各模块的具体描述,可以参考本说明书流程图部分,例如,图2至图4的相关说明。

应当理解,图5和图6所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。

需要注意的是,以上对于对话策略模型训练和对话的系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,第一确定模块510、第一训练模块520和第二训练模块530可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。例如,第一确定模块510和第一训练模块520可以是两个模块,也可以是一个模块同时具有确定和训练功能。例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。

本说明书实施例可能带来的有益效果包括但不限于:(1)根据本说明书实施例提供的对话策略模型训练方法,对话策略模型在训练后可以自动地从多轮对话历史中学习对话策略,人工只需要参与审核,大大节省了人力;(2)在第二阶段的模型训练中,通过引入目标奖励值的方式来进行对话策略模型的参数进行调整,使得训练目标本身更加接近实际对话目标,可以有效地提高对话策略模型的预测准确度;(3)高效地从人工客服的历史日志里挖掘对话策略知识,避免资源浪费。

需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。

上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。

同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。

此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。

计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf、或类似介质,或任何上述介质的组合。

本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net、python等,常规程序化编程语言如c语言、visualbasic、fortran2003、perl、cobol2002、php、abap,动态编程语言如python、ruby和groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(saas)。

此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。

同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。

针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。

最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

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