对话模型的训练方法、训练装置、对话方法及对话系统与流程

文档序号:13861337阅读:141来源:国知局

本发明涉及人机对话领域,特别是涉及一种对话模型的训练方法、训练装置、对话方法及对话系统。



背景技术:

传统的对话系统一般可以概括为以下三个阶段:

1)用户通过文本或者语音进行输入,自然语言理解(nlu)模块将用户的输入进行解析,得到结构化的内部表示。

2)对话管理(dm)模块接收到结构化的内部表示,根据历史的系统状态进行更新,得到最新的系统状态,再根据提前制定好的对话策略来选择与最新的系统状态对应的系统动作,交给下一个模块。

3)最后,自然语言生成(nlg)模块负责将系统动作转换成人类能够理解的自然语言或者语音输出。

在用户接收到系统的输出后,如果继续对话,则返回1)。

在上述的流程中,都需要事先通过自然语言理解模块对用户输入的文本或语音进行解析,然后将其传递给对话管理模块。由于传统的对话系统中自然语言理解模块和对话管理模块是分开建模的,两者出现的错误均会影响最终结果,例如,在自然语言理解模块出现问题时,自然语言理解模块产生的误差会传递给对话管理模块,使得对话管理模块不能正常进行。而在实际过程中,自然语言理解模块或对话管理模块的错误是无法避免的,因此传统的训练方法显然不能解决这种误差传递问题。



技术实现要素:

本发明的一个目的在于提供一种能够对话过程中减小误差传递问题的对话模型训练方案。

根据本发明的一个方面,提供了一种对话模型的训练方法,包括:总误差构建步骤,构建同时包含自然语言理解模型的第一误差和策略生成模型的第二误差的总误差函数;联合训练步骤,以使总误差函数减小为目标,使用语料样本对自然语言理解模型和策略生成模型进行联合训练,其中,自然语言理解模型的输入为对话语句,输出为对对话语句进行解析得到的内部表示,策略生成模型的输入至少包括自然语言理解模型的输出,策略生成模型的输出为针对对话语句作出的动作。

可选地,自然语言理解模型为序列标注模型,序列标注模型的输入为对话语句的词序列,序列标注模型的输出为词序列对应的槽位和词序列表示的意图信息。

可选地,序列标注模型可以包括:底层lstm和上层lstm,底层lstm的输入为词序列中按顺序依次输入的各个词,底层lstm用于基于对上一次输入的词进行处理后得到的隐藏层状态向量对本次输入的词进行处理,以得到本次输入的词的隐藏层状态向量,将得到的本次输入的词的隐藏层状态向量传递给上层lstm,并且将对最后一个输入的词进行处理后得到的隐藏层状态向量输入到第一分类器,以得到词序列的意图信息;上层lstm用于基于对接收到的上一次输入的词的隐藏层状态向量进行处理后得到的输出,对接收到的本次输入的词的隐藏层状态向量进行处理,并将处理后得到的输出输入到第二分类器,以得到词序列中的每个词对应的槽位。

可选地,自然语言理解模型的第一误差可以包括:槽填充误差和意图识别误差,槽填充误差与语料样本的规模、针对语料样本中每个训练样本使用自然语言理解模型得到的槽位和标准槽位之间的误差相关,意图识别误差与语料样本的规模、针对语料样本中每个训练样本使用自然语言理解模型得到的意图信息和标准意图信息之间的误差相关。

可选地,意图识别误差为,并且/或者槽填充误差为,

其中,lintent表示意图识别误差,d表示语料样本的规模,i为训练样本的序号,是针对第i个训练样本使用自然语言理解模型得到的意图信息,y(i)是第i个训练样本的标准意图信息,表示针对第i个训练样本使用自然语言理解模型得到的意图信息和标准意图信息之间的误差,ltag表示槽填充误差,ti表示第i个训练样本中的词序列所包含的词个数,t表示词序列中第t个词,是针对第i个训练样本中的词序列中第t个词使用自然语言理解模型得到的槽位,zt(i)是第i个训练样本中的词序列中第t个词的标准槽位,表示针对第i个训练样本中的词序列中第t个词使用自然语言理解模型得到的槽位和标准槽位之间的误差。

可选地,针对当前轮次的对话语句,策略生成模型的输入可以包括:自然语言理解模型针对当前轮次的对话语句的输出;和策略生成模型针对上一轮次的对话语句输出的动作和/或当前轮次信息。

可选地,策略生成模型为马尔科夫决策模型,策略生成模型以使得输出的动作得到的回报值尽可能多为目标,求取针对对话语句作出的动作,其中,回报值包括针对当前系统状态采取动作得到的立即回报和长期回报。

可选地,针对当前系统状态s,输出动作a得到的回报值q的计算方式可以如下:q(s,a)=r+λmaxq(s',a'),其中,r为立即回报,λ为权重因子,用于衡量长期回报和立即回报之间的重要性,s'表示下一轮的系统状态,a'为在下一轮系统状态s'下采取动作a'时回报值最大,maxq(s',a')表示长期回报。

可选地,策略生成模型在训练阶段可以包括:策略预测网络和目标网络,策略预测网络用于针对当前系统状态,生成各个动作下的估计回报值分布,并选出最大的估计回报值对应的动作作为针对当前系统状态的输出,目标网络用于针对当前系统状态,计算实际采取的动作的真实回报值。

