一种人机交互系统及人机交互系统中多任务处理方法与流程

文档序号:17948880发布日期:2019-06-18 23:52阅读:269来源:国知局
一种人机交互系统及人机交互系统中多任务处理方法与流程

本申请涉及人工智能中的人机交互技术领域,尤其涉及一种人机交互系统及人机交互系统中多任务处理方法。



背景技术:

随着人工智能技术的飞速发展,人机交互系统的应用越来越广泛。例如,智能助手已经成为目前智能终端上最重要的应用之一。市场上常见的智能助手产品有applesiri,googleassistant,amazonalexa,huaweihivoice等。上述智能助手的产品各有特点,但其核心功能之一是通过语音或文字的交互帮助用户完成特定的任务,例如拨打电话、设定提醒、播放音乐、查询航班状态、预定餐馆等。上述任务通常是由用户主动发起,通过与智能助手的一轮或多轮交互完成。智能助手通过与用户的交互,逐步理解和确认用户的意图和需求,并通常通过数据库查询、应用程序接口(applicationprogramminginterface,api)调用等方式完成任务。各个任务之间通常是独立进行的,不互相影响或依赖。

任务型语音对话系统(task-orientedspokendialoguesystem)是智能助手的核心技术之一。任务型语音对话系统(以下简称“对话系统”)大多是基于槽填充(slot-filling)模式的,其核心技术是根据任务定义若干槽位(slot),在与用户对话的过程中,不断识别用户意图并提取相关槽信息,当槽位的信息都确定后,即可帮助用户完成任务。例如,在预订机票的任务中,槽位可以定义为:出发地、目的地、出发时间、航班号。当这些信息得到确认后,智能助手便可以帮助用户完成订购机票的任务。

目前的智能助手大多围绕任务进行构建,每个任务有独立的槽位设置,可以看做一个独立的对话系统,不同对话系统独立运行,没有联系。通常,在对话系统的上层,有一个中控系统,负责根据用户的输入将用户分发到具体的某个任务中,然后就该任务展开对话。这种情况下,通常只涉及用户和智能助手之间对话,且各个任务独立进行。



技术实现要素:

本发明一方面提供一种人机交互系统中多任务处理方法,该方法包括步骤:根据用户输入的请求信息确定第一任务;获取所述第一任务相应的关键信息并执行所述第一任务,所述关键信息包括一个或多个槽位及所述一个或多个槽位的值;存储所述第一任务的任务状态信息,所述任务状态信息包括所述关键信息;以及根据所述第一任务的任务状态信息,预测并发起第二任务。

在本发明实施例提供的方法中,各任务的状态信息能够共享并得到利用,人机交互系统可以根据存储的任务状态信息预测下一个任务,并主动发起预测出的任务,提高了人机交互系统处理多任务的智能性和效率。

在第一方面的第一种可能的实现方式中,所述第一任务的任务状态信息存储在记忆网络中。采用记忆网络作为任务存储器,可以方便进行深度学习的训练。

在第一方面的第二种可能的实现方式中,人机交互系统将所述第一任务的任务状态信息输入循环神经网络,预测所述第二任务并发起第二任务。使用循环神经网络预测任务,可以方便进行深度学习的训练。可选地,还可以将环境信息一并作为预测任务的输入。例如,计算隐状态向量ht=f(wxxt+wzzt+whht-1+b),其中,f为变换函数,xt为任务状态信息向量,zt为环境信息向量,wx,wz和wh为参数矩阵,b为参数向量,并根据所述隐状态向量预测所述第二任务。

在第一方面的第三种可能的实现方式中,所述方法还包括:根据所述第一任务的任务状态信息,获取所述第二任务相应的关键信息。可选地,人机交互系统可以通过注意力机制获取在所述第一任务的任务状态信息中与第二任务相应的关键信息。例如,计算第一任务的任务状态信息中每个槽位与第二任务的相关性,即每个槽位的注意力权重向量。注意力权重向量可以根据公式:att=softmax(wkt)v进行计算。其中,att表示注意力权重向量,softmax表示指数归一化函数,w为参数矩阵,k为key的向量表示,v为value的向量表示。

在第一方面的第四种可能的实现方式中,所述方法还包括:根据所述第一任务的任务状态信息,对所述第二任务的对话进行语义消歧。人机交互系统通过访问存储的任务状态信息辅助理解用户意图,提高了人机交互系统的智能性和工作效率。

