首页 / 专利库 / 人工智能 / 机器学习 / 强化学习 / 生成对话策略的方法及系统

生成对话策略的方法及系统

阅读:1013发布:2020-06-28

专利汇可以提供生成对话策略的方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种对话策略生成的方法及系统。生成对话策略的方法:从语音 对话系统 中获取人机对话语料,定义并 抽取 出对话状态和对话动作;制定立即奖赏函数,通过判断对话动作对整体对话任务的有利程度,输出立即奖赏值;进而,将输出的立即奖赏值结合对话动作和对话任务组成批量式 强化学习 算法 的输入样本集合;初始化累积奖赏值,并根据当前 迭代 的值函数,运用贝尔曼迭代更新各个样本的累积奖赏值;将对话动作和对话状态作为高斯过程的输入,更新后的累积奖赏值作为输出,进而更新值函数;当迭代次数达到预定的迭代次数,输出对话策略。本发明直接在真实的人机语料库进行批量式强化学习,避免了虚拟用户的构建和由此带来的用户行为误差。,下面是生成对话策略的方法及系统专利的具体信息内容。

1.一种生成对话策略的方法,其特征在于,包括:
从语音对话系统中获取人机对话语料,所述人机对话语料包括每次人机对话的语音识别、语义理解结果,从所述人机对话语料中抽取出每次对话回合的对话状态,所述对话状态必须要完整地描述某一回合所处的对话进程;根据所述人机对话语料定义对话动作集合,将每次的对话动作映射到所述集合;
制定立即奖赏函数,通过判断所述对话动作对整体对话任务的有利程度,输出立即奖赏值;进而,由每次人机对话的所述对话状态、所述对话动作、所述立即奖赏值和下一对话状态组成批量式强化学习算法的输入样本集合;
初始化累积奖赏值,并根据当前迭代的值函数,运用贝尔曼迭代更新各个样本的累积奖赏值;其中,所述贝尔曼迭代为:
其中,γ为范围在[0,1.0]的折扣因子;ri为i回合的对话状态;Qi为第i回合的累积奖赏值; 为第i回合的值函数;
将所述对话动作和所述对话状态作为高斯过程的输入,更新迭代后的累积奖赏值作为待拟合的输出,进而更新值函数;
当迭代次数达到预定的迭代次数,停止迭代更新所述累积奖赏值和所述值函数,输出对话策略。
2.根据权利要求1所述的方法,其特征在于,所述累积奖赏值
其中,N为对话总回合数,γ为范围在[0,1.0]的折扣因子,R(si,ai,si+1)为第i回合的立即奖赏值。
3.根据权利要求1所述的方法,其特征在于,将所述对话动作和所述对话状态作为高斯过程的输入,所述更新迭代后的累积奖赏值作为待拟合的输出,进而更新所述值函数的步骤包括:
将所述对话动作和所述对话状态作为输入,所述累积奖赏值为待拟合的输出;
将所述输入和输出使用高斯过程进行拟合,对所述值函数进行更新。
4.根据权利要求1所述的方法,其特征在于,所述对话策略为:
其中,公式的含义为:在对话状态s中,输出最大化累积奖赏
值的对话动作,作为最优对话策略。
5.一种生成对话策略模型的系统,应用于如权利要求1所述的方法,其特征在于,包括:
获取单元(10)、合成单元(11)、算法单元(12)、高斯过程单元(13)和输出单元(14);其中,所述获取单元(10)用于从语音对话系统中获取人机对话语料,所述人机对话语料包括每次人机对话的语音识别、语义理解结果,从所述人机对话语料中抽取出每次对话回合的对话状态,对话状态必须要完整地描述某一回合所处的对话进程;根据所述人机对话语料定义对话动作集合,将每次的对话动作映射到所述集合;
所述合成单元(11)用于制定立即奖赏函数,通过判断所述对话动作对整体对话任务的有利程度,输出立即奖赏值;由每次人机对话的当前对话状态、所述对话动作和所述立即奖赏值和所述下一对话状态组成批量式强化学习算法的输入样本集合;
所述算法单元(12)用于初始化累积奖赏值,并根据当前迭代的值函数,运用贝尔曼迭代更新各个样本的累积奖赏值;
所述高斯过程单元(13)用于将所述对话动作和所述对话状态作为高斯过程的输入,更新迭代后的累积奖赏值作为待拟合的输出,进而更新值函数;
所述输出单元(14)用于当迭代次数达到预定的迭代次数,停止迭代更新所述累积奖赏值和所述值函数,输出对话策略。