可选地,策略生成模型的第二误差与估计回报值和真实回报值之间的差值相关。

可选地,第二误差为,

lact(θact)=e[(qr-qv)2],

qv=max(qpolicy(s,a,θact)),

qr=r+γmaxqtarget(s',a')

其中,qv为估计回报值,qr为真实回报值,θact表示策略生成模型涉及的参数,qpolicy(s,a,θact)表示策略预测网络针对当前系统状态s输出的各个动作a下的估计回报值分布,maxqtarget(s',a')表示目标网络针对当前系统状态s实际采取的动作得到的长期回报。

可选地,总误差构建步骤可以包括:针对第一误差和第二误差,使用加权求和的方式,构造总误差函数。

可选地,总误差函数为,

其中,θ表示自然语言理解模型和策略生成模型构成的整个网络的参数集合,第一误差包括意图识别误差lintent和槽填充误差ltag,lact表示第二误差,λ为学习速率参数,α、β为超参数,用于体现不同误差之间的权重,0≤α≤1,0≤α+β≤1。

可选地,联合训练步骤可以包括:通过将总误差函数反向传播,逐层求导,得到梯度方向;基于梯度方向,利用梯度下降法,按照学习速率参数对自然语言理解模型和策略生成模型中涉及的参数进行修正。

根据本发明的另一个方面,还提供了一种对话方法,包括:响应于用户输入的对话语句,使用自然语言理解模型,对用户输入的对话语句进行解析,以得到对话语句的内部表示;至少将内部表示输入策略生成模型,得到策略生成模型针对对话语句作出的动作;以及将动作转换为可被用户理解的事件,并展示给用户,其中,自然语言理解模型和策略生成模型可以是使用上文述及的训练方法得到的。

根据本发明的又一个方面,还提供了一种对话模型的训练装置,包括:总误差构建模块,用于构建同时包含自然语言理解模型的第一误差和策略生成模型的第二误差的总误差函数;联合训练模块,用于以使总误差函数减小为目标,使用语料样本对自然语言理解模型和策略生成模型进行联合训练,其中,自然语言理解模型的输入为对话语句,输出为对对话语句进行解析得到的内部表示,策略生成模型的输入至少包括自然语言理解模型的输出,策略生成模型的输出为针对对话语句作出的动作。

可选地,自然语言理解模型为序列标注模型,序列标注模型的输入为对话语句的词序列,序列标注模型的输出为词序列对应的槽位和词序列表示的意图信息。

可选地,序列标注模型可以包括:底层lstm和上层lstm,底层lstm的输入为词序列中按顺序依次输入的各个词,底层lstm用于基于对上一次输入的词进行处理后得到的隐藏层状态向量对本次输入的词进行处理,以得到本次输入的词的隐藏层状态向量,将得到的本次输入的词的隐藏层状态向量传递给上层lstm,并且将对最后一个输入的词进行处理后得到的隐藏层状态向量输入到第一分类器,以得到词序列的意图信息;上层lstm用于基于对接收到的上一次输入的词的隐藏层状态向量进行处理后得到的输出,对接收到的本次输入的词的隐藏层状态向量进行处理,并将处理后得到的输出输入到第二分类器,以得到词序列中的每个词对应的槽位。

可选地,自然语言理解模型的第一误差可以包括:槽填充误差和意图识别误差,槽填充误差与语料样本的规模、针对语料样本中每个训练样本使用自然语言理解模型得到的槽位和标准槽位之间的误差相关,意图识别误差与语料样本的规模、针对语料样本中每个训练样本使用自然语言理解模型得到的意图信息和标准意图信息之间的误差相关。

可选地,意图识别误差为,并且/或者槽填充误差为,

其中,lintent表示意图识别误差,d表示语料样本的规模,i为训练样本的序号,是针对第i个训练样本使用自然语言理解模型得到的意图信息,y(i)是第i个训练样本的标准意图信息,表示针对第i个训练样本使用自然语言理解模型得到的意图信息和标准意图信息之间的误差,ltag表示槽填充误差,ti表示第i个训练样本中的词序列所包含的词个数,t表示词序列中第t个词,是针对第i个训练样本中的词序列中第t个词使用自然语言理解模型得到的槽位,zt(i)是第i个训练样本中的词序列中第t个词的标准槽位,表示针对第i个训练样本中的词序列中第t个词使用自然语言理解模型得到的槽位和标准槽位之间的误差。

可选地,针对当前轮次的对话语句,策略生成模型的输入可以包括:自然语言理解模型针对当前轮次的对话语句的输出;和策略生成模型针对上一轮次的对话语句输出的动作和/或当前轮次信息。

可选地,策略生成模型为马尔科夫决策模型,策略生成模型以使得输出的动作得到的回报值尽可能多为目标,求取针对对话语句作出的动作,其中,回报值包括针对当前系统状态采取动作得到的立即回报和长期回报。

可选地,针对当前系统状态s,输出动作a得到的回报值q的计算方式如下:q(s,a)=r+λmaxq(s',a'),其中,r为立即回报,λ为权重因子,用于衡量长期回报和立即回报之间的重要性,s'表示下一轮的系统状态,a'为在下一轮系统状态s'下采取动作a'时回报值最大,maxq(s',a')表示长期回报。

