首页 / 对话管理方法、对话管理设备和对话管理系统

对话管理方法、对话管理设备和对话管理系统公开 发明

技术领域

[0001] 本发明涉及一种对话管理方法、一种对话管理设备和一种对话管理系统。

相关背景技术

[0002] 目前基于任务的对话系统被广泛应用于酒店预订、线上购物、机票预定及其它基于语音的人机交互系统。对话管理(Dialog Management)技术作为对话系统的核心技术,负责对话状态的跟踪和对话策略的选择和动作的执行,对话管理的质量直接影响对话系统的质量。随着电子商务和工业自动化的迅猛发展,对话管理在智能助理和智能客服的应用将会越来越广。基于传统的机器学习(Machine Learning)和深度神经网络模式(Deep Neural Networks)为对话管理提供了较好的泛化效果,在基于闲聊的对话系统被广泛使用。但是在可迁移性、可控性、可解释性方面有很大的劣势,模型的训练亦需要大量的标注数据和语料。基于语义模式的对话管理只需要少量数据即可驱动,且对其优化直观可控。但是,语义模式的对话管理实现需要大量的人工设计和开发工作,且随着意图的增加,系统将变得复杂、难以维护。有限状态机(Finite State Machine)作为语义模式的一种实现,显示地定义出对话系统应有的状态,对话管理每次有新的输入时都根据相应的输入进行状态跳转。每个都会有对应的动作被执行。其优点是简单易用,表示直观,缺点是状态的定义以及每个状态下对应的动作都要靠人工设计,且状态机一般是固化在系统代码中,业务逻辑和代码实现具有强耦合的关系,业务扩展时需要升级软件以支持新的业务逻辑。
[0003] 现有对话管理系统为支持新增对话业务逻辑需要持续设计、开发、部署和升级;随着业务量的增加系统复杂度也变得越来越高;系统复杂度的增加势必增加系统的维护难度,引进更多的软件缺陷;从而需要花更多的时间去做缺陷修复和代码重构;而缺陷修复和代码重构都需要重新部署和升级系统才能生效,在此过程会影响系统业务,造成系统服务的中断。

具体实施方式