说明书全文

生成对话策略的方法及系统

技术领域

[0001] 本发明涉及语音对话系统的对话策略优化,特别涉及一种生成对话策略的方法及系统。

背景技术

[0002] 语音对话系统以语音交互作为人机接口,使用对话的形式与用户交流以进行信息收集和呈现。与传统的人机接口相比,语音对话系统更接近真实的人类交流方式,对使用用户更为友好,操作更为简单、方便,具有广泛的应用场景。按照应用场景和所提供服务类型的不同,语音对话系统可分为聊天式、面向任务式。而按照支持领域的不同可分为面向特定领域或面向多领域的对话系统。
[0003] 本方法主要针对特定领域、面向任务式的语音对话系统。在交互的表现形式上通常为:用户向系统提供若干个语义槽的具体填充值,之后系统在后台数据库中进行查询,或借助于API完成某项业务,之后通过语音的形式向用户播报执行结果。
[0004] 在语音对话系统中,对话管理器是重要模之一,他的主要功能是追踪当前对话状态、制定对话策略并引导整个对话流程。对话策略是从对话状态到系统动作的映射,即在某一个回合的对话场景中,系统决定如何回复用户,以有效地完成用户所指定的任务。由于一定程度的环境噪声的存在,在口语对话的过程中通常会出现语音识别和理解错误,由此导致对话状态的不确定性。这种不确定性的存在妨碍了系统有效地完成对话任务,需要系统在遇到不确定信息的时候主动向用户进行确认,当确定得到了正确信息后才执行具体业务。目前的商业系统中还广泛使用基于规则的方法构建对话管理策略,其中最常见的模型为有限状态机。在这种模型中难以考虑对话状态的不确定性,通常将语音识别和语义理解的最优结果当做确定性的信息进行处理,在环境噪声较高,或者识别理解性能较差的情况下,对话成功率较低。为了应对这种噪音带来的不确定性,通常使用部分可观测的尔科夫决策过程(Partially Observable Markov Decision Process,POMDP)对对话管理过程进行建模,并使用强化学习的方式进行策略优化,实验表明这种统计模型在噪声鲁棒性上明显高于基于规则的方法。在优化过程中,通常需要对话管理器在真实或是虚拟的环境中进行交互以进行策略学习。由于策略学习通常需要大量训练语料,故多构建虚拟用户与对话管理器进行交互。但虚拟用户与真实用户不可避免的存在一定差异性,由此会造成对话策略的欠优化。

发明内容