可选地,策略生成模型可以包括:策略预测网络和目标网络,策略预测网络用于针对当前系统状态,生成各个动作下的估计回报值分布,并选出最大的估计回报值对应的动作作为针对当前系统状态的输出,目标网络用于针对当前系统状态,计算实际采取的动作的真实回报值。

可选地,策略生成模型的第二误差与估计回报值和真实回报值之间的差值相关。

可选地,第二误差为,

lact(θact)=e[(qr-qv)2],

qv=max(qpolicy(s,a,θact)),

qr=r+γmaxqtarget(s',a')

其中,qv为估计回报值,qr为真实回报值,θact表示策略生成模型涉及的参数,qpolicy(s,a,θact)表示策略预测网络针对当前系统状态s输出的各个动作a下的估计回报值分布,maxqtarget(s',a')表示目标网络针对当前系统状态s实际采取的动作得到的长期回报。

可选地,总误差模块构建针对第一误差和第二误差,使用加权求和的方式,构造总误差函数。

可选地,总误差函数为,

其中,θ表示自然语言理解模型和策略生成模型构成的整个网络的参数集合,第一误差包括意图识别误差lintent和槽填充误差ltag,lact表示第二误差,λ为学习速率参数,α、β为超参数,用于体现不同误差之间的权重,0≤α≤1,0≤α+β≤1。

可选地,联合训练模块通过将总误差函数反向传播,逐层求导,得到梯度方向,并基于梯度方向,利用梯度下降法,按照预定的学习速率参数对自然语言理解模型和策略生成模型中涉及的参数进行修正,

根据本发明的另一个方面,还提供了一种对话系统,包括:输入装置,用于接收用户输入的对话语句;自然语言理解装置,用于使用自然语言理解模型,用于对对用户输入的对话语句进行解析,以得到对话语句的内部表示;策略生成装置,用于至少将内部表示输入策略生成模型,以得到针对对话语句作出的动作;以及展示装置,用于将动作转换为可被用户理解的事件,并展示给用户,其中,自然语言理解模型和策略生成模型是使用上文述及的训练方法训练得到的。

根据本发明的另一个方面,还提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行上文述及的方法。

根据本发明的另一个方面,还提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行上文述及的方法。

本发明的对话模型的训练方法、训练装置、对话方法及对话系统,将自然语言理解模型和策略生成模型进行联合建模,构建同时包含自然语言理解模型的误差和策略生成模型的误差的总误差函数,基于总误差函数,将自然语言理解模型和策略生成模型视为一个整体,对自然语言理解模型和策略生成模型进行联合训练。与现有技术相比,在自然语言理解模型或策略生成模型出现误差的时候,本发明示例性实施例的方案整体仍能够与用户进行对话,解决了传统方法中将自然语言理解部分和策略生成部分分开建模而导致的误差传递问题。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。

图1是示出了根据本发明一实施例的对话模型的训练方法的示意性流程图。

图2是示出了根据本发明一实施例的序列标注模型的结构示意图。

图3是示出了图2所示的序列标注模型工作时的流程示意图。

图4是示出了根据本发明一实施例的策略生成模型工作时的流程示意图。

图5是示出了利用本发明训练得到的对话模型与用户进行对话交互的流程示意图。

图6是示出了根据本发明一实施例的对话方法的示意性流程图。

图7是示出了根据本发明一实施例的对话模型的训练装置的结构的示意性方框图。

图8是示出了根据本发明一实施例的对话系统的结构的示意性方框图。

图9是示出了根据本发明一个实施例的计算设备的结构的示意性方框图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

在描述本发明之前,首先就本发明涉及的若干名词概念做简要说明。

槽位:针对对话场景涉及的具体任务而预定义的关键信息。例如:在面向餐馆推荐的对话系统中,对话系统需要用户提供地点、价位来推荐餐馆,地点、价位等对话系统需要的关键信息就是槽信息,对应的名称(如地点、价位)即为槽位。

槽值:存储于槽位中的信息,在对话过程中,一般是将用户输入的文本信息,转化为槽值,填入槽位中。

系统状态(或状态):在机器内部对当前对话情况的一种表示。

系统动作(或动作):在机器内部对当前对话回复的一种表示,一个轮次人机对话中,机器的回复可以看作是一次动作的选择过程。例如:在面向餐馆推荐的人机对话系统中,系统可以针对当前的“价位”槽未知状态,做出询问价位的动作。

对话策略:当前系统状态按照基于训练语料学习到的对话策略而映射到最终输出的系统动作。

马尔可夫决策过程(mdp):一种用来建模连续决策问题的模型。在对话过程中,机器需要和同一用户交互多次,每次都是一次决策过程,多轮对话可看作一个连续决策过程。

深度增强学习(drl):一种机器学习方法,将增强学习和深度学习有效结合,可以用来求解mdp问题。

如前文所述,目前在训练对话模型时,模型中自然语言理解模型和对话管理模型是分开进行训练的。在使用对话模型针对用户输入的语句而反馈相应的动作时,首先需要自然语言理解模型对用户输入的语句进行解析,然后由对话管理模型基于自然语言理解模型解析得到的结果,作出相应的动作,在自然语言理解模型和对话管理模型两者之一出现问题时,另一方也无法正常进行。而在实际训练过程中,自然语言理解模型或对话管理模型的误差是无法避免的。因此传统的训练方法显然不能解决这种误差传递问题。