[0045] 本发明公开了一种对话管理方法及系统。
[0046] 本发明的第一个方面,提供了一种对话管理方法,该方法采用基于主题的订阅发布模式的分布式代理架构,把对话状态模型的可视化表示转化为可运行的工作流指令集,以供对话管理系统中的对话管理引擎执行,所述方法包括如下步骤:
[0047] 步骤1:对话基础主题订阅,对话状态设计客户端向对话订阅发布中心订阅所对话状态集、对话策略集和话术集,此对话基础主题为对话状态模型设计提供基本元素;
[0048] 步骤2:对话基础主题定义和发布,自然语言理解模块和系统/应用功能模块根据各自需求变更定义新的对话状态和对话策略,并在版本升级后初始化阶段把对应主题发布到对话订阅发布中心;对话状态设计客户端根据新的业务需求定义话术并发布到对话订阅发布中心;
[0049] 步骤3:对话基础主题变更通知,对话订阅发布中心通知对话状态设计客户端和对话管理系统有新的对话状态和对话策略发布;对话管理系统的对话订阅发布代理模块收到通知后进行对应主题入库操作;
[0050] 步骤4:对话状态模型可视化设计,根据新的对话业务需求,使用对话状态设计客户端进行对话状态可视化设计;
[0051] 步骤5:对话状态模型可视化评审,对话状态模型设计结束后对话状态设计客户端自动发送信息给相关人员评审;相关人员接收到评审任务后在对话状态设计客户端进行评审,并设置评审结果。
[0052] 步骤6:对话状态模型发布,评审通过后,对话状态设计客户端自动发布对话状态模型到对话订阅发布中心;
[0053] 步骤6‘:对话状态模型变更通知,对话订阅发布中心通知对话管理系统更新对话状态模型;对话管理系统的对话订阅发布代理模块收到通知后进行对话状态模型入库操作;
[0054] 步骤7:对话状态模型调度,根据自然语言理解模块探测到的意图检索对话状态模型数据库,获取对应的对话状态模型,调用对话状态解析器进行解析,执行话术播报或对话策略。
[0055] 本发明的另外一方面,提供了一种对话管理系统,用于运行上述对话管理方法所设计的对话状态模型,所述对话管理系统包括:
[0056] 对话状态跟踪模块:用于整理意图列表、消减意图列表、处理槽位冲突、合并槽位和填充对话状态上下文;
[0057] 对话管理引擎:根据意图查找对应对话状态模型,调用对话状态解析器进行对话状态调度;
[0058] 对话状态解析器:用于对话状态模型的解析,话术播报和对话策略调度;
[0059] 话术模块:为对话状态解析器提供话术播报服务;
[0060] 对话订阅发布代理模块:基于主题的订阅发布模式的分布式代理进程;
[0061] 对话策略处理模块:为对话状态解析器提供对话策略调度服务。
[0062] 如图1所示,本发明提出一种对话管理方法,所述对话管理方法涉及以下相关部件:
[0063] 对话管理系统M11,为本方法的核心部件,负责对话状态的跟踪及对话策略的处理;
[0064] 对话订阅发布中心M12,为本方法的数据中心,负责对话状态集、对话策略集、话术集和对话状态模型的存储和发布;
[0065] 对话状态设计客户端M13,为本方法的对话状态模型设计客户端,用于设计可视化的对话状态模型及其序列化,可以采用CS架构中的应用工具,也可以采用BS架构的浏览器;
[0066] 自然语言理解模块M14,为本方法的参与者,负责意图检测,非本发明核心部件;
[0067] 系统/应用功能模块M15,为本方法的参与者,负责具体对话策略的执行,非本发明核心部件。
[0068] 如图2所示,所述对话管理方法包括以下流程:
[0069] 创建对话状态集S11,当自然语言理解模块M14引入新的意图并处于初始化状态,根据意图创建新的对话状态集,并更新到对话订阅发布中心M12中,可采用增量更新的方式以减少网络负载。
[0070] 创建话术集S12,当有新的业务逻辑需求时,在对话状态设计客户端M13中设计对话状态模型,涉及到新的话术时创建新话术集,并更新到对话订阅发布中心M12中,可采用增量更新的方式以减少网络负载。
[0071] 创建对话策略集S13,当系统/应用功能模块M15引入新的对话策略并处于初始化状态,创建新的对话策略集,并更新到对话订阅发布中心M12中,可采用增量更新的方式以减少网络负载。
[0072] 调整对话状态模型S14、即对话状态模型设计,当有任何变更在对话订阅发布中心M12时候,对话状态设计客户端M13将收到对话订阅发布中心M12的通知并从对话订阅发布中心M12同步加载对话状态集;当有新的业务逻辑需求时在对话状态设计客户端M13创建话术集和对话策略集,设计新的对话状态模型。
[0073] 评审对话状态模型S15,完成对话状态模型设计之后需要邀请相关专家进行模型评审,评审通过才可以发布,否则需要重新设计。
[0074] 发布对话状态模型S16,在对话状态设计客户端M13中把对话状态模型发布到对话订阅发布中心M12中,对话订阅发布中心M12通知对话管理系统M11进行对话状态模型的加载及升级。
[0075] 运行对话状态模型S17,当自然语言理解模块M14检测到意图时,把意图传给对话状态设计客户端M13,对话状态设计客户端M13检索对应的对话状态执行,调度对话状态并调用系统/应用功能模块M15对应对话策。
[0076] 进一步地,如图3所示,此流程还包括一种灵动体系结构,即:基于主题的订阅发布模式的分布式代理架构。
[0077] 此架构包括三个角色:发布者,订阅者和订阅发布中心。
[0078] 所述发布者,在此发明提出的对话管理方法中包括:对话状态设计客户端M13、自然语言理解模块M14和系统/应用功能模块M15。进一步地,对话状态设计客户端M13为对话状态发布者;自然语言理解模块M14为话术和对话状态模型发布者;系统/应用功能模块M15为对话策略发布者。
[0079] 所述订阅者,在此发明提出的对话管理方法中包括:对话管理系统M11和对话状态设计客户端M13。进一步地,对话管理系统M11为对话状态、话术、对话状态模型和对话策略的订阅者;对话状态设计客户端M13为对话状态和对话策略的订阅者。
[0080] 所述订阅发布中心,维护订阅发布关系信息,接受对话管理系统M11和对话状态设计客户端M13订阅相关主题,即:对话状态、话术、对话状态模型和对话策略;接受对话状态设计客户端M13、自然语言理解模块M14和系统/应用功能模块M15发布相关主题,通知相应的订阅者。
[0081] 所述发布的订阅通信过程都由各个角色中的代理完成,各个代理为独立进程,不受发布者、订阅者和订阅发布中心的升级策略影响。
[0082] 如图4所示,本发明提出一种对话管理系统,所述对话管理系统由以下模块构成:
[0083] 对话状态跟踪模块:用于接收自然语言理解模块M14发来的意图探测结果,整理意图列表,按意图置信度对意图列表进行消减,直至只保留最高置信度意图在列表中,在此基础上检索对话状态上下文,处理槽位冲突、合并槽位和填充状态上下文;
[0084] 对话管理引擎:根据最高置信度的意图在对话状态模型数据库中检索对应的对话状态,调用对话状态解析器进行对话状态调度;
[0085] 对话状态解析器:用于对话状态模型的解析,根据模型描述语言对应到具体话术和策略,调用话术模块做进行对应话术的播报,调用对话策略处理模块进行对应策略调度;
[0086] 话术模块:为对话状态解析器提供话术播报服务,根据话术资源编号检索话术资源数据库,提取对应的话术用于播报。
[0087] 对话订阅发布代理模块:上述基于主题的订阅发布模式的分布式代理架构在对话管理系统中的分布式代理进程,用于向对话订阅发布中心M12订阅对话状态、对话状态模型和对话策略;并接收对话订阅发布中心M12的主题变更通知,相应地更新对应主题到对应数据库中;
[0088] 对话策略处理模块:为对话状态解析器提供对话策略调度服务,根据策略代号从对话策略数据库中检索对应的对话策略并执行。
[0089] 所述对话管理系统工作流程如图5所示。
[0090] 为了更详细地描述本发明,下面结合附图和实施实例进一步说明本发明。需要说明的是,本实施实例并不限制本发明,而是通过实施实例对本发明进行进一步描述和说明。
[0091] 实施例
[0092] 图6展示了本发明的一个实施例,用于说明本发明提供的对话管理方法及系统。
[0093] 该实施列中,采用基于主题的订阅发布模式的分布式灵动体系结构。
[0094] 基于主题的订阅发布模式步骤如下:
[0095] 步骤1:对话状态设计客户端向对话订阅发布中心订阅对话基础主题,包括对话状态,对话策略和话术;对话管理系统向对话订阅发布中心订阅对话状态模型;
[0096] 步骤2:对话基础主题所有者,包括自然语言理解模块、系统/应用功能模块和对话状态设计客户端向对话订阅发布中心发布对话基础主题;
[0097] 步骤3:对话订阅发布中心通知对话状态设计客户端和对话管理系统同步更新对话基础主题;
[0098] 步骤4:对话状态设计客户端使用对话基础主题机型对话状态模型设计;通过专家评审之后把对话状态模型发布到对话订阅发布中心;
[0099] 步骤5:对话订阅发布中心通知对话管理系统同步更新对话状态模型;
[0100] 步骤6:当有新的意图被自然语言理解模块探测到,意图传递给对话管理系统,对话管理系统使用更新的对话基础主题和对话状态模型进行对话管理、提醒播报和对话策略执行。
[0101] 此外所述对话管理方法的参与者采用分布式代理的方式,把业务逻辑和基础通信部件在进程层面相分离。由分布于各个部件的代理完成对话基础主题和对话状态模型的订阅、发布和通知等通信步骤。
[0102] 进一步地:所述对话基础主题和对话状态模型可以用特定的数据交换格式定义,比如protocol buffer(google提出的一种独立的数据交换格)、JSON(JavaScript Object Notation,JS对象简谱)和XML(eXtensible Markup Language,可扩展标记语言)。在本施实例中采用JSON作为数据交换格式。具体地:
[0103] 如下文关于对话状态的函数所示,对话状态可以由一个七元组定义:DS(id,intention,domainId,domain,slots,confidence,utterance)。其中:
[0104] id为对话状态的唯一标识;
[0105] intention为在对话系统特定技能下用户所表达的意图,例如:我想订今晚七点的羊蝎子火锅,订明天早上到上海的机票,购买一包面粉;
[0106] domainId为意图所属领域唯一标识;
[0107] domain为意图所属领域,例如订餐,订票,购物等,表征对话系统的一种特定技能;
[0108] slots为意图槽位(slot)列表,即属性,例如:我想订今晚七点的羊蝎子火锅,这个意图包含了3个属性:餐厅名称、时间和地点。其中餐厅名称为可识别属性,而时间和地点并非必需,可由系统获取当前时间和地点;
[0109] confidence为意图的置信度,表示自然语言理解模块对所探测意图的打分,分数越高表示目标意图命中率越高,为系统估计值,而非实际值;
[0110] utterance为用户具体的言语表达,表示语音识别结果,而非自然语言理解结果,一般用于后续自然语言生成;
[0111] 进一步地,slot由一个四元组S(id,slot,value,literal)组成,分别表示:槽位唯一标识、槽位名称、槽位填充值和槽位文字识别描述;
[0112] 需要说明的是,对话状态七元组和意图槽位四元组并不是都必要的,在不同的场景可以进行不通的裁剪:作为意图检测结果DS(id,domainId,slots,confidence,utterance)五元组和S(id,value,literal)三元组就能满足需求;而在对话状态的订阅、发布和通知流程中DS(id,intention,domainId,domain,slots)五元组和S(id,slot)二元组就能满足需求;
[0113] 如下文关于话术的函数所示,话术由一个三元组定义:P(id,prompt,prompts)。其中:id为话术的唯一标识;prompt为话术名称,prompts为不同语言的话术表达。进一步地,prompts又包括2个属性:PS(language,value),分别表示语言代码和此语言对应的话术表达。
[0114] 如下文关于对话策略的函数所示,对话策略定义了一个协议,用于对话管理系统与系统/引用功能模块之间的进程间调用和远程过程调用,对话策略由一个四元组定义:DP(id,action,in,out),分别表示:对话策略唯一标识、对话策略名称、参数和返回值。进一步地,in和out又可以细分为3个属性:type表示参数或返回值类型;name表示参数或返回值名称;value表示参数或返回值的具体赋值。
[0115] 在此基础上,本文最后部分还定义了对话状态模型对应的工作流指令集以供对话管理系统解析和执行。此工作流指令集亦为对话状态模型设计客户端的输出结果。在对话状态模型设计阶段,设计人员可以使用可视化的界面在对话状态模型设计客户端设计出图7所示的对话状态模型图,然后序列化成对应的工作流指令集发布到对话订阅发布中心。
[0116] 具体地,所述对话状态模型图和工作流指令集的对应关系如表1所示:
[0117] 除上述表1所述工作流指令集,还有如下补充指令:
[0118] DECL指令:用于声明不同类型的变量,并支持变量的初始化;
[0119] ACTION指令:用于调用对话策略;
[0120] IF/ELSE指令:经常用在对话状态的判断逻辑中,根据判断来执行不通的TRANSITION;
[0121] 此外,一个完整的对话状态模型一般还包括如下属性:
[0122] id:对话状态唯一标识;
[0123] intentLists:此对话状态相应的意图列表,即:哪些意图会触发此对话状态;
[0124] recogSlots:意图包含的可识别槽位列表,即:从用户语音识别填充的槽位;
[0125] notRecogslots:意图包含的不可识别槽位列表,即:系统设置的槽位;
[0126] steps:对话状态模型的具体工作流指令集执行步骤。
[0127] 图7以定餐厅为例,本发明提出的对话管理方法实施实例中的对话状态模型图。下列表格展示了图7中对话状态模型的基本元素和工作流指令集的基本指令及其含义:
[0128]
[0129]
[0130] 下列函数为本发明提出的对话状态定义:
[0131]
[0132]
[0133] 下列函数为本发明提出的话术定义:
[0134]
[0135] 下列函数本发明提出的对话策略定义:
[0136]
[0137]
[0138] 下列函数为图7所述订餐业务对话状态模型对应的工作流指令集:
[0139]
[0140]
[0141]
[0142]
[0143]
[0144]
[0145]
[0146] 综上所述,采用本发明所述对话管理方法和系统,能够根据业务需求的变化,在业务需求分析阶段快速设计出可视化的对话状态模型,无需修改代码就可以发布新的对话系统版本,无需中断对话系统服务就可以完成系统升级;从而解决传统对话管理系统实现工作量大、系统复杂度高、维护成本高、迭代周期长等问题。

当前第1页 第1页 第2页 第3页