[0005] 本发明的目的是解决虚拟用户给对话带来的不必要的麻烦,因此,提出了一种生成对话策略的学习方法及系统。
[0006] 为实现上述目的,本发明提供了一种生成对话策略的方法,该方法包括:
[0007] 从语音对话系统中获取人机对话语料,人机对话语料包括每次人机对话的语音识别、语义理解结果,定义并抽取出对话状态和对话动作;
[0008] 制定立即奖赏函数,通过判断对话动作对整体对话任务的有利程度,输出立即奖赏值;进而,将输出的立即奖赏值结合对话动作和对话任务组成批量式强化学习算法的输入样本集合;
[0009] 初始化累积奖赏值,并根据当前迭代的值函数,运用贝尔曼迭代更新各个样本的累积奖赏值;
[0010] 将对话动作和对话状态作为高斯过程的输入,更新迭代后的累积奖赏值作为待拟合的输出,进而更新值函数;
[0011] 当迭代次数达到预定的迭代次数,停止迭代更新累积奖赏值和值函数,输出对话策略。
[0012] 优选地,人机对话语料包括每次人机对话的语音识别、语义理解结果,定义并抽取出对话状态和对话动作的步骤包括:
[0013] 从人机对话语料中抽取出每次对话回合的对话状态,对话状态必须要完整地描述某一回合所处的对话进程
[0014] 根据人机对话语料定义对话动作集合,将每次的对话动作映射到集合。
[0015] 优选地,制定立即奖赏函数,通过判断对话动作对整体对话任务的有利程度,输出立即奖赏值;进而,将输出的立即奖赏值结合对话动作和对话任务组成批量式强化学习算法的输入样本集合的步骤包括:
[0016] 制定立即奖赏函数,通过判断对话动作对整体对话任务的有利程度,输出立即奖赏值;
[0017] 由每次人机对话的对话状态、对话动作、立即奖赏值和下一对话状态组成批量式强化学习算法输入样本集合。
[0018] 优选地,累积奖赏值Qi为:
[0019]
[0020] 其中,N为对话总回合数,γ为范围在[0,1.0]的折扣因子,R(si,ai,si+1)为第i回合的立即奖赏值。
[0021] 优选地,贝尔曼迭代为:
[0022]
[0023] 其中,γ为范围在[0,1.0]的折扣因子;ri为i回合的对话状态;Qi为第i回合的累积奖赏值; 为第i回合的值函数。
[0024] 优选地,将对话动作和对话状态作为高斯过程的输入,更新迭代后的累积奖赏值作为待拟合的输出,进而更新值函数的步骤包括:
[0025] 将对话动作和对话状态作为输入,累积奖赏值为待拟合的输出;将输入和输出使用高斯过程进行拟合,对值函数进行更新。
[0026] 优选地,对话策略为:
[0027]
[0028] 另一方面,本发明提供了一种生成对话策略的系统,该系统包括:获取单元、合成单元、算法单元、高斯过程单元和输出单元;其中,
[0029] 获取单元用于从语音对话系统中获取人机对话语料,人机对话语料包括每次人机对话的语音识别、语义理解结果,定义并抽取出对话状态和对话动作;
[0030] 合成单元用于制定立即奖赏函数,通过判断对话动作对整体对话任务的有利程度,输出立即奖赏值;进而,将输出的立即奖赏值结合对话动作和对话任务组成批量式强化学习算法的输入样本集合;
[0031] 算法单元用于初始化累积奖赏值,并根据当前迭代的值函数,运用贝尔曼迭代更新各个样本的累积奖赏值;
[0032] 高斯过程单元用于将对话动作和对话状态作为高斯过程的输入,更新迭代后的累积奖赏值作为待拟合的输出,进而更新值函数;
[0033] 输出单元用于当迭代次数达到预定的迭代次数,停止迭代更新累积奖赏值和值函数,输出对话策略。
[0034] 优选地,获取单元用于:
[0035] 从人机对话语料中抽取出每次对话回合的对话状态,对话状态必须要完整地描述某一回合所处的对话进程;
[0036] 根据人机对话语料定义对话动作集合,将每次的对话动作映射到集合。
[0037] 优选地,算法单元用于:
[0038] 制定立即奖赏函数,通过判断对话动作对整体对话任务的有利程度,输出立即奖赏值;
[0039] 由每次人机对话的当前对话状态、对话动作和立即奖赏值和下一对话状态组成批量式强化学习算法输入样本集合。
[0040] 本发明直接在真实的人机语料库进行批量式强化学习,避免了虚拟用户的构建和由此带来的用户行为误差。并且通过高斯过程对值函数进行近似,具有很强的灵活性。该方法相比构建虚拟用户的方法,在实现上更为简单。附图说明
[0041] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0042] 图1为本发明提供的一种生成对话策略的方法的结构流程图
[0043] 图2为图1中合成FQI算法的输入样本集合的结构流程图;
[0044] 图3为高斯过程的流程图;
[0045] 图4为本发明实施例提供的一种生成对话策略的系统的结构示意图。

具体实施方式