有鉴于此,本发明提出,在训练对话模型时,可以将自然语言理解模型和对话管理模型进行联合建模,构建同时包含自然语言理解模型的误差和对话管理模型的误差的总误差函数,基于总误差函数,可以将自然语言理解模型和对话管理模型视为一个整体,对自然语言理解模型和对话管理模型进行联合训练。由此,可以解决传统方法中将自然语言理解模型和对话管理模型分开建模而导致的误差传递问题。

在利用本发明训练得到的对话模型与用户进行对话交互时,即使自然语言理解模型或对话管理模型出现错误,例如,自然语言理解模型对用户输入的对话语句进行解析时出现误差,方案整体仍可以作出适当的动作,实现与用户的交互。

图1是示出了根据本发明一实施例的对话模型训练方法的示意性流程图。

本发明要训练的对话模型主要包括自然语言理解模型和策略生成模型两部分,其中,策略生成模型可以视为包括在上文述及的对话管理模块中。在利用本发明的训练方案训练得到的对话模型与用户进行对话交互时,自然语言理解模型可以对用户输入的对话语句进行解析,策略生成模型可以基于自然语言理解模型得到的解析结果,作出用于对用户输入的对话语句进行回复的动作。其中,可以利用本发明训练的对话模型与用户进行多轮次对话,直至满足用户需求。

下面首先结合图1就本发明的对话模型的训练过程进行说明。

参见图1,在步骤s110,构建同时包含自然语言理解模型的第一误差和策略生成模型的第二误差的总误差函数。

自然语言理解模型和策略生成模型在联合训练过程中各自均存在一定的误差。此处可以将自然语言理解模型在训练过程中产生的误差称为第一误差,将策略生成模型在训练过程中产生的误差称为第二误差。

在构建总误差函数时,可以通过加权求和的方式构造包含第一误差和第二误差的总误差函数。其中,各部分误差的权重参数可以根据实际情况预先设定。

需要说明的是,在计算总误差函数的值时,优选地,可以基于一个或数个相同训练轮次下自然语言理解模型产生的第一误差和策略生成模型产生的第二误差来得到总误差函数值。换言之,所构建的总误差函数中第一误差部分和第二误差部分优选地是相同训练轮次下自然语言理解模型和策略生成模型产生的。

在步骤s120,以使总误差函数减小为目标,使用语料样本对自然语言理解模型和策略生成模型进行联合训练。

由于总误差函数涉及自然语言理解模型和策略生成模型这两部分的误差,因此可以基于总误差函数,使用语料样本对自然语言理解模型和策略生成模型进行联合训练,以消除分开训练时产生的误差传递问题。

在本发明中,对自然语言理解模型和策略生成模型进行联合训练是指,在训练过程中,以使得总误差函数减小为约束条件,对自然语言理解模型和策略生成模型中涉及的参数进行修正。并且在对参数进行修正后,可以继续使用语料样本(可以是新的语料样本,也可以是之前训练时使用的语料样本)对自然语言理解模型和策略生成模型进行再次训练,根据训练结果,再次计算总误差函数值以进行模型联合训练,重复上述流程直至最终训练得到的自然语言理解模型和策略生成模型满足训练需求,例如可以是最终计算得到的总误差函数值小于预设值或达到了预定的训练迭代次数。

在使用语料样本对自然语言理解模型和策略生成模型进行训练的过程中,自然语言理解模型的输入为对话语句,输出为对对话语句进行解析得到的内部表示。此处述及的内部表示是指,解析结果仅机器内部可识别。策略生成模型的输入可以至少包括自然语言理解模型的输出,策略生成模型的输出为针对对话语句作出的动作。换言之,在每个训练轮次下,策略生成模型均是基于当前训练轮次下自然语言理解模型的输出进行训练的,两者在共同的总误差函数的指导下进行训练。由此,本发明是将自然语言理解模型和策略生成模型作为一个整体进行联合训练的,从而可以避免传统方法中分开建模而导致的误差传递现象。

需要说明的是,本发明述及的语料样本作为训练样本,其标记(label)可以离线获取,也可以实时获取。

也就是说,可以离线获取多个经过标记的(labeled)对话语句作为训练用的语料样本。其中,对话语句的标记优选地包括两部分:一部分与自然语言理解模型的输出相对应,用于衡量自然语言理解模型对对话语句进行解析得到的解析结果与真实结果之间的误差,例如可以包括标准意图信息和标准槽位信息;另一部分与策略生成模型的输出相对应,用于衡量策略生成模型输出的动作的回报值,例如可以包括针对每个训练用的对话语句的多个动作及每个动作对应的回报值。

另外,本发明述及的语料样本也可以包括多个训练用的对话语句及对话语句的仅与自然语言理解部分的输出相对应的标记,如标记可以仅包括对话语句的标准意图信息和标准槽位信息。此时可以实时获取语料样本中与策略生成模型对应的标记。例如,可以使用虚拟的用户模拟器或由真实用户对策略生成模型针对对话语句作出的动作进行标记,即为该动作赋予回报值,其中此处述及的回报值即为下文述及的立即回报。

进一步地,在通过实时获取的方式获取与策略生成模型的输出对应的标记的情况下,可以将对话语句经自然语言理解模型解析后得到的输出输入策略生成模型,得到策略生成模型针对该对话语句作出的动作,并使用用户模拟器对该动作进行标记,然后将其作为一条对话信息存入策略生成模型的记忆库。以此类推,直至记忆库中存入了预定数量(例如100条)的对话信息后,才执行本发明图1所示的训练方法对自然语言理解模型和策略生成模型进行联合训练。