本发明第二方面提供一种人机交互系统,包括:中控模块:用于根据用户输入的请求信息确定第一任务和根据所述第一任务相应的关键信息执行所述第一任务;任务引擎模块:用于获取所述第一任务相应的关键信息,所述关键信息包括一个或多个槽位及所述槽位的值;任务存储器:用于存储所述第一任务的任务状态信息,所述任务状态信息包括所述关键信息;以及任务控制器:用于根据所述第一任务的任务状态信息,预测并发起第二任务。

在第二方面的第一种可能的实现方式中,所述任务存储器为记忆网络。

在第二方面的第二种可能的实现方式中,所述任务控制器为循环神经网络。

在第二方面的第三种可能的实现方式中,所述任务引擎模块还用于根据所述第一任务的任务状态信息,获取所述第二任务相应的关键信息。

本发明第三方面提供一种人机交互系统,包括处理器和存储器;所述存储器用于存储计算机执行指令;所述处理器用于执行所述存储器所存储的计算机执行指令,以使所述人机交互系统执行如前述本发明第一方面或第一方面任意一种可能实现的方式中描述的的方法。

本发明第四方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如前述本发明第一方面或第一方面任意一种可能实现的方式中描述的的方法。

附图说明

图1为本发明实施例提供的一种人机交互系统的结构示意图;

图2为本发明实施例提供的一种人机交互系统中多任务处理方法流程图;

图3为本发明实施例提供的多任务处理场景示例;

图4为本发明实施例提供的多任务处理场景的另一个示例;

图5为本发明实施例提供的根据历史任务状态信息对当前任务语句进行语义消歧的示例;

图6为本发明实施例提供的访问历史任务状态信息的示例;

图7为本发明实施例提供的任务控制器预测任务的示例;

图8为本发明实施例提供的一种人机交互系统的硬件结构示意图。

具体实施方式

如图1所示,本申请提供一种人机交互系统,该人机交互系统主要包括中控模块、任务引擎模块、任务存储器和任务控制器。

其中,中控模块101,用于对对话请求进行意图识别,确定任务,将任务分发至相应的任务引擎。

任务引擎模块102,包括多个任务引擎,每个任务引擎主要用于负责某个对话任务,对对话请求信息进行解析,以获取满足条件的关键信息(key-value)。例如,对于订机票任务引擎,可以提取满足订机票任务的关键信息,比如,起始地信息、目的地信息以及时间信息等。同时,所述任务引擎可以将相应的解析结果存储至任务存储器中。

任务存储器103,用于存储任务状态信息,并可以被后续的对话访问,以决定后续任务的初始状态和行为。在基于神经网络的对话系统中,任务储存器可以通过记忆网络(memorynetwork)来实现,编码各个历史任务的任务状态信息,并通过注意力机制来控制后续对话访问到相关的历史任务状态信息,参与决策当前对话的行为和输出。采用记忆网络实现任务存储器,可以更好的记忆较长时间的历史任务信息,并由于使用了注意力机制访问任务存储器,使得系统能够获得同当前任务最相关的背景知识。

在本发明实施例中,任务状态信息包括任务的关键信息,关键信息是指一个任务各个槽位及槽位上的取值。任务状态信息还可以包括其他信息,例如,任务的名称或标识,任务是否完成,或者任务对话过程中的其他对话信息。例如,一个订餐厅任务的任务状态信息如下所示:

{任务:“订餐厅”,

城市:“上海”

餐厅:“绿波廊(豫园路店)”,

日期:“2018-04-24”,

时间:“19:00”,

客人数量:“4”

确认:“是”}。

任务控制器104,用于控制多个任务的顺序执行,根据历史的任务状态状态信息确定下一个可能的任务。可选的,任务控制器还可以根据当前任务中人机交互系统与用户的对话,以及当前的环境信息确定一下个可能的任务。

当预测下一个任务不为空时,人机交互系统会主动发起与用户对话,并通过访问任务存储器中存储的状态信息,确定对话的行为和输出。当预测下一个任务为空时,人机交互系统则不会有后续动作,会等待用户主动触发下一次对话。

在本发明的一个实施例中,任务控制器由循环神经网络(recurrentneuralnetwork,rnn)实现,即使用rnn根据历史的任务状态,并结合当前的对话和环境信息,预测下一个任务。容易想到的是,本发明方案的任务控制器不局限于采用rnn实现,本领域技术人员可以采用其他的机器学习方法实现对话任务的预测。本发明实施例中,任务控制器可以是一个单独的模块,也可以由中控模块实现其功能,即,任务控制器和中控模块为一个模块。

