1.本发明涉及对话系统的数据处理技术领域,尤其涉及一种基于对话流自举的深度学习对话策略模型构建方法和系统。
背景技术:
2.大数据与人工智能的快速发展赋能了自然语言处理技术,随着智能设备的普及,人机交互技术具有丰富的落地场景和迫切的产业需求,对话系统在学术界和工业界吸引了越来越多的关注。最早的对话系统仅能处理简单的交流任务,如飞机订票、提供旅行信息,如今对话任务场景日趋复杂,如智能客服、语音助手、智能家居等,对于对话系统的灵活性与交互性有了更高要求。因此,研究如何以更低成本构建更灵活、拓展性更高的对话系统具有广阔的应用前景。
3.当前较成熟的对话系统常采用基于流水线的方案,基本结构如图1所示。其中对话策略模块负责对话动作的决策,以决定对话系统在接收到用户回复后的下一步动作。针对对话策略模块目前主流的对话策略模型构建方法包含基于对话流的对话策略模型和基于深度学习的对话策略模型两种;其中,(1)基于对话流的对话策略模型:该方法将对话过程建模为有限状态机,每一个对话状态都包含一系列不同的对话动作,进入某个对话状态会触发相应的对话动作,对话状态间的状态流转由预定义的条件决定,如识别用户的特定意图或用户回复中包含的特定实体,该方法依赖预定义的系列规则,输出的对话动作具有确定性;(2)基于深度学习的对话策略模型:该方法基于当前对话轮次的对话状态,即当前用户意图与用户回复中包含的实体,以及历史状态进行统计建模,利用深度序列模型在已标注的对话序列数据上进行训练,以获得预测下一步最大可能对话动作的能力,该方法依赖可得的标注对话序列数据,通过建模对话状态与对话动作间的统计关系,预测的对话动作具有不确定性。
4.然而上述两种对话策略模型构建方法还存在如下问题:方法(1)需要定义严格的状态机,人力维护成本高,对话策略模型开发者需要考虑繁杂的边界条件和极端情况,并在设计状态机时综合考虑,当对话策略模型经过较长时间迭代后,状态分支数量将导致模型复杂度提升,在不影响状态机正确性的前提下,对旧有对话分支的修正需要厘清状态机中繁杂的状态流转条件,不利于新对话分支的加入;且由于模型严重依赖既定规则,对于意料之外的用户回复或突然的对话任务跳转模型没有相应的应对能力,鉴于这类对话的长尾特性,显式编码所有类似情况并不现实;方法(2)需要足够量的对话数据,在特定领域中,构建对话系统初期通常无法获得足够的标注数据,在少样本的设定下深度学习模型无法收敛到一个可接受的区间内,因此数据驱动的深度学习方法常面临冷启动的问题。
技术实现要素:
5.本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
6.为此,本发明的第一个目的在于提出一种基于对话流自举的深度学习对话策略模
型构建方法,以解决现有技术中模型训练数据不足导致模型冷启动的问题。
7.本发明的第二个目的在于提出一种基于对话流自举的深度学习对话策略模型构建系统。
8.本发明的第三个目的在于提出一种电子设备。
9.本发明的第四个目的在于提出一种非瞬时计算机可读存储介质。
10.为达上述目的,本发明第一方面实施例提出了一种基于对话流自举的深度学习对话策略模型构建方法,包括:
11.通过对话流自举方式构建语料训练集,所述对话流自举方式包括:基于用户的多对话轮次对话数据获得对话流状态机,使用宽度优先搜索获取对话流状态机中起始状态到任意状态的所有路径,进而获得多对话轮次的对话序列标注数据,所述多对话轮次的对话序列标注数据构成语料训练集;
12.构建深度学习对话策略模型,将所述语料训练集输入至所述深度学习对话策略模型,输出目标对话动作,其中,所述深度学习对话策略模型包括对话动作预测模型和置信度比较模型,所述对话动作预测模型用于对所述语料训练集进行对话动作预测,所述置信度比较模型用于获取预测动作的置信度,基于置信度阈值和预测动作的置信度确定目标对话动作。
13.本发明实施例的方法,利用宽度优先搜索和对话流状态机以对话流自举的方式从用户的多对话轮次对话数据中转化出覆盖全对话路径的对话序列标注数据,以充分建模对话状态与对话动作间的统计关系,显著提升了对话策略模型的灵活性,解决了模型训练数据不足导致的深度学习对话策略模型的冷启动问题。
14.在本发明第一方面实施例的一种基于对话流自举的深度学习对话策略模型构建方法中,所述基于置信度阈值和预测动作的置信度确定目标对话动作包括:
15.比较置信度阈值和预测动作的置信度,若所述置信度阈值小于或等于所述预测动作的置信度,则该预测动作为目标对话动作;若所述置信度阈值大于所述预测动作的置信度,则对所述对话序列标注数据进行召回获得召回对话动作,基于所述召回对话动作以及召回对话动作的概率分布确定目标对话动作。
16.在本发明第一方面实施例的一种基于对话流自举的深度学习对话策略模型构建方法中,所述对所述对话序列标注数据进行召回获得召回对话动作,基于所述召回对话动作以及召回对话动作的概率分布确定目标对话动作包括:
17.基于召回的方式,针对当前对话轮次中的意图、槽值、上一对话轮次动作以及用户回复信息,对所述对话序列标注数据进行模糊检索得到多个对话动作,将检索得到的对话动作作为召回对话动作;
18.获取召回对话动作对应的所述深度学习对话策略模型中预测动作的概率分布,进行排序,选择概率最大的预测动作对应的召回对话动作作为目标对话动作。
19.在本发明第一方面实施例的一种基于对话流自举的深度学习对话策略模型构建方法中,还包括:判断所述深度学习对话策略模型中的预测动作是否有误,若有误,则输入预定义动作中的正确动作,基于所述多对话轮次对话数据和所述正确动作生成新的对话数据训练集,利用所述新的对话数据训练集对所述深度学习对话策略模型重新训练。
20.在本发明第一方面实施例的一种基于对话流自举的深度学习对话策略模型构建
方法中,所述用户的多对话轮次对话数据获取方法包括:
21.对多对话轮次过程中的用户输入语句进行自然语言理解获得用户意图和槽值;
22.对所述用户意图和槽值进行对话状态跟踪得到多对话轮次对话数据,所述多对话轮次对话数据包括用户意图、槽值、动作、状态流转条件、当前对话状态、历史对话状态以及用户的回复。
23.在本发明第一方面实施例的一种基于对话流自举的深度学习对话策略模型构建方法中,还包括:
24.判断所述用户意图和槽值是否有误,若有误,则输入预定义意图和槽值中的正确意图和槽值,基于所述正确意图和槽值生成新的训练样本,利用所述新的训练样本对进行自然语言理解的自然语言理解模型重新训练。
25.在本发明第一方面实施例的一种基于对话流自举的深度学习对话策略模型构建方法中,所述对话动作预测模型包括预训练的transformer语言模型。
26.为达上述目的,本发明第二方面实施例提出了一种基于对话流自举的深度学习对话策略模型构建系统,包括:
27.获取模块,用于通过对话流自举方式构建语料训练集,所述对话流自举方式包括:基于用户的多对话轮次对话数据获得对话流状态机,使用宽度优先搜索获取对话流状态机中起始状态到任意状态的所有路径,进而获得多对话轮次的对话序列标注数据,所述多对话轮次的对话序列标注数据构成语料训练集;
28.预测模块,用于构建深度学习对话策略模型,将所述语料训练集输入至所述深度学习对话策略模型,输出目标对话动作,其中,所述深度学习对话策略模型包括对话动作预测模型和置信度比较模型,所述对话动作预测模型用于对所述语料训练集进行对话动作预测,所述置信度比较模型用于获取预测动作的置信度,基于置信度阈值和预测动作的置信度确定目标对话动作。
29.本发明实施例的系统,获取模块利用宽度优先搜索和对话流状态机以对话流自举的方式从用户的多对话轮次对话数据中转化出覆盖全对话路径的对话序列标注数据,以充分建模对话状态与对话动作间的统计关系,显著提升了对话策略模型的灵活性,解决了预测模块中模型训练数据不足导致的深度学习对话策略模型的冷启动问题。
30.为达上述目的,本发明第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明第一方面实施例的一种基于对话流自举的深度学习对话策略模型构建方法。
31.为了实现上述目的,本发明第四方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本发明第一方面实施例的一种基于对话流自举的深度学习对话策略模型构建方法。
32.本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
33.本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
34.图1为现有的基于流水线的对话系统结构图;
35.图2为本发明实施例所提供的一种基于对话流自举的深度学习对话策略模型构建方法的流程示意图;
36.图3为本发明实施例所提供的另一种基于对话流自举的深度学习对话策略模型构建方法的流程示意图;
37.图4为本发明实施例所提供的对话流状态机的示意图;
38.图5为本发明实施例所提供的多对话轮次的对话序列标注数据示意图;
39.图6为本发明实施例所提供的预训练的transformer语言模型的架构图;
40.图7为本发明实施例所提供的一种对话系统的对话动作预测方法;
41.图8为本发明实施例所提供的一种对话系统的模型更新方法;
42.图9为本发明实施例提供的基于对话流自举的深度学习对话策略模型构建系统的结构示意图;
43.图10为本发明实施例提供的基于对话流自举的深度学习对话策略模型构建系统的架构图;
44.图11为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
45.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
46.下面结合具体的实施例对本发明进行详细说明。
47.图2为本发明实施例所提供的一种基于对话流自举的深度学习对话策略模型构建方法的流程示意图。
48.本发明实施例提供了基于对话流自举的深度学习对话策略模型构建方法,以解决现有技术基于对话流的对话策略模型缺乏应对复杂对话的灵活性,以及基于深度学习的对话策略模型在系统搭建初期由于模型训练数据不足导致的模型冷启动问题。如图2所示,基于对话流自举的深度学习对话策略模型构建方法包括以下步骤:
49.步骤s101,通过对话流自举方式构建语料训练集。
50.在步骤s101中,对话流自举方式可以包括:基于用户的多对话轮次对话数据获得对话流状态机,使用宽度优先搜索获取对话流状态机中起始状态到任意状态的所有路径,进而获得多对话轮次的对话序列标注数据,多对话轮次的对话序列标注数据构成语料训练
集。
51.在步骤s101中,用户的多对话轮次对话数据获取方法可以包括:对多对话轮次过程中的用户输入语句进行自然语言理解获得用户意图和槽值;对用户意图和槽值进行对话状态跟踪得到多对话轮次对话数据,多对话轮次对话数据包括用户意图、槽值、动作、状态流转条件、当前对话状态、历史对话状态以及用户的回复。其中,用户输入语句例如可以为图1中的自然语言。具体地,如图1所示,将自然语言输入至自然语言理解模块中进行自然语言理解得到用户意图和槽值,然后将用户意图和槽值传输至对话管理模块进行对话状态追踪(dst)从而得到用户意图(intent)、槽值(slot)、动作(action)、状态流转条件(condition)、当前对话状态、历史对话状态以及用户的回复(utterance)。
52.易于理解的是,对话流状态机通常由起始状态,中间状态,终止状态、对话动作以及状态流转条件组成。图4为本发明实施例所提供的对话流状态机的示意图。如图4所示,s0为起始状态,si、sj为不同的中间状态,se为终止状态,conditioni、conditionj、conditionk、condition
l
为不同状态间的状态流转条件,action0、actiono、actionn、actionm为不同状态下对应的对话动作,其中,中间状态的数量可以不限于图4中示意的2个,状态流转条件的数量与状态数量有关,各状态下的对话动作数量可能相同也可能不同。如图4所示,从初始状态s0开始,执行其中的对话动作,当用户回复后,根据状态流转条件流转至下一状态并执行其中的对话动作,直至终止状态se。由于对话流状态机通常为有向无环图,故步骤s101中对话流自举方式可以使用宽度优先搜索的路径遍历获得对话流状态机中起始状态到任意状态的所有可能路径。本实施例中对话流自举方式的时间复杂度为o(n*2n)。考虑到冷启动时创建的对话流状态数(即多对话轮次对话数据)规模较小,故本实施例的时间复杂度为可以接受的时间花销。
53.在步骤s101中,获取所有路径的对话流自举方式的算法(即对话流转化算法)描述如下:
[0054][0055]
其中,算法的输入为起始状态s0和状态列表states,输出为有向无环图遍历游走(即遍历路径)exhausitve_walks,算法中状态列表states包括对话流状态机中所有状态,其中状态列表states中的任意状态用si表示。算法首先初始化遍历游走exhausitve_walks为空列表。然后对于状态列表states中的任意状态si,都执行以下过程:初始化空队列q,将初始状态s0加入队列,初始化当前游走current_walk;持续地弹出队头的元素,以更新当前游走,若当前队头元素υ不等于当前元素si,则将当前游走加入到遍历游走中,对于当前队头元素υ的所有邻居,都执行入队操作,不断执行以上操作直到队列为空,表示此时已遍历了从si到另外所有状态的游走。
[0056]
在步骤s101中,用户多对话轮次(可以简称为多轮次)对话数据经过上述对话流自举方式的算法可以获得多对话轮次的对话序列标注数据,其中对话序列标注数据中每个时间步(即每个对话轮次)包含当前轮次对话的用户意图(intent)、槽值(slot)、以及用户的回复(utterance)等。另外,在每轮次对话序列标注数据(可以简称为每轮次序列)中,序列最前端还包括向量mem字符,mem字符用于表示当前轮次对话上下文(即当前轮次的前后轮次)的向量。图5为本发明实施例所提供的多对话轮次的对话序列标注数据示意图,若图5中的turni为当前轮次,则turn
i-1
为当前轮次的上一轮次,turn
i-2
为turn
i-1
的上一轮次,turn
i 1
为当前轮次的下一轮次,图5所示的turni轮次对话序列标注数据包括mem字符、用户的回复(utterance)、用户意图(intent)和槽值(slot),但本实施例中的各轮次对话序列标注数据包含信息不限于此,另外,turni轮次对话序列标注数据的mem字符表示turn
i-1
轮次
和turn
i 1
轮次的向量。在这种情况下,从对话流中自举得到深度学习对话策略模型训练所需的语料,能够解决深度学习对话策略模型的冷启动问题。
[0057]
步骤s102,构建深度学习对话策略模型,将语料训练集输入至深度学习对话策略模型,输出目标对话动作。
[0058]
在步骤s102中,深度学习对话策略模型包括对话动作预测模型和置信度比较模型,对话动作预测模型用于对语料训练集进行对话动作预测,置信度比较模型用于获取预测动作的置信度,基于置信度阈值和预测动作的置信度确定目标对话动作。
[0059]
在步骤s102中,对话动作预测模型包括预训练的transformer语言模型。预训练的transformer语言模型由常规的transformer语言模型的编码模块训练获得。具体地,可以利用语料训练集(即多对话轮次的对话序列标注数据)对常规的transformer语言模型的编码模块进行训练,进而得到预训练的transformer语言模型。
[0060]
图6为本发明实施例所提供的预训练的transformer语言模型的架构图。如图6所示,单个对话轮次中输入序列的编码过程由嵌入的计算开始,输入到模型中的嵌入由词嵌入、位置嵌入等相加而成,位置嵌入的计算公式如下:
[0061][0062][0063]
式中pos和i分别表示位置和嵌入的维度。
[0064]
随后经过多层的预变换模块(pretrainedtransformer),每一层都包含以下几项计算,首先经过多头自注意力(multi-head attention)得到输入的加权和,计算公式如下:
[0065]
multihead(qk,v)=concat(head1,...,headh)wo[0066][0067]
式中映射到各个子空间的权重矩阵以及多头自注意力机制将输入的q,k,v矩阵,分别映射到不同的子空间中进行自注意力计算,完成后再将几个子空间的计算结果重新拼接。自注意力的计算公式如下:
[0068][0069]
式中自注意力计算的输入q,k,v矩阵都是输入的序列,通过计算序列中各个位置上字符的相似性,对原序列作加权求和操作,以此进行动态语义编码。其中通过来对相似性分数进行归一化,减少输入维度对结果的影响。
[0070]
完成多头自注意力计算后进行残差连接相加并进行层归一化的计算,随后经过逐位的前馈网络(feed forward),采用relu作为激励函数,表达式如下所示:
[0071]
ffn(x)=max(0,xw1 b1)w2 b2。
[0072]
经过上述预训练的transformer语言模型的计算(即编码过程),能够得到输入序列中各个位置上的字符的向量表征。
[0073]
在步骤s102中,对话动作预测模型还包括设置在预训练的transformer语言模型后的softmax层,如图5所示,将多对话轮次的对话序列标注数据作为文本的上下文语境输
入到预训练的transformer语言模型中,利用softmax层预测当前时间步的下一轮次的对话动作。其中,在经过softmax层时,通过softmax函数能够将预训练的transformer语言模型的输出转换为预测的下一个动作概率。
[0074]
在步骤s102中,在获得预测的下一个动作概率后,置信度比较模型可以获取预测动作的置信度,基于置信度阈值和预测动作的置信度确定目标对话动作。
[0075]
在步骤s102中,基于置信度阈值和预测动作的置信度确定目标对话动作包括:比较置信度阈值和预测动作的置信度,若置信度阈值小于或等于预测动作的置信度,则该预测动作为目标对话动作;若置信度阈值大于预测动作的置信度,则对对话序列标注数据进行召回获得召回对话动作,基于召回对话动作以及召回对话动作的概率分布确定目标对话动作。其中目标对话动作即为最终预测的动作,在这种情况下,结合模型和对话流状态机确定目标对话动作,增加了对话策略的稳定性。
[0076]
在步骤s102中,对对话序列标注数据进行召回获得召回对话动作,基于召回对话动作以及召回对话动作的概率分布确定目标对话动作包括:基于召回的方式,针对当前对话轮次中的意图、槽值、上一对话轮次动作以及用户回复信息,对对话序列标注数据进行模糊检索得到多个对话动作,将检索得到的对话动作作为召回对话动作;获取召回对话动作对应的深度学习对话策略模型中预测动作的概率分布,进行排序(例如精排),选择概率最大的预测动作对应的召回对话动作作为目标对话动作。在这种情况下,结合对话流的稳定性和模型应对复杂对话的能力,提升了话动作预测时的健壮性和灵活性。
[0077]
基于上述的基于对话流自举的深度学习对话策略模型构建方法,本实施例还提供了一种对话系统的对话动作预测方法。图7为本发明实施例所提供的一种对话系统的对话动作预测方法。如图7所示,对话系统包括自然语言理解模块、对话状态追踪器、对话策略模块,该对话动作预测方法的具体流程包括以下4个步骤:
[0078]
(1)用户输入文本,发送请求至多轮对话系统中(即获得用户输入语句),若用户输入语句有误则重新输入,对话系统中自然语言理解模块根据用户文本进行对话理解,解析出用户输入语句中的用户意图和槽值等信息。
[0079]
(2)对解析出的用户意图和槽值等信息进行对话状态跟踪,对话状态跟踪分为当前对话状态跟踪和历史对话状态跟踪,包括意图、槽值、实体、领域信息、动作等不同的对话状态信息,结合当前和历史数据形成对话状态。其中历史对话状态通过当前对话状态和响应动作进行不断更新,当前对话状态根据对话理解数据进行响应更新。
[0080]
(3)使用对话状态跟踪器中得到的对话状态在对话策略模块中进行对话动作预测,预测采用神经网络模型(即对话动作预测模型)进行对话动作预测,并且获取动作预测中的置信度以进行下一步动作决策的比较依据。
[0081]
(4)将基于对话流状态机得到的对话流序列数据进行预备,对话状态跟踪器中得到的对话状态在对话流序列数据中进行查询召回,返回多个(top-k)动作,基于深度学习对话策略模型中在进行动作预测时计算得到的各动作的概率分布,获得召回的top-k个动作中各动作对应置信度,从top-k个动作中选择概率最大的召回对话动作作为机器响应动作。
[0082]
在本实施例中,考虑到对于复杂的对话和场景,直接维护和编写对话流在生产环境下要求较大的人力成本;对于复杂对话流,在保证其正确性的前提下进行对话的修改和增加,对于领域知识和已有系统的熟悉程度提出了更高要求,在一定程度上使得复杂场景
下的规则型对话系统缺乏灵活性和可拓展性,因此本实施例提出另一种基于对话流自举的深度学习对话策略模型构建方法对深度学习对话策略模型进行交互式修正与拓展。
[0083]
图3为本发明实施例所提供的另一种基于对话流自举的深度学习对话策略模型构建方法的流程示意图。如图3所示,基于对话流自举的深度学习对话策略模型构建方法中的步骤s101和步骤s102可以参照上述图2所示的方法的相关描述,基于对话流自举的深度学习对话策略模型构建方法还包括:步骤s103,判断深度学习对话策略模型中的预测动作是否有误,若有误,则输入预定义动作中的正确动作,基于多对话轮次对话数据和正确动作生成新的对话数据训练集,利用新的对话数据训练集对深度学习对话策略模型重新训练。由此,能够增加对话策略模型应对复杂对话的能力,同时减少对话系统的人力维护成本。
[0084]
在一些实施例中,判断预测动作是否有误可以通过人为判断,还可以通过对话系统的机器教学模块识别判断。
[0085]
在本实施例中基于对话流自举的深度学习对话策略模型构建方法还包括:判断用户意图和槽值是否有误,若有误,则输入预定义意图和槽值中的正确意图和槽值,基于正确意图和槽值生成新的训练样本,利用新的训练样本对进行自然语言理解的自然语言理解模型重新训练。由此,能够进一步增加对话策略模型应对复杂对话的能力。
[0086]
在一些实施例中,判断用户意图和槽值是否有误可以通过人为判断,还可以通过对话系统的机器教学模块识别判断。
[0087]
基于上述的基于对话流自举的深度学习对话策略模型构建方法,本实施例还提供了一种对话系统的模型更新方法。图8为本发明实施例所提供的一种对话系统的模型更新方法;如图8所示,对话系统包括自然语言理解模块、对话状态追踪器、对话策略模块和机器教学模块,对话系统的模型更新方法(即交互式机器教学过程)具体流程可以包括以下4个步骤:
[0088]
(1)用户首先通过机器教学模块界面发起互动式对话过程,其中输入相应的对话内容,该对话内容会跟用户进行确认是否输入有误,若有误,用户可进行重新输入,随后调用自然语言理解模块进行意图预测与槽值填充,结果以及各预测的置信度都将直接返回给用户确认。
[0089]
(2)若用户确认意图预测与槽值填充无问题,则将进入下一步骤,否则用户可通过机器教学模块,提交正确的意图和槽值,其中意图需为预定义意图,槽值需要为领域预定义的槽值,用户以特定格式输入,要求槽值为用户输入的连续子序列。若经过验证用户输入的意图和槽值不符合规则,则需重新输入。用户输入正确意图和槽值后,机器教学模块将对用户输入进行标注,生成新样本,并在机器教学流程结束后发起自然语言理解模型训练任务,针对新样本对模型进行重新训练。
[0090]
(3)若用户确认自然语言理解模块的预测结果无误,或已完成自然语言理解模块的修正,则对话状态追踪模块会使用用户提供的经过修正后的意图和槽值历史对话状态,其中当前对话状态和历史对话状态的获取会进行错误重试,更新后的对话状态将输送至深度学习对话策略模型供神经网络进行对话动作预测,该步骤会向用户展示动作预测结果的置信度分布,由用户决定动作预测是否有误。若用户确认无误,则执行当前对话动作并进入下一对话轮次。
[0091]
(4)若用户认为动作预测结果出现错误,此时可提供正确的下一步动作,该动作需
为库中预定义的动作之一,若机器教学模块未找到用户输入的纠正动作,将抛出异常并要求用户重新输入。若机器教学模块找到用户输入的纠正动作,对话系统将由机器教学模块开始修正对话记录生成新的包括对话标注序列数据的样本,用户此时可以继续机器教学流程。退出后将发起深度学习对话策略模型训练任务,对模型在新样本上进行重新训练。
[0092]
本发明实施例提出的基于对话流自举的深度学习对话策略模型构建方法,针对现有采用基于对话流的对话策略模型构建方法,无法应对复杂场景对话、意料外的用户输入,以及对话任务转换的情况,采用对话流自举的深度学习对话策略模型方式,利用宽度优先搜索和对话流状态机以对话流自举的方式从用户的多对话轮次对话数据中转化出覆盖全对话路径的对话序列标注数据,以充分建模对话状态与对话动作间的统计关系,显著提升了对话策略模型的灵活性,解决了模型训练数据不足导致的深度学习对话策略模型的冷启动问题。另外,针对现有方法对于新的对话分支的添加与现有分支的修正较为困难,开发者需考虑繁杂的对话状态间的关联关系并确保改动不会影响现有状态机的正确性的情况,本发明的模型构建方法交互式地进行对话系统(特别是深度学习对话策略模型)修正与拓展,增加了对话策略模型应对复杂对话的能力,能够显著地降低维护对话系统的人力成本。本发明的模型构建方法是一种面向低资源场景、结合对话流与深度学习模型、低维护成本的对话策略模型构建方法。
[0093]
为了实现上述实施例,本发明还提出一种基于对话流自举的深度学习对话策略模型构建系统。图9为本发明实施例提供的基于对话流自举的深度学习对话策略模型构建系统的结构示意图,图10为本发明实施例提供的基于对话流自举的深度学习对话策略模型构建系统的架构图。
[0094]
如图9所示,该基于对话流自举的深度学习对话策略模型构建系统10(简称系统10)包括获取模块11和预测模块12。
[0095]
在本实施例中,获取模块11可以用于通过对话流自举方式构建语料训练集,对话流自举方式包括:基于用户的多对话轮次对话数据获得对话流状态机,使用宽度优先搜索获取对话流状态机中起始状态到任意状态的所有路径,进而获得多对话轮次的对话序列标注数据,多对话轮次的对话序列标注数据构成语料训练集。由此,能够解决深度学习对话策略模型的冷启动问题。图9中的获取模块11可以包括图10中的对话流转换模块。
[0096]
在另一些实施例中,获取模块11还可以包括对话状态跟踪模块。
[0097]
在本实施例中,预测模块12可以用于构建深度学习对话策略模型,将语料训练集输入至深度学习对话策略模型,输出目标对话动作,其中,深度学习对话策略模型包括对话动作预测模型和置信度比较模型,对话动作预测模型用于对语料训练集进行对话动作预测,置信度比较模型用于获取预测动作的置信度,基于置信度阈值和预测动作的置信度确定目标对话动作。图9中的预测模块12可以对应图10中的对话策略模型模块。
[0098]
在另一些实施例中,基于对话流自举的深度学习对话策略模型构建系统10还可以包括机器教学模块。机器教学模块能够对深度学习对话策略模型进行交互式修正与拓展以减少人工维护成本。
[0099]
机器教学模块可以用于判断深度学习对话策略模型中的预测动作是否有误,若有误,则输入预定义动作中的正确动作,基于多对话轮次对话数据和正确动作生成新的对话数据训练集,利用新的对话数据训练集对深度学习对话策略模型重新训练。由此,能够增加
对话策略模型应对复杂对话的能力,同时减少对话系统的人力维护成本。
[0100]
另外机器教学模块还可以判断用户意图和槽值是否有误,若有误,则输入预定义意图和槽值中的正确意图和槽值,基于正确意图和槽值生成新的训练样本,利用新的训练样本对进行自然语言理解的自然语言理解模型重新训练。由此,能够进一步增加对话策略模型应对复杂对话的能力。
[0101]
本发明实施例提出的基于对话流自举的深度学习对话策略模型构建系统,针对现有采用基于对话流的对话策略模型构建方法,无法应对复杂场景对话、意料外的用户输入,以及对话任务转换的情况,采用对话流自举的深度学习对话策略模型方式,获取模块利用宽度优先搜索和对话流状态机以对话流自举的方式从用户的多对话轮次对话数据中转化出覆盖全对话路径的对话序列标注数据,以充分建模对话状态与对话动作间的统计关系,显著提升了对话策略模型的灵活性,解决了模型训练数据不足导致的深度学习对话策略模型的冷启动问题。另外,针对现有方法对于新的对话分支的添加与现有分支的修正较为困难,开发者需考虑繁杂的对话状态间的关联关系并确保改动不会影响现有状态机的正确性的情况,本发明的模型构建方法利用机器教学模块,交互式地进行对话系统(特别是深度学习对话策略模型)的修正与拓展,增加了对话策略模型应对复杂对话的能力,能够显著地降低维护对话系统的人力成本。
[0102]
需要说明的是,前述对基于对话流自举的深度学习对话策略模型构建方法实施例的解释说明也适用于该实施例的基于对话流自举的深度学习对话策略模型构建系统,此处不再赘述。
[0103]
根据本发明的实施例,本发明还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0104]
图11为本发明实施例提供的一种电子设备的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴电子设备和其它类似的计算装置。本发明所示的部件、部件的连接和关系、以及部件的功能仅仅作为示例,并且不意在限制本发明中描述的和/或者要求的本发明的实现。
[0105]
如图11所示,电子设备20包括计算单元21,其可以根据存储在只读存储器(rom)22中的计算机程序或者从存储单元28加载到随机访问存储器(ram)23中的计算机程序,来执行各种适当的动作和处理。在ram 23中,还可存储电子设备20操作所需的各种程序和数据。计算单元21、rom 22以及ram 23通过总线24彼此相连。输入/输出(i/o)接口25也连接至总线24。
[0106]
电子设备20中的多个部件连接至i/o接口25,包括:输入单元26,例如键盘、鼠标等;输出单元27,例如各种类型的显示器、扬声器等;存储单元28,例如磁盘、光盘等,存储单元28与计算单元21通信连接;以及通信单元29,例如网卡、调制解调器、无线通信收发机等。通信单元29允许电子设备20通过诸如因特网的计算机网络和/或各种电信网络与其他电子设备交换信息/数据。
[0107]
计算单元21可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元21的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工
智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元21执行上述所描述的各个方法和处理,例如执行基于对话流自举的深度学习对话策略模型构建方法。例如,在一些实施例中,执行基于对话流自举的深度学习对话策略模型构建方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元28。在一些实施例中,计算机程序的部分或者全部可以经由rom 22和/或通信单元29而被载入和/或安装到电子设备20上。当计算机程序加载到ram 23并由计算单元21执行时,可以执行上述描述的执行基于对话流自举的深度学习对话策略模型构建方法的一个或多个步骤。备选地,在其他实施例中,计算单元21可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于对话流自举的深度学习对话策略模型构建方法。
[0108]
本发明中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑电子设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0109]
用于实施本发明的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0110]
在本发明中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或电子设备使用或与指令执行系统、装置或电子设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或电子设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存电子设备、磁储存电子设备、或上述内容的任何合适组合。
[0111]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0112]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算
系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、互联网和区块链网络。
[0113]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务("virtual private server",或简称"vps")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0114]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明公开的技术方案所期望的结果,本发明在此不进行限制。
[0115]
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
转载请注明原文地址:https://tc.8miu.com/read-304.html