而在与策略生成模型的输出对应的标记为离线获取时,则可以直接将带标记的语料样本存入策略生成模型的记忆库,使用上文述及的训练方法对自然语言理解模型和策略生成模型进行联合训练。

至此,结合图1就本发明的对话模型的训练方法的流程做了说明。下面就其中涉及的各部分细节做进一步的示例性详细说明。

一、自然语言理解模型

1)自然语言理解模型的结构

在本发明中,作为示例,自然语言理解模型可以采用条件随机场(crf)模型、长短期记忆网络(lstm)模型等多种形式的序列标注模型。其中,序列标注模型的输入为对话语句的词序列,输出为词序列对应的槽位和词序列表示的意图信息。其中,词序列可以通过对对话语句进行分词处理得到。并且,本发明述及的对话语句可以以文本、语音等多种形式存在。

图2是示出了根据本发明一实施例的序列标注模型的结构示意图。其中,图2是序列标注模型采用lstm时的结构示意图。

图中w表示词序列中的词,该词可以是通过对话语句进行分词处理得到的。例如,语句“我想从北京出发”,对应了“我、想、从、北京、出发”这五个词。

z表示词对应的标签,即词对应的槽位,如词“北京”对应槽位“city”。

y表示用户输入语句中的意图信息。在本发明中,意图信息主要是根据对话场景涉及的具体任务预先设定的结构化的意图信息,例如,意图信息可以包括告知系统一些信息时的意图(inform),对系统提问表示肯定(confirm)或否定(reject)的意图等等。

参见图2,序列标注模型采用lstm时,序列标注模型可以包括底层lstm和上层lstm。

底层lstm的输入为词序列中按顺序依次输入的各个词,其中底层lstm用于将对每个输入的词进行处理后得到的隐藏层状态向量传递给上层lstm,并基于对上一次输入的词进行处理后得到的隐藏层状态向量对本次输入的词进行处理,以得到本次输入的词的隐藏层状态向量。也就是说,底层lstm用于基于对上一次输入的词进行处理后得到的隐藏层状态向量对本次输入的词进行处理,以得到本次输入的词的隐藏层状态向量,并将得到的本次输入的词的隐藏层状态向量传递给上层lstm。并且,底层lstm还用于将对最后一个输入的词进行处理后得到的隐藏层状态向量输入到第一分类器,以得到词序列的意图信息。

上层lstm用于对接收到的每个隐藏层状态向量进行处理,并将处理后得到的输出输入到第二分类器,以得到词序列中的每个词对应的槽位。也就是说,上层lstm用于基于对接收到的上一次输入的词的隐藏层状态向量进行处理后得到的输出,对接收到的本次输入的词的隐藏层状态向量进行处理,并将处理后得到的输出输入到第二分类器,以得到词序列中的每个词对应的槽位。

图3是示出了图2所示的序列标注模型工作时的流程示意图。其中,图3是以词序列中单个词的处理顺序为基本时刻单位的。

如图3所示,自然语言理解模型包括上层lstm和底层lstm,自然语言理解模型的输入为词序列w(1:t)=(w1,w2,…,wt),输出为意图信息和槽信息(一系列标签,各个词对应的槽位)。具体处理流程如下。

针对单个词序列w(1:t),首先将词序列中的第一个词w1输入底层lstm,底层lstm将对词w1进行处理得到的隐藏层状态向量传递给上层lstm,作为上层lstm的输入。上层lstm用于对接收到的隐藏层状态向量进行处理,并将处理后得到的输出输入到第二分类器,以得到词w1对应的槽位z1。

在底层lstm对第一个词w1处理完成后,将词序列中的第二个词w2输入底层lstm,底层lstm基于对第一个词w1进行处理得到的隐藏层状态向量对第二个词w2进行处理,将得到的隐藏层状态向量传递给上层lstm。上层lstm用于基于其对第一个词w1的隐藏层状态向量进行处理后得到的输出,对接收到的第二个词w2的隐藏层状态向量进行处理,并将处理后得到的输出输入到第二分类器,以得到词w2对应的槽位z2。

以此类推,重复上述流程,得到词序列中每个词对应的槽位。其中,对于最后一个词wt,底层lstm可以将基于上一个词wt-1进行处理得到的隐藏层状态向量对词wt进行处理,将得到的最后的隐藏层状态向量输入到第一分类器中,以得到词序列的意图信息y。

2)自然语言理解模型的第一误差

根据上文结合图2、图3对自然语言理解模型的描述可知,自然语言理解模型的输出为词序列对应的槽位和词序列表示的意图信息。因此,自然语言理解模型的第一误差包括两部分,一部分是槽填充误差,另一部分是意图识别误差。

槽填充误差与语料样本的规模、针对语料样本中每个训练样本使用自然语言理解模型得到的槽位和标准槽位之间的误差相关。意图识别误差与语料样本的规模、针对语料样本中每个训练样本使用自然语言理解模型得到的意图信息和标准意图信息之间的误差相关。其中,每个训练样本可以包括一个对话语句,如上文所述,每个训练样本的标准意图信息和标准槽位信息均可以根据对话语句的标记得到。