在发明实施例中,在任务引擎模块获取满足条件的关键信息后,可由任务引擎模块根据所述关键信息,执行相应的任务,或者,可由中控模块根据所述关键信息,执行相应的任务,或者,可由智能终端根据所述关键信息,执行相应的任务,或者,可在人机交互系统中,开发一新模块,用于根据所述关键信息,执行相应的任务。在本申请中,并不具体限定根据关键信息,执行相应任务的主体。

需要说明的是,所述人机交互系统的功能可以由服务器实现,也可以由终端设备实现,还可以由服务器与终端设备共同实现。

此外,本发明实施例提供的人机交互系统由于采用任务存储器,例如记忆网络,和任务控制器例如循环神经网络rnn,使得整个系统可以方便进行深度学习的训练。

基于图1所示的人机交互系统,本发明实施例提供一种多任务处理处理方法如图2所示。需要说明的是,在本发明实施例中人机交互系统以智能助手为示例,为方便描述,部分文字以“智能助手”代替“人机交互系统”。下面将结合图3所示的本发明实施例中多任务处理场景示例来描述图2所示的多任务处理方法。

步骤s201:根据用户输入的请求信息确定第一任务。

在本申请实施例中,所述请求信息可为语音信息、文本信息或图像信息等。所述用户可输入请求信息至智能终端,所述智能终端可转发所述请求信息至服务器。在本申请实施例中,该步骤可以由图1所示人机交互系统中的中控模块完成。中控模块可对请求信息进行意图识别,确定第一任务。

如图3所示的多任务处理场景示例,在对话301中,智能终端接收到用户输入的请求消息“我想订一张去上海的机票”。人机交互系统中的中控模块通过对该请求消息进行意图识别,确定第一任务为“订机票”任务。

步骤s202:获取所述第一任务相应的关键信息并执行所述第一任务。

在本申请实施例中,每个任务对应的任务引擎中可设有不同的槽位,所述槽位可具体为一个变量,槽位的值可具体为该槽位所对应的关键信息。所述槽位也可称为信息槽,所述槽位所对应的关键信息也可称为槽信息。人机交互系统通过所述请求信息和/或智能助手与用户的一轮或多轮对话来提取各个槽位对应的关键信息,例如,可以由任务引擎模块获取任务的关键信息。

在图3所示的多任务处理场景示例中,“订机票”任务对应的任务引擎包括“航班号槽位”、“出发地槽位”、“目的地槽位”、“起飞时间槽位”和“到达时间槽位”等槽位。智能助手通过与用户的多轮对话来提取各个槽位对应的关键信息,并根据这些关键信息调用机票预定api(applicationprogramminginterface,应用程序编程接口)执行订机票的任务。

步骤s203:存储所述第一任务的任务状态信息,所述任务状态信息包括所述关键信息。

在本发明实施例中,所述任务状态信息可以通过任务存储器,例如记忆网络,进行存储。例如,在获取所述第一任务相应的关键信息之后,或者在执行完所述第一任务之后,存储所述第一任务的任务状态信息。所述任务状态信息包括所述关键信息,可选的,还可以包括其他信息,例如任务名称,任务完成状况等。

在图3所示的多任务处理场景示例中,订机票的任务状态信息302,包括所述订机票任务的关键信息,被存储到任务存储器中。

步骤s204:根据所述第一任务的任务状态信息,预测并发起第二任务。

在本发明实施例中,可以通过任务控制器,例如,rnn神经网络,根据所述第一任务的任务状态信息预测第二任务。可选的,所述预测的输入除了第一任务的任务状态信息以外,还可以包括用户所处的环境信息,例如,时间、地理位置等信息。预测第二任务后,可以由任务控制器或中控模块发起第二任务。

在图3所示的多任务处理场景示例中,在完成“订机票”任务之后,任务控制器根据“订机票”相应的任务状态信息预测下一个任务为订酒店,并由智能助手主动发起“订酒店”任务。

