一种模型训练和业务执行的方法及装置
技术领域
本说明书涉及机器学习领域,尤其涉及一种模型训练和业务执行的方法及装置。
背景技术
随着信息技术的不断发展,用户可以在线上通过语音对话的方式查找所需执行的业务,即,用户可以通过终端与业务平台进行对话,业务平台可以在用户说完每一句话时,确定该用户的用户目标,从而确定出需要向用户回复的内容。
其中,用户目标可以包括用户的业务意图以及该用户所需执行的业务对应的业务关键词,例如,用户说出“想点川菜的外卖”,则用户的业务意图为想点外卖,业务关键词为“川菜”。
在该用户与业务平台的对话过程中,业务平台可以从该用户所说出的话语中,确定出用户目标,由于用户与业务平台之间的对话往往是多轮的,而在这一过程中用户可能会改变想法(比方说用户刚开始想点炸鸡外卖,后来想点川菜外卖),从而导致用户目标会发生变化。在现有技术中可以通过人为设定规则来确定出用户目标,但是由于实际中对话可能会涉及多种信息,人为设定出的规则可能会有所遗漏,从而无法准确确定出实际的用户目标。
所以,如何准确确定出用户实际的用户目标,则是一个亟待解决的问题。
发明内容
本说明书提供一种模型训练和业务执行的方法及装置,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种模型训练的方法,包括:
确定基础用户目标,所述基础用户目标中包含基础业务关键词与基础业务意图中的至少一种,所述基础业务意图用于表示用户在对话过程的业务意图,所述基础业务关键词用于表示用户在对话过程中所需执行的业务对应的业务关键词;
确定与所述基础用户目标相匹配的第一用户目标,以及确定与所述基础用户目标之间相冲突的第二用户目标;
根据所述第一用户目标以及所述基础用户目标,构建正样本,并根据所述第二用户目标以及所述基础用户目标,构建负样本;
根据所述正样本以及所述负样本,对待训练的识别模型进行训练。
可选地,确定基础用户目标,具体包括:
获取业务拓扑图,所述业务拓扑图用于表示各关键词类型的业务关键词之间的业务从属关系;
从针对基础用户目标预设的至少一个关键词类型中选出基准关键词类型,并生成所述基准关键词类型对应的基准关键词;
根据所述业务拓扑图以及所述至少一个关键词类型,确定与所述基准关键词符合所述业务从属关系的其他关键词;
根据所述基准关键词以及所述其他关键词,确定基础业务关键词;
根据所述基础业务关键词,确定所述基础用户目标。
可选地,确定与所述基础用户目标相匹配的第一用户目标,以及确定与所述基础用户目标之间相冲突的第二用户目标,具体包括:
获取业务拓扑图,所述业务拓扑图用于表示各关键词类型的业务关键词之间的业务从属关系;
根据所述业务拓扑图,确定与所述基础业务关键词符合所述业务从属关系的第一业务关键词,以及确定与所述基础业务关键词之间不符合所述业务从属关系的第二业务关键词;
根据所述第一业务关键词,确定所述第一用户目标,以及根据所述第二业务关键词,确定所述第二用户目标。
可选地,所述第一用户目标包括第一业务关键词以及第一业务意图中的至少一种,所述第二用户目标包括第二业务关键词以及第二业务意图中的至少一种,所述第一业务意图用于表示与所述基础业务意图之间不存在冲突的业务意图,所述第二业务意图用于表示与所述基础业务意图之间存在冲突的业务意图;
根据所述第一用户目标以及所述基础用户目标,构建正样本,以及根据所述第二用户目标以及所述基础用户目标,构建负样本之前,所述方法还包括:
根据所述第一业务关键词和/或所述第一业务意图,确定模拟出的第一用户语句,以及根据所述第二业务关键词和/或所述第二业务意图,确定模拟出的第二用户语句;
根据所述第一用户目标以及所述基础用户目标,构建正样本,以及根据所述第二用户目标以及所述基础用户目标,构建负样本,具体包括:
根据所述第一用户语句、所述第一用户目标和所述基础用户目标,构建正样本,以及根据所述第二用户语句、所述第二用户目标和所述基础用户目标,构建负样本。
可选地,若所述基础用户目标包括所述基础业务关键词,根据所述第一用户目标以及所述基础用户目标,构建正样本,以及根据所述第二用户目标以及所述基础用户目标,构建负样本,具体包括:
根据所述业务拓扑图,确定所述第一业务关键词对应的特征向量、所述第二业务关键词对应的特征向量以及所述基础业务关键词对应的特征向量,一个业务关键词对应的特征向量用于表征该业务关键词在所述业务拓扑图中对应的拓扑结构;
根据所述第一业务关键词对应的特征向量以及所述基础业务关键词对应的特征向量,构建正样本,以及根据所述第二业务关键词对应的特征向量以及所述基础业务关键词对应的特征向量,构建负样本。
本说明书提供了一种业务执行的方法,包括:
接收用户发送的业务请求;
根据所述业务请求,确定在当前对话过程中所述用户发送的当前语句对应的当前用户目标,以及确定在当前对话过程中所述用户对应的历史用户目标;
将所述历史用户目标以及所述当前用户目标输入到预先训练的识别模型中,确定所述当前用户目标与所述历史用户目标之间的匹配关系,所述匹配关系用于表示所述当前用户目标与所述历史用户目标是否相匹配,所述识别模型是通过如上述模型训练的方法训练得到的;
根据所述匹配关系以及所述当前用户目标,确定当前所述用户的实际用户目标;
根据所述实际对话状态,为所述用户进行业务执行。
可选地,根据所述匹配关系以及所述当前用户目标,确定当前所述用户的实际用户目标,具体包括:
若确定所述当前用户目标与所述历史用户目标之间相匹配,根据所述历史用户目标以及所述当前用户目标,确定当前所述用户的实际用户目标;
若确定所述当前用户目标与所述历史用户目标之间不匹配,根据所述当前用户目标,确定当前所述用户的实际用户目标。
本说明书提供了一种模型训练的装置,包括:
第一确定模块,用于确定基础用户目标,所述基础用户目标中包含基础业务关键词与基础业务意图中的至少一种,所述基础业务意图用于表示用户在对话过程的业务意图,所述基础业务关键词用于表示用户在对话过程中所需执行的业务对应的业务关键词;
第二确定模块,用于确定与所述基础用户目标相匹配的第一用户目标,以及确定与所述基础用户目标之间相冲突的第二用户目标;
构建模块,用于根据所述第一用户目标以及所述基础用户目标,构建正样本,并根据所述第二用户目标以及所述基础用户目标,构建负样本;
训练模块,用于根据所述正样本以及所述负样本,对待训练的识别模型进行训练。
本说明书提供了一种业务执行的装置,包括:
接收模块,用于接收用户发送的业务请求;
当前目标确定模块,用于根据所述业务请求,确定在当前对话过程中所述用户发送的当前语句对应的当前用户目标,以及确定在当前对话过程中所述用户对应的历史用户目标;
输入模块,用于将所述历史用户目标以及所述当前用户目标输入到训练后的识别模型中,确定所述当前用户目标与所述历史用户目标之间的匹配关系,所述匹配关系用于表示所述当前用户目标与所述历史用户目标是否相匹配,所述识别模型是通过如上述模型训练的方法训练得到的;
实际目标确定模块,用于根据所述匹配关系以及所述当前用户目标,确定当前所述用户的实际用户目标;
执行模块,用于根据所述实际对话状态,为所述用户进行业务执行。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述模型训练或业务执行的方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述模型训练或业务执行的方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的模型训练和业务执行的方法中,业务平台可以确定基础用户目标,其中,基础用户目标中包含基础业务关键词与基础业务意图中的至少一种,基础业务意图用于表示用户在对话过程的业务意图,基础业务关键词用于表示用户在对话过程中所需执行的业务对应的业务关键词,而后,业务平台可以确定与该基础用户目标相匹配的第一用户目标,以及确定与该基础用户目标之间相冲突的第二用户目标,从而,根据第一用户目标以及基础用户目标,构建正样本,并根据第二用户目标以及基础用户目标,构建负样本,最后,根据正样本以及负样本,对待训练的识别模型进行训练,以及后续通过训练后的该识别模型确定用户的实际用户目标。
从上述方法中可以看出,业务平台可以自动生成用于训练识别模型的正负样本,并且正样本对应于用户的想法未改变的情况,而负样本对应于用户的想法前后发生冲突的情况,因此,该识别模型训练完成后,通过历史用户目标以及当前用户目标,可以确定出历史用户目标与当前用户目标之间是否存在冲突,即,用户的想法是否发生变化,从而准确确定出该用户实际的用户目标。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中一种模型训练的方法的流程示意图;
图2为本说明书提供的一种识别模型的结构示意图;
图3为本说明书中一种业务执行的方法的流程示意图;
图4为本说明书提供的一种通过业务拓扑图构建正样本以及负样本的示意图;
图5为本说明书提供的一种模型训练的装置的示意图;
图6为本说明书提供的一种业务执行的装置的示意图;
图7为本说明书提供的一种对应于图1或图3的电子设备的示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中一种模型训练的方法的流程示意图,包括以下步骤:
S101:确定基础用户目标,所述基础用户目标中包含基础业务关键词与基础业务意图中的至少一种,所述基础业务意图用于表示用户在对话过程的业务意图,所述基础业务关键词用于表示用户在对话过程中所需执行的业务对应的业务关键词。
在实际应用中,业务平台可以向用户提供语音对话业务,用户可以通过该语音对话业务查询所需执行的业务,从而方便用户的业务执行。在语音对话业务中,业务平台需要确定出用户每说完一句话后的用户目标,即,确定出用户说完这句话时的业务意图以及该用户所需执行的业务的业务关键词,在实际生活中,用户可以通过人机对话业务执行多种业务,如点外卖、订机票以及查询餐厅等。
在某些业务中,用户在人机对话过程中可以表达出非常多种的业务关键词,如在外卖业务中,用户可以通过商家名、菜品名、商家类型、菜品做法等表达想要点的外卖,也可以表达出多种业务意图,那么,业务平台需要在人机对话过程中确定出用户每说完一句话时的所表达出的用户目标,用户在一次完整的对话过程中会说出很多业务关键词,并且,在对话过程中用户可能还会改变想法,从而导致业务平台无法继续参考用户历史上说出的某些业务关键词,这些无法参考的业务关键词也不应出现在用户当前的用户目标中,因此,业务平台需要准确确定出用户每一时刻实际的用户目标,从而准确确定出需要向用户回复的内容。
业务平台可以通过机器学习模型来确定出用户说完每句话时所对应的用户目标,而这需要业务平台预先确定出大量训练样本来训练该机器学习模型,基于此,业务平台可以生成基础用户目标,该基础用户目标中包含基础业务关键词与基础业务意图中的至少一种,该基础业务意图可以表示模拟出的用户在对话过程的业务意图,该基础业务关键词可以表示模拟出的用户在对话过程中所需执行的业务对应的业务关键词。基础用户目标可以是指模拟出的用户在对话过程中说出的一句话所对应的用户目标,也就是说,该基础用户目标可以表示用户说出的一句话的目的。
上述的基础业务关键词可以包含业务平台自动生成的多个业务关键词,例如,基础业务关键词可以是[外卖类型:快餐,商家:cc炸鸡店,地址:家],该基础业务关键词可以对应于模拟出的用户所说的一句话,根据该基础业务关键词,可以得到模拟出的用户语句,例如,业务平台可以将该基础业务关键词转换为“想要点cc炸鸡店的快餐送到家”,作为模拟出的用户说出的话。具体的转换方式可以有多种,如可以通过数据增强技术来确定出这样的语句,再例如,可以预设多种语句模板,将基础业务关键词填充到语句模板,得到这样的语句。
需要说明的是,在生成业务关键词时,业务平台可以参考业务拓扑图来进行业务关键词的生成,例如,以生成基础业务关键词为例,业务平台可以获取业务拓扑图,该业务拓扑图用于表示各关键词类型的业务关键词之间的业务从属关系。依然以外卖业务为例进行说明,该业务拓扑图能够表示出商家、菜品、外卖类型等业务关键词之间的从属关系,如表示外卖类型为川菜的节点可以与表示一家川菜馆的节点相连,表示这家川菜馆的节点可以与表示这家川菜馆里的菜品的节点相连。
业务平台可以从针对基础用户目标预设的至少一个关键词类型中选出基准关键词类型,并生成该基准关键词类型对应的基准关键词,进而,根据该业务拓扑图以及上述至少一个关键词类型,确定与该基准关键词符合业务从属关系的其他关键词,并根据该基准关键词以及其他关键词,确定基础业务关键词,根据基础业务关键词,确定基础用户目标。
由于基础业务关键词中可以包含有多种关键词类型的业务关键词,如上例中,基础业务关键词中包含外卖类型、商家这两个关键词类型的业务关键词,而,一个基础业务关键词对应于模拟出的用户说出的一句话,因此,为保证确定出的基础业务关键词贴近现实,需要保证该基础业务关键词中包含的各业务关键词符合上述业务从属关系。
例如,对于包含外卖类型和商家这两种关键词类型的基础业务关键词来说,可以将外卖类型作为基准关键词类型,并随机查找出该基准关键词类型下的“快餐”这一关键词作为基准关键词,再随机查找出与“快餐”满足业务从属关系的商家:“cc炸鸡店”,作为其他关键词,从而将其他关键词与基准关键词进行组合,得到基础业务关键词。可以看出,在其他例子中基础业务关键词中还包含地址,但是这种关键词不需要与其他关键词满足业务从属关系,因此,若需要生成这种关键词,不需要参考业务拓扑图。
S102:确定与所述基础用户目标相匹配的第一用户目标,以及确定与所述基础用户目标之间相冲突的第二用户目标。
业务平台确定出基础用户目标后,可以确定出与该基础用户目标相匹配的第一用户目标,以及确定出与该基础用户目标之间相冲突的第二用户目标。
基础用户目标、第一用户目标以及第二用户目标均可以是业务平台模拟出的用户目标,即,这些用户目标不需要从历史上用户真实说出的话中获得,可以是业务平台自动生成。其中,第一用户目标与该基础用户目标相匹配,对应于实际应用中用户始终维持一种想法的情况,而第二用户目标与基础用户目标则是对应于实际应用中用户改变了想法的情况。例如,用户在整个对话过程中先提到了想点川菜的外卖,而后用户突然说算了不点了,或者说想看看奶茶,那么此时用户的想法发生了改变,而若用户继续说想看A川菜店都有哪些菜品,则说明该用户未改变想法。
从上例中可以看出,当用户改变想法时,可能是所需执行的业务的业务关键词发生了改变,即,上述川菜改变为了奶茶,也可能是业务意图发生了改变,因此,与该基础用户目标相冲突的第二用户目标,可以是指包含的业务意图与该基础业务意图相冲突,和/或包含的业务关键词与该基础业务关键词不符合上述业务从属关系的用户目标。而,与该基础用户目标相匹配的第一用户目标,可以是指包含的业务意图与基础业务意图不冲突,和/或包含的业务关键词与基础业务关键词符合业务从属关系的用户目标。因而,业务平台可以在业务关键词的维度上,也可以在业务意图的维度上,来确定出第一用户目标以及第二用户目标。
其中,业务平台可以根据上述业务拓扑图,确定与该基础业务关键词符合上述从属关系的第一业务关键词,以及确定与该基础业务关键词之间不符合上述从属关系的第二业务关键词,第一业务关键词以及第二业务关键词中均可以包含多个关键词。由于业务拓扑图中各节点之间的连接关系能够表示出各业务关键词之间的从属关系,因此按照业务拓扑图中各节点的连接关系,能够生成与该基础业务关键词符合该从属关系的第一业务关键词。
而对于第二业务关键词,业务平台可以从该业务拓扑图中确定出与该基础业务关键词中的业务关键词不具备任何连接关系的其他业务关键词,并根据该其他业务关键词,确定出第二业务关键词,业务平台可以根据第一业务关键词,生成第一用户目标,并根据第二业务关键词生成第二用户目标。
承接上述例子,基础业务关键词为[商家类型:快餐,商家:cc炸鸡店,地址:家],该基础业务关键词中缺乏菜品信息,在实际应用中,这种基础业务关键词对应的业务意图可以是“看菜单”,即,基础用户目标为{[商家类型:快餐,商家:cc炸鸡店,地址:家],“看菜单”},因此,用户后面的语句可能包含菜品信息,第一业务关键词以及第二业务关键词可以包含菜品信息。例如第一业务关键词可以是[菜品:炸鸡套餐A],第二业务关键词是可以[菜品:西红柿炒鸡蛋],该第一业务关键词是从业务拓扑图中选取出的与该基础业务关键词中的cc炸鸡店满足业务从属关系的炸鸡套餐A,而第二业务关键词是随机选取出了一个与该基础业务关键词中的cc炸鸡店不满足业务从属关系的西红柿炒鸡蛋。
将第一业务关键词以及第二业务关键词进行语句转换,分别可以得到“想点炸鸡套餐A”以及“想点西红柿炒鸡蛋”,从这里能够清楚的发现,在实际情况中,第一业务关键词与基础业务关键词符合用户在对话过程中未改变想法的情况,即,用户是一直想点炸鸡的,而第二业务关键词与基础业务关键词符合用户在对话过程中改变了想法的情况,即,用户刚开始想点炸鸡,后来想点西红柿炒鸡蛋。因此,当第一用户目标包含了第一业务关键词,该第一用户目标与基础用户目标相匹配,而第二用户目标包含了第二业务关键词,该第一用户目标与基础用户目标相冲突。
上述是站在业务关键词的维度来说明相匹配或是相冲突的用户目标,而在实际应用中,用户改变的想法可能无法通过业务关键词表示出来,例如,用户刚开始表达出了想点炸鸡的意图,但后来突然说了一句:“算了不点了”,这句话中不包含任何业务关键词,但是包含消极的业务意图。因此,通过业务意图也可以构建出与基础用户目标之间相冲突的第二用户目标,以及与基础用户目标之间相匹配的第一用户目标。例如,可以将第二用户目标中包含的第二业务意图定义为[“消极”],该第二用户目标中可以不包含业务关键词,也可以将该第二用户目标中的业务关键词定义为空,这种第二用户目标与上述例子中的基础用户目标也能表示出用户想法的变化。
当然,通过业务意图也能表示出与基础用户目标相匹配的第一用户目标,依然承接上例,用户若下一句说“再看点这家店别的菜品”,这种语句中也不包含业务关键词,但是有继续点这家店的外卖的意图,因此,可以将第一用户目标中包含的第一业务意图定义为[“需要看更多的菜品”],该第一用户目标中也可以不包含业务关键词,或将业务关键词定义为空,这样的第一用户目标能够体现出与上述基础用户目标之间是匹配的,即,该第一用户目标与该基础用户目标。
S103:根据所述第一用户目标以及所述基础用户目标,构建正样本,并根据所述第二用户目标以及所述基础用户目标,构建负样本。
S104:根据所述正样本以及所述负样本,对待训练的识别模型进行训练。
业务平台确定出第一用户目标、第二用户目标以及基础用户目标后,可以根据第一用户目标以及基础用户目标,构建正样本,以及根据第二用户目标以及基础用户目标,构建负样本,业务平台可以根据该正样本以及该负样本,对待训练的识别模型进行训练。也就是说,第一用户目标与基础用户目标的组合能体现出用户想法维持一致,而第二用户目标与基础用户目标之间的组合能体现出用户改变了想法。这样一来,训练完成后的识别模型,能够通过历史的用户目标以及当前的用户目标来确定出用户的想法是否发生改变,从而能够确定出该用户真实的用户目标。
在本说明书中,由于用户说出的话也能够体现出用户的目的,因此,一个训练样本除了包含两个用户目标外,还可以包含用户语句,而由于第一用户目标以及第二用户目标均是模拟出的用户目标,因此,业务平台在进行模型训练时需要将这些用户目标转换为用户语句。因此,业务平台可以根据第一业务关键词和/或该第一业务意图,确定模拟出的第一用户语句,以及根据第二业务关键词和/或第二业务意图,确定模拟出的第二用户语句,而后,可以根据该第一用户语句、第一用户目标和基础用户目标,构建正样本,以及根据该第二用户语句、第二用户目标和基础用户目标,构建负样本。
其中,确定第一用户语句以及第二用户语句的方式与确定上述基础用户目标对应的用户语句的方式是类似的。业务平台可以根据预设的语句模板,将第一业务关键词以及第二业务关键词进行填充,从而得到第一用户语句和第二用户语句,抑或是,通过数据增强技术来确定出用户语句。当然,业务平台也可以根据业务意图来确定用户语句,例如,可以针对某些业务意图预设相应的用户语句,例如上述提到的[“消极”]这一业务意图,可以对应“算了不点了”这一用户语句。
还需说明的是,业务平台可以根据上述业务拓扑图,确定第一业务关键词对应的特征向量、第二业务关键词对应的特征向量以及基础业务关键词对应的特征向量,并根据该第一业务关键词对应的特征向量以及该基础业务关键词对应的特征向量,构建正样本,以及根据该第二业务关键词对应的特征向量以及该基础业务关键词对应的特征向量,构建负样本。其中,一个业务关键词对应的特征向量能够表征该业务关键词在业务拓扑图中对应的拓扑结构,即,可以表征在业务拓扑图中以该业务关键词为中心的局部拓扑结构的特点,从而能够表示出该业务关键词与其他业务关键词之间的业务从属关系。
在本说明书中,识别模型可以确定出两个用户目标之间是否匹配,即,确定出两个用户目标之间是否存在冲突,下面以第一用户目标以及基础用户目标为例,来说明对识别模型进行训练,从而使得该识别模型能够确定用户目标之间的关系,如图2所示。
图2为本说明书提供的一种识别模型的结构示意图。
从图2中可以看出,输入识别模型的包括第一用户语句、第一业务意图以及业务平台的历史行为,该历史行为可以是指针对基础用户目标,业务平台需要做出的行为,例如,若基础用户目标表示用户需要点茶餐厅的外卖,则业务平台可以将茶餐厅的茶餐厅的菜单进行展示。还可以看出,输入识别模型的还包括第一业务关键词、第一业务关键词对应的关键词类型、基础业务关键词以及基础业务关键词对应的关键词类型,其中,由于业务拓扑图能够表示出业务关键词的业务从属关系以及关键词类型之间的关系,因此,可以通过业务拓扑图来确定出业务关键词以及关键词类型对应的特征向量,再进行特征融合,分别得到第一业务关键词对应的特征向量以及基础业务关键词对应的特征向量。
在这一例子中,识别模型输出的是第一用户目标和基础用户目标之间是否相匹配的结果,业务平台对该识别模型进行训练后,可以使得该识别模型确定出两个用户目标之间是否相匹配,在这一例子中,没有在识别模型中输入基础用户目标的基础业务意图和该基础用户目标所对应的用户语句,当然,在实际应用中,可以在识别模型中输入基础业务意图以及该基础用户目标所对应的用户语句。
在模型训练时,输入的均是模拟出来的用户目标,而在实际应用中,需要识别出当前用户目标以及历史用户目标之间是否冲突,因此,在模型应用时,该识别模型输入基础用户目标的位置,可以输入历史用户目标,在输入第一用户目标的位置,输入当前用户目标。
上述是从模型训练的角度对本发明进行说明的,而在识别模型训练完成后,业务平台需要通过该识别模型确定用户的实际用户目标,因此,下面在模型应用的角度来对本发明进行说明,如图3所示。
图3为本说明书提供的一种业务执行的方法的流程示意图。
S301:接收用户发送的业务请求。
S302:根据所述业务请求,确定在当前对话过程中所述用户发送的当前语句对应的当前用户目标,以及确定在当前对话过程中所述用户对应的历史用户目标。
在人机对话业务中,用户与业务平台一个完整的人机对话过程往往包含多轮交互的语句,即,用户说一句话,业务平台向用户回复一句话或针对用户所说的话确定出的信息,用户可以根据业务平台的回复,说下一句,直到完成整个人机交互过程。在用户说完一句话时,业务平台可以确定出这句话中用户所需要表达的业务意图和用户所需要执行的业务的业务关键词,从而确定出该用户的当前用户目标。由于在为用户执行业务时,在整个人机对话过程中用户之前所说的话中包含的业务意图和业务关键词也需要考虑,因此,业务平台需要确定出在当前对话过程中该用户对应的历史用户目标。对于这句话来说,历史用户目标是指在用户说完上一句话时业务平台所确定出的实际用户目标,具体如何来确定用户说完每句话后的实际用户目标,下面会详细进行说明。
S303:将所述历史用户目标以及所述当前用户目标输入到预先训练的识别模型中,确定所述当前用户目标与所述历史用户目标之间的匹配关系,所述匹配关系用于表示所述当前用户目标与所述历史用户目标是否相匹配,所述识别模型是通过上述模型训练的方法训练得到的。
S304:根据所述匹配关系以及所述当前用户目标,确定当前所述用户的实际用户目标。
S305:根据所述实际对话状态,为所述用户进行业务执行。
业务平台可以将历史用户目标以及当前用户目标输入到预先训练的识别模型中,从而确定出当前用户目标与历史用户目标之间的匹配关系,其中,该匹配关系用于表示当前用户目标与历史用户目标是否相匹配,该识别模型是通过上述模型训练的方法进行训练得到的,而后,业务平台可以根据该匹配关系以及当前用户目标,来确定出当前该用户的实际用户目标,从而根据该实际用户目标,为该用户进行业务执行。
其中,确定该当前用户目标与历史用户目标是否匹配,可以是指确定该用户当前的想法是否与之前的想法冲突,也就是说,若该当前用户目标与历史用户目标匹配,则该用户当前的想法与之前的想法维持一致,则实际用户目标既需要通过当前用户目标确定,也需要通过历史用户目标确定。即,若确定当前用户目标与历史用户目标之间相匹配,根据历史用户目标以及当前用户目标,确定当前用户的实际用户目标,其中,在确定实际用户目标中的业务关键词时,需要根据历史用户目标中包含的历史业务关键词以及当前用户目标中的当前业务关键词来确定。
若该当前用户目标与历史用户目标不匹配,则说明该用户当前的想法与之前的想法是冲突的,那么历史用户目标与当前该用户的想法不一致,则可以仅根据当前用户目标,来确定实际用户目标,其中,在确定实际用户目标中的业务关键词时,仅需要根据当前用户目标中的当前业务关键词来确定,而不需要继承历史用户目标中包含的历史业务关键词。
从上述方法可以看出,业务平台可以自动生成用于训练识别模型的正负样本,并且正样本对应于用户的想法未改变的情况,而负样本对应于用户的想法前后发生冲突的情况,因此,该识别模型训练完成后,通过历史用户目标以及当前用户目标,可以确定出历史用户目标与当前用户目标之间是否存在冲突,即,用户的想法是否发生变化,从而准确确定出该用户实际的用户目标。
综上所述,可以看出,业务平台可以通过业务拓扑图,构建出正样本,以及负样本,如图4所示。
图4为本说明书提供的一种通过业务拓扑图构建正样本以及负样本的示意图。
从图4中可以看出,在生成正样本以及负样本时,不但可以通过业务拓扑图来生成,也可以通过真实用户数据(如用户历史上在业务平台中语音输入的搜索语句)来生成,也就是说,上述任何用户目标,可以根据业务拓扑图来构造,也可以通过真实用户数据得到用户在实际语音对话过程中的真实用户目标来构造。其中,需要通过业务拓扑图来生成相冲突的基础用户目标以及第二用户目标,作为负样本,抑或是,随机生成不符合用户在实际对话过程中所会说出的用户目标,通过这样的流程,能够自动生成用于训练上述识别模型的训练样本。
以上为本说明书的一个或多个实施例提供的模型训练和业务执行的方法,基于同样的思路,本说明书还提供了相应的模型训练和业务执行的装置,如图5、图6所示。
图5为本说明书提供的一种模型训练的装置示意图,包括:
第一确定模块501,用于确定基础用户目标,所述基础用户目标中包含基础业务关键词与基础业务意图中的至少一种,所述基础业务意图用于表示用户在对话过程的业务意图,所述基础业务关键词用于表示用户在对话过程中所需执行的业务对应的业务关键词;
第二确定模块502,用于确定与所述基础用户目标相匹配的第一用户目标,以及确定与所述基础用户目标之间相冲突的第二用户目标;
构建模块502,用于根据所述第一用户目标以及所述基础用户目标,构建正样本,并根据所述第二用户目标以及所述基础用户目标,构建负样本;
训练模块504,用于根据所述正样本以及所述负样本,对待训练的识别模型进行训练。
可选地,所述第二确定模块502具体用于,获取业务拓扑图,所述业务拓扑图用于表示各关键词类型的业务关键词之间的业务从属关系;从针对基础用户目标预设的至少一个关键词类型中选出基准关键词类型,并生成所述基准关键词类型对应的基准关键词;根据所述业务拓扑图以及所述至少一个关键词类型,确定与所述基准关键词符合所述业务从属关系的其他关键词;根据所述基准关键词以及所述其他关键词,确定基础业务关键词;根据所述基础业务关键词,确定所述基础用户目标。
可选地,第二确定模块502具体用于,获取业务拓扑图,所述业务拓扑图用于表示各关键词类型的业务关键词之间的业务从属关系;根据所述业务拓扑图,确定与所述基础业务关键词符合所述业务从属关系的第一业务关键词,以及确定与所述基础业务关键词之间不符合所述业务从属关系的第二业务关键词;根据所述第一业务关键词,确定所述第一用户目标,以及根据所述第二业务关键词,确定所述第二用户目标。
可选地,所述第一用户目标包括第一业务关键词以及第一业务意图中的至少一种,所述第二用户目标包括第二业务关键词以及第二业务意图中的至少一种,所述第一业务意图用于表示与所述基础业务意图之间不存在冲突的业务意图,所述第二业务意图用于表示与所述基础业务意图之间存在冲突的业务意图;
根据所述第一用户目标以及所述基础用户目标,构建正样本,以及根据所述第二用户目标以及所述基础用户目标,构建负样本之前,所述第二确定模块502还用于,根据所述第一业务关键词和/或所述第一业务意图,确定模拟出的第一用户语句,以及根据所述第二业务关键词和/或所述第二业务意图,确定模拟出的第二用户语句;
所述第二确定模块502具体用于,根据所述第一用户语句、所述第一用户目标和所述基础用户目标,构建正样本,以及根据所述第二用户语句、所述第二用户目标和所述基础用户目标,构建负样本。
可选地,所述第二确定模块502具体用于,根据所述业务拓扑图,确定所述第一业务关键词对应的特征向量、所述第二业务关键词对应的特征向量以及所述基础业务关键词对应的特征向量,一个业务关键词对应的特征向量用于表征该业务关键词在所述业务拓扑图中对应的拓扑结构;根据所述第一业务关键词对应的特征向量以及所述基础业务关键词对应的特征向量,构建正样本,以及根据所述第二业务关键词对应的特征向量以及所述基础业务关键词对应的特征向量,构建负样本。
图6为本说明书提供的一种模型训练的装置示意图,包括:
接收模块601,用于接收用户发送的业务请求;
当前目标确定模块602,用于根据所述业务请求,确定在当前对话过程中所述用户发送的当前语句对应的当前用户目标,以及确定在当前对话过程中所述用户对应的历史用户目标;
输入模块603,用于将所述历史用户目标以及所述当前用户目标输入到训练后的识别模型中,确定所述当前用户目标与所述历史用户目标之间的匹配关系,所述匹配关系用于表示所述当前用户目标与所述历史用户目标是否相匹配,所述识别模型是通过上述模型训练的方法训练得到的;
实际目标确定模块604,用于根据所述匹配关系以及所述当前用户目标,确定当前所述用户的实际用户目标;
执行模块605,用于根据所述实际用户目标,为所述用户进行业务执行。
可选地,所述实际目标确定模块604具体用于,若确定所述当前用户目标与所述历史用户目标之间相匹配,根据所述历史用户目标以及所述当前用户目标,确定当前所述用户的实际用户目标;若确定所述当前用户目标与所述历史用户目标之间不匹配,根据所述当前用户目标,确定当前所述用户的实际用户目标。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1或图3提供的一种模型训练和业务执行的方法。
本说明书还提供了图7所示的一种对应于图1或图3的电子设备的示意结构图。如图7所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1或图3所述的模型训练或业务执行的方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。