作为示例,槽填充误差和意图识别误差可以由下式表示。

意图识别误差为

槽填充误差为

其中,lintent表示意图识别误差,d表示语料样本的规模,i为训练样本的序号,是针对第i个训练样本使用自然语言理解模型得到的意图信息,y(i)是第i个训练样本的标准意图信息,表示针对第i个训练样本使用自然语言理解模型得到的意图信息和标准意图信息之间的误差,

ltag表示槽填充误差,ti表示第i个训练样本中的词序列所包含的词个数,t表示词序列中第t个词,是针对第i个训练样本中的词序列中第t个词使用自然语言理解模型得到的槽位,zt(i)是第i个训练样本中的词序列中第t个词的标准槽位,表示针对第i个训练样本中的词序列中第t个词使用自然语言理解模型得到的槽位和标准槽位之间的误差。

二、策略生成模型

在每个对话轮次下,自然语言理解模型用于对对话语句进行解析,以得到内部表示,策略生成模型用于基于自然语言理解模型的输出,针对当前轮次下的对话语句,作出相应动作,以与用户进行交互。也就是说,可以直接将自然语言理解模型的输出作为至少一部分输入而输入策略生成模型。

作为本发明的一个可选实施例,针对当前轮次的对话语句,策略生成模型的输入除了可以包括自然语言理解模型针对当前轮次的对话语句的输出,还可以包括策略生成模型针对上一轮次的对话语句输出的动作和/或当前轮次信息。

本发明的策略生成模型主要应用于人机对话领域,用于根据用户输入的对话语句输出相应的动作,该动作可转换为用户可理解的展示方式(例如,对话语句等反馈),以与用户进行对话交互。根据人机交互特点可知,整个人机对话过程一般需要进行多轮次的人机交互,并且当前轮次作出的动作与上一轮次作出的动作相关。由此,本发明的策略生成模型主要涉及的是连续决策问题,而根据上文对马尔科夫决策(mdp)模型的简要描述可知,马尔科夫决策模型即是针对连续决策问题而构建的模型。因此,本发明可以优选地选取马尔科夫决策模型作为策略生成模型。

根据马尔科夫决策模型的特点,可以将策略生成模型与用户交互的过程抽象为一系列的状态转移过程(s,a,r,s′)。其中,s可以表示当前系统状态,a表示策略生成模型针对当前系统状态s采取的动作,r表示采取动作a的优劣性,可以用回报值q表征,s′表示采取动作a后下一轮的系统状态。

策略生成模型在针对当前系统状态s选取动作a时,可以以使得输出的动作a得到的回报值q尽可能多为目标,求取针对对话语句作出的动作a。其中,回报值q包括针对当前系统状态s采取动作a得到的立即回报和长期回报。其中,立即回报可以由用户对动作a进行标注得到,长期回报可以表征采取动作a后未来有限步内的回报。

在本发明中,用户可以根据策略生成模型输出的动作a与对话语句的契合度,为动作a赋予相应的数值作为立即回报。例如,在用户认为策略生成模型针对对话语句输出的动作a与对话语句表达的意图相差较大时,可以为动作a赋予一个负值如-2作为立即回报,在动作a与对话语句表达的意图较为相符时,可以为动作a赋予一个正值如+2作为立即回报,在动作a与话语句表达的意图相差不大,可以接受时,可以为动作a赋予一个中间值例如+1作为立即回报。

作为本发明的一个可选实施例,针对当前系统状态s,输出动作a得到的回报值q的计算方式可以表示如下:

q(s,a)=r+λmaxq(s',a'),

其中,r为立即回报,λ为权重因子,用于衡量长期回报和立即回报之间的重要性,s'表示下一轮的系统状态,a'为在下一轮系统状态s'下采取动作a'时回报值最大,maxq(s',a')表示长期回报。其中,针对当前系统状态s,输出动作a得到的立即回报r可以由用户标注。

为了求取策略生成模型作出动作a产生的误差(第二误差),在训练阶段,可以定义两个网络结构,分别为策略预测网络(policynetwork)和目标网络(targetnetwork),即在训练阶段,策略生成模型可以包括策略预测网络和目标网络。

策略预测网络用于针对当前系统状态,生成各个动作下的估计回报值分布,并选出最大的估计回报值对应的动作作为针对当前系统状态的输出。目标网络用于针对当前系统状态,计算实际采取的动作的真实回报值。其中,策略预测网络和目标网络的结构可以相同,参数不共享。一般在训练n步后,可以用策略预测网络的参数更新目标网络的参数。

需要说明的是,策略预测网络负责选取动作,目标网络仅用于在训练阶段对策略预测网络选取的动作的误差进行估计。在实际与用户进行对话交互时,可以仅策略预测网络投入使用。也就是说,在模型训练好之后,可以去除目标网络,仅保留训练好的策略预测网络。

由此,基于总误差函数对自然语言理解模型和策略生成模型进行联合训练,是指对自然语言理解模型和策略生成模型中的策略预测网络进行联合训练。因此,策略生成模型的第二误差也就是策略预测网络的误差。在计算该误差时,可以将目标网络视为标准策略预测网络,将目标网络针对当前系统状态实际采取的动作作为标准动作。通过比较策略预测网络针对当前系统状态作出的动作的估计回报值和目标网络针对该当前系统状态状态实际采取的动作的真实回报值之间的差异,可以得出策略生成模型(即策略预测网络)的第二误差。因此,策略生成模型的第二误差与估计回报值和真实回报值之间的差值相关。作为示例,第二误差可以表示如下,