发起第二任务之后,任务引擎模块需要获取所述第二任务的关键信息。在本发明实施例中,可以通过访问任务存储器中订机票任务的任务状态信息,可以根据注意力机制计算出与第二任务,即订酒店任务最相关的信息,例如订机票任务中的目的地和到达时间信息。根据这些信息,智能助手主动发起与用户的对话交互,如图3中对话303,逐步确定城市,酒店名称、入住时间、离开时间、房间类型等信息,即订酒店任务引擎的各槽位信息,并通过酒店预订api完成酒店的预订。

在本发明实施例中,第二任务的任务状态信息也会被存储,并作为预测下一个任务的输入。在图3所示的多任务处理场景示例中,订酒店任务状态信息304被存储在任务存储器中。任务控制器根据订酒店任务的状态信息304预测下一个任务为空,即无需发起下一个任务。

在本发明实施例中,各任务的状态信息能够共享并得到利用,人机交互系统可以根据存储的任务状态信息预测下一个任务,并主动发起预测出的任务,提高了人机交互系统处理多任务的智能性和效率。

图4所示的是本发明实施例中多任务处理场景的另一个示例。该示例描述了图3所示的场景之后的多任务处理。在该示例中,订机票任务与订酒店任务均已完成,相应的订机票任务状态信息401和订酒店任务状态信息402已经存储在任务存储器中。具体实现已在前述实施例中描述,此处不再赘述。

如图4所示,在对话403中,用户主动发起“订餐厅”任务,并与智能助手进行多轮对话,逐步确定订餐厅任务的关键信息,包括城市、餐厅、日期、时间、客人人数、以及是否确认等信息。在确认订餐厅任务的关键信息时,人机交互系统可以访问前述订机票任务和订酒店任务的任务状态信息,并获取其中与订餐厅任务相关的信息,例如城市、时间等信息。

之后,人机交互系统将订餐厅任务相关的任务状态信息404存储在任务存储其中,任务控制器通过所述订餐厅任务的任务状态信息,预测下一个任务为“与第三方(餐厅)对话”。

如前述实施例描述,在预测任务时,还可以将环境信息作为输入。

随后,智能助手通过拨打电话主动发起与第三方(餐厅)的对话405。在该对话中,智能助手通过访问前述订餐厅任务的任务状态信息跟餐厅逐步确定订餐厅的关键信息,并完成餐厅的预定。

完成餐厅预定后,人机交互系统更新在任务存储器中的订餐厅任务的任务状态信息,将任务状态信息中的是否确认信息由“否”修改为“是”,得到更新后的任务状态信息406。之后任务控制器预测下一个任务为“与用户确认订餐结果”。智能助手发起与用户的对话407,告知用户已经完成餐厅的预订。“与用户确认订餐结果”完成后无需更新相应的任务状态信息,此时的任务状态信息408和任务状态信息406一致。之后任务控制器根据存储的任务状态信息,预测下一个任务为“订车”。订车任务的关键信息获取和任务执行与前述任务类似,此处不再赘述。

在本实施例中,人机交互系统可以根据存储的任务状态信息预测下一个任务,并主动发起向第三方的对话,提高了人机交互系统处理多任务的智能性和效率。

本发明实施例提供的方法中,存储的任务状态信息可以被后续的任务访问,因此,还可以根据历史任务状态信息辅助人机交互系统理解用户意图,例如对当前对话语句的语义消歧。如图5所示,为一个根据历史任务状态信息对当前任务语句进行语义消歧的示例。在该示例中,当前任务为订餐厅任务,人机交互系统会利用注意力机制,结合同当前任务邻近的历史订机票任务的任务状态信息501对订餐厅任务对话502进行语义消歧。

在对话502中,用户发起订餐厅任务时直接说订26日的晚餐,人机交互系统根据订机票任务的任务状态信息中的起飞时间和到达时间信息,获取月份为4月,于是理解用户期望的具体日期为4月26日。随后,用户要求订餐地点离机场近一些,人机交互系统根据订机票任务的任务状态信息中的目的地信息“上海浦东”,推测消歧后的机构名为上海浦东机场。

本发明实施例中,人机交互系统通过访问存储的任务状态信息辅助理解用户意图,提高了人机交互系统的智能性和工作效率。

前述一种多任务处理方法的实施例中描述了人机交互系统,例如人机交互系统中的任务引擎模块,可以访问任务存储器中存储的任务状态信息,并通过注意力机制确认与当前任务相关的信息,进而生成当前对话的动作以及后续的语句。下面结合图6所示的本发明实施例中访问历史任务状态信息的一个示例来详细描述。