[0046] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
[0047] 本发明通过从语音对话系统中获取人机对话语料,进而进行批量式强化学习,避免了虚拟用户的构建和由此带来的用户行为误差,在实现上更为简单。
[0048] 图1为本发明实施例提供的一种生成对话策略的方法的结构流程图。如图1所示,生成对话策略的方法的步骤包括:
[0049] 步骤S100:从语音对话系统中获取人机对话语料,人机对话语料包括每次人机对话的语音识别和语义理解结果,定义并抽取出对话状态和对话动作;
[0050] 对话状态是对某一时刻对话进程的一种定量描述,通常包括用户意图、对话历史和语音对话系统动作等。在具体计算时需要提取出一组数值向量。
[0051] 步骤S110:制定立即奖赏函数,通过判断对话动作对整体对话任务的有利程度,输出立即奖赏值;将输出的立即奖赏值结合每次对话的对话状态和对话动作组成fitted-Qiteration(FQI)批量式强化学习算法的输入样本集合;
[0052] 步骤S120:初始化累积奖赏值,并根据当前迭代的值函数,运用贝尔曼迭代更新各个样本的累积奖赏值。
[0053] 步骤S130:将对话动作和对话状态作为高斯过程的输入,更新迭代后的累积奖赏值作为待拟合的输出,进而更新值函数;
[0054] 步骤S140:当迭代次数到达预定的迭代数时,输出对话策略。
[0055] 具体地,在迭代停止,一般达到预先设置的迭代次数,或者迭代的结果收敛,输出拟合后的值函数对应的最优的对话策略 该公式的含义为:在对话状态s中,输出最大化累积奖赏值的对话动作,作为最优对话策略。
[0056] 在FQI迭代过程中,需先根据当前的近似值函数更新各个样本点的估计奖赏值,再以估计奖赏值为高斯过程为待拟合的输出,使用精确或近似的高斯过程对值函数进行拟合,更新近似值函数,输出最优策略;也就是在说在没有达到迭代次数时,需要继续执行步骤S120和步骤S130,若达到迭代收敛次数时,则停止执行步骤S120和步骤S130。
[0057] 具体地,定义并抽取人机对话状态和对话动作的步骤包括:
[0058] 从人机对话语料中抽取出每次对话回合的对话状态,对话状态必须要比较完整地描述某一回合所处的对话进程;根据人机对话语料定义对话动作集合,将每次的对话动作映射到该集合。
[0059] 可选的,本发明的实施例的人机交互可以是,例如,一个餐馆搜素领域的例子,领域相关的语义槽可以包括“查询地点”,“味”,“价位”,用户需要给出这三个语义槽的具体内容,机器才会给出查询结果。当某些语义槽缺失时系统主动向用户询问,完成人机交互。
[0060] 需要说明的是,本发明实施例中的交互形式是“机器”-“用户”-“机器”-交替进行,而一次“机器”-“用户”的交互被称为一个对话回合。
[0061] 图2为图1中合成FQI算法的输入样本集合的结构流程图。如图2所示,合成FQI算法的输入样本集合的步骤包括:
[0062] 步骤S200:制定立即奖赏函数,通过判断对话动作对整体对话任务的有利程度,输出立即奖赏值;
[0063] 立即奖赏函数反映了单一回合执行的对话动作对整体对话任务的有利程度,例如当某一语义槽置信度超过一定阈值,或是当系统提供了正确的信息,通常应给予数值为正的奖赏值,在提供了错误信息时则给予负数的奖赏值作为惩罚。
[0064] R(si,ai,si+1)为第i回合的立即奖赏值,反应的是在对话状态中执行si后跳转到状态si+1,得到的环境反馈值。
[0065] 步骤S210:由每次人机对话的对话状态、对话动作、立即奖赏值和下一对话状态,组成FQI算法的输入样本集合。
[0066] 本发明实施例通过制定一个立即奖赏函数,并判断对话动作对整体对话任务的有利程度,输出立即奖赏值,进而结合每一回合的对话状态、对话动作和下一对话状态组成FQI算法的输入样本集合。
[0067] 贝尔曼迭代更新的流程图为,在训练集构建过程中将对话的每一个回合作为一个样本{(si,ai,ri,si+1),Qi},其中si为该回合的对话状态,ai为在该回合执行的对话动作,ri为该回合中获得的立即奖赏值,si+1是该回合结束后的对话状态,Qi为FQI估计所得的累计奖赏值。在每一次迭代中,首先根据上一次迭代中估计的近似值函数 使用贝尔曼迭代更新各个样本的累计奖赏值:
[0068]
[0069] 其中,γ为范围在[0,1.0]的折扣因子,ri为i回合的对话状态;Qi为第i回合的累积奖赏值; 为第i回合的值函数。其他情况是指对话不在si处终止。
[0070] 具体的,累积奖赏值为:
[0071]
[0072] 其中,N为对话总回合数,γ为范围在[0,1.0]的折扣因子,R(si,ai,si+1)为第i回合的立即奖赏值。
[0073] 需要说明的是,在开始迭代更新累积奖赏函数值之前,需要先给各个样本的累积奖赏值赋一个初始值,便于后续迭代更新累积奖赏值的操作。
[0074] 图3为高斯过程的流程图。如图3所示,高斯过程(Gaussian process,GP)根据累积奖赏值对值函数进行拟合近似输出。
[0075] 具体的高斯过程包括:
[0076] 步骤S300:将对话动作和对话状态作为输入,累积奖赏值为待拟合的输出;
[0077] 步骤S310:将输入和输出使用高斯过程进行拟合,对值函数进行更新。
[0078] 在利用贝尔曼迭代更新各个样本的累积奖赏值之后,需根据样本的累积奖赏值对近似的值函数 进行更新。该更新过程实际上相当于一个有监督式的回归问题,其中{(si,ai)}为输入,Qi为待拟合的输出。
[0079] 高斯过程是一种使用核函数的非参数化贝叶斯方法,它使用“核函数技巧”(kernel trick)将低维的输入特征映射到高维空间中,以对值函数的非线性特性进行建模。在给定训练数据的情况下,高斯过程的后验分布为联合高斯分布,他的均值和方差如下所示:
[0080]
[0081] 其中X和y为训练时的输入和输出,X*为测试输入, 为高斯过程的噪声方差,K为核函数。这里的输入X包含了对话状态s和动作a两部分,其中s通常为实数特征向量,而a是属于对话动作集合的离散值。为了处理这种混合式输入的情况,这里对应每一个对话动作建立一个独立的高斯过程。当给定输入时,根据a选择对应模型。
[0082] 可选的,在建立模型的过程中,还需要考虑样本容量的大小;当样本容量在几千个以下的情况,则使用精确的高斯过程;当样本的容量很大时,则是采用随机抽取的方式从总样本中抽取1000-2000个样本点进行近似高斯过程。
[0083] 具体地,在精确的高斯过程中需要对矩阵 进行求逆。该过程的计算复杂度与输入样本数量的立方成正相关O(n3),仅适用于样本数量在几千以下的情况。
[0084] 具体地,在近似的高斯过程采用变分式的稀疏高斯过程(Variational Spase GP)进行近似;在具体的计算过程中,从全部样本中选择少量的样本作为代表点对精确的高斯过程进行近似。该方法计算复杂度为O(nm2),m为代表样本点的个数。其后验分布与精确的高斯过程有所不同。
[0085] 给定代表点 稀疏高斯过程的后验表达式为:
[0086]
[0087]
[0088]
[0089] 需要说明的是,在高斯过程中核函数只涉及到计算相关度,不涉及具体的特征值;高斯过程中核函数的形式对其后验分布有着较大影响,本发明实施例选择径向基核函数(Radial basis function,RBF):
[0090] K(x,x')=exp(-||x-x'||2/2σ2)
[0091] RBF核函数的局部特性使得相似的对话状态向量具有相似的奖赏值。
[0092] 图4为本发明实施例提供的一种生成对话策略的系统的结构示意图。如图4所示,该生成对话策略的系统包括:获取单元10、合成单元11、算法单元12、高斯过程单元13和输出单元14,其中;
[0093] 获取单元10用于从语音对话系统中获取人机对话语料,人机对话语料包括每次人机对话的语音识别、语义理解结果,定义并抽取出对话状态和对话动作;
[0094] 合成单元11用于制定立即奖赏函数,通过判断对话动作对整体对话任务的有利程度,输出立即奖赏值;进而,将输出的立即奖赏值结合对话动作和对话任务组成批量式强化学习算法的输入样本集合;
[0095] 算法单元12用于初始化累积奖赏值,并根据当前迭代的值函数,运用贝尔曼迭代更新各个样本的累积奖赏值;
[0096] 高斯过程单元13用于将对话动作和对话状态作为高斯过程的输入,更新迭代后的累积奖赏值作为待拟合的输出,进而更新值函数;
[0097] 输出单元14用于当迭代次数达到预定的迭代次数,停止迭代更新累积奖赏值和值函数,输出对话策略。
[0098] 具体地,获取单元10用于:从语音对话系统中获取人机对话语料,人机对话语料包括每次人机对话的语音识别和语义理解结果,定义并抽取对话状态和对话动作;
[0099] 根据所述人机对话语料定义对话动作集合,将每次的对话动作映射到所述集合。
[0100] 具体地,算法单元12用于:制定立即奖赏函数,通过判断对话动作对整体对话任务的有利程度,输出立即奖赏值;
[0101] 由每次人机对话的当前对话状态、对话动作和立即奖赏值和下一对话状态组成批量式强化学习算法输入样本集合。
[0102] 本发明直接在真实的人机语料库进行批量式强化学习,避免了虚拟用户的构建和由此带来的用户行为误差。并且通过高斯过程对值函数进行近似,具有很强的灵活性。该方法相比构建虚拟用户后进行强化学习训练的方法,在实现上更为简单。
[0103] 以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