lact(θact)=e[(qr-qv)2],

qv=max(qpolicy(s,a,θact)),

qr=r+γmaxqtarget(s',a')

其中,qv为估计回报值,qr为真实回报值,θact表示策略生成模型涉及的参数,qpolicy(s,a,θact)表示策略预测网络针对当前系统状态s输出的各个动作a下的估计回报值分布。真实回报值qr的计算方式与上文提及的回报值q的计算方式类似,具体地,上述示出的qr计算公式中r为目标网络针对当前系统状态实际采取的动作的立即回报,λ为权重因子,maxqtarget(s',a')表示目标网络针对当前系统状态s实际采取的动作得到的长期回报,其中maxqtarget(s',a')中的s'表示下一轮的系统状态,a'表示在下一轮系统状态s'下目标网络采取动作a'时回报值最大。

在本发明中,策略生成模型的第二误差的大小可以反映策略预测网络在联合训练过程中的震荡程度。

图4是示出了根据本发明一实施例的策略生成模型工作时的流程图。其中,图4仅示出了其中策略预测网络的结构,目标网络未在图中示图。

如上文所述,可以将自然语言理解模型的输出作为策略生成模型的输入,也可以将自然语言理解模型的输出与策略生成模型在上一轮的动作和/或当前轮次信息结合起来作为输入而输入策略生成模型。

如图4所示,针对策略生成模型的输入,首先可以将其输入一个lstm网络,由lstm对其进行处理,lstm处理后的隐藏层状态向量可以作为当前系统状态放入策略预测网络,由策略预测网络得到各个动作下预测的回报值q分布,并选取使得回报值q最大的动作sysact作为本轮次的输出。其中,根据lstm网络模型的特点,lstm可以基于对上一个输入进行处理得到的隐藏层状态向量,对当前的输入进行处理。

图4示出的是策略预测网络由一个激活函数(relu,rectifiedlinearunits)和线性单元(linear)构成时的示意图。应该知道,策略预测网络的具体形式和层数还可以根据实际情况自定义设置,此处不再赘述。

三、总误差函数

根据上文描述可知,自然语言理解模型涉及的第一误差包括槽填充误差ltag和意图识别误差lintent两部分,策略生成模型涉及的第二误差主要为策略预测网络作出的动作所得到的估计回报值和使用目标网络得到的真实回报值之间的误差lact。

为了将上述各部分误差合并为一个总的误差函数,可以采用误差加权求和的方式,利用超参数α、β体现不同误差之间的权重。总误差函数j(θ)的计算公式可以表示如下:

其中,θ表示自然语言理解模型和策略生成模型构成的整个网络的参数集合,第一误差包括意图识别误差lintent和槽填充误差ltag,lact表示第二误差,λ为学习速率参数,α、β为超参数,用于体现不同误差之间的权重,0≤α≤1,0≤α+β≤1。

由此,在执行联合训练步骤(即图1中的步骤s120),对自然语言理解模型和策略生成模型进行联合训练时,可以通过将总误差函数j(θ)反向传播,逐层求导,得到梯度方向。然后基于梯度方向,利用梯度下降法,按照学习速率参数λ对自然语言理解模型和策略生成模型中涉及的参数进行修正。

具体地,可按照批次来划分训练数据集以执行分批训练,例如,在每个批次对自然语言理解模型和策略生成模型中涉及的参数进行修正后,可以使用下一批次的训练样本对自然语言理解模型和策略生成模型再次进行联合训练,其中,可计算新的总误差函数值,将新的总误差函数值反向传播,逐层求导,得到梯度方向。然后基于梯度方向,利用梯度下降法,按照学习速率参数λ对自然语言理解模型和策略生成模型中涉及的参数进行再次修正。重复上述流程,直至满足了预设的模型训练终止条件,例如,最终得到的总误差函数值小于预设值或达到了预设的训练迭代次数等。

图5是示出了利用本发明训练得到的对话模型与用户进行对话交互的流程示意图。

图5示出的对话模型包括自然语理解模型和策略生成模型。其中,关于自然语言理解模型、策略生成模型的结构及训练原理已在上文做了详细说明,此处不再赘述。作为可选方式,图5示出的对话模型还可包括联合(joint)模块,需要说明的是,图中示出的联合模块主要充当一个粘合剂的作用,用于将自然语言理解模型得出的结果和策略生成模型在上一轮次作出的动作结合起来,输入到策略生成模型,作为可选方式,联合模块可以与自然语言理解模型或策略生成模型结合为一体,也可以作为独立的模块。具体地,联合模块可以将策略生成模型在上一轮次作出的动作进行one-hot编码,并将其与自然语言理解模型的输出向量进行拼接,例如可以将其与自然语言理解模型输出的意图信息和槽位信息向量进行拼接,拼接后的向量可以作为策略生成模型的输入。

如图5所示,utter表示用户输入的对话语句,其可以是文本也可以是语音。例如,在机票预定领域中,用户可以输入“我想从北京出发”。sysact表示系统动作,如confirm_startcity(向用户确认出发地)。j表示时刻信息,在图5中是以对话轮次作为时刻的基本单位的,即用户和系统进行对话交互的每一回合作为一个时刻。