在图6所示的示例中,订机票任务的任务状态信息601在任务存储器中以key-value(关键信息)形式存储,key表示槽位,value表示槽位具体的值。订机票任务的任务状态信息601包含“航班号槽位”、“起始地槽位”、“目的地槽位”、“起飞时间槽位”和“到达时间槽位”等槽位及其取值。在记忆网络中,这些关键信息被表示为嵌入(embedding)向量。

在当前订酒店任务中,人机交互系统使用注意力机制来计算订机票任务的任务状态信息中每个槽位与当前任务的相关性,即每个槽位的注意力权重向量。例如,注意力权重向量可以根据公式:att=softmax(wkt)v进行计算。其中,att表示注意力权重向量,softmax表示指数归一化函数,w表示模型参数,k为key的向量表示,v为value的向量表示。

如图6所示,在订机票任务的任务状态信息中,与订酒店任务较相关的槽位是到达地点和到达时间,在一定程度上决定了酒店所在城市和入住时间。人机交互系统根据注意力权重向量以及具体的key-value信息,确定了当前对话的动作602:inform(task=hotel,date=2018-04-23,city=上海),该动作表示询问用户是否要预订2018-04-23在上海市的酒店。然后人机交互系统可以通过相应的模块,例如语言生成模块,生成自然语言发起对话603:“是否需要帮您预订4月23日在上海的酒店?”。人机交互系统中自然语言的生成可以采用现有技术,此处不做赘述。

本实施例中,人机交互系统采用注意力机制确认历史任务状态信息中与当前任务相关的信息,使得人机交互系统对历史任务状态信息的利用更专注、更高效。

前述一种多任务处理方法的实施例中描述了任务控制器可以根据存储的任务状态信息预测下一个任务。可选的,任务控制器还可以结合环境信息来进行预测。图7所示为本发明实施例中任务控制器预测任务的一个示例。

在该示例中,任务控制器由循环神经网络rnn实现。对于每个任务,将其任务状态信息xt、以及用户所处的环境信息zt输入到循环神经网络,并根据历史的隐状态向量ht-1计算出当前的隐状态向量ht,进而根据当前的隐状态向量ht来预测下一个任务,并以此类推。

在一个示例中,隐状态向量ht可以根据公式:ht=f(wxxt+wzzt+whht-1+b)进行计算。其中,f为变换函数,例如sigmoid或relu函数,wx,wz和wh为参数矩阵,分别与任务状态信息xt,环境信息zt和历史隐状态向量ht-1相乘,b为参数向量。

前述实施例已经详细描述图1所示的人机交互系统如何完成图2所示的多任务处理方法。本领域技术人员能够理解,图1所示人机交互系统的结构是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,本发明实施例中描述的各个功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中,或者是一个或以上模块集成在另一个设备上。上述模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

所述模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个方法实施例中的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

图8是本发明实施例提供的人机交互系统的硬件结构示意图。图8所示人机交互系统包括存储器801、处理器802、通信接口803以及总线804。其中,存储器801、处理器802、通信接口803通过总线804实现彼此之间的通信连接。

存储器801可以是只读存储器(readonlymemory,rom),静态存储设备,动态存储设备或者随机存取存储器(randomaccessmemory,ram)。存储器801可以存储程序,当存储器801中存储的程序被处理器802执行时,处理器802和通信接口803用于执行前述方法实施例中的步骤。

在一种示例中,处理器802可以采用通用的中央处理器(centralprocessingunit,cpu),数字信号处理器(digitalsignalprocessing,dsp),应用专用集成电路(applicationspecificintegratedcircuit,asic),图形处理器(graphicsprocessingunit,gpu),现成可编程门阵列(fieldprogrammablegatearray,fpga)或者一个或多个集成电路,用于执行相关程序,以实现前述实施例提供的人机交互系统中的各个模块,例如,中控模块,任务引擎模块,任务存储器和任务控制器,所需执行的功能,或者执行前述多任务处理方法实施例中的步骤,例如,步骤s201-步骤s203。

在另一种示例中,处理器802还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,前述实施例提供的多任务处理方法的各个步骤可以通过处理器802中硬件的集成逻辑电路或者软件形式的指令完成。

通信接口803使用例如但不限于收发器一类的收发装置,来实现人机交互系统与其他设备或通信网络之间的通信。

总线804可包括人机交互系统各个部件之间传送信息的通路。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,本申请描述的系统、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。

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