根据图5所示,利用本发明训练得到的对话模型与用户进行对话交互的流程如下。

可以根据用户输入的对话语句,通过自然语言理解模型获取用户当前的意图和槽位信息,联合模块可以将自然语言理解模型的输出结合上一轮次的系统动作,输入到策略生成模型,由策略生成模型生成针对当前轮次的系统动作,并在转换成用户可理解的形式之后反馈给用户。然后可以重复执行上述步骤与用户不断交互,直至达到用户的目标。

至此,结合图1至图5对本发明的对话模型的训练过程以及利用训练好的对话模型与用户进行对话交互的流程做了详细说明。利用本发明的上述训练方法训练得到的对话模型可以用于多种提供不同服务的人机对话系统(如智能客服系统)中,例如可以应用于提供机票预定服务、美食推荐服务、会议室预定服务等多种类型的服务的人机对话系统中。并且在将本发明的对话模型应用于上述诸多人机对话系统中时,对话模型可以与用户进行多轮次的对话交互,直至满足用户需求。

图6是示出了根据本发明一实施例的对话方法的示意性流程图。

参见图6,在步骤s610,响应于用户输入的对话语句,使用自然语言理解模型,对用户输入的对话语句进行解析,以得到对话语句的内部表示。其中,用户可以以文本、语音等多种形式输入对话语句。

在步骤s620,至少将内部表示输入策略生成模型,得到策略生成模型针对对话语句作出的动作。作为本发明的一个示例,可以将自然语言理解模型的输出(即内部表示)连同策略生成模型在上一轮次输出的动作以及当前的轮次信息一并作为输入,输入策略生成模型。

策略生成模型针对对话语句作出的动作,可以视为一种内部表示,其仅能够被机器内部识别,但不能被用户理解。因此可以执行步骤s630,将动作转换为可被用户理解的事件,并展示给用户。具体地,可以将动作转换为自然语言文本、语音、应用界面中显示的可供用户点击操作的菜单、按钮等多种形式的能够被用户理解的事件。其中,在将动作转换为可被用户理解的事件时,可以调用用户输入的对话语句所对应的槽值信息,将动作转换为可被用户理解的事件例如答复语句。另外,关于自然语言理解模型、策略生成模型的具体结构及工作原理可以参见上文相关说明,此处不再赘述。

本发明的对话模型训练方法还可以实现为一种对话模型的训练装置。图7是示出了根据本发明一实施例的对话模型的训练装置的结构的示意性方框图。其中,装置中的各功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图7所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。下面仅就装置可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文描述,这里不再赘述。

参见图7,训练装置700包括总误差构建模块710和联合训练模块720。

总误差构建模块710用于构建同时包含自然语言理解模型的第一误差和策略生成模型的第二误差的总误差函数。

联合训练模块720用于以使总误差函数减小为目标,使用语料样本对自然语言理解模型和策略生成模型进行联合训练。具体来说,联合训练模块720可以通过将总误差函数反向传播,逐层求导,得到梯度方向,并基于梯度方向,利用梯度下降法,按照预定的学习速率参数对自然语言理解模型和策略生成模型中涉及的参数进行修正。其中,关于自然语言理解模型、策略生成模型的具体结构以及总误差函数的构造过程及其中涉及的各细节均可以参见上文相关说明,此处不再赘述。

图8是示出了根据本发明一实施例的对话系统的结构的示意性方框图。其中,系统中的各功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图8所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。下面仅就装置可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文描述,这里不再赘述。

如图8所示,对话系统800包括输入装置810、自然语言理解装置820、策略生成装置830以及展示装置840。

输入装置810用于接收用户输入的对话语句。

自然语言理解装置820用于自然语言理解模型,对用户输入的对话语句进行解析,以得到所述对话语句的内部表示。

策略生成装置830用于至少将内部表示输入策略生成模型,以得到针对所述对话语句作出的动作。

展示装置840用于将所述动作转换为可被用户理解的事件,并展示给用户,其中,自然语言理解模型和策略生成模型可以是使用上文述及的训练装置或训练方法训练得到的。

图9是示出了根据本发明一个实施例的计算设备900的结构的示意性方框图。其中,计算设备900可以是可以实施为各种类型的计算装置,例如台式机、便携式计算机、平板电脑、智能手机、个人数据助理(pda),或者其他类型的计算机装置,但是不限于任何特定形式。

如图9所示,本发明的计算设备900可以包括处理器910以及存储器920。处理器910可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器910可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(gpu)、数字信号处理器(dsp)等等。在一些实施例中,处理器910可以使用定制的电路实现,例如特定用途集成电路(applicationspecificintegratedcircuit,asic)或者现场可编程逻辑门阵列(fieldprogrammablegatearrays,fpga)。

存储器920可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器910或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器920可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器920可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、minsd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。

在本发明实施例中,存储器920上存储有可执行代码,处理器910可以执行存储在存储器920上的可执行代码。当可执行代码被处理器910执行时,可以使处理器920执行本发明的对话模型训练方法或对话方法。其中,存储器920上除了存储可执行代码,还可以存储处理器910在执行本发明过程中所需的部分或所有数据。

上文中已经参考附图详细描述了根据本发明的对话模型的训练方法、训练装置、对话方法及对话系统。

此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。

或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

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