意图识别方法及电子设备与流程

文档序号:26587162发布日期:2021-09-10 19:41阅读:78来源:国知局
意图识别方法及电子设备与流程
意图识别方法及电子设备
1.本技术要求于2020年3月9日提交中国国家知识产权局、申请号为202010159364.x、申请名称为“意图识别方法及电子设备”,于2020年8月7日提交中国国家知识产权局、申请号为202010791068.1、申请名称为“意图识别方法、多示例学习模型训练方法和相关装置”,于2020年9月3日提交中国国家知识产权局、申请号为202010918192.x、申请名称为“一种意图识别方法及装置”的中国专利申请的优先权,于2020年9月16日提交中国国家知识产权局、申请号为202010973466.5、申请名称为“一种模型训练方法及相关设备”,于2020年10月16日提交中国国家知识产权局、申请号为202011111562.5、申请名称为“基于神经网络的数据处理方法及相关设备”,于2021年2月9日提交中国国家知识产权局、申请号为202110176533.5、申请名称为“规则引擎的执行方法、装置及规则引擎”,其全部内容通过引用结合在本技术中。
技术领域
2.本技术涉及人工智能(artificial intelligence,ai)领域中决策与推理子领域,尤其涉及意图识别方法及相关设备。


背景技术:

3.在分布式场景中,每个用户或家庭都会有多台智能设备,在这种大环境下,用户需要电子设备能智能的响应其请求。
4.目前电子设备一般根据当前时刻的单模态输入(当前使用的那一种输入方式),结合规则预测用户意图,为该意图作出决策。如图1为现有技术一个意图识别的场景。在搜索输入框中,当用户输入健身水果这个搜索词时,由于健身水果这个词无法完整清楚的表现出用户意图,其表示的含义可能有很多种。电子设备会根据用户的输入智能识别用户可能的意图作为候选意图展示给用户。当用户选择某个候选意图时,电子设备会展示对所选择的意图的搜索结果。
5.然而,仅根据用户当前时刻的单模态输入获取的信息,无法准确预测用户当前时刻的意图。一方面获取的信息不足以推断出准确的行为逻辑,无法为预测意图提供足够的依据;另一方面,不可避免某一时刻出现某一偶然事件,该偶然事件与用户真实意图并无关联。因此现有技术中对用户意图的识别具有极大的局限性且准确性较差。


技术实现要素:

6.本技术提供了意图识别方法及电子设备,根据对一个时间段内获取的数据识别出的实体序列来预测用户意图,提升了意图识别的准确性。
7.第一方面,本技术提供了一种意图识别方法,该方法包括:第一电子设备确定第一触发;响应于第一触发,第一电子设备在第一时间段内获取第一数据序列,第一数据序列包括多个数据,多个数据中至少两个数据的输入方式不同;第一电子设备根据第一数据序列,确定用户的第一意图;第一电子设备根据第一意图,确定第一待执行动作。
8.由此,电子设备可以根据多设备的环境感知和用户的多模态输入获得对环境的完整描述,并结合一个时间段内的用户输入、环境感知和上下文信息,获取一个能反应随时间变化、并且能随环境变化而扩展的完整无偏颇的意图体系,据此做出决策,如推断出接下来一段时间内用户想执行的动作或需要的服务,以决策在何种设备上响应用户的何种需求从而为用户精准地提供他所需要的响应或服务的决策。
9.在一种可能的实现方式中,第一电子设备根据第一数据序列,确定用户的第一意图;包括:第一电子设备根据第一数据序列,确定第一实体序列,第一实体序列包括至少一个实体,实体为现实世界中客观存在的并可以相互区分的对象、事物或动作;第一电子设备根据第一实体序列,确定第一意图,其中,第一意图用于确定动作序列。由此,电子设备可以给予数据序列确定出用户的意图。
10.在一种可能的实现方式中,第一电子设备根据第一意图,确定第一待执行动作,包括:第一电子设备根据第一实体序列和第一意图,确定第一动作序列,第一动作序列包括第一待执行动作;在第一电子设备确定第一待执行动作之后,还包括:第一电子设备执行第一待执行动作。由此,电子设备可以给予实体和意图确定出需要执行的动作,之后,电子设备既可以执行确定出的动作。
11.在一种可能的实现方式中,第一待执行动作中包含设备标识与待执行动作,第一电子设备执行第一待执行动作,具体包括:第一电子设备确定第一待执行动作中的设备标识是否为第一电子设备的设备标识;当确定第一待执行动作中的设备标识为第一电子设备的设备标识时,第一电子设备执行第一待执行动作;否则,第一电子设备发送第一指令给第一待执行动作中设备标识对应的第二电子设备,第一指令用于指示第二电子设备执行第一待执行动作。
12.由此,第一待执行动作对应的执行设备可以为该第一电子设备,也可以为其他电子设备,根据该第一待执行动作中的设备标识,第一电子设备可以确定是自己执行该第一待执行动作,还是发送指令让相应的第二电子设备执行该第一待执行动作,这样,分布式场景中,该第一电子设备可以方便的控制其他电子设备以响应用户需求。
13.在一种可能的实现方式中,该方法还包括:第一电子设备将出现频率超出预设第一频率阈值的异常特征向量集合确定为新的实体,其中,异常特征向量集合为在实体识别时,与可识别为实体的特征向量集合的区分度超出预设区分阈值的无法识别为实体的特征向量集合。由此,通过对异常特征向量的识别,该第一电子设备可以扩展自己的实体仓库,从而动态扩展自己可识别的实体范围,可以进一步提高意图识别的准确性。
14.在一种可能的实现方式中,该方法还包括:第一电子设备将出现频率超出预设第二频率阈值的异常动作确定为新的意图,其中,异常动作为未出现过的且不在已有意图对应的动作序列中的动作;第一电子设备根据异常动作出现前识别到的实体序列,建立新的意图与实体序列之间的对应关系。由此,通过对异常动作的识别,该第一电子设备可以扩展自己的意图仓库,并建立新的意图和动作序列的对应关系,这样,可以识别到更多用户个性化的意图,提供与用户需求更匹配的决策,提升了用户体验。
15.在一种可能的实现方式中,第一电子设备根据第一数据序列,确定第一实体序列,具体包括:第一电子设备从第一数据序列中提取特征向量,得到第一特征向量集合,第一特征向量集合中包括所有从第一数据序列中提取得到的特征向量,特征向量用于表示第一数
据序列的特征;第一电子设备将第一特征向量集合输入实体识别模型,得到第一实体序列,实体识别模型为根据第一电子设备中存储的实体数据训练得到的特征向量与实体的对应关系,实体数据为实体的存储形式,实体数据至少包括实体的编号及表示该实体的特征向量集合。
16.在一种可能的实现方式中,第一电子设备根据第一实体序列,确定第一意图,具体包括:第一电子设备根据第一实体序列和存储的知识图谱,确定多个候选意图;第一电子设备采用预设的强化学习算法,从多个候选意图中确定第一意图。由此,基于知识图谱和强化学习识别出第一意图,提升意图识别的准确性。
17.在一种可能的实现方式中,第一电子设备根据第一实体序列和存储的知识图谱,确定多个候选意图,具体包括:根据第一实体序列和知识图谱,确定用户的状态信息和场景信息;状态信息用于表示用户的当前状态,场景信息用于表示用户当前所处的环境;
18.根据状态信息、场景信息和候选意图的对应关系,确定状态信息和场景信息对应的多个候选意图。
19.在一种可能的实现方式中,采用预设的强化学习算法,从多个候选意图中确定第一意图,包括:确定与多个候选意图一一对应的意图摇臂;根据第一实体序列、状态信息、场景信息、与多个候选意图一一对应的意图摇臂,以及强化学习算法,从多个候选意图中确定第一意图。
20.在一种可能的实现方式中,第一电子设备根据第一实体序列,确定第一意图,具体包括:第一电子设备将第一实体序列输入意图识别模型,得到第一意图,意图识别模型为根据对应的实体序列与意图的数据训练得到的实体序列与意图的对应关系。
21.在一种可能的实现方式中,第一电子设备将第一实体序列输入意图识别模型之前,还包括:第一电子设备将测试数据输入至第一生成器,经过第一生成器处理后得到第一模拟数据;第一电子设备将测试数据和第一模拟数据输入至第一判别器,经过第一判别器处理后得到第一判别结果,第一判别结果用于指示测试数据和第一模拟数据之间的差异;第一电子设备根据第一判别结果更新第一生成器的权重系数,得到第二生成器;第一电子设备在第二生成器中生成第二模拟数据;第一电子设备将第一目标模拟数据输入预设的训练网络,训练得到意图识别模型,第一目标模拟数据包括第二模拟数据。
22.在一种可能的实现方式中,第一电子设备中配置有群体粗粒度模型和细粒度模型;第一电子设备将第一实体序列输入意图识别模型之前,还包括:第一电子设备获取细粒度标签与粗粒度标签的映射关系;第一电子设备根据映射关系将训练数据集中的细粒度数据映射为粗粒度数据;第一电子设备将粗粒度数据输入到群体粗粒度模型进行训练,通过多个节点设备的联合学习对群体粗粒度模型进行更新,并将细粒度数据输入到细粒度模型进行训练,其中,多个节点设备中包括第一电子设备;第一电子设备组合群体粗粒度模型和细粒度模型得到意图识别模型,意图识别模型的标记空间映射为细粒度标签,意图识别模型的输出结果用于更新细粒度模型。
23.在一种可能的实现方式中,第一电子设备中还配置有个体粗粒度模型,个体粗粒度模型的标记空间映射为粗粒度标签;第一电子设备组合群体粗粒度模型和细粒度模型得到意图识别模型,包括:第一电子设备组合群体粗粒度模型、个体粗粒度模型和细粒度模型以得到意图识别模型。
24.在一种可能的实现方式中,第一电子设备执行第一待执行动作之后,还包括:第一电子设备确定待识别的打点数据序列,待识别的打点数据序列由打点数据组成,打点数据包括第一电子设备记录的用户的操作数据和/或第一电子设备对用户操作的响应数据;第一电子设备将待识别的打点数据序列输入多示例学习模型,得到多个子序列;多示例学习模型为已采用第一电子设备中的打点数据序列训练过的多示例学习模型;第一电子设备按照预设意图规则确定第一子序列的意图,第一子序列为多个子序列中的一个子序列,预设意图规则用于根据序列中的打点数据确定序列的意图;第一电子设备基于确定出的多个子序列的意图,更新意图识别模型。由此,基于用户的操作数据更新意图识别模型,提升意图识别的准确性。
25.在一种可能的实现方式中,第一电子设备根据第一实体序列和第一意图,确定第一动作序列,具体包括:第一电子设备将第一实体序列和第一意图输入动作预测模型,得到第一动作序列,动作预测模型为根据对应的实体序列、意图与动作序列的数据训练得到的实体序列、意图与动作序列的对应关系。
26.在一种可能的实现方式中,第一电子设备根据第一实体序列和第一意图,确定第一动作序列,具体包括:第一电子设备将第一实体序列和第一意图输入规则引擎,得到第一动作序列,规则引擎中包含根据用户使用习惯或使用场景设定的实体序列、意图与动作序列的对应关系。
27.在一种可能的实现方式中,规则引擎包括:第一节点,第一节点至少包括第一类型节点和第二类型节点;第一类型节点,用于根据输入规则引擎中的第一实体的第一属性,从内存中获取第一语义对象对第一实体进行匹配,得到第一匹配结果,第一属性用于表征第一实体的变化频率;第二类型节点,用于根据输入规则引擎中的第二实体的第二属性,从文件中获取第二语义对象对第二实体进行匹配,得到第二匹配结果,第二属性用于表征第二实体的变化频率,第二属性不同于第一属性;其中,第一匹配结果和第二匹配结果共同用于确定是否执行第一待执行动作。
28.在一种可能的实现方式中,第一时间段与第一触发具有对应关系。
29.在一种可能的实现方式中,第一数据序列由第一电子设备从触控操作的输入、传感数据的输入、文本数据的输入、语音数据的输入、视频数据的输入以及与第一电子设备互联的智能设备的传输数据的输入中至少两种输入方式得到;第一待执行动作包括启动目标应用程序、启动目标服务、后台加载目标应用程序、无线连接目标设备、发送通知消息中一种动作或服务。
30.在第一方面中,本技术实施例还提供了一种电子设备,该电子设备包括:至少一个存储器,用于存储程序;至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第一方面中提供的方法。
31.在第一方面中,本技术实施例还提供了计算机存储介质,计算机存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行第一方面中提供的方法。
32.在第一方面中,本技术实施例还提供了一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行第一方面中提供的方法。
33.在第一方面中,本技术实施例还提供了一种规则引擎的执行装置,其特征在于,装置运行计算机程序指令,以执行第一方面中提供的方法。
34.第二方面,本技术提供了一种意图识别方法,该方法包括:第一电子设备确定第一触发;响应于该第一触发,该第一电子设备在第一时间段内获取第一数据,该第一数据用于确定实体,该实体为现实世界中客观存在的并可以相互区分的对象、事物或动作;该第一电子设备根据该第一数据,确定第一实体序列,该第一实体序列包括至少一个实体;该第一电子设备根据该第一实体序列,确定第一意图,该第一意图用于确定动作序列;该第一电子设备根据该第一实体序列和该第一意图,确定第一动作序列,该第一动作序列包括第一待执行动作;该第一电子设备执行所述第一待执行动作。
35.由此,电子设备可以根据多设备的环境感知和用户的多模态输入获得对环境的完整描述,并结合一个时间段内的用户输入、环境感知和上下文信息,获取一个能反应随时间变化、并且能随环境变化而扩展的完整无偏颇的意图体系,据此做出决策,如推断出接下来一段时间内用户想执行的动作或需要的服务,以决策在何种设备上响应用户的何种需求从而为用户精准地提供他所需要的响应或服务的决策。
36.在一种可能的实现方式中,该第一待执行动作中包含设备标识与待执行动作,该第一电子设备执行该第一待执行动作,具体包括:该第一电子设备确定该第一待执行动作中的设备标识是否为该第一电子设备的设备标识;当确定该第一待执行动作中的设备标识为该第一电子设备的设备标识时,所述第一电子设备执行该第一待执行动作;否则,该第一电子设备发送第一指令给该第一待执行动作中设备标识对应的第二电子设备,该第一指令用于指示该第二电子设备执行该第一待执行动作。
37.由此,第一待执行动作对应的执行设备可以为该第一电子设备,也可以为其他电子设备,根据该第一待执行动作中的设备标识,第一电子设备可以确定是自己执行该第一待执行动作,还是发送指令让相应的第二电子设备执行该第一待执行动作,这样,分布式场景中,该第一电子设备可以方便的控制其他电子设备以响应用户需求。
38.在一种可能的实现方式中,该方法还包括:该第一电子设备将出现频率超出预设第一频率阈值的异常特征向量集合确定为新的实体,其中,该异常特征向量集合为在实体识别时,与可识别为实体的特征向量集合的区分度超出预设区分阈值的无法识别为实体的特征向量集合。
39.由此,通过对异常特征向量的识别,该第一电子设备可以扩展自己的实体仓库,从而动态扩展自己可识别的实体范围,可以进一步提高意图识别的准确性。
40.在一种可能的实现方式中,该方法还包括:该第一电子设备将出现频率超出预设第二频率阈值的异常动作确定为新的意图,其中,该异常动作为未出现过的且不在已有意图对应的动作序列中的动作;该第一电子设备根据该异常动作出现前识别到的实体序列,建立该新的意图与实体序列之间的对应关系。
41.由此,通过对异常动作的识别,该第一电子设备可以扩展自己的意图仓库,并建立新的意图和动作序列的对应关系,这样,可以识别到更多用户个性化的意图,提供与用户需求更匹配的决策,提升了用户体验。
42.在一种可能的实现方式中,该第一电子设备根据所述第一数据,确定第一实体序列,具体包括:该第一电子设备从该第一数据中提取特征向量,得到第一特征向量集合,该第一特征向量集合中包括所有从该第一数据中提取得到的特征向量,该特征向量用于表示该第一数据的特征;该第一电子设备将该第一特征向量集合输入实体识别模型,得到该第
一实体序列,该实体识别模型为根据该第一电子设备中存储的实体数据训练得到的特征向量与实体的对应关系,该实体数据为该实体的存储形式,该实体数据至少包括实体的编号及表示该实体的特征向量集合。
43.在一种可能的实现方式中,该第一电子设备将该第一特征向量集合输入实体识别模型,识别得到实体后,可以不仅仅将识别得到的实体组成该第一实体序列,还可以将该实体识别模型历史输出的实体与本次识别得到的实体,共同组成该第一实体序列,此处不作限定。
44.在一种可能的实现方式中,该实体识别模型可以存储在不同位置,示例性的,该实体识别模型预置存储在所述第一电子设备中;或,该实体识别模型存储在该第一电子设备可访问的云服务器中,此处不作限定。
45.在一种可能的实现方式中,该实体识别模型可以有不同的产生方式,示例性的,该实体识别模型由厂商预先训练得到;或,该实体识别模型为该第一电子设备根据该第一电子设备中存储的实体数据训练得到,此处不作限定。
46.在一种可能的实现方式中,该第一电子设备根据该第一实体序列,确定第一意图,具体包括:该第一电子设备将该第一实体序列输入意图识别模型,得到该第一意图,该意图识别模型为根据对应的实体序列与意图的数据训练得到的实体序列与意图的对应关系。
47.在一种可能的实现方式中,该意图识别模型可以存储在不同位置,示例性的,该意图识别模型预置存储在该第一电子设备中;或,该意图识别模型存储在该第一电子设备可访问的云服务器中,此处不作限定。
48.在一种可能的实现方式中,该意图识别模型可以有不同的产生方式,示例性的,该意图识别模型由厂商预先训练得到;或,该意图识别模型为该第一电子设备根据该第一电子设备中存储的对应的实体序列与意图的数据训练得到;或,该意图识别模型为该第一电子设备根据其他用户共享的对应的实体序列与意图的数据训练得到,此处不作限定。
49.在一种可能的实现方式中,该第一电子设备根据该第一实体序列和该第一意图,确定第一动作序列,具体包括:该第一电子设备将该第一实体序列输入动作预测模型,得到该第一动作序列,该动作预测模型为根据对应的实体序列、意图与动作序列的数据训练得到的实体序列、意图与动作序列的对应关系;
50.由此,对于复杂应用场景,该第一电子设备可以将第一实体序列和第一意图输入动作预测模型,预测出该第一动作序列,挖掘出用户潜在的需求,帮助用于进行决策。
51.在一种可能的实现方式中,该第一电子设备根据该第一实体序列和该第一意图,确定第一动作序列,具体包括:所述第一电子设备根据决策规则,确定所述第一实体序列和所述第一意图序列对应的所述第一动作序列,所述决策规则为根据用户使用习惯或使用场景设定的实体序列、意图与动作序列的对应关系。
52.由此,对于简单应用场景,该第一电子设备可以直接根据预存的决策规则,直接确定可能需要进行的动作,不需要使用动作预测模型去预测,可以更快并更准确的满足用户需求。
53.在一种可能的实现方式中,该动作预测模块可以存储在不同的位置,示例性的,该动作预测模型预置存储在该第一电子设备中;或,该动作预测模型存储在该第一电子设备可访问的云服务器中,此处不作限定。
54.在一种可能的实现方式中,该动作预测模块可以有不同的产生方式,示例性的,该动作预测模型由厂商预先训练得到;或,该动作预测模型为该第一电子设备根据该第一电子设备中存储的对应的实体序列、意图与动作序列的数据训练得到;或,该动作预测模型为所述第一电子设备根据其他用户共享的对应的实体序列、意图与动作序列的数据训练得到,此处不作限定。
55.在一种可能的实现方式中,该决策规则可以存储在不同的位置,示例性的,该决策规则预置存储在该第一电子设备中;或,该决策规则存储在该第一电子设备可访问的云服务器中,此处不作限定。
56.在一种可能的实现方式中,该决策规则由厂商预先设定得到;或,该决策规则为该第一电子设备根据用户的使用习惯或使用场景设定得到;或,该决策规则为由其他用户共享得到;或该决策规则由用户从第三方数据服务商获取得到,此处不作限定。
57.在一种可能的实现方式中,该第一时间段与该第一触发具有对应关系,当第一电子设备确定第一触发时,即可确定与该第一触发对应的第一时间段。
58.在一种可能的实现方式中,该第一数据由该第一电子设备从触控操作的输入、传感数据的输入、文本数据的输入、语音数据的输入、视频数据的输入以及与该第一电子设备互联的智能设备的传输数据的输入中至少两种输入方式得到。可以理解的是,在一些实施例中,该第一数据还可以从其他更多的数据输入方式中得到,此处不作限定。
59.在一种可能的实现方式中,该第一待执行动作包括启动目标应用程序、启动目标服务、后台加载目标应用程序、无线连接目标设备、发送通知消息中一种动作或服务。可以理解的是,在一些实施例中,该第一待执行动作还可以为其他的动作或服务,此处不作限定。
60.在第二方面中,本技术实施例还提供了一种电子设备,作为第一电子设备,该第一电子设备包括:一个或多个处理器和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该第一电子设备执行:确定第一触发;响应于该第一触发,在第一时间段内获取第一数据,该第一数据用于确定实体,该实体为现实世界中客观存在的并可以相互区分的对象、事物或动作;根据该第一数据,确定第一实体序列,该第一实体序列包括至少一个实体;根据该第一实体序列,确定第一意图,该第一意图用于确定动作序列;根据该第一实体序列和该第一意图,确定第一动作序列,该第一动作序列包括第一待执行动作;执行该第一待执行动作。
61.由此,该电子设备可以根据多设备的环境感知和用户的多模态输入获得对环境的完整描述,并结合一个时间段内的用户输入、环境感知和上下文信息,获取一个能反应随时间变化、并且能随环境变化而扩展的完整无偏颇的意图体系,据此做出决策,如推断出接下来一段时间内用户想执行的动作或需要的服务,以决策在何种设备上响应用户的何种需求从而为用户精准地提供他所需要的响应或服务的决策。
62.在一种可能的实现方式中,该第一待执行动作中包含设备标识与待执行动作,该一个或多个处理器,具体用于调用该计算机指令以使得该第一电子设备执行:确定该第一待执行动作中的设备标识是否为该第一电子设备的设备标识;当确定该第一待执行动作中的设备标识为该第一电子设备的设备标识时,执行该第一待执行动作;否则,发送第一指令
给该第一待执行动作中设备标识对应的第二电子设备,该第一指令用于指示该第二电子设备执行该第一待执行动作。
63.在一种可能的实现方式中,该一个或多个处理器,还用于调用该计算机指令以使得该第一电子设备执行:将出现频率超出预设第一频率阈值的异常特征向量集合确定为新的实体,其中,该异常特征向量集合为在实体识别时,与可识别为实体的特征向量集合的区分度超出预设区分阈值的无法识别为实体的特征向量集合。
64.在一种可能的实现方式中,该一个或多个处理器,还用于调用该计算机指令以使得该第一电子设备执行:将出现频率超出预设第二频率阈值的异常动作确定为新的意图,其中,该异常动作为未出现过的且不在已有意图对应的动作序列中的动作;根据该异常动作出现前识别到的实体序列,建立该新的意图与实体序列之间的对应关系。
65.在一种可能的实现方式中,该一个或多个处理器,具体用于调用该计算机指令以使得该第一电子设备执行:从该第一数据中提取特征向量,得到第一特征向量集合,该第一特征向量集合中包括所有从该第一数据中提取得到的特征向量,该特征向量用于表示该第一数据的特征;将该第一特征向量集合输入实体识别模型,得到该第一实体序列,该实体识别模型为根据该存储器中存储的实体数据训练得到的特征向量与实体的对应关系,该实体数据为该实体的存储形式,该实体数据至少包括实体的编号及表示该实体的特征向量集合。
66.在一种可能的实现方式中,将该第一特征向量集合输入实体识别模型,识别得到实体后,可以不仅仅将识别得到的实体组成该第一实体序列,还可以将该实体识别模型历史输出的实体与本次识别得到的实体,共同组成该第一实体序列,此处不作限定。
67.在一种可能的实现方式中,该实体识别模型可以存储在不同位置,示例性的,该实体识别模型预置存储在该存储器中;或,该实体识别模型存储在该第一电子设备可访问的云服务器中,此处不作限定。
68.在一种可能的实现方式中,该实体识别模型可以有不同的产生方式,示例性的,该实体识别模型由厂商预先训练得到;或,该实体识别模型为该第一电子设备根据该存储器中存储的实体数据训练得到,此处不作限定。
69.在一种可能的实现方式中,该一个或多个处理器,具体用于调用该计算机指令以使得该第一电子设备执行:将该第一实体序列输入意图识别模型,得到该第一意图,该意图识别模型为根据对应的实体序列与意图的数据训练得到的实体序列与意图的对应关系。
70.在一种可能的实现方式中,该意图识别模型可以存储在不同位置,示例性的,该意图识别模型预置存储在该存储器中;或,该意图识别模型存储在该第一电子设备可访问的云服务器中,此处不作限定。
71.在一种可能的实现方式中,该意图识别模型可以有不同的产生方式,示例性的,该意图识别模型由厂商预先训练得到;或,该意图识别模型为该第一电子设备根据该存储器中存储的对应的实体序列与意图的数据训练得到;或,该意图识别模型为该第一电子设备根据其他用户共享的对应的实体序列与意图的数据训练得到,此处不作限定。
72.在一种可能的实现方式中,该一个或多个处理器,具体用于调用该计算机指令以使得该第一电子设备执行:将该第一实体序列输入动作预测模型,得到该第一动作序列,该动作预测模型为根据对应的实体序列、意图与动作序列的数据训练得到的实体序列、意图
与动作序列的对应关系;
73.在一种可能的实现方式中,该一个或多个处理器,具体用于调用该计算机指令以使得该第一电子设备执行:根据决策规则,确定该第一实体序列和该第一意图序列对应的所述第一动作序列,该决策规则为根据用户使用习惯或使用场景设定的实体序列、意图与动作序列的对应关系。
74.在一种可能的实现方式中,该动作预测模块可以存储在不同的位置,示例性的,该动作预测模型预置存储在该存储器中;或,该动作预测模型存储在该第一电子设备可访问的云服务器中,此处不作限定。
75.在一种可能的实现方式中,该动作预测模块可以有不同的产生方式,示例性的,该动作预测模型由厂商预先训练得到;或,该动作预测模型为该第一电子设备根据该存储器中存储的对应的实体序列、意图与动作序列的数据训练得到;或,该动作预测模型为所述第一电子设备根据其他用户共享的对应的实体序列、意图与动作序列的数据训练得到,此处不作限定。
76.在一种可能的实现方式中,该决策规则可以存储在不同的位置,示例性的,该决策规则预置存储在该存储器中;或,该决策规则存储在该第一电子设备可访问的云服务器中,此处不作限定。
77.在一种可能的实现方式中,该决策规则由厂商预先设定得到;或,该决策规则为该第一电子设备根据用户的使用习惯或使用场景设定得到;或,该决策规则为由其他用户共享得到;或该决策规则由用户从第三方数据服务商获取得到,此处不作限定。
78.在一种可能的实现方式中,该第一时间段与该第一触发具有对应关系,当确定第一触发时,即可确定与该第一触发对应的第一时间段。
79.在一种可能的实现方式中,该第一数据从触控操作的输入、传感数据的输入、文本数据的输入、语音数据的输入、视频数据的输入以及与该第一电子设备互联的智能设备的传输数据的输入中至少两种输入方式得到。可以理解的是,在一些实施例中,该第一数据还可以从其他更多的数据输入方式中得到,此处不作限定。
80.在一种可能的实现方式中,该第一待执行动作包括启动目标应用程序、启动目标服务、后台加载目标应用程序、无线连接目标设备、发送通知消息中一种动作或服务。可以理解的是,在一些实施例中,该第一待执行动作还可以为其他的动作或服务,此处不作限定。
81.在第二方面中,本技术实施例还提供了一种芯片,该芯片应用于电子设备,该芯片包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第二方面以及第二方面中任一可能的实现方式描述的方法。
82.在第二方面中,本技术实施例还提供一种包含指令的计算机程序产品,当上述计算机程序产品在电子设备上运行时,使得上述电子设备执行如第二方面以及第二方面中任一可能的实现方式描述的方法。
83.在第二方面中,本技术实施例还提供一种计算机可读存储介质,包括指令,当上述指令在电子设备上运行时,使得上述电子设备执行如第二方面以及第二方面中任一可能的实现方式描述的方法。
84.第三方面,本技术实施例提供了一种意图识别方法,该方法可以获取用户感知数
据,并根据该用户感知数据和存储的知识图谱,确定多个候选意图,之后采用预设的强化学习算法,从多个候选意图中确定目标意图。其中,用户感知数据用于表示用户的行为信息。在一个例子中,用户感知数据中可以包括多个数据,多个数据中至少两个数据的输入方式不同。
85.本技术实施例提供的意图识别方法,在获取到用于表示用户的行为信息的用户感知数据后,可以根据用户感知数据和存储的知识图谱,确定多个候选意图,并采用预设的强化学习算法,从多个候选意图中确定目标意图。这样,由于用户感知数据仅表示用户的行为信息,并未表明用户的意图,实现了在用户未表明自身意图的情况下,主动识别用户意图,从而提高了用户体验。
86.在一种可能的实现方式中,上述“根据用户感知数据和存储的知识图谱,确定多个候选意图”的方法可以包括:意图识别装置确定用户感知数据中的实体和实体的描述数据,并根据实体和实体的描述数据,以及知识图谱,确定用户的状态信息和场景信息。之后,意图识别装置根据状态信息、场景信息和候选意图的对应关系,确定状态信息和场景信息对应的多个候选意图。其中,状态信息用于表示用户的当前状态,场景信息用于表示用户当前所处的环境。
87.在一种可能的实现方式中,上述“采用预设的强化学习算法,从多个候选意图中确定目标意图”的方法可以包括:意图识别装置确定与多个候选意图一一对应的意图摇臂,并根据用户感知数据、状态信息、场景信息、与多个候选意图一一对应的意图摇臂,以及强化学习算法,从多个候选意图中确定目标意图。
88.采用的强化学习算法不同,从多个候选意图中确定目标意图的方式不同。
89.在一种可能的实现方式中,本技术实施例提供的意图识别方法还可以包括:意图识别装置根据用户感知数据、状态信息、场景信息、目标意图对应的意图摇臂,确定目标意图对应的意图置信度,并根据该意图置信度,确定展示目标意图使用的目标交互模式。之后,意图识别装置利用目标交互模式,展示目标意图的内容。其中,意图置信度用于表示目标意图与真实意图的预测符合程度。
90.不同于现有技术中的仅依赖置信度来展示意图,即展示意图置信度大于阈值的意图,本技术能够根据置信区间,以及置信区间对应的等级的交互模式,来选择展示目标意图的目标交互模式,减轻了展示低置信度的意图导致降低用户体验的问题。
91.在一种可能的实现方式中,上述“根据意图置信度,确定展示目标意图使用的目标交互模式”的方法可以包括:意图识别装置在预存的多个置信区间中,确定意图置信度所属的目标置信区间,并根据目标意图对应的业务,从目标置信区间对应的等级的交互模式中确定目标交互模式。其中,一个置信区间对应一个等级的交互模式,一个等级的交互模式包括一个或多个交互模式。
92.在一种可能的实现方式中,本技术实施例提供的意图识别方法还可以包括:意图识别装置在利用目标交互模式,展示目标意图的内容的预设时间段内,识别对目标意图的目标操作,并根据该目标操作和预设规则,确定目标操作对应的目标值。之后,意图识别装置根据目标值,更新多个候选意图,并更新强化学习算法中用于确定目标意图的参数。其中,目标值用于表示目标意图与真实意图的实际符合程度。
93.现有技术中,手机在展示意图之后,仅考虑用户是否点击该意图,但是在实际应用
中用户的反馈可能包含除是否点击外的其他操作,因此导致分析得到的反馈不准确。在本技术中,通过考虑预设时间段内的反馈操作,该反馈操作的类型较多,并利用不同的反馈操作能够得到不同的目标值,这样增加了反馈信息的准确度。
94.在一种可能的实现方式中,上述“根据目标值,更新多个候选意图”的方法可以包括:意图识别装置在确定目标值小于预设阈值的情况下,或者在确定目标值小于预设阈值的次数等于预设次数的情况下,删除多个候选意图中的目标意图。
95.由于现有技术中的摇臂集合是固定的,包含手机预存的全部意图摇臂。但是,本技术中,实现了摇臂集合随着候选意图改变而改变,从而实现了用户兴趣转移与意图变化的快速支持,提高了用户体验。
96.在第三方面中,本技术实施例还提供一种意图识别装置,该意图识别装置包括用于执行上述第三方面或上述第三方面的任一种可能的实现方式的意图识别方法的各个模块。
97.本技术实施例还提供一种意图识别装置,该意图识别装置包括存储器和处理器。存储器和处理器耦合。存储器用于存储计算机程序代码,计算机程序代码包括计算机指令。当处理器执行计算机指令时,意图识别装置执行如第三方面及第三方面中任一种可能的实现方式的意图识别方法。
98.在第三方面中,本技术实施例还提供了一种芯片系统,该芯片系统应用于第三方面中提及的意图识别装置。芯片系统包括一个或多个接口电路,以及一个或多个处理器。接口电路和处理器通过线路互联;接口电路用于从意图识别装置的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令。当处理器执行计算机指令时,意图识别装置执行如第一方面及其任一种可能的实现方式的意图识别方法。
99.在第三方面中,本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当计算机指令在意图识别装置上运行时,使得意图识别装置执行如第三方面及第三方面中任一种可能的实现方式的意图识别方法。
100.在第三方面中,本技术实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在意图识别装置上运行时,使得意图识别装置执行如第三方面及第三方面中任一种可能的实现方式的意图识别方法。
101.第四方面,本技术实施例提供了一种模型训练方法,应用于多个节点设备中任意一个节点设备,节点设备配置有群体粗粒度模型和细粒度模型,方法包括:
102.节点设备获取细粒度标签与粗粒度标签的映射关系,根据映射关系将训练数据集中的细粒度数据映射为粗粒度数据;然后将粗粒度数据输入到群体粗粒度模型进行训练,将细粒度数据输入到细粒度模型进行训练;群体粗粒度模型和细粒度模型具有各自的更新时机,群体粗粒度模型通过多个节点设备的联合学习对群体粗粒度模型进行更新;节点设备组合群体粗粒度模型和细粒度模型以得到联合模型,联合模型的标记空间映射为细粒度标签,联合模型的输出结果用于更新细粒度模型。
103.本示例中,节点设备中训练数据集中样本数据的标记空间映射为细粒度标签,本技术中,引入了粗粒度标签,通过粗粒度标签来统一各节点设备的标记空间,从而可以保证在各端侧在细粒度任务不统一的情况下,各节点设备可以在粗粒度任务上的统一,多个节点设备也可以进行联合训练。节点设备获取细粒度标签与粗粒度标签的映射关系,然后,根
据映射关系将训练数据集中的细粒度数据映射为粗粒度数据;节点设备利用粗粒度数据对群体粗粒度模型进行本地训练,并且通过多个节点设备的联合学习对群体粗粒度模型进行更新,直到该粗粒度标签收敛,从而使得粗粒度模型具有群体性特征。并且节点设备利用将细粒度数据输入到细粒度模型进行训练,基于损失函数通过联合模型输出的结果(细粒度标签)进行反向更新细粒度模型,直到该细粒度标签收敛。本技术中的联合模型既兼顾群体性特征,且每个节点设备的细粒度模型能将群体粗粒度模型匹配到具体的细粒度标签上,使得联合模型的标记空间为端侧对应的细粒度标签空间,联合模型又兼顾每个节点设备的个体化特征。
104.在一种可能的实现方式中,将粗粒度数据输入到群体粗粒度模型进行训练,具体可以包括:节点设备将粗粒度数据输入到群体粗粒度模型进行训练,确定群体粗粒度模型对应的第一信息,该第一信息可以为梯度、模型参数(如权重值)、或者模型(网络架构及模型参数);群体粗粒度模型的更新过程可以为:节点设备将第一信息发送至中控设备;然后节点设备接收第二信息,第二信息用于更新群体粗粒度模型,第二信息为中控设备对接收到的多个节点设备上传的第一信息进行整合后得到的。
105.本示例中,每个节点设备通过本地数据对群体粗粒度模型进行训练,为了达到多个节点设备联合训练的目的,每个节点设备仅将各自的第一信息(如参数值)传输至中控设备,以保证各节点设备本地数据的隐私性,中控设备将接收到的各参数值进行整合,即整合多个节点设备中各自节点设备中本地数据的特征,将整合之后的参数值下发给各个节点设备,各节点设备可以根据中控设备下发的参数值对本地的群体粗粒度模型进行更新,即完成一次更新,从而使得群体粗粒度模型具有群体性。
106.在一种可能的实现方式中,节点设备还配置有个体粗粒度模型;组合群体粗粒度模型和细粒度模型以得到联合模型可以具体包括:组合群体粗粒度模型、个体粗粒度模型和细粒度模型以得到联合模型;节点设备将个体粗粒度模型上传到中控设备,然后,节点设备可以接收中控设备发送的更新后的个体粗粒度模型;其中,更新后的个体粗粒度模型为:中控设备在多个节点设备上传的个体粗粒度模型中选择相关度高于阈值的至少2个个体粗粒度模型进行集成后得到的。
107.本示例中,群体粗粒度模型、个体粗粒度模型和细粒度模型组合为一个整体模型,群体粗粒度模型能够挖掘群体性的规律,能够为节点设备中的细粒度模型提供一个好的初始点。但是存在群体性规律与个体特征之间的差距巨大的情况,而个体粗粒度模型可以弥合少数情况下群体性与个体性的差距。
108.在一种可能的实现方式中,组合群体粗粒度模型和细粒度模型,包括:
109.基于群体粗粒度模型的权重和细粒度模型的权重组合粗粒度模型和细粒度模型。
110.在一种可能的实现方式中,基于群体粗粒度模型的权重和细粒度模型的权重组合粗粒度模型和细粒度模型可以包括:在联合模型的输出层,根据细粒度标签与粗粒度标签的映射关系,将粗粒度模型的标记空间中每个粗粒度标签的权重值合并到细粒度模型的标记空间中的每个细粒度标签的权重值。
111.本示例中,可以基于群体粗粒度模型的权重和细粒度模型的权重对两个模型进行组合,将群体粗粒度模型的权重和细粒度模型的权重相加得到整体模型的权重。细粒度标签的权重以该细粒度标签对应的粗粒度标签权重作为基,细粒度标签的权重等效于细粒度
模型维护的一个偏移量,整体模型(联合模型)的输出映射至个体细粒度标签,使得联合模型输出结果实现端侧个性化。
112.在一种可能的实现方式中,节点设备根据映射关系将训练数据集中的细粒度数据映射为粗粒度数据可以具体包括:节点设备获取训练数据集,训练数据集中的样本数据的标记空间为细粒度标签,然后,节点设备根据细粒度标签和粗粒度标签的映射关系,将样本数据的标记空间替换为粗粒度标签,得到粗粒度数据。该粗粒度数据用于训练群体粗粒度模型。
113.在一种可能的实现方式中,联合模型为应用预测模型;粗粒度标签为根据应用的功能进行分类后,得到的类别标签,细粒度标签为应用的名称;训练数据集中的样本数据为:时间信息及其对应的应用的名称。
114.在一种可能的实现方式中,组合群体粗粒度模型和细粒度模型以得到联合模型之后,方法还包括:节点设备获取当前的时间信息;将时间信息输入到训练好的联合模型,联合模型输出预测结果,预测结果用于指示目标应用,预加载目标应用。
115.本示例中,该联合模型可以为应用预测模型,节点设备通过该应用预测模型预测用户可能会使用哪个应用,而预先加载该目标应用,节省开启该目标应用的响应时长,提升用户体验。
116.在第四方面中,本技术实施例还提供了另一种模型训练方法,应用于联合学习系统,联合学习系统包括多个节点设备及中控设备,节点设备配置有群体粗粒度模型和细粒度模型,该方法应用于中控设备,中控设备获取多个节点设备的细粒度标签,中控设备对多个细粒度标签进行分类,确定多个类别,将类别作为粗粒度标签;并确定细粒度标签与粗粒度标签的映射关系;然后将映射关系发送给多个节点设备;以使节点设备根据映射关系将训练数据集中细粒度数据映射为粗粒度数据;将粗粒度数据输入到群体粗粒度模型进行训练,通过多个节点设备的联合学习对群体粗粒度模型进行更新;并将细粒度数据输入到细粒度模型进行训练;组合群体粗粒度模型和细粒度模型以得到联合模型,联合模型的标记空间为细粒度标签,联合模型的输出结果用于更新细粒度模型。
117.在一种可能的实现方式中,方法还包括:中控设备接收多个节点设备发送的第一信息,然后,中控设备对接收到的多个节点设备上传的第一信息进行整合,得到第二信息,然后,向多个节点设备发送第二信息,第二信息用于更新群体粗粒度模型。
118.本示例中,每个节点设备通过本地数据对群体粗粒度模型进行训练,为了达到多个节点设备联合训练的目的,每个节点设备仅将各自的第一信息(如参数值)传输至中控设备,以保证各节点设备本地数据的隐私性,中控设备将接收到的各参数值进行整合,即整合多个节点设备中各自节点设备中本地数据的特征,将整合之后的参数值下发给各个节点设备,各节点设备可以根据中控设备下发的参数值对本地的群体粗粒度模型进行更新,即完成一次更新,从而使得本地的群体粗粒度模型具有群体性。
119.在一种可能的实现方式中,节点设备还配置有个体粗粒度模型;中控设备接收多个节点设备发送的个体粗粒度模型,并且确定多个节点设备上传的个体粗粒度模型之间的相关度,然后,从多个节点设备上传的个体粗粒度模型中选择相关度高于阈值的至少2个目标个体粗粒度模型进行集成,得到更新后的个体粗粒度模型;最后,再将更新后的个体粗粒度模型发送至目标个体粗粒度模型对应的节点设备。
120.本示例中,群体粗粒度模型、个体粗粒度模型和细粒度模型组合为一个整体模型,群体粗粒度模型能够挖掘群体性的规律,能够为节点设备中的细粒度模型提供一个好的初始点。但是存在群体性的规律与个体特征之间的差距巨大的情况,而个体粗粒度模型可以弥合少数情况下群体性与个体性的差距。
121.在一种可能的实现方式中,确定多个节点设备上传的个体粗粒度模型之间的相关度可以包括:中控设备确定每个节点设备所属用户的用户画像;然后根据用户画像的相似度确定节点设备的个体粗粒度模型之间的相关度。
122.本示例中,可以根据用户画像将具有相同或相似特征的用户对应的个体粗粒度模型进行集成,使得个体粗粒度模型弥合少数情况下群体性与个体性的差距。
123.在一种可能的实现方式中,确定多个节点设备上传的个体粗粒度模型之间的相关度还可以包括:中控设备确定每个个体粗粒度模型输出的多个粗粒度标签的分布信息;然后,基于该分布信息确定个体粗粒度模型之间的相关度。
124.本示例中,中控设备不需要获取用户的相关数据,根据个体粗粒度模型输出的多个粗粒度标签的分布信息来确定个体粗粒度模型之间的相关度,从而保护用户的隐私。
125.在第四方面中,本技术实施例还提供了一种节点设备,节点设备配置有群体粗粒度模型和细粒度模型,节点设备包括收发模块和处理模块;
126.收发模块,用于获取细粒度标签与粗粒度标签的映射关系;
127.处理模块,用于根据收发模块获取到的映射关系将训练数据集中的细粒度数据映射为粗粒度数据;
128.处理模块,还用于将粗粒度数据输入到群体粗粒度模型进行训练;
129.收发模块,用于通过多个节点设备的联合学习对群体粗粒度模型进行更新;
130.处理模块,还用于将细粒度数据输入到细粒度模型进行训练;组合群体粗粒度模型和细粒度模型以得到联合模型,联合模型的标记空间映射为细粒度标签,联合模型的输出结果用于更新细粒度模型。
131.在一种可能的实现方式中,处理模块,还用于将粗粒度数据输入到群体粗粒度模型进行训练,确定群体粗粒度模型对应的第一信息;
132.收发模块,还用于将第一信息发送至中控设备;并接收第二信息,第二信息为中控设备对接收到的多个节点设备上传的第一信息进行整合后得到的;第二信息用于更新群体粗粒度模型;
133.在一种可能的实现方式中,节点设备还包括个体粗粒度模型;
134.处理模块,还用于组合群体粗粒度模型、个体粗粒度模型和细粒度模型以得到联合模型。
135.在一种可能的实现方式中,收发模块,还用于将个体粗粒度模型上传到中控设备;并接收中控设备发送的更新后的个体粗粒度模型;其中,更新后的个体粗粒度模型为:中控设备在多个节点设备上传的个体粗粒度模型中选择相关度高于阈值的至少2个个体粗粒度模型进行集成后得到的。
136.在一种可能的实现方式中,处理模块,还用于基于群体粗粒度模型的权重值和细粒度模型的权重值组合粗粒度模型和细粒度模型。
137.在一种可能的实现方式中,处理模块,还用于在联合模型的输出层,根据细粒度标
签与粗粒度标签的映射关系,将粗粒度模型的标记空间中每个粗粒度标签的权重值合并到细粒度模型的标记空间中的每个细粒度标签的权重值。
138.在一种可能的实现方式中,处理模块,还用于获取训练数据集,训练数据集中的样本数据的标记空间为细粒度标签;根据细粒度标签和粗粒度标签的映射关系,将样本数据的标记空间替换为粗粒度标签,得到粗粒度数据。
139.在一种可能的实现方式中,联合模型为应用预测模型;粗粒度标签为根据应用的功能进行分类后,得到的类别标签,细粒度标签为应用的名称。
140.在一种可能的实现方式中,处理模块,还用于获取当前的时间信息;将时间信息输入到训练好的联合模型,联合模型输出预测结果,预测结果用于指示目标应用;预加载目标应用。
141.在第四方面中,本技术实施例还提供了一种中控设备,应用于联合学习系统,联合学习系统包括多个节点设备及中控设备,节点设备配置有群体粗粒度模型和细粒度模型,该中控设备包括处理模块和收发模块;
142.收发模块,用于获取多个节点设备的细粒度标签;
143.处理模块,用于对多个细粒度标签进行分类,确定多个类别,将类别作为粗粒度标签;并确定细粒度标签与粗粒度标签的映射关系;
144.收发模块,还用于将映射关系发送给多个节点设备;以使节点设备根据映射关系将训练数据集中细粒度数据映射为粗粒度数据;将粗粒度数据输入到群体粗粒度模型进行训练,并通过多个节点设备的联合学习对群体粗粒度模型进行更新;将细粒度数据输入到细粒度模型进行训练;组合群体粗粒度模型和细粒度模型以得到联合模型,联合模型的标记空间为细粒度标签,联合模型的输出结果用于更新细粒度模型。
145.在一种可能的实现方式中,收发模块,用于接收多个节点设备发送的第一信息;
146.处理模块,还用于对接收到的多个节点设备上传的第一信息进行整合,得到第二信息;收发模块,还用于向多个节点设备发送第二信息,第二信息用于更新群体粗粒度模型。
147.在一种可能的实现方式中,节点设备还配置有个体粗粒度模型;
148.收发模块,还用于接收多个节点设备发送的个体粗粒度模型;
149.处理模块,还用于确定多个节点设备上传的个体粗粒度模型之间的相关度;从多个节点设备上传的个体粗粒度模型中选择相关度高于阈值的至少2个目标个体粗粒度模型进行集成,得到更新后的个体粗粒度模型;
150.收发模块,还用于将更新后的个体粗粒度模型发送至目标个体粗粒度模型对应的节点设备。
151.在一种可能的实现方式中,处理模块,还用于确定每个节点设备所属用户的用户画像;
152.处理模块,还用于根据用户画像的相似度确定节点设备的个体粗粒度模型之间的相关度。
153.在一种可能的实现方式中,处理模块,还用于确定每个个体粗粒度模型输出的多个粗粒度标签的分布信息;基于分布信息确定个体粗粒度模型之间的相关度。
154.在第四方面中,本技术实施例还提供了一种节点设备,包括处理器,处理器和存储
器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时实现上述第四方面任一项的方法。
155.在第四方面中,本技术实施例还提供了一种中控设备,包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时实现上述第四方面的方法。
156.在第四方面中,本技术实施例还提供了一种计算机可读存储介质,包括程序,当其在计算机上运行时,使得计算机执行如上述第四方面中任一项的方法。
157.在第四方面中,本技术实施例还提供了一种芯片系统,该芯片系统包括处理器,用于支持节点设备实现上述第四方面中所涉及的功能。
158.在一种可能的实现方式中,芯片系统还包括存储器,存储器,用于保存节点设备必要的程序指令和数据,或者,用于保存中控设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
159.第五方面,本技术实施例提供了一种基于神经网络的数据处理方法,该方法可以应用于在模拟数据的生成过程中的服务器,或者是服务器的部件(例如处理器、芯片或芯片系统等),在该方法中,服务器首先将测试数据输入至第一生成器,经过该第一生成器处理后得到第一模拟数据;然后,服务器将该测试数据和该第一模拟数据输入至该第一判别器,经过该第一判别器处理后得到第一判别结果,该第一判别结果用于指示该测试数据和该第一模拟数据之间的差异;此后,服务器再根据该第一判别结果更新该第一生成器的权重系数,得到第二生成器;最后,服务器在该第二生成器中生成第二模拟数据。其中,服务器通过生成式对抗神经网络中的第一生成器和第一判别器的处理过程,对第一生成器中权重系数的进行更新优化以得到第二生成器,利用生成式对抗网络的特性,降低在生成器中所生成的模拟数据与原始输入的测试数据之间的偏差,从而,提升神经网络所生成的模拟数据的数据质量。
160.在一种可能的实现方式中,服务器在该第二生成器中生成第二模拟数据之后,该方法还包括:该服务器利用第一目标模拟数据输入预设的训练网络,训练得到预测模型,该第一目标模拟数据包括该第二模拟数据。
161.本实施例中,服务器可以利用生成式对抗网络得到的第二生成器所生成的第二模拟数据,作为预设的训练网络的输入数据的一部分,进行训练得到预测模型,由于该第二模拟数据与原始输入的测试数据之间的偏差较小,因此,通过该第二模拟数据参与训练网络的训练过程,可以提升后续得到的预测模型的预测效果,使得在模拟环境中训练得到较优的预测模型。
162.在一种可能的实现方式中,该方法还包括:服务器将第二目标模拟数据输入该预测模型,经过该预测模型处理得到目标预测结果,该第二目标模拟数据包括该第二模拟数据。
163.本实施例中,服务器可以利用生成式对抗网络得到的第二生成器所生成的第二模拟数据,作为预测模型的输入数据的一部分,即得到所生成的模拟数据在预测模型中对应的目标预测结果,解决预测模型中训练数据过少的问题。
164.在一种可能的实现方式中,该方法还包括:服务器向客户端发送该预测模型;然后,该服务器接收该客户端发送的初始预测结果,该初始预测结果为该预测模型对用户操
作数据进行训练得到;此后,服务器将该目标预测结果和该初始预测结果输入至第二判别器进行训练,输出第二判别结果,该第二判别结果用于指示该目标预测结果和该初始预测结果之间的差异;进一步地,该服务器根据该第二判别结果更新该第二生成器的权重系数,得到第三生成器;最后,服务器在该第三生成器中生成第三模拟数据。
165.本实施例中,服务器可以向客户端发送该预测模型,并接收客户端使用用户操作数据在该预测模型中进行训练得到的初始预测结果,并将通过模拟数据在该预测模型中得到的目标预测结果和该初始预测结果一并作为第二判别器的输入,得到用于更新第二生成器的权重系数,更新第二生成器得到第三生成器,并在该第三生成器中生成第三模拟数据。其中,第三模拟数据为服务器使用第二判别器对第二生成器进行权重系数更新得到的,相比于第二生成器所生成的第二模拟数据,第三模拟数据可以进一步利用生成式对抗网络的特性,实现在第三生成器中所生成的第三模拟数据与原始输入的测试数据之间的偏差的进一步降低,从而,进一步提升神经网络所生成的模拟数据的数据质量。
166.在一种可能的实现方式中,服务器根据该第二判别结果更新该第二生成器的权重系数,得到第三生成器包括:若满足第一条件,则根据该第二判别结果更新该第二生成器的权重系数,得到该第三生成器;其中,该第一条件包括:在该目标预设结果和该初始预测结果之间的经验分布度量小于第一预设值时;和/或,在该第二判别器对应的损失函数的取值大于第二预设值时;和/或,在该预测模型的损失函数小于第三预设值时。
167.本实施例中,服务器可以在满足上述第一条件时再执行根据第二判别结果更新第二生成器的权重系数的过程,即通过第一条件的限制,在第二判别器和/或预测模型的模型效果达到一定条件时,服务器才执行更新第二生成器的权重系数的过程,可以进一步优化更新得到的第三生成器所生成的第三模拟数据的数据质量。
168.在一种可能的实现方式中,该第一目标模拟数据还包括该测试数据。
169.本实施例中,服务器输入到预设的训练网络进行训练得到预测模型的输入数据中,该第一目标模拟数据还可以包括测试数据,可以进一步丰富训练网络的输入,使得训练网络可以训练得到更多的数据特征,从而提升预测模型在后续执行预测过程的预测效果。
170.在一种可能的实现方式中,服务器根据该第一判别结果更新该第一生成器的权重系数,得到第二生成器包括:若满足第二条件,则根据该第一判别结果更新该第一生成器的权重系数,得到第二生成器;其中,该第二条件包括:在该测试数据和该第一模拟数据之间的经验分布度量小于第四预设值时;和/或,在该第一判别器对应的损失函数的取值大于第五预设值时。
171.本实施例中,服务器可以在满足上述第二条件时再执行根据第一判别结果更新该第一生成器的权重系数的过程,即通过第二条件的限制,在第一判别器的模型效果达到一定条件时,服务器才执行更新第一生成器的权重系数的过程,可以进一步优化更新得到的第二生成器所生成的第二模拟数据的数据质量。
172.在一种可能的实现方式中,在该第二生成器中生成第二模拟数据之前,若不满足该第二条件时,该方法还包括:将该测试数据输入至该第二生成器,经过该第二生成器处理后得到第四模拟数据;将该测试数据和该第四模拟数据输入至该第一判别器,经过该第一判别器处理后得到第三判别结果,该第三判别结果用于指示该测试数据和该第四模拟数据之间的差异;根据该第三判别结果更新该第二生成器的权重系数。
173.本实施例中,服务器可以在不满足上述第二条件时,执行将测试数据输入至第二生成器,并通过第一判别器的进一步处理得到用于更新第二生成器的第三判别结果,即可以进一步利用生成式对抗网络的特性,对第二生成器的权重系数进行优化。
174.在一种可能的实现方式中,该预测模型为意图决策模型。
175.本实施例中,该方法可以应用于意图决策判别过程中,相对应的,该预测模型在该过程中可以为意图决策模型,从而,提供了该预测模型的一种具体的实现方式,提升方案的可实现性。
176.在第五方面中,本技术实施例还提供了另一种基于神经网络的数据处理方法,该方法可以应用于在模拟数据的生成过程中的客户端中,或者是客户端的部件(例如处理器、芯片或芯片系统等),在该方法中,客户端接收来自服务器的预测模型;然后,该客户端获取用户操作数据;此后,该客户端将该用户操作数据输入至该预测模型,经过训练得到初始预测结果;
177.最后,该客户端向该服务器发送该初始预测结果,该初始预测结果用于作为判别器的输入,经过该判别器的处理得到用于更新生成器权重系数的判别结果。其中,客户端可以根据使用用户操作数据作为服务器所发送的预测模型的输入数据,并训练得到初始预测结果之后,向该服务器发送初始预测结果,其中,该初始预测结果用于作为判别器的输入,经过该判别器的处理得到用于更新生成器权重系数的判别结果,使得服务器可以利用生成式对抗网络的特性,降低在生成器中所生成的模拟数据与原始输入的测试数据之间的偏差,从而,提升神经网络所生成的模拟数据的数据质量;此外,由于客户端仅需要向服务器发送用户操作数据对应的初始预测结果,相比于客户端向服务器发送用户操作数据的方式,可以避免用户的隐私泄露,从而提升用户体验。
178.在一种可能的实现方式中,客户端获取用户操作数据的过程具体包括:客户端响应于用户操作,获取该用户操作对应的初始操作数据;此后,该客户端提取该初始操作数据的数据特征,得到该用户操作数据。
179.本实施例中,客户端可以通过获取用户操作对应的初始操作数据并进行特征提取的方式,获取得到输入到预测模型中的用户操作数据,提供了客户端获取用户操作数据的一种具体的实现方式,提升方案的可实现性。
180.在第五方面中,本技术实施例还提供了一种基于神经网络的数据处理装置,该装置包括:
181.第一处理单元,用于将测试数据输入至第一生成器,经过该第一生成器处理后得到第一模拟数据;
182.第二处理单元,用于将该测试数据和该第一模拟数据输入至该第一判别器,经过该第一判别器处理后得到第一判别结果,该第一判别结果用于指示该测试数据和该第一模拟数据之间的差异;
183.第一更新单元,用于根据该第一判别结果更新该第一生成器的权重系数,得到第二生成器;
184.第一生成单元,用于在该第二生成器中生成第二模拟数据。
185.本实施例中,第一处理单元和第二处理单元通过生成式对抗神经网络中的第一生成器和第一判别器的处理过程,第一更新单元对第一生成器中权重系数的进行更新优化以
得到第二生成器,并通过第一生成单元在第二生成器中生成第二模拟数据,即利用生成式对抗网络的特性,降低在生成器中所生成的模拟数据与原始输入的测试数据之间的偏差,从而,提升神经网络所生成的模拟数据的数据质量。
186.在一种可能的实现方式中,该装置还包括:
187.第一训练单元,用于利用第一目标模拟数据输入预设的训练网络,训练得到预测模型,该第一目标模拟数据包括该第二模拟数据。
188.在一种可能的实现方式中,该装置还包括:
189.第三处理单元,用于将第二目标模拟数据输入该预测模型,经过该预测模型处理得到目标预测结果,该第二目标模拟数据包括该第二模拟数据。
190.在一种可能的实现方式中,该装置还包括:
191.发送单元,用于向客户端发送该预测模型;
192.接收单元,用于接收该客户端发送的初始预测结果,该初始预测结果为该预测模型对用户操作数据进行训练得到;
193.第二训练单元,用于将该目标预测结果和该初始预测结果输入至第二判别器进行训练,输出第二判别结果,该第二判别结果用于指示该目标预测结果和该初始预测结果之间的差异;
194.第二更新单元,用于根据该第二判别结果更新该第二生成器的权重系数,得到第三生成器;
195.第二生成单元,用于在该第三生成器中生成第三模拟数据。
196.在一种可能的实现方式中,该第二更新单元具体用于:
197.若满足第一条件,则根据该第二判别结果更新该第二生成器的权重系数,得到该第三生成器;其中,该第一条件包括:
198.在该目标预设结果和该初始预测结果之间的经验分布度量小于第一预设值时;和/或,
199.在该第二判别器对应的损失函数的取值大于第二预设值时;和/或,
200.在该预测模型的损失函数小于第三预设值时。
201.在一种可能的实现方式中,该第一目标模拟数据还包括该测试数据。
202.在一种可能的实现方式中,该第一更新单元具体用于:
203.若满足第二条件,则根据该第一判别结果更新该第一生成器的权重系数,得到第二生成器;其中,该第二条件包括:
204.在该测试数据和该第一模拟数据之间的经验分布度量小于第四预设值时;和/或,
205.在该第一判别器对应的损失函数的取值大于第五预设值时。
206.在一种可能的实现方式中,若不满足该第二条件时,该装置还包括:
207.第四处理单元,用于将该测试数据输入至该第二生成器,经过该第二生成器处理后得到第四模拟数据;
208.第五处理单元,用于将该测试数据和该第四模拟数据输入至该第一判别器,经过该第一判别器处理后得到第三判别结果,该第三判别结果用于指示该测试数据和该第四模拟数据之间的差异;
209.第三更新单元,用于根据该第三判别结果更新该第二生成器的权重系数。
210.在一种可能的实现方式中,该预测模型为意图决策模型。
211.在第五方面中,本技术实施例还提供了一种基于神经网络的数据处理装置,该装置包括:
212.收发单元,用于接收来自服务器的预测模型;
213.该收发单元,用于获取用户操作数据;
214.训练单元,用于将该用户操作数据输入至该预测模型,经过训练得到初始预测结果;
215.该收发单元,用于向该服务器发送该初始预测结果,该初始预测结果用于作为判别器的输入,经过该判别器的处理得到用于更新生成器权重系数的判别结果。
216.本实施例中,训练单元可以根据使用用户操作数据作为服务器所发送的预测模型的输入数据,并训练得到初始预测结果之后,收发单元向该服务器发送初始预测结果,其中,该初始预测结果用于作为判别器的输入,经过该判别器的处理得到用于更新生成器权重系数的判别结果,使得服务器可以利用生成式对抗网络的特性,降低在生成器中所生成的模拟数据与原始输入的测试数据之间的偏差,从而,提升神经网络所生成的模拟数据的数据质量;此外,由于客户端仅需要向服务器发送用户操作数据对应的初始预测结果,相比于客户端向服务器发送用户操作数据的方式,可以避免用户的隐私泄露,从而提升用户体验。
217.在一种可能的实现方式中,该收发单元具体用于:
218.响应于用户操作,获取该用户操作对应的初始操作数据;
219.提取该初始操作数据的数据特征,得到该用户操作数据。
220.在第五方面中,本技术实施例还提供了一种服务器,包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时使得装置实现上述第五方面及其任意一种实现方式中的基于神经网络的数据处理方法。装置可以为电子设备(如终端设备或服务器设备);或可以为电子设备中的一个组成部分,如芯片。
221.在第五方面中,本技术实施例还提供了一种客户端,包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时使得装置实现上述第五方面及其任意一种实现方式中的基于神经网络的数据处理方法。装置可以为电子设备(如终端设备或服务器设备);或可以为电子设备中的一个组成部分,如芯片。
222.在第五方面中,本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述第五方面及其任意一种实现方式中的基于神经网络的数据处理方法。
223.在第五方面中,本技术实施例还提供了一种电路系统,电路系统包括处理电路,处理电路配置为执行上述第五方面及其任意一种实现方式中的基于神经网络的数据处理方法。
224.在第五方面中,本技术实施例还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第五方面及其任意一种实现方式中的基于神经网络的数据处理方法。
225.在第五方面中,本技术实施例还提供了一种芯片系统,该芯片系统包括处理器,用于支持服务器实现上述第五方面及其任意一种实现方式中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,芯片系统还包括存储器,存
储器,用于保存数据处理设备或通信设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
226.第六方面,本技术实施例提供了一种意图识别方法,包括:电子设备确定待识别的打点数据序列,该待识别的打点数据序列由打点数据组成,该打点数据包括该电子设备记录的用户的操作数据和/或该电子设备对用户操作的响应数据;该电子设备将该待识别的打点数据序列输入多示例学习模型,得到多个子序列;该多示例学习模型为已采用电子设备中的打点数据序列训练过的多示例学习模型;该电子设备按照预设意图规则确定第一子序列的意图,该第一子序列为该多个子序列中的一个子序列,该预设意图规则用于根据序列中的打点数据确定序列的意图。
227.本技术实施例中,电子设备可以采用训练好的多示例学习模型,将用户操作产生的打点数据序列作为待识别的打点数据序列划分为粒度更小的多个子序列。再采用第二预设规则确定出各个子序列的意图。由于使用的该多示例学习模型是使用用户自己的打点数据训练出来的,因此该多示例学习模型划分的子序列更符合用户个性化的使用习惯。然后再使用第二预设规则确定各个子序列的意图,使得识别出的意图更准确。
228.在一些实施例中,该电子设备确定待识别的打点数据序列,具体包括:响应于用户的连续操作,该电子设备生成多个打点数据;该电子设备将该多个打点数据确定为该待识别的打点数据序列。
229.上述实施例中,待识别的打点数据序列的打点数据可以由用户的连续操作生成的打点数据组成,这样的数据使用其他的意图识别方式非常难以确定其中各打点数据的意图。但将其输入本技术实施例中的多示例学习模型后,可以将其拆分为多个子序列,再分别确定各子序列的意图,使得识别出的意图更准确。
230.在一些实施例中,待识别的打点数据序列中也可以包括由非连续操作产生的打点数据,此处不作限定。
231.可选的,电子设备可以将预设时间周期内产生的打点数据组成为该待识别的打点数据序列;
232.可选的,电子设备可以在未识别的打点数据累积到预设累积数目时,将达到预设累积数目的所有未识别的打点数据组成待识别的打点数据序列。
233.在一些实施例中,该电子设备确定待识别的打点数据序列的步骤之前,该方法还包括:该电子设备使用初始打点数据序列训练预置多示例学习模型,得到该多示例学习模型;该初始打点数据序列中包括用户使用该电子设备产生的打点数据,和/或,出厂预置的打点数据。
234.在一些实施例中,该电子设备使用初始打点数据序列训练预置多示例学习模型,得到该多示例学习模型,具体包括:该电子设备按照预设拆分规则将该初始打点数据序列拆分为多个分序列;该预设拆分规则用于将打点数据序列划分为不同的分序列,且一个分序列根据该预设意图规则至少可以确定一个明确的意图;该电子设备将该多个分序列作为多个待处理序列,从该多个待处理序列中提取训练数据;该电子设备使用该训练数据训练该预置多示例学习模型,得到该多示例学习模型。
235.上述实施例中,电子设备可以使用初始打点数据序列训练预置多示例学习模型,从而得到可使用的多示例学习模型,不需要通过大量的人工标注打点数据,提升了打点数
据的标注效率和范围,节省了时间和成本。
236.在一些实施例中,该方法还包括:该电子设备使用该待识别的打点数据序列对该多示例学习模型进行训练,更新该多示例学习模型。
237.上述实施例中,电子设备可以使用该待识别的打点数据序列对该多示例学习模型进行训练,通过增量训练的方式更新多示例学习模型,提升了多示例学习模型拆分子序列的准确性。
238.在第六方面中,本技术实施例还提供了一种电子设备,该电子设备包括:一个或多个处理器和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行:确定待识别的打点数据序列,该待识别的打点数据序列由打点数据组成,该打点数据包括该电子设备记录的用户的操作数据和/或该电子设备对用户操作的响应数据;将该待识别的打点数据序列输入多示例学习模型,得到多个子序列;该多示例学习模型为已采用该电子设备中的打点数据序列训练过的多示例学习模型;按照预设意图规则确定第一子序列的意图,该第一子序列为该多个子序列中的一个子序列,该预设意图规则用于根据序列中的打点数据确定序列的意图。
239.本技术实施例中,电子设备可以采用训练好的多示例学习模型,将用户操作产生的打点数据序列作为待识别的打点数据序列划分为粒度更小的多个子序列。再采用第二预设规则确定出各个子序列的意图。由于使用的该多示例学习模型是使用用户自己的打点数据训练出来的,因此该多示例学习模型划分的子序列更符合用户个性化的使用习惯。然后再使用第二预设规则确定各个子序列的意图,使得识别出的意图更准确。
240.在一些实施例中,该一个或多个处理器,具体用于调用该计算机指令以使得该电子设备执行:响应于用户的连续操作,该电子设备生成多个打点数据;该电子设备将该多个打点数据确定为该待识别的打点数据序列。
241.在一些实施例中,待识别的打点数据序列中也可以包括由非连续操作产生的打点数据,此处不作限定。
242.可选的,电子设备可以将预设时间周期内产生的打点数据组成为该待识别的打点数据序列;
243.可选的,电子设备可以在未识别的打点数据累积到预设累积数目时,将达到预设累积数目的所有未识别的打点数据组成待识别的打点数据序列。
244.在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:使用初始打点数据序列训练预置多示例学习模型,得到该多示例学习模型;该初始打点数据序列中包括用户使用该电子设备产生的打点数据,和/或,出厂预置的打点数据。
245.在一些实施例中,该一个或多个处理器,具体用于调用该计算机指令以使得该电子设备执行:按照预设拆分规则将该初始打点数据序列拆分为多个分序列;该预设拆分规则用于将打点数据序列划分为不同的分序列,且一个分序列根据该预设意图规则至少可以确定一个明确的意图;将该多个分序列作为多个待处理序列,从该多个待处理序列中提取训练数据;使用该训练数据训练该预置多示例学习模型,得到该多示例学习模型。
246.在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子
设备执行:使用该待识别的打点数据序列对该多示例学习模型进行训练,更新该多示例学习模型。
247.在第六方面中,本技术实施例还提供了一种芯片系统,该芯片系统应用于电子设备,该芯片系统包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第六方面以及第六方面中任一可能的实现方式描述的方法。
248.在第六方面中,本技术实施例还提供一种包含指令的计算机程序产品,当上述计算机程序产品在电子设备上运行时,使得上述电子设备执行如第六方面以及第六方面中任一可能的实现方式描述的方法。
249.在第六方面中,本技术实施例还提供一种计算机可读存储介质,包括指令,当上述指令在电子设备上运行时,使得上述电子设备执行如第六方面以及第六方面中任一可能的实现方式描述的方法。
250.在第六方面中,本技术实施例还提供了一种多示例学习模型训练方法,包括:将多个分序列或多个子序列作为多个待处理序列,从该多个待处理序列中提取训练数据;该多个分序列由该电子设备按照第一预设规则将初始打点数据序列划分得到,该多个子序列由该电子设备将打点数据序列输入多示例学习模型后输出得到;该预设拆分规则用于将打点数据序列划分为不同的分序列,且一个分序列根据预设意图规则至少可以确定一个明确的意图;该预设意图规则用于根据序列中的打点数据确定序列的意图;该打点数据包括电子设备记录的用户的操作数据和/或该电子设备对用户操作的响应数据;该训练数据中包括包标签和包的特征向量矩阵;使用该训练数据训练该多示例学习模型。
251.本技术实施例中,训练装置可以直接从待处理序列中提取训练数据,对多示例学习模型进行训练,而不需要人工标注打点数据作为训练数据,节省了训练数据的标注时间,提升了训练装置的训练效率。
252.在一些实施例中,该使用该训练数据训练该多示例学习模型的步骤之后,该方法还包括:将该多个待处理序列,输入该多示例学习模型,得到多个子序列;确定本轮训练后的多示例学习模型的损失函数的值;确定相比于上一轮训练后得到的多示例学习模型的损失函数的值,本轮训练后得到的多示例学习模型的损失函数的值的减小幅度是否小于预设减小幅度;当确定不小于该预设减小幅度时,将该多个子序列作为多个待处理序列,执行该电子设备将多个分序列或多个子序列作为多个待处理序列,从该多个待处理序列中提取训练数据的步骤;当确定小于该预设减小幅度时,确定本轮训练得到的该多示例学习模型为训练完成的多示例学习模型。
253.上述实施例中,可以采用迭代训练的方式对多示例学习模型进行训练,得到更加准确的多示例学习模型。
254.在一些实施例中,该方法还包括:将新增打点数据序列输入该多示例学习模型,得到多个子序列;该新增打点数据序列为该电子设备中新增加的打点数据组成的打点数据序列;将该多个子序列作为多个待处理序列,从该多个待处理序列中提取训练数据;使用该训练数据对该多示例学习模型进行训练,更新该多示例学习模型。
255.上述实施例中,电子设备可以使用新增加的打点数据对该多示例学习模型进行训练,通过增量训练的方式更新多示例学习模型,提升了多示例学习模型拆分子序列的准确性。
256.在一些实施例中,该使用该训练数据对该多示例学习模型进行训练,更新该多示例学习模型的步骤之后,该方法还包括:确定本轮训练后的多示例学习模型的损失函数的值;确定相比于上一轮训练后得到的多示例学习模型的损失函数的值,本轮训练后得到的多示例学习模型的损失函数的值的减小幅度是否小于预设减小幅度;当确定不小于该预设减小幅度时,将该多个子序列作为多个待处理序列,执行该将该多个子序列作为多个待处理序列,从该多个待处理序列中提取训练数据的步骤;当确定小于该预设减小幅度时,确定本轮训练得到的多示例学习模型为训练完成的多示例学习模型,更新该多示例学习模型。
257.上述实施例中,可以采用迭代训练的方式对多示例学习模型进行增量训练,得到更加准确的多示例学习模型。
258.在一些实施例中,该从该多个待处理序列中提取训练数据,具体包括:确定该多个待处理序列中的示例和示例标签;该示例由相邻的两条打点数据组成;该示例标签用于表示该示例为正示例或负示例;根据该多个待处理序列、该示例和示例标签,确定包和包标签;该包标签用于表示该包为正包或负包;该正包中包括同一个待处理序列中的打点数据组成的示例;该负包中包括位于一个待处理序列中的最后一个打点数据和与该待处理序列连续的下一个待处理序列中的第一个打点数据组成的示例;提取每个包的特征向量矩阵,将该每个包的特征向量矩阵与相应的包标签作为该训练数据。
259.上述实施例中,可以通过确定示例和示例标签、确定包和包标签,并提取每个包的特征向量矩阵和相应的包标签作为训练数据,实现了训练数据的自标注,提升了训练数据的标注效率。
260.在第六方面中,本技术实施例还提供了一种训练装置,该训练装置包括:一个或多个处理器和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该训练装置执行:将多个分序列或多个子序列作为多个待处理序列,从该多个待处理序列中提取训练数据;该多个分序列由电子设备按照第一预设规则将初始打点数据序列划分得到,该多个子序列由该电子设备将打点数据序列输入多示例学习模型后输出得到;该预设拆分规则用于将打点数据序列划分为不同的分序列,且一个分序列根据预设意图规则至少可以确定一个明确的意图;该预设意图规则用于根据序列中的打点数据确定序列的意图;该打点数据包括电子设备记录的用户的操作数据和/或该电子设备对用户操作的响应数据;该训练数据中包括包标签和包的特征向量矩阵;使用该训练数据训练该多示例学习模型。
261.本技术实施例中,训练装置可以直接从待处理序列中提取训练数据,对多示例学习模型进行训练,而不需要人工标注打点数据作为训练数据,节省了训练数据的标注时间,提升了训练装置的训练效率。
262.在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该训练装置执行:将该多个待处理序列,输入该多示例学习模型,得到多个子序列;确定本轮训练后的多示例学习模型的损失函数的值;确定相比于上一轮训练后得到的多示例学习模型的损失函数的值,本轮训练后得到的多示例学习模型的损失函数的值的减小幅度是否小于预设减小幅度;当确定不小于该预设减小幅度时,将该多个子序列作为多个待处理序列,执行该电子设备将多个分序列或多个子序列作为多个待处理序列,从该多个待处理序列中提取
训练数据的步骤;当确定小于该预设减小幅度时,确定本轮训练得到的该多示例学习模型为训练完成的多示例学习模型。
263.在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该训练装置执行:将新增打点数据序列输入该多示例学习模型,得到多个子序列;该新增打点数据序列为该电子设备中新增加的打点数据组成的打点数据序列;将该多个子序列作为多个待处理序列,从该多个待处理序列中提取训练数据;使用该训练数据对该多示例学习模型进行训练,更新该多示例学习模型。
264.在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该训练装置执行:确定本轮训练后的多示例学习模型的损失函数的值;确定相比于上一轮训练后得到的多示例学习模型的损失函数的值,本轮训练后得到的多示例学习模型的损失函数的值的减小幅度是否小于预设减小幅度;当确定不小于该预设减小幅度时,将该多个子序列作为多个待处理序列,执行该将该多个子序列作为多个待处理序列,从该多个待处理序列中提取训练数据的步骤;当确定小于该预设减小幅度时,确定本轮训练得到的多示例学习模型为训练完成的多示例学习模型,更新该多示例学习模型。
265.在一些实施例中,该一个或多个处理器,具体用于调用该计算机指令以使得该训练装置执行:确定该多个待处理序列中的示例和示例标签;该示例由相邻的两条打点数据组成;该示例标签用于表示该示例为正示例或负示例;根据该多个待处理序列、该示例和示例标签,确定包和包标签;该包标签用于表示该包为正包或负包;该正包中包括同一个待处理序列中的打点数据组成的示例;该负包中包括位于一个待处理序列中的最后一个打点数据和与该待处理序列连续的下一个待处理序列中的第一个打点数据组成的示例;提取每个包的特征向量矩阵,将该每个包的特征向量矩阵与相应的包标签作为该训练数据。
266.在第六方面中,本技术实施例还提供了一种训练数据生成方法,包括:确定多个待处理序列中的示例和示例标签;该多个待处理序列为多个子序列或多个分序列;该多个分序列由该电子设备按照第一预设规则将初始打点数据序列划分得到,该多个子序列由该电子设备将打点数据序列输入多示例学习模型后输出得到;该第一预设规则用于将打点数据序列划分为不同的分序列,且一个分序列根据第二预设规则至少可以确定一个明确的意图;该第二预设规则用于根据序列中的打点数据确定序列的意图;该示例由相邻的两条打点数据组成;该打点数据包括电子设备记录的用户的操作数据和/或该电子设备对用户操作的响应数据;该示例标签用于表示该示例为正示例或负示例;根据该多个待处理序列、该示例和示例标签,确定包和包标签;该包标签用于表示该包为正包或负包;该正包中包括同一个待处理序列中的打点数据组成的示例;该负包中包括位于一个待处理序列中的最后一个打点数据和与该待处理序列连续的下一个待处理序列中的第一个打点数据组成的示例;提取每个包的特征向量矩阵,将该每个包的特征向量矩阵与相应的包标签作为该训练数据。
267.本技术实施例中,训练设备可以通过从待处理序列中提取示例和示例标签,确定包和包标签,然后提取每个包的特征向量矩阵,将每个包的特征向量矩阵与相应的包标签作为该训练数据,从而实现了训练数据的自标注,提升了训练数据的标注效率。
268.在一些实施例中,该提取每个包的特征向量矩阵,将该每个包的特征向量矩阵与相应的包标签作为该训练数据,具体包括:分别提取每个包中每个示例的j维特征向量,该j
为正整数;将一个包中k个示例的j维特征向量组成该包的特征向量矩阵,将该包的特征向量矩阵与该包的包标签作为该训练数据中的一个训练数据,该k为正整数。
269.上述实施例中,通过提取一个包中每个示例的j维特征向量,组成特征向量矩阵,与该包的包标签作为该训练数据中的一个训练数据,使得训练数据中包含更多的信息,提升了使用该训练数据进行多示例学习模型训练的训练效果。
270.在一些实施例中,该j维特征向量用于表示:示例的文本特征,和/或,示例的上下文特征,和或,示例中各打点数据特有的特征,和/或,示例中打点数据的统计特征。
271.上述实施例中,示例的j维特征向量可以包括示例的各方面的特征,使得训练数据中包含更多方面的信息,提升了使用该训练数据进行多示例学习模型训练的训练效果。
272.在第六方面中,本技术实施例还提供了一种训练装置,该训练装置包括:一个或多个处理器和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该训练装置执行:确定多个待处理序列中的示例和示例标签;该多个待处理序列为多个子序列或多个分序列;该多个分序列由该电子设备按照第一预设规则将初始打点数据序列划分得到,该多个子序列由该电子设备将打点数据序列输入多示例学习模型后输出得到;该第一预设规则用于将打点数据序列划分为不同的分序列,且一个分序列根据第二预设规则至少可以确定一个明确的意图;该第二预设规则用于根据序列中的打点数据确定序列的意图;该示例由相邻的两条打点数据组成;该打点数据包括电子设备记录的用户的操作数据和/或该电子设备对用户操作的响应数据;该示例标签用于表示该示例为正示例或负示例;根据该多个待处理序列、该示例和示例标签,确定包和包标签;该包标签用于表示该包为正包或负包;该正包中包括同一个待处理序列中的打点数据组成的示例;该负包中包括位于一个待处理序列中的最后一个打点数据和与该待处理序列连续的下一个待处理序列中的第一个打点数据组成的示例;提取每个包的特征向量矩阵,将该每个包的特征向量矩阵与相应的包标签作为该训练数据。
273.本技术实施例中,训练设备可以通过从待处理序列中提取示例和示例标签,确定包和包标签,然后提取每个包的特征向量矩阵,将每个包的特征向量矩阵与相应的包标签作为该训练数据,从而实现了训练数据的自标注,提升了训练数据的标注效率。
274.在一些实施例中,该一个或多个处理器,具体用于调用该计算机指令以使得该训练装置执行:分别提取每个包中每个示例的j维特征向量,该j为正整数;将一个包中k个示例的j维特征向量组成该包的特征向量矩阵,将该包的特征向量矩阵与该包的包标签作为该训练数据中的一个训练数据,该k为正整数。
275.在一些实施例中,该j维特征向量用于表示:示例的文本特征,和/或,示例的上下文特征,和或,示例中各打点数据特有的特征,和/或,示例中打点数据的统计特征。
276.第七方面,本技术实施例提供了一种规则引擎的执行方法,该方法可以包括:确定输入规则引擎中的第一事实数据;根据第一事实数据的第一属性,从内存中获取第一语义对象对第一事实数据进行匹配,第一属性用于表征第一事实数据的变化频率;确定输入规则引擎中的第二事实数据;根据第二事实数据的第二属性,从文件中获取第二语义对象对第二事实数据进行匹配,第二属性用于表征第二事实数据的变化频率,其中,第二属性不同于第一属性;根据第一事实数据对应的第一匹配结果和第二事实数据对应的第二匹配结
果,确定是否执行第一操作。
277.由此,基于事实数据的属性,确定从内存或文件中加载语义对象,并基于确定的语义对象匹配事实数据,从而使得可以将规则引擎中的一部分用于匹配事实数据的语义对象存储至内存中,另一部分用于匹配事实数据的语义对象存储在文件中,进而可以释放一些冗余内存,降低了规则引擎运行过程中的内存开销,提升了规则引擎的能力。
278.在一种可能的实现方式中,规则引擎包括第一节点,第一节点至少包括第一类型节点和第二类型节点,其中,第一类型节点与第一属性相关,第二类型节点与第二属性相关;根据第一事实数据的第一属性,从内存中获取第一语义对象对第一事实数据进行匹配,具体包括:根据第一属性对应的第一类型节点的第一语义索引,从第一语义索引指示的内存中获取第一语义对象,及基于第一语义对象对第一事实数据进行匹配;根据第二事实数据的第二属性,从文件中获取第二语义对象对第二事实数据进行匹配,具体包括:根据第二属性对应的第二类型节点的第二语义索引,从第二语义索引指示的文件中获取第二语义对象,及基于第二语义对象对第二事实数据进行匹配。
279.由此,在基于规则引擎进行决策推理时,可以基于不同类型的事实数据对应的节点的语义索引,确定从内存或文件中获取语义对象。
280.在一种可能的实现方式中,根据第一属性对应的第一类型节点的第一语义索引,从第一语义索引指示的内存中获取第一语义对象之前,还包括:确定第一类型节点中记录的第一事实数据的变化次数与输入至规则引擎中的第一事实数据的变化次数不同。
281.由此,仅在第一类型节点中记录的第一事实数据的变化次数与输入至规则引擎中的第一事实数据的变化次数不同时,才从内存中加载语义对象进行匹配,避免了频繁加载语义对象的情况,提升了匹配效率。
282.在一种可能的实现方式中,根据第二属性对应的第二类型节点的第二语义索引,从第二语义索引指示的文件中获取第二语义对象之前,还包括:确定第二类型节点中记录的第二事实数据的变化次数与输入至规则引擎中的第二事实数据的变化次数不同。
283.由此,仅在第二类型节点中记录的第二事实数据的变化次数与输入至规则引擎中的第二事实数据的变化次数不同时,才从文件中加载语义对象进行匹配,避免了频繁加载语义对象的情况,提升了匹配效率。
284.在一种可能的实现方式中,该方法还包括以下一项或多项:确定第一类型节点中记录的第一事实数据的变化次数与输入至规则引擎中的第一事实数据的变化次数相同,使用第一类型节点记录的前次匹配结果作为第一匹配结果;确定第二类型节点中记录的第二事实数据的变化次数与输入至规则引擎中的第二事实数据的变化次数相同,使用第二类型节点记录的前次匹配结果作为第二匹配结果。
285.由此,当类型节点中记录的事实数据的变化次数与输入至规则引擎中的事实数据的变化次数相同时,直接采用前次的匹配结果,避免了频繁加载语义对象的情况,提升了匹配效率。
286.在一种可能的实现方式中,该方法还包括以下一项或多项:在重构规则引擎中的规则时,确定第一类型节点中记录的第一事实数据的第一变化次数;若第一变化次数小于预设次数阈值,则将第一类型节点切换为第二类型节点;在重构规则引擎中的规则时,确定第二类型节点中记录的第二事实数据的第二变化次数;若第二变化次数大于预设次数阈
值,则将第二类型节点切换为第一类型节点。
287.由此,实现节点类型的切换,避免出现变化频率低的事实数据对应的语义对象持久的占用内存。另外,也避免出现变化频率高的事实数据对应的语义对象由文件加载时加载效率慢的问题。
288.在一种可能的实现方式中,该规则引擎包括第二节点;根据第一事实数据对应的第一匹配结果和第二事实数据对应的第二匹配结果,确定是否执行第一操作,具体包括:当第一匹配结果指示匹配成功,且第二匹配结果指示匹配成功时,从第二节点的语义索引指示的文件中获取第三语义对象,及执行第三语义对象对应的第一操作。由此,在基于规则引擎进行决策推理时,可以将相应的规则所需执行的语义对象持久化在文件中,避免该语义对象长期占用内存的情况,进而可以释放一些冗余内存。
289.在一种可能的实现方式中,第一事实数据包括时间和位置中的至少一项;第二事实数据包括年龄和季节中的至少一项。
290.在一种可能的实现方式中,第一操作包括以下一项或多项:提醒天气,提醒路况,提醒用户休息、娱乐或工作,推荐使用手册,预加载动作或服务。
291.在第七方面中,本技术实施例还提供了一种规则引擎,规则引擎包括:第一节点,第一节点至少包括第一类型节点和第二类型节点;第一类型节点,用于根据输入规则引擎中的第一事实数据的第一属性,从内存中获取第一语义对象对第一事实数据进行匹配,得到第一匹配结果,第一属性用于表征第一事实数据的变化频率;第二类型节点,用于根据输入规则引擎中的第二事实数据的第二属性,从文件中获取第二语义对象对第二事实数据进行匹配,得到第二匹配结果,第二属性用于表征第二事实数据的变化频率,第二属性不同于第一属性;其中,第一匹配结果和第二匹配结果共同用于确定是否执行第一操作。示例性的,该规则引擎可以为人工智能(artificial intelligence,ai)模型。
292.由此,实现在规则引擎中将一部分节点的语义对象存储在内存中,将另外一部分节点的语义对象存储在文件中,进而释放一些冗余内存,降低了规则引擎运行过程中的内存开销,提升了规则引擎的能力。
293.在一种可能的实现方式中,第一类型节点,具体用于根据第一属性对应的第一语义索引,从第一语义索引指示的内存中获取第一语义对象,及基于第一语义对象对第一事实数据进行匹配;第二类型节点,具体用于根据第二属性对应的第二语义索引,从第二语义索引指示的文件中获取第二语义对象,及基于第二语义对象对第二事实数据进行匹配。
294.在一种可能的实现方式中,第一类型节点在从内存中获取第一语义对象对第一事实数据进行匹配之前,还用于确定第一类型节点中记录的第一事实数据的变化次数与输入至规则引擎中的第一事实数据的变化次数不同。
295.在一种可能的实现方式中,第二类型节点在从文件中获取第二语义对象对第二事实数据进行匹配之前,还用于确定第二类型节点中记录的第二事实数据的变化次数与输入至规则引擎中的第二事实数据的变化次数不同。
296.在一种可能的实现方式中,第一类型节点,还用于在第一类型节点中记录的第一事实数据的变化次数与输入至规则引擎中的第一事实数据的变化次数相同时,使用第一类型节点记录的前次匹配结果作为第一匹配结果。
297.在一种可能的实现方式中,第二类型节点,还用于在第二类型节点中记录的第二
事实数据的变化次数与输入至规则引擎中的第二事实数据的变化次数相同时,使用第二类型节点记录的前次匹配结果作为第二匹配结果。
298.在一种可能的实现方式中,规则引擎还包括第二节点,第二节点用于当第一匹配结果指示匹配成功,且第二匹配结果指示匹配成功时,从第二节点的语义索引指示的文件中获取第三语义对象,及执行第三语义对象对应的第一操作。
299.在一种可能的实现方式中,第一事实数据包括时间和位置中的至少一项;第二事实数据包括年龄和季节中的至少一项。
300.在一种可能的实现方式中,第一操作包括以下一项或多项:提醒天气,提醒路况,提醒用户休息、娱乐或工作,推荐使用手册,预加载动作或服务。
301.在第七方面中,本技术实施例还提供了一种规则引擎的执行装置,包括:至少一个存储器,用于存储程序;至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第七方面中所提供的方法。
302.在第七方面中,本技术实施例还提供了一种计算机存储介质,计算机存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行第七方面中所提供的方法。
303.在第七方面中,本技术实施例还提供了一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行第七方面中所提供的方法。
304.在第七方面中,本技术实施例还提供了一种规则引擎的执行装置,该装置运行计算机程序指令,以执行如第七方面中所提供的方法。示例性的,该装置可以为芯片,或处理器。在一个例子中,该装置可以包括处理器,该处理器可以与存储器耦合,读取存储器中的指令并根据该指令执行如第七方面中所提供的方法。其中,该存储器可以集成在芯片或处理器中,也可以独立于芯片或处理器之外。
附图说明
305.图1是现有技术一个意图识别的场景示意图;
306.图2是本技术实施例中一个实体识别场景示意图;
307.图3是本技术实施例中一个意图和槽位关系示意图;
308.图4是本技术实施例中产生打点数据的一个场景示意图;
309.图5是本技术实施例中产生打点数据的另一个场景示意图;
310.图6是本技术实施例中打点数据序列的一个示例性示意图;
311.图7是本技术实施例中将打点数据序列划分为分序列的一个示例性示意图;
312.图8是本技术实施例中将打点数据序列划分为分序列的另一个示例性示意图;
313.图9是本技术实施例中使用多示例学习模型的一个示例性示意图;
314.图10是本技术实施例中打点数据的一个示例性示意图;
315.图11是本技术实施例提供的知识图谱的基本结构示意图;
316.图12是本技术实施例中节点设备侧中模型学习目标的形式化示意图;
317.图13是本技术实施例中一个电子设备的示例性结构示意图;
318.图14是本技术实施例中一个电子设备的示例性软件结构框图;
319.图15是本技术实施例中一个意图识别决策系统的示例性软件结构框图;
320.图16是本技术实施例中一个意图识别的场景示意图;
321.图17是本技术实施例提供的规则引擎中的一种规则拓扑图的示意图;
322.图18是图17所示的规则拓扑图中一种模式节点的结构示意图;
323.图19是图17所示的规则拓扑图中模式节点和结果节点的类型切换示意图;
324.图20是本技术实施例提供的规则引擎中的另一种规则拓扑图的示意图;
325.图21是本技术实施例提供的一种规则引擎的执行方法的流程示意图;
326.图22是本技术实施例提供的一种规则引擎的结构示意图;
327.图23是本技术实施例中多示例学习模型的训练方法中一个数据流向示意图;
328.图24是本技术实施例中多示例学习模型的训练方法中一个流程示意图;
329.图25是本技术实施例中确定示例和示例标签的一个示例性示意图;
330.图26是本技术实施例中确定包和包标签的一个示例性示意图;
331.图27是本技术实施例中提取包的特征向量矩阵的一个示例性示意图;
332.图28是本技术实施例中训练多示例学习模型的一个示例性示意图;
333.图29是本技术实施例中多示例学习模型将待处理序列划分为子序列的示例性示意图;
334.图30是本技术实施例中多示例学习模型迭代训练的一个示例性示意图;
335.图31是本技术实施例多示例学习模型迭代生成子序列的一个示例性示意图;
336.图32是本技术实施例中多示例学习模型的更新过程一个数据流向示意图;
337.图33是本技术实施例中多示例学习模型的更新过程一个流程示意图;
338.图34是本技术实施例中多示例学习模型的训练方法一个交互示意图;
339.图35是本技术实施例中多示例学习模型的更新训练过程一个交互示意图;
340.图36是本技术实施例提供的一种人工智能主体框架示意图;
341.图37是本技术实施例提供的一种应用环境示意图;
342.图38是本技术实施例提供的另一种应用环境示意图;
343.图39是本技术实施例提供的一种基于神经网络的数据处理方法的一个示意图;
344.图40是本技术实施例提供的一种基于神经网络的数据处理方法的另一个示意图;
345.图41a本技术实施例提供的一种基于神经网络的数据处理方法的另一个示意图;
346.图41b本技术实施例提供的一种基于神经网络的数据处理方法的另一个示意图;
347.图42是本技术实施例中联合学习系统的一种架构示意图;
348.图43是本技术实施例中一种模型训练方法的一个实施例的步骤流程示意图;
349.图44a是本技术实施例中群体粗粒度模型与粗粒度标签映射的示意图;
350.图44b是本技术实施例中群体粗粒度模型和细粒度模型的联合模型与细粒度标签映射的示意图;
351.图45是本技术实施例中端云协同更新群体粗粒度模型和个体粗粒度模型的示意图;
352.图46a是本技术实施例中个体粗粒度模型与粗粒度标签映射的示意图;
353.图46b是本技术实施例中群体粗粒度模型、个体粗粒度模型和细粒度模型的联合模型与细粒度标签映射的示意图;
354.图47是本技术实施例中意图识别方法的一个数据流向示意图;
355.图48是本技术实施例中意图识别方法的一个流程示意图;
356.图49是本技术实施例中多示例学习模型将输入序列划分为子序列的一个示例性示意图;
357.图50是本技术实施例提供的意图识别方法的流程示意图之一;
358.图51是本技术实施例提供的意图识别方法的流程示意图之二;
359.图52是本技术实施例提供的目标意图的内容的展示示意图之一;
360.图53是本技术实施例提供的目标意图的内容的展示示意图之二;
361.图54是本技术实施例提供的意图识别方法的流程示意图之三;
362.图55是本技术实施例提供的目标操作的示意图之一;
363.图56是本技术实施例提供的目标操作的示意图之二;
364.图57是本技术实施例提供的目标操作的示意图之三;
365.图58是本技术实施例提供的候选意图发生变化的场景示意图;
366.图59是本技术实施例中意图识别方法一个流程示意图;
367.图60是本技术实施例中一个多设备互联的分布式场景的示例示意图;
368.图61是本技术实施例中实体扩展的一个信息流示意图;
369.图62是本技术实施例中意图扩展的一个信息流示意图;
370.图63是本技术实施例中另一个电子设备的示例性结构示意图。
具体实施方式
371.本技术以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本技术的限制。如在本技术的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本方案中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。
372.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
373.由于本技术实施例涉及意图识别与决策相关技术,为了便于理解,下面先对本技术实施例涉及的相关术语及相关概念进行介绍。
374.(1)单模态输入
375.单模态输入指仅采用单一输入方式的数据。例如仅采用传感器检测的数据,或仅采用用户文本输入的数据。
376.(2)多模态输入
377.多模态输入指对多种输入方式的数据均可予以采用。
378.例如,电子设备中一般有用户操作输入、环境感知输入、文本输入、语音输入、视觉输入等多种数据输入方式。
379.此外,多模态输入还可以包括从与该电子设备互联的其他智能设备中获取的数据输入。具体互联方式并不限定,可以为点对点的直接连接,如通过蓝牙连接,也可以为通过局域网方式连接,还可以为通过互联网方式连接等。例如,电子设备可以从与其互联的智能
音响中获取用户的语音控制命令作为一种输入方式,可以从与其互联的智能音响中获取用户歌曲播放列表作为一种输入方式,可以从与其互联的电视中获取用户开关机时间记录和节目播放记录作为一个输入方式,可以从与其互联的灯中获取用户开关灯的时间记录作为一种输入方式,可以从与其互联的洗衣机中获取用户的洗衣时间与洗衣重量作为一种输入方式,可以从与其互联的空调中获取用户最常使用的温度作为一种输入方式,可以从与其互联的摄像头中获取识别出的人物信息作为一种输入方式等等,此处不作限定。
380.多模态输入即指可以采用这些不同种输入方式的数据。
381.可以理解的是,在有些情况下,多模态输入可以采用所有输入方式的数据,在有些情况下,多模态输入包括至少两种输入方式的数据,在有些情况下,多模态输入也可能只能获取到一种输入方式的数据,具体根据当前的输入环境以及需求确定,并非多模态输入就一定限定为必须采用两种以上输入方式的数据。
382.本技术实施例中之所以采用多模态输入,是因为实体学习框架(含实体识别、上下文)要求对环境的状态描述足够准确,但有些设备受限于硬件性能、可获取资源等客观因素,感知、描述环境的能力弱,比如精确度低、噪声大等,或者只能观察、描述某些特定环境,因而需要将这些设备获取到的信息综合起来,以提供完整的环境描述。
383.(3)上下文信息
384.上下文,在编程语言中,一般指与现在这个工作相关的周围环境。例如与当前操作相关的前一步状态和下一步状态。
385.在本技术实施例中,上下文信息一般指在电子设备中当前时刻的数据,以及在当前时刻之前一段时间窗格内电子设备中的数据。
386.(4)时间窗格
387.时间窗格指一段时间。
388.例如从此刻开始直到20秒后,这20秒就是一段时间窗格。
389.(5)实体
390.本技术实施例中,实体指现实世界中客观存在的并可以相互区分的对象、事物或动作。
391.简单的理解,实体,可以认为是某一个概念的实例。例如,“人名”是一种概念,或者说实体类型,那么“小明”就是一种“人名”实体了;“时间”是一种实体类型,那么“中秋节”就是一种“时间”实体了。
392.不同设备感知到的多模态输入可以映射为不同的实体。图2为一个实体识别场景示意图。如图2所示:拍摄的照片通过对象识别算法映射到不同的对象实体,如学生、帽子、外套等;用户历史打开过的应用通过应用市场分类可以映射到游戏、娱乐、视频、美食等实体;语音识别到的对话或者文字输入,可以映射为订机票、南京、上海等动作、地点类的实体。
393.具体地,令xm表示多模态输入,εm表示第m个模态对应的实体空间,ψm表示第m个模态输入到实体空间的映射函数:ψm:xm

εm(某些场景下可以利用其它xm作为增广)。ψ可以通过收集标注数据,利用学习算法学习得到,也可以使用类似应用市场中对应用人工分类打标签这种人为的预置规则得到。在实体学习框架下,统一的特征空间为ψ即为输入x到统一特征空间ε的映射函数。
394.实体在电子设备中可以采用【实体标识(id),实体名,实体表示】的方式存储。其中,实体id用于唯一标识一个实体;实体名为该实体对应与现实世界中对象、事物或动作的名词,该实体名可以有也可以没有;实体表示由一些特征(embedding)向量组成,用于表示该实体的特征。应理解的是,实体表示也可以由其他形式的特征向量组成,比如文本形式,在此不做限定。
395.(6)实体识别
396.实体识别,就是将想要获取到的实体类型,从获取到的输入数据中识别出来的过程。
397.可以通过实体学习的方式进行实体识别,也可以通过预置规则进行实体识别,此处不作限定。
398.实现实体识别的方式有很多,对不同的输入类型,也可以采用不同的实体识别方式。例如,可以采用分词和深度条件随机场对文本输入数据进行实体识别;可以采用快速目标检测算法(fastrcnn)对视觉输入数据进行实体识别;可以提取profiling数据对用户操作进行实体识别;可以调用传感器应用程序编程接口(application programming interface,api)对环境感知数据进行实体识别;可以采用命名实体识别(named entity recognition,ner)对语音输入数据进行实体识别等,可以理解的是,对每种输入类型,都可以采用很多不同的机器学习技术进行实体识别,例如,逻辑回归等机器学习技术,此处不作限定。
399.(7)实体序列
400.实体序列指在一个时间段内识别出的实体的集合,其中至少包含一个实体。
401.例如,从此时开始触发实体识别,此次实体识别的时间窗格长度是30秒。在这30秒中识别到的实体为:进入车库,走近车辆,时间为早上8点,则此次实体识别的内容可形成实体序列【进入车库;走近车辆;时间为早上8点】。若在此前的一次实体识别的触发后形成的实体序列为【打开支付宝;进行支付;收到购物短信】,则它们可以组成更长的实体序列为【打开支付宝;进行支付;收到购物短信;进入车库;走近车辆;时间为早上8点】。
402.根据使用场景的需求,实体序列中的实体排列可以具有顺序特征,也可以不具有顺序特征:
403.在不具有顺序特征的实体序列中,如果实体序列中的实体相同,那么其中的实体可以任意交换存储位置而不影响将该实体序列确认为同一个实体序列。例如,在这种情况下,实体序列【进入车库;走近车辆;时间为早上8点】与实体序列【时间为早上8点;进入车库;走近车辆】可以认为是相同的实体序列。
404.在具有顺序特征的实体序列中,即使实体序列中的实体相同,如果其中实体的排序不同,也会被认为是不同的实体序列。例如,在这种情况下,实体序列【进入车库;走近车辆;时间为早上8点】与实体序列【时间为早上8点;进入车库;走近车辆】则可以被认为是不同的实体序列。
405.具有顺序特征的实体序列中,确定其中实体的顺序的方式有很多种:可以按照将实体识别出的时间顺序来进行排序,例如,若识别得到实体的顺序为进入车库,走近车辆,时间为早上8点,则可以组成按时间排序的实体序列【进入车库;走近车辆;时间为早上8点】;电子设备中可以存储有实体优先级列表,可以按照该实体优先级列表中各实体的优先
级,将识别出的实体按照优先级从高到低或从低到高的顺序排序,同一优先级的实体按预存的默认实体排序组成实体序列,例如,若实体优先级列表中时间实体为最高优先级,动作实体为第二优先级,识别得到实体的顺序为进入车库,走近车辆,时间为早上8点,则可以组成按优先级排序的实体序列【时间为早上8点;进入车库;走近车辆】,在具有顺序特征的实体序列中,还可以有很多确定其中实体顺序的方式,此处不作限定。
406.(8)意图和槽位
407.8.1、意图和槽位的定义
408.意图,是指电子设备识别用户实际的或潜在的需求是什么。从根本来说,意图识别是一个分类器,将用户需求划分为某个类型;或者,意图识别是一个排序器,将用户的潜在可能需求集合按照可能性进行排序。
409.意图和槽位共同构成了“用户动作”,电子设备无法直接理解自然语言,因此意图识别的作用便是将自然语言或操作映射为机器能够理解的结构化语义表示。
410.意图识别,也被称为suc(spoken utterance classification),顾名思义,是将用户输入的自然语言会话进行类别(classification)划分,划分的类别对应的就是用户意图。例如“今天天气如何”,其意图为“询问天气”。自然地,可以将意图识别看作一个典型的分类问题。示例性的,意图的分类和定义可参考iso

24617

2标准,其中共有56种详细的定义。意图的定义与系统自身的定位和所具有的知识库有很大关系,即意图的定义具有非常强的领域相关性。可以理解的是,本技术实施例中,意图的分类和定义不局限于iso

24617

2标准。
411.槽位,即意图所带的参数。一个意图可能对应若干个槽位,例如询问公交车路线时,需要给出出发地、目的地、时间等必要参数。以上参数即“询问公交车路线”这一意图对应的槽位。
412.例如,语义槽位填充任务的主要目标是在已知特定领域或特定意图的语义框架(semantic frame)的前提下,从输入语句中抽取该语义框架中预先定义好的语义槽的值。语义槽位填充任务可以转化为序列标注任务,即运用经典的iob标记法,标记某一个词是某一语义槽的开始(begin)、延续(inside),或是非语义槽(outside)。
413.要使一个系统能正常工作,首先要设计意图和槽位。意图和槽位能够让系统知道该执行哪项特定任务,并且给出执行该任务时需要的参数类型。
414.以一个具体的“询问天气”的需求为例,介绍面向任务的对话系统中对意图和槽位的设计:
415.用户输入示例:“今天上海天气怎么样”;
416.用户意图定义:询问天气,ask_weather;
417.槽位定义:槽位一:时间,date;槽位二:地点,location。
418.图3为本技术实施例中一个意图和槽位关系示意图。如图3中(a)所示,在该示例中,针对“询问天气”任务定义了两个必要的槽位,它们分别是“时间”和“地点”。对于一个单一的任务,上述定义便可解决任务需求。但在真实的业务环境下,一个系统往往需要能够同时处理若干个任务,例如气象台除了能够回答“询问天气”的问题,也应该能够回答“询问温度”的问题。
419.对于同一系统处理多种任务的复杂情况,一种优化的策略是定义更上层的领域,
如将“询问天气”意图和“询问温度”意图均归属于“天气”领域。在这种情况下,可以简单地将领域理解为意图的集合。定义领域并先进行领域识别的优点是可以约束领域知识范围,减少后续意图识别和槽位填充的搜索空间。此外,对于每一个领域进行更深入的理解,利用好任务及领域相关的特定知识和特征,往往能够显著地提升自然语言理解(natural language understanding,nlu)的效果。据此,对图3中(a)的示例进行改进,加入“天气”领域:
420.用户输入示例:
421.1.“今天上海天气怎么样”;
422.2.“上海现在气温多少度”;
423.领域定义:天气,weather;
424.用户意图定义:
425.1.询问天气,ask_weather;
426.2.询问温度,ask_temperature;
427.槽位定义:
428.槽位一:时间,date;
429.槽位二:地点,location。
430.改进后的“询问天气”的需求对应的意图和槽位如图3中(b)所示。
431.8.2、意图识别和槽位填充
432.做好意图和槽位的定义后,可以从用户输入中识别用户意图和相应槽对应的槽值。
433.意图识别的目标是从输入中识别用户意图,单一任务可以简单地建模为一个二分类问题,如“询问天气”意图,在意图识别时可以被建模为“是询问天气”或者“不是询问天气”二分类问题。当涉及需要系统处理多种任务时,系统需要能够判别各个意图,在这种情况下,二分类问题就转化成了多分类问题。
434.槽位填充的任务是从数据中提取信息并填充到事先定义好的槽位中,例如在图3中已经定义好了意图和相应的槽位,对于用户输入“今天上海天气怎么样”系统应当能够提取出“今天”和“上海”并分别将其填充到“时间”和“地点”槽位。基于特征提取的传统机器学习模型已经在槽位填充任务上得到了广泛应用。近年来,随着深度学习技术在自然语言处理领域的发展,基于深度学习的方法也逐渐被应用于槽位填充任务。相比于传统的机器学习方法,深度学习模型能够自动学习输入数据的隐含特征。例如,将可以利用更多上下文特征的最大熵马尔可夫模型引入槽位填充的过程中,类似地,也有研究将条件随机场模型引入槽位填充。
435.(9)动作序列
436.一个动作序列可以包含至少一个待执行动作。
437.在一些实施例中,一个待执行动作为本设备需要执行的一个动作或服务。
438.在一些实施例中,一个待执行动作中可以至少包含设备标识与动作/服务标识。
439.示例性的,一个待执行动作的表现形式可以为【序号、设备标识、动作/服务】,其中序号可以表示该待执行动作的编号,也可以表示该待执行动作在该动作序列中的排序,设备标识表示需要由哪个设备来执行这个待执行动作,动作/服务表示这个待执行动作具体
是要执行什么样的动作或服务。
440.一个动作序列中可以仅包含有一个待执行动作,也可以包含有多个待执行动作,这些待执行动作中的设备标识可以为确定该动作序列的电子设备自己,也可以为其他电子设备,此处不作限定。
441.本技术实施例中,动作序列中的待执行动作大部分为预加载类动作/服务,例如后台预加载应用程序等,在实际应用中,也可以为直接执行的动作/服务,例如连接蓝牙等,此处不做限定。
442.下面举例对本技术实施例中可能采用的不同的动作序列进行描述:
443.1、若手机a确定了一个动作序列,该动作序列中仅包含一个待执行动作,这一个待执行动作中的设备标识为手机a自己:
444.该待执行动作的表现形式中可以有序号,例如【1、手机a、打开蓝牙】,也可以没有序号,例如【手机a、打开蓝牙】。由于确定的动作序列中只有一个待执行动作,且该待执行动作中的设备标识对应于手机a自己,因此手机a直接执行该待执行动作,打开蓝牙。
445.2、若手机a确定了一个动作序列,该动作序列中包含多个待执行动作,这多个待执行动作中的设备标识均为手机a自己:
446.2.1、这多个待执行动作的表现形式中没有序号,或有序号,但该序号仅为待执行动作的编号,并不设定为待执行动作的执行顺序:
447.例如2个待执行动作为【手机a、打开蓝牙】【手机a、打开wifi】,或【1、手机a、打开蓝牙】【2、手机a、打开wifi】。由于确定的动作序列中的2个待执行动作中设备标识均为手机a自己,手机a执行这两个待执行动作,打开wifi,并不完全限定这两个待执行动作的执行顺序。
448.2.2、这多个待执行动作的表现形式中有序号,且序号设定为待执行动作的执行顺序:
449.例如2个待执行动作为【1、手机a、打开蓝牙】【2、手机a、打开wifi】,由于确定的动作序列中的2个待执行动作中设备标识均为手机a自己,且具有标识执行顺序的编号,因此,手机a先打开蓝牙,再打开wifi。
450.3、若手机a确定了一个动作序列,该动作序列中包含多个待执行动作,这多个待执行动作中的设备标识均为智能设备b:
451.3.1、这多个待执行动作的表现形式中没有序号,或有序号,但该序号仅为待执行动作的编号,并不设定为待执行动作的执行顺序:
452.例如2个待执行动作为【智能设备b、切换低温模式】【智能设备b、除湿】,或【1、智能设备b、切换低温模式】【2、智能设备b、除湿】。由于确定的动作序列中的2个待执行动作中设备标识均为智能设备b,手机a发送可以发送两条指令到智能设备b,也可以仅发送一条指令到智能设备b,指示智能设备切换低温模式,除湿,且不限定其执行动作的顺序。
453.3.2、这多个待执行动作的表现形式中有序号,且序号设定为待执行动作的执行顺序:
454.例如2个待执行动作为【1、智能设备b、唤醒】【2、智能设备b、除湿】,由于确定的动作序列中的2个待执行动作中设备标识均为智能设备b,且具有标识执行顺序的编号,因此,手机a可以发送两条指令到智能设备b,也可以仅发送一条指令到智能设备b,接收到指令
后,智能设备b按照序号的顺序,先唤醒,然后在除湿。
455.4、若手机a确定了一个动作序列,该动作序列中包含多个待执行动作,这多个待执行动作中的设备标识为多个设备,这多个设备中有手机a自己:
456.4.1、这多个待执行动作的表现形式中没有序号,或有序号,但该序号仅为待执行动作的编号,并不设定为待执行动作的执行顺序:
457.例如,3个待执行动作为【智能设备b、切换低温模式】【手机a、打开蓝牙】【智能设备c、切换为护眼模式】,或【1、智能设备b、切换低温模式】【2、手机a、打开蓝牙】【3、智能设备c、切换为护眼模式】。手机a根据这三个待执行动作中设备标识对应的设备,发送指令给智能设备b,智能设备b切换低温模式,自己执行打开蓝牙操作,发送指令给智能设备c,智能设备c启动,且这三个动作的执行并不限制执行顺序。
458.4.2、这多个待执行动作的表现形式中有序号,且序号设定为待执行动作的执行顺序:
459.例如,3个待执行动作为【1、智能设备b、切换低温模式】【2、手机a、打开蓝牙】【3、智能设备c、切换为护眼模式】。手机a根据这三个待执行动作中设备标识对应的设备以及表示执行顺序的序号,先发送指令给智能设备b,智能设备b切换低温模式,然后自己执行打开蓝牙操作,最后发送指令给智能设备c,智能设备c切换为护眼模式。
460.5、若手机a确定了一个动作序列,该动作序列中包含多个待执行动作,这多个待执行动作中的设备标识为多个设备,这多个设备中没有手机a自己:
461.5.1、这多个待执行动作的表现形式中没有序号,或有序号,但该序号仅为待执行动作的编号,并不设定为待执行动作的执行顺序:
462.例如,3个待执行动作为【智能设备b、切换低温模式】【智能设备b、换气】【智能设备c、切换为护眼模式】,或【1、智能设备b、切换低温模式】【2、智能设备b、换气】【3、智能设备c、切换为护眼模式】。手机a根据这三个待执行动作中设备标识对应的设备,可以发送一个或两个指令给智能设备b,智能设备b切换低温模式并换气,发送指令给智能设备c,智能设备c启动,且这三个动作的执行并不限制执行顺序。
463.5.2、这多个待执行动作的表现形式中有序号,且序号设定为待执行动作的执行顺序:
464.例如,3个待执行动作为【1、智能设备b、切换低温模式】【2、智能设备b、换气】【3、智能设备c、切换为护眼模式】。手机a根据这三个待执行动作中设备标识对应的设备以及表示执行顺序的序号,先发送一个或两个指令给智能设备b,智能设备b先切换低温模式,然后再换气,最后发送指令给智能设备c,智能设备c切换为护眼模式。
465.根据实际情况需求,本技术实施例中的待执行动作可以为以上任一种情况,此处不作限定。
466.(10)实体序列、意图与动作序列的关系
467.1、根据实体序列与意图的对应关系,一个实体序列可以对应一个意图,也可以对应多个意图。
468.即同一个实体序列即可以对应一个意图,也可以对应多个意图。其中,当多个意图之间存在层次关系或者关联关系时,一个实体序列可以对应多个意图。例如,玩游戏和娱乐这两种意图存在层次关系,当一个实体序列对应的意图为玩游戏时,该实体序列对应的意
图也为娱乐。然而两个不同的实体序列,其可能对应两个不同的意图,也有可能对应一个相同的意图,此处不作限定。
469.例如,一个实体序列【播放,机器猫,第四集,打开电视】对应的意图可以为:“播放视频”,对应的槽位可以为:“设备,电视”、“内容,机器猫”、“选集,四”;另一个不同的实体序列【上午8点,开灯】对应的意图可以为:“提高环境亮度”,对应的槽位可以为:“时间,上午8点”、“设备,灯”,两个不同的实体序列对应了两个不同的意图和槽位。
470.再如,一个实体序列【播放,机器猫,第四集,打开电视】对应的意图可以为:“播放视频”,对应的槽位可以为:“设备,电视”、“内容,机器猫”、“选集,四”;而另一个不同的实体序列【播放,机器猫,第四集,打开投影仪】对应的意图也可以为:“播放视频”,对应的槽位可以为:“设备,投影仪”、“内容,机器猫”、“选集,四”,两个不同的实体序列可以对应一个相同的意图。
471.2、根据实体序列、意图与动作序列的对应关系,一组实体序列和意图对应的一个动作序列。
472.例如,一组实体序列【播放,机器猫,第四集,打开电视】和意图播放视频,对应的动作序列可以为【1、电视、播放器预加载机器猫第四集】,另一组实体序列【上午8点,开灯】和意图提高环境亮度,对应的动作序列可以为【1、智能窗帘、打开窗帘】。每组实体序列和意图可以对应一个动作序列。
473.可以理解的是,对应的动作序列中也可以有多个待执行动作,为便于描述,此处仅以动作序列中有一个待执行动作和待执行动作的一种表现形式为例。对动作序列的具体描述可参阅术语动作序列部分的描述,此处不再赘述。
474.(11)打点数据:
475.本技术实施例中,打点数据为电子设备在本地记录的用户日常的操作数据和/或电子设备对用户操作的响应数据。在一个例子中,打点数据可以是在电子设备执行确定出的待执行动作后所记录的用户的操作数据和/或对用户操作的响应数据。示例性的,当待执行动作为打开应用a时,电子设备可以打开应用a;若用户未使用该应用a,而是将应用a关闭,则记录用户关闭应用a的操作;若用户使用该应用a,则记录用户使用该应用a的操作。在一个例子中,打点数据的输入方式也可以为多模态输入。
476.当用户在电子设备中做一些操作时,如:输入内容、点击按钮、进入某页面、打开某弹框、打开某应用程序等,电子设备会通过预设打点接口,记录用户做的操作以及电子设备基于该操作的响应动作。电子设备记录的这些用户操作及电子设备的响应动作,即为一条条的打点数据。
477.如图4为本技术实施例中产生打点数据的一个场景示意图。示例性的,用户在使用语音助手打开视频应用程序a(例如应用程序华为视频等)时,其过程可以为:
478.如图4中的(a)所示,步骤1、用户唤醒语音助手,向语音助手表述打开视频应用程序a;
479.如图4中的(b)所示,步骤2、语音助手根据用户的表述打开视频应用程序a。
480.在这个过程中,就可以产生至少两条打点数据:
481.打点数据1:语音助手产生的接收到用户表述要打开视频应用程序a的打点数据;
482.打点数据2:电子设备打开视频应用程序a的打点数据。
483.若用户此时又想使用应用程序音乐,则其过程可以为:
484.如图4中的(c)所示,步骤1、用户操作电子设备回到主界面;
485.如图4中的(d)所示,步骤2、响应用户点击,打开应用程序音乐。
486.在这个过程中,可以又产生至少两条打点数据:
487.打点数据3:返回主界面;
488.打点数据4:电子设备打开应用程序音乐。
489.可以理解的是,电子设备保存打点数据的格式可以有很多,可以以数据交换格式的方式来保存打点数据,例如使用js对象简谱(javascript object notation,json)等,也可以以表格、数据库等方式保存打点数据,还可以以其他方式保存打点数据,此处不作限定。
490.电子设备还可以为各打点数据加上标签,来表明各打点数据的产生方式和作用等。例如,可以标注出打点数据的编号、产生时间、来源的应用程序、意图等等,此处不作限定。且由于应用程序不同或运行环境不同等因素,各条打点数据加上的标签经常会不完整。
491.除了上述图4中示例性的用户使用语音助手或直接打开应用程序时会产生打点数据外,用户在电子设备上进行其他操作时也可以产生打点数据:
492.如图5所示,为本技术实施例中产生打点数据的另一个场景示意图。示例性的,若用户想要搜索某个内容,其过程可以为:
493.如图5中的(a)所示,步骤1:用户打开浏览器;
494.如图5中的(b)所示,步骤2:用户在浏览器出现的默认搜索引擎中搜索关键词1;
495.如图5中的(c)所示,步骤3:用户从多个搜索结果中选择想要的搜索结果3;
496.如图5中的(d)所示,步骤4:用户查看搜索结果3的内容。
497.在这个过程中,电子设备可以产生如下打点数据:
498.打点数据5:电子设备打开浏览器;
499.打点数据6:默认搜索引擎中接收到关键词1;
500.打点数据7:关键词1搜索到的多个搜索结果中被确定的是搜索结果3;
501.打点数据8:电子设备显示搜索结果3的内容。
502.可以理解的是,电子设备中还可以有很多其他操作可以产生打点数据的场景,此处不作限定。
503.(12)打点数据序列:
504.电子设备中保存的连续多条打点数据形成了打点数据序列。
505.示例性的,图4所示场景中即产生了【打点数据1】【打点数据2】【打点数据3】【打点数据4】这样的打点数据序列。
506.示例性的,如果图4所示的场景中的用户操作之后,又连续进行了图5所示场景中的用户操作。则图4所示场景中产生的打点数据可以与图5所示场景中产生的打点数据连续保存,产生【打点数据1】【打点数据2】【打点数据3】【打点数据4】【打点数据5】【打点数据6】【打点数据7】【打点数据8】这样的打点数据序列。
507.可以理解的是,打点数据序列可以使用列表、数组、矩阵等形式表示,此处不作限定。
508.一般的,用户的连续操作产生的打点数据序列往往对应相同的意图。例如图4中的
(a)和(b),表示用户的意图为打开视频应用程序a。图4中的(c)和(d)表示用户的意图为打开应用程序音乐。图5中的(a)、(b)(c)、(d),表示用户的意图为得到搜索结果3的内容。
509.但由于当前产生的打点数据的标签经常不够准确和完整,如果用户在短时间内连续操作电子设备,产生的打点数据序列中可能包含有多个意图。则很难用现有模型或规则预测哪些连续打点数据对应哪个意图。而采用本技术实施例中的方法,可以更准确的识别出打点数据序列中的各意图。
510.用户的连续操作具体可以理解为:用户进行了多次操作且多次操作之间的时间间隔小于第一预设时间间隔。例如,用户可以在进行了图4中的(a)操作后的2秒内,又进行了图4中的(c)操作;在进行图4中的(c)操作的2秒内又进行了图5中的(a)操作。这样,用户进行的图4中的(a)操作、图4中的(c)和图5中的(a)操作就可以被称为用户的连续操作。
511.可以理解的是,本技术实施例中并不限定打点数据序列是由用户的连续操作产生的,用户的连续操作产生的打点数据可以组成打点数据序列,用户的非连续操作产生的打点数据也可以组成打点数据序列。只是用户的连续操作产生的打点数据组成的打点数据序列按照常规方法较难用现有模型或规则预测出其中的哪些连续打点数据对应哪个意图。
512.示例性的,图6为本技术实施例中打点数据序列的一个示例性示意图。以日常使用电子设备为例,用户用到的最多的操作就是打开某个应用和返回主界面,有时候也会用到语音助手执行一些动作。图6是从真实场景中获取的部分用户操作电子设备的打点数据。为便于查看,将语音助手的打点数据标记为v,将电子设备执行操作的打点数据标记为a,将电子设备返回桌面的打点数据标记为l。则按产生的打点数据的顺序即可以得到图6所示的打点数据序列【v,唤醒语音助手

执行导航】【a,语音助手拉起导航应用】【l,返回桌面】【a,用户主动打开地图导航应用】【v,唤醒语音助手

执行打开视频应用程序a】【l,返回桌面】【a,打开视频应用程序a】【l,返回桌面】【a,打开录音机】【l,返回桌面】【a,打开天气】【l,返回桌面】【



】。
513.可以理解的是,图6为展示打点数据序列与打点数据之间关系的一个示例性示意图,并不表示其为实际应用中打点数据和打点数据序列的存储和显示方式。在实际应用中,打点数据和打点数据序列可以采用表格、数组、矩阵、数据库等等方式进行存储和显示,此处不作限定。
514.(13)第一预设规则、第二预设规则和分序列:
515.本技术实施例中,第二预设规则用于根据各序列中的打点数据确定各序列的意图。第一预设规则用于将打点数据序列划分为不同的分序列,且一个分序列根据该第二预设规则至少可以确定一个明确的意图。
516.本技术实施例中,该第一预设规则也可以被称为预设拆分规则,该第二预设规则也可以被称为预设意图规则。
517.在一些实施例中,该第一预设规则和第二预设规则可以合并为一个规则或规则集合,也可以是两个分别运行的规则或规则集合,此处不作限定。
518.该第一预设规则和第二预设规则可以出厂预设,也可以从服务器中下载或更新,此处不作限定。
519.如图7所示,为本技术实施例中将打点数据序列划分为分序列的一个示例性示意图。示例性的,若第一预设规则为:将用户每次从亮屏到息屏一系列连续操作产生的打点数
据划分为一个分序列。若第二预设规则为:用户息屏前关闭的最后一个使用的应用为用户的意图。
520.若打点数据序列a1中:序列b1段的打点数据为在一次亮屏后到息屏间的一系列连续操作产生的;序列b2段的打点数据为在另一次亮屏后到息屏间的一系列连续操作产生的;序列b3段的打点数据为在另一次亮屏后到息屏间的一系列连续操作产生的。
521.则根据该第一预设规则,电子设备可以将该打点数据序列a1划分成3个分序列:分序列b1,分序列b2与分序列b3。
522.且根据第二预设规则,电子设备可以确定,每个分序列根据第二预设规则至少可以确定一个明确的意图。分序列b1的意图为息屏前关闭的最后一个使用的应用:打开视频应用程序a。分序列b2的意图为息屏前关闭的最后一个使用的应用:打开录音机。分序列b3的意图为息屏前关闭的最后一个使用的应用:打开天气。
523.如图8所示,为本技术实施例中将打点数据序列划分为分序列的另一个示例性示意图。示例性的,若第一预设规则为:将产生相邻两条打点数据的时间间隔小于预设打点时间间隔的打点数据划分为一个分序列。若第二预设规则为:各分序列中打开的最后一个应用是用户的意图。
524.若打点数据序列a2中:产生序列c1段的各相邻打点数据的时间间隔小于预设打点时间间隔;产生序列c2段的各相邻打点数据的时间间隔小于预设打点时间间隔;产生序列c3段的各相邻打点数据的时间间隔小于预设打点时间间隔;产生序列c1段最后的一个打点数据与产生序列c2段第一个打点数据的时间间隔不小于预设打点时间间隔;产生序列c2段最后的一个打点数据与产生序列c3段第一个打点数据的时间间隔不小于预设打点时间间隔。
525.则根据该第一预设规则,电子设备可以将该打点数据序列a2划分成3个分序列:分序列c1,分序列c2与分序列c3。
526.且根据第二预设规则,电子设备可以确定,每个分序列根据第二预设规则至少可以确定一个明确的意图。分序列c1的意图为分序列中最后一个打开的应用:打开地图导航。分序列c2的意图为分序列中最后一个打开的应用:打开录音机。分序列c3的意图为分序列中最后一个打开的应用:打开天气。
527.可以理解的是,图7和图8是本技术实施例中按照第一预设规则和第二预设规则将打点数据划分为分序列的两个示例性示意图,在实际应用中,还可以有很多其他的第一预设规则和第二预设规则的设定,从而达到第一预设规则用于将打点数据序列划分为不同的分序列,且一个分序列根据该第二预设规则至少可以确定一个明确的意图的效果,此处不作限定。
528.需要说明的是,第二预设规则只用于确定出序列的意图,第二预设规则确定的序列的意图是该序列的多个意图中的一个,还是该序列的唯一的意图,此处不作限定。
529.在一些实施例中,第二预设规则可以为根据深度学习模型从序列中提取打点数据的意图信息和槽位信息,从而确定出该序列的意图,此处不作限定。
530.(14)多示例学习模型、示例和示例标签(label)、包和包标签
531.本技术实施例中,多示例学习模型用于根据各待处理序列中连续的打点数据属于同一意图的可能性,将各待处理序列中可能不属于同一个意图的连续的打点数据划分到不
同的粒度更小的子序列中,得到多个子序列。
532.该待处理序列可以为使用该第一预设规则将打点数据序列划分成的分序列,也可以为使用该多示例学习模型将该分序列划分成的更小粒度的子序列。本技术实施例中,待处理序列也可以理解为输入多示例学习模型的打点数据序列。
533.本技术实施例中使用的多示例学习模型可以为任一种多示例学习模型,例如orlr模型,citation

knn模型,mi

svm模型,c4.5

mi模型,bp

mip模型,ensemble learning

mip模型等,此处不作限定。
534.多示例学习(multi

instance learning,mil)最初是用在制药领域中药物分子形状与药物活性的分类问题中。多示例学习以包(bag)为训练单元,包为示例(instance,或pair)的集合。
535.示例和示例标签:
536.本技术实施例中,相邻的两条打点数据可以组成一个示例。每个示例可以具有标签,示例标签包括正(positive)和负(negtive)。可以将示例标签为正的示例称为正示例,将示例标签为负的示例称为负示例。
537.可以使用不同的数值分别表示示例标签的正或负。例如可以使用示例标签为0表示该示例为正示例,使用示例标签为1表示该示例为负示例;也可以使用示例标签为1表示该示例为正示例,使用示例标签为0表示该示例为负示例;还可以使用其他的数值作为示例标签来分别表示示例为正示例还是负示例,此处不作限定。
538.本技术实施例中,位于同一个待处理序列中的两条相邻的打点数据组成的示例为正示例,位于不同待处理序列中的两条相邻的打点数据组成的示例为负示例。两条相邻的打点数据可以指这两条打点数据中开始时间相邻。
539.本技术实施例中,示例是为了确定连续打点数据是否对应相同的意图。一般的,此时可以认为在同一个待处理序列中相邻的两个打点数据对应相同的意图,所以将其组成的示例标记为正示例,表示这两个打点数据连续。此时可以认为在不同待处理序列中的打点数据对应不同的意图,所以将其组成的示例标记为负示例,表示这两个打点数据不连续。
540.包和包标签:
541.本技术实施例的多示例学习模型中,训练集由一组包(bag)组成,每个包具有包标签,包标签包括正和负。可以将包标签为正的包称为正包,将包标签为负的包称为负包。
542.可以理解的是,可以使用不同的数值作为包标签,分别表示该包为正包还是负包,此处不作限定。
543.每个包含有若干个示例。如果包中至少含有一个正示例,则该包为正包。如果包中所有示例都是负示例,则该包为负包。
544.多示例学习模型可以用包内的示例的特征和包标签训练模型,最后用训练的模型预测未知示例的示例标签。
545.本技术实施例中,位于同一个待处理序列中的打点数据组成的示例可以共同作为一个正包,该正包中含有至少一个正示例。位于一个待处理序列中的最后一个打点数据和与该待处理序列连续的下一个待处理序列中的第一个打点数据组成的示例可以作为一个负包,该负包中的示例均为负示例。
546.下面举例说明确定示例、示例标签、包和包标签的过程:
547.示例性的,若打点数据序列【a】【b】【c】【d】【e】根据第一预设规则划分为了分序列1:【a】【b】【c】和分序列2:【d】【e】,作为两个连续的待处理序列。
548.确定示例和示例标签:
549.该打点数据序列中相邻的两条打点数据组成一个示例,即可以得到4个示例:示例【a、b】、示例【b、c】、示例【c、d】和示例【d、e】。
550.由于示例【a、b】、示例【b、c】是由位于同一个待处理序列(分序列1)中的相邻两条打点数据组成的示例,因此,示例【a、b】和示例【b、c】都是正示例;
551.由于示例【c、d】是由不同待处理序列(分序列1和分序列2)中的两条相邻打点数据组成的示例,因此示例【c、d】是负示例;
552.由于示例【d、e】是由位于同一个待处理序列(分序列2)中的相邻两条打点数据组成的示例,因此,示例【d、e】是正示例;
553.则得到了:
554.正示例【a、b】,正【b、c】,负示例【c、d】和正示例【d、e】。
555.确定包和包标签:
556.位于同一个分序列1中的打点数据【a】【b】【c】组成的示例“示例【a、b】、示例【b、c】”作为一个正包;
557.位于分序列1中的最后一个打点数据【c】和与该分序列1连续的分序列2中的第一个打点数据【d】组成的示例“示例【c、d】”作为一个负包;
558.位于同一个分序列2中的打点数据【d】【e】组成的示例“示例【d】【e】”作为一个正包;
559.则形成了:
560.正包“示例【a、b】、示例【b、c】”,负包“示例【c、d】”,正包“示例【d】【e】”。
561.可以理解的是,若打点数据序列中有m个打点数据,则可以组成m

1个示例。若待处理序列的数目为n,则可以得到2n

1个包。m和n均为正整数。
562.如图9所示,为本技术实施例中使用多示例学习模型将各待处理序列划分为更小粒度的序列的一个示例性示意图。
563.下面结合图9举例说明多示例学习模型将各待处理序列划分为更小粒度的序列的过程:
564.以根据第一预设规则划分得到的两个分序列作为待处理序列,以数字序号和打点数据标记:v、a或l表示各打点数据为例,得到的两个待处理序列为:
565.待处理序列i1:1v、2a、3l、4a、5v、6a、7l、8a、9l、10a、11l;
566.待处理序列i2:12v、13a、14l、15v、16a、17l、18v、19a、20l、21a。
567.经过上述确定示例和示例标签,包和包标签的过程,这两个待处理序列i1和i2可以产生3个包,分别为:
568.b1:正包,包括10个正示例:【1v、2a】【2a、3l】【3l、4a】【4a、5v】【5v、6a】【6a、7l】【7l、8a】【8a、9l】【9l、10a】【10a、11l】;
569.b2:负包,包括1个负示例:【11l】【12v】;
570.b3:正包,包括9个正示例:【12v、13a】【13a、14l】【14l、15v】【15v、16a】【16a、17l】【17l、18v】【18v、19a】【19a、20l】【20l、21a】。
571.此时可以使用本技术实施例中的特征提取方法提取b1、b2、b3的每个包中每个示例的特征,得到每个特征的特征向量。若每个特征的特征向量的维度为j,若一个包中有k个示例,则从该包中提取的特征可以组成特征向量矩阵jxk。具体的提取示例的特征,并组成特征向量矩阵的过程可以参考术语描述中下述(10)打点数据序列包内示例的特征和包的特征向量矩阵中的内容,此处不作赘述。
572.得到b1、b2和b3每个包的特征向量矩阵后,可以将一个包作为一个训练单元,将一个包的特征向量矩阵和该包的包标签输入多示例学习模型中对该多示例学习模型进行训练。例如,先输入b1的特征向量矩阵和b1的包标签,再输入b2的特征向量矩阵和b2的包标签,再输入b3的特征向量矩阵和b3的包标签,以此类推。
573.在输入包的特征向量矩阵和包标签对多示例学习模型进行训练后,可以使用训练得到的多示例模型将待处理序列i1和i2划分为更小粒度的子序列。
574.由于多示例学习模型训练时使用了包的特征向量矩阵和包的标签,训练完成的模型可以直接预测示例的示例标签,因此,用待处理序列直接输入到多示例学习模型中就可以重新预测待处理序列中每个示例的示例标签,根据示例标签可以将待处理序列划分为更小粒度的序列,每个序列都对应一个独立的意图。
575.如图9所示,待处理序列i1和i2输入训练完的多示例学习模型后被划分成了更小粒度的子序列:
576.子序列i1:1v、2a、3l、4a;
577.子序列i2:5v、6a、7l;
578.子序列i3:8a、9l;
579.子序列i4:10a、11l;
580.子序列i5:12v、13a、14l;
581.子序列i6:15v、16a、17l;
582.子序列i7:18v、19a、20l、21a。
583.此时还可以使用第二预设规则确定每个子序列的意图。
584.(15)损失函数和训练完成的多示例学习模型:
585.损失函数是衡量预测模型在能够预测预期结果方面的表现有多好的指标。每种机器学习模型都有其对应的损失函数。模型的预测结果越好,则损失函数的值越小。
586.本技术实施例中,在使用已有的打点数据序列根据第一预设规则划分的分序列作为待处理序列,对多示例学习模型进行训练,并将该待处理序列划分为更小粒度的序列后。电子设备还可以继续将划分得到的更小粒度的序列作为待处理序列,迭代对多示例学习模型进行训练,从而将此时的待处理序列划分为更小粒度的序列。
587.在每次使用训练得到的多示例学习模型将待处理序列划分为更小粒度的序列后,电子设备可以得到该多示例学习模型的损失函数的值。当该损失函数的值不再减少,或减少的幅度小于预设减少阈值时,电子设备可以确定使用已有的打点数据序列不再对多示例模型的训练有较大的增益,电子设备可以将最后得到的多示例学习模型作为训练完成的多示例学习模型。
588.电子设备可以使用训练完成的多示例学习模型对新的打点数据序列进行序列划分。
589.(16)打点数据序列包内示例的特征和包的特征向量矩阵
590.本技术实施例中,示例由打点数据序列中相邻的两个打点数据组成。电子设备可以从示例的这两个打点数据中提取该示例的特征,组成该示例的特征向量。
591.一个示例的特征可以包含有多个维度。由于示例中包含相邻的两个打点数据,因此示例的特征与打点数据的特征密切相关。如图10所示,为本技术实施例中打点数据的一个示例性示意图。图10所示的示例中打点数据使用json结构体的格式保存,在实际应用中,打点数据还可以以其他方式保存,此处不作限定。图10中的(a)(b)(c)为打点数据序列中相邻的3个打点数据。图10中的(a)为一个语音助手打点数据v的示例;图10中的(b)为一个动作打点数据a的示例;图10中的(c)为一个返回桌面打点数据l的示例。
592.以下结合图10所示的打点数据的示例性示意图,以x为示例中的第一个打点数据,y为示例中的第二个打点数据为例,对本技术实施例中的多个维度的示例的特征分不同的类型进行描述:
593.1、示例的文本特征;
594.有些用户操作产生的打点数据会包含很多内容(如语音助手的打点数据),有些用户操作产生的打点数据包含的内容则较少(如打开应用程序的打点数据),通过示例的文本特征可以反应示例中打点数据内容的多少。
595.具体的,示例的文本特征可以包括示例中打点数据中关键字的总数目,以及示例中打点数据字符串的总长度等。
596.可选的,若打点数据以json结构体的格式保存,则示例的文本特征可以包括:
597.a)示例中x和y的json结构体的关键字的总个数;
598.b)示例中x和y对应的json字符串的总长度。
599.可以理解的是,还可以从打点数据中提取其他的文本特征作为示例的文本特征,例如word2vec特征、分词特征等,此处不作限定。
600.示例性的,以图10中的(a)所示的语音助手打点数据v和图10中的(b)所示的动作打点数据a组成一个示例为例。如果示例中第一个打点数据的字符串很长,第二个打点数据的字符串很短,则这个示例对应的两条打点数据很可能是连续的,对应着相同的意图。在使用文本特征描述示例的特征时,打点数据x(语音助手打点数据v)的json结构体中有25个关键字(图10中以粗体表示),打点数据y(动作打点数据a)的结构体中有19个关键字,则示例中关键字的总个数为25+19=44个。同理,示例中字符串的总长度=打点数据x的json字符串长度+打点数据y的json字符串的长度。
601.2、示例的上下文特征;
602.相邻的两条打点数据中总有一些信息是相关联的,比如用户当前的操作是“打开通讯录”,下一次操作是“打电话”。如果打开通讯录时点击的联系人与打电话的联系人相同,则这两条相邻的打点数据很可能对应着相同的意图。类似的上下文特征还可以有很多。
603.具体的,示例的上下文特征可以包括:
604.a)示例中两条打点数据的应用程序包名的特征;
605.b)示例中两条打点数据的时间戳的差;
606.c)示例中两条打点数据间某些关键字的值是否相同。
607.例如若打点数据以json结构体的格式保存,则某些json关键字的值是否相同。比
如打点数据x和打点数据y的场景信息是否相同等。
608.可以理解的是,还可以从示例中打点数据间提取其他的上下文特征作为示例的上下文特征,此处不作限定。
609.示例性的,以图10中的(a)所示的语音助手打点数据v和图10中的(b)所示的动作打点数据a组成一个示例为例。打点数据x(语音助手打点数据v)的应用程序包名为

com.huawei.hivoice

表示语音助手打点。打点数据y(动作打点数据a)的应用程序包名为

com.ali.pay

表示“打开某购物应用程序”。可以维护一个白名单,把应用程序包名映射成one

hot,或者用word2vec的方法转换成特征向量。时间戳的差则是打点数据x中tm与打点数据y中的tm的差值。此外,还可以对比打点数据a的场景(scnens)中包含的信息是否与打点数据b的场景中的信息相同。
610.3、示例中各打点数据特有的特征;
611.一个示例由两条打点数据组成,上述示例的文本特征和示例的上下文特征都是示例中打点数据x和打点数据y共同的特征,此外还可以提取打点数据x或打点数据y特有的特征。
612.可选的,示例中各打点数据特有的特征,可以包括:
613.a)打点数据x或打点数据y打点数据记录的操作的使用时间;
614.b)打点数据x或打点数据y的使用时间是否小于预设使用时间阈值。
615.可以理解的是,还可以从示例中各打点数据中提取其他的特征作为示例中各打点数据特有的特征,此处不作限定。
616.4、示例中打点数据的统计特征。
617.除了可以考虑示例中打点数据本身的文本特征和内容特征外,还可以考虑打点数据的统计特征,即打点数据的统计信息的特征。统计信息能反映不同用户的差异,比如用户1日常使用某个应用的平均时间为t1,用户2日常使用相同应用的平均时间为t2,在t1内对用户1来说就是一个完整的意图,但对用户2来说可能并不是。
618.可选的,示例中各打点数据的统计特征,可以包括:
619.a)打点数据x或打点数据y的使用时间是否大于平均使用时间;
620.b)打点数据x或打点数据y输入打点数据序列的持续时间是否小于平均持续时间。
621.可以理解的是,还可以从示例中各打点数据中提取其他的统计信息的特征作为示例中打点数据的统计特征,此处不作限定。
622.可以理解的是,本技术实施例中并不限定还可以从示例的打点数据中提取其他类型的特征作为示例的特征,除上述举例外,各类型的特征中也还可以有其他不同的同类特征作为示例的特征,此处不作限定。
623.可以根据实际需求,确定j个特征来作为示例的特征。示例的一个不同的特征,可以作为示例特征的一个维度,示例的j个特征,即可以组成示例的j维特征向量。
624.若以x
(i)
表示第i个示例的特征向量,表示从该第i个示例中提取出的第一个特征,表示从该第i个示例中提取出的第二个特征,依次类推,表示从该第i个示例中提取出的第c个特征,直到从该第i个示例中提取出第j个特征,则第i个示例的特征向量
625.一个包中包含一个或多个示例,一个示例包含有一个多维度的特征向量。因此,一个包中示例的特征可以组成一个特征向量矩阵。若示例的特征向量为j维特征向量,包内含有k个示例,则该包的特征向量矩阵为一个j
×
k的特征向量矩阵。
626.(17)知识图谱
627.知识图谱是结构化的语义知识库,其基本组成单位是“实体、关系、实体”三元组,或者是“实体、属性、属性值”三元组。通常,属性值也可以理解为是一种常量实体。且知识图谱通常由通用知识和个人知识两部分构成。其中,通用知识可以包括:群体行为、心理学、社会学、行为学、用户标签、用户调研结果等。个人知识可以包括:用户行为的数据挖掘、人际网络、财产信息、兴趣、爱好、习惯等,个人知识是可以实时更新的。本技术实施例在此对通用知识或个人知识具体包括哪些内容不做具体限定。
628.知识图谱通常由节点和边组成,节点表示实体或属性值,边表示属性或关系。在知识图谱中,边将各个节点连接起来,形成网状结构。其中,每个节点对应一个唯一的身份标识(identity,id),每条边对应一个唯一的身份标识。知识图谱可应用于知识推理、搜索、自然语言理解、电子商务、问答等相关场景,并能做精准精细化的回答。
629.示例性的,如图11所示,图11示出了知识图谱的基本结构。该知识图谱包括节点11、节点13和节点14,节点11和节点13通过边12连接,节点11和节点14通过边15连接。其中,节点11表示实体a,边12表示关系f,节点13表示实体b,节点14表示属性值c,边15表示属性j。节点11、边12和节点13形成“实体、关系、实体”的三元组,具体用于表示“实体a和实体b之间存在关系f”。节点11、节点14和边15形成“实体、属性、属性值”的三元组,具体用于表示“实体a的属性j的属性值为属性值c”。
630.本技术实施例中的实体可以为人名、物体名称、地名、职业等。属性可以为姓名、年龄、身高、体重、经度、纬度、品牌、油耗等。关系可以为父子、母子、配偶、地理区域所属关系、从属关系等。
631.例如,对于“用户a有一辆车”这一事实,“用户a”与“车”这两个实体可以分别为节点11和节点13,边12表明“用户a”对“车”的“拥有”关系。属性可以为年龄(边15),属性值可以为20岁(节点14),很容易知道,用户a的年龄为20岁。
632.(18)多臂老虎机(multi

armed bandit,mab)
633.在mab问题中,对于有k个摇臂的老虎机,每个摇臂的回报率r
i
未知且不全相同。玩家的目标是在有限次按下摇臂的机会下,获得最大的回报q。一种解决方案是:对每个摇臂都尝试足够多的次数,统计得到每个摇臂的平均回报,并利用每个摇臂的平均回报来估计每个摇臂真实的回报率r
i
。之后选取回报率最大的摇臂执行剩余步骤。在上述过程中,用于探索(exploration)的次数越多,得到的每个摇臂的平均回报越准确,在得到每个摇臂的准确的平均回报后,回报率最大的摇臂利用(exploitation)的次数越多,最后得到的回报越高。显而易见,探索与利用的次数不可能同时都多,这会导致mab问题中的利用与探索两难困境(exploitation

exploration dilemma,e&e)。
634.在本技术实施例中,意图识别领域会有mab问题中的利用与探索两难困境。例如,电子设备识别用户的意图,并展示识别的意图的相关内容给用户,并期待用户的正反馈操作。每个意图可以视为一个摇臂,每次展示意图的相关内容可以视为按下摇臂,通过对每个意图都进行多次探索才能准确的评估每个意图的正确概率。
635.mab问题及其衍生问题的解决方法是强化学习算法,例如,bandit算法。bandit算法可以分为“无上下文信息的bandit算法(context

free bandit)”和“使用上下文信息的bandit算法(contextual bandit)”两类。bandit算法能够对摇臂的探索与利用进行折中,同时兼顾探索过程与利用过程,使得不仅会展示回报率高(置信度大)的摇臂,还会展示置信度较低且探索次数较少的摇臂。
636.(19)特征空间,标记空间
637.所有特征向量存在的空间,每个具体的输入是一个实例,通常由特征向量表示。请参阅图12所示,令x∈r表示特征空间,令(x
(1)
,y
(1)
),(x
(2)
,y
(2)
),...,(x
(m)
,y
(m)
)表示m个节点设备的私有数据集。其中,(x
(1)
,y
(1)
)中x
(1)
表示第1个节点设备的特征空间,y
(1)
表示第1个节点设备的标记空间;(x
(2)
,y
(2)
)中x
(2)
表示第2个节点设备的特征空间,y
(2)
表示第2个节点设备的标记空间,(x
(i)
,y
(i)
)中的表示x
(i)
第i个节点设备的特征空间,y
(i)
表示第i个节点设备的标记空间等等。
638.其中,该“特征空间”可以理解为输入数据的集合。“标记空间”可以理解为输出数据的集合。
639.x
(i)j
∈x表示x
(i)
中的第j个示例,y
(i)j
∈y,y
(i)j
表示x
(i)j
对应的标记向量,y
(i)j
为第i个节点设备中输入数据集中的一个输入特征。实际存在的一个组合就是第i个节点设备中的第j个样本数据。
640.(20)标签
641.本技术实施例中,标签可以标记空间中的标记向量,或者,也可以理解为标记空间中的一个输出向量,如y
(i)j
。在一个例子中,标签可以是一个标记,也可以是多个标记组成的集合。
642.(21)粗粒度标签,细粒度标签
643.本技术实施例中,“粗粒度”和“细粒度”实际上是提供了两个层级。第一个层级是粗粒度标签,第二个层级是细粒度标签。可以理解的是,本方案中,在原本细粒度标签的基础上,增加了一个层级的标签,粗粒度标签为第一个层级的输出,而细粒度标签为在粗粒度标签下进一步细分的标签。例如,以应用(application,app)来举例,粗粒度标签为“音乐”类应用、“视频”类应用。而细粒度标签为“酷狗音乐”,“qq音乐”,“网易音乐”,“腾讯视频”,“爱奇艺视频”,“西瓜视频”等。在一个例子中,粗粒度标签可以理解为是隐去了动作的意图;细粒度标签可以理解为隐去了动作的服务,或者为待执行的动作等。也即是说,粗粒度标签与意图对应,细粒度标签与服务或者待执行的动作对应。例如,粗粒度标签为“音乐”类应用时,可以理解为此时用户的意图是打开音乐类应用;细粒度标签为“酷狗音乐”时,可以理解为此时需要执行的服务是打开酷狗音乐;此外,细粒度标签为“显示一张提示卡片”时,可以理解为此时需要待执行的动作为显示一张提示卡片。
644.通过一个场景例子对上述的词语进行举例说明。其中,本技术实施例中,节点设备可以为终端设备(或也称为用户设备)。其中,该终端设备可以表示任何计算设备。例如,该终端设备可以为智能手机、平板电脑、可穿戴设备(如眼镜、手表、耳机等)、个人计算机、计算机工作站、车载终端、无人驾驶中的终端、辅助驾驶中的终端、智能家居中的终端(如音箱,智慧屏,扫地机器人,空调等)等。例如,多个节点设备可以均可以以手机为例。本方案中,节点设备也可以简称为“端侧”。中控设备可以是云端服务器,或者,也可以是服务器,本
方案中,该中控设备以云端服务器为例。该中控设备也可以简称为“云侧”。
645.对于app推荐这个应用场景中,该app推荐是指根据端侧用户对于app的操作习惯,为用户推荐应用,从而提供预先加载应用的服务,提高应用的响应速度,以提升用户体验。例如,在这个应用场景中,节点设备的数量并不限定,为了方便说明,节点设备的数量以3个为例进行说明,3个节点设备分别为节点设备1、节点设备2和节点设备3。
646.节点设备1、节点设备2和节点设备3中每个节点设备中下载的应用不完全相同,三个节点设备中下载的应用如下表1所示:
647.表1
648.节点设备1qq音乐网易音乐腾讯视频今日头条淘宝高德地图节点设备2酷狗音乐咪咕音乐爱奇艺网易新闻天猫网易严选节点设备3酷我音乐优酷视频哔哩哔哩淘宝京东百度地图
649.需要说明的是,上表1中对于三个节点设备中下载的应用仅是为了方便说明而举的例子,并不造成限定。
650.例如,在“节点设备1”中的第一个数据样本为:8:00打开qq音乐。在这个数据样本中,(x
(1)1
,y
(1)1
)中x
(1)1
对应“8:00”,y
(1)1
对应“qq音乐”。
651.在“节点设备2”中的第一个数据样本为:8:10打开酷狗音乐。在这个数据样本中,(x
(2)1
,y
(2)1
)中x
(2)1
对应“8:10”,y
(2)1
对应“酷狗音乐”。
652.在“节点设备3”中的第一个数据样本为:7:30打开百度地图。在这个数据样本中,(x
(3)1
,y
(3)1
)中x
(3)1
对应“7:30”,y
(3)1
对应“百度地图”。
653.需要说明的是,此处x
(i)j
仅是以时间进行举例说明,本方案中并不限定输入特征,例如输入特征还可以包括用户场景信息,用户状态信息等,如用户场景信息可以为用户在室内还是室外等,用户状态信息可以包括:用户是行走、坐或卧的状态,用户心情(可由心率等一些感知信息得到)等。
654.参阅上表1,由于每个节点设备中下载的应用不同,在端侧进行学习的过程中,每个端侧的标记向量(或称为“标签”)各不相同。在“节点设备1”中,标签可以包括:qq音乐、网易音乐、腾讯视频等。而在“节点设备2”中,标签可以包括:酷狗音乐、咪咕音乐、爱奇艺、网易新闻等。在“节点设备3”中,标签可以包括:酷我音乐、优酷视频、哔哩哔哩、淘宝等。每个节点设备中的标记空间各不相同。此时要想对各端侧数据进行联合训练需要统一端侧任务,即要统一端侧的标记空间(或也可以称为“标签空间”)。
655.统一端侧的标记空间,一种实现方式可以是暴力的取所有端侧标签空间的并集,获得统一的端侧标签空间。请参阅上表1,可以取“节点设备1”、“节点设备2”和“节点设备3”中下载的所有应用的并集,然而随着节点设备数目增多,统一端侧标签空间,会使得标签的数量急剧增大。如在应用预测场景下,应用总数有数十万个,不同用户下载的应用不完全相同,随着用户增加,端侧标签空间的大小会逼近应用总数。标签数目巨大会使得模型训练开销增大,且app预测模型效果也无法保证。同时每个节点设备下载的应用数量在几十到百来个之间,远小于应用总数,因此暴力的设置统一的端侧标签显然也是不合理的。
656.由此,本方案中,将原有的标签作为细粒度标签,引入了细粒度标签上一个层级的标签,通过上一个层级的标签来统一各端侧任务不统一的情形。例如,第一层级标签(也可以称为“粗粒度标签”),第二层级标签(也可以称为“细粒度标签”)等,通过粗粒度标签来统
一各节点设备的标签空间(也称为标记空间),可以使得在各端侧在细粒度任务不统一的情况下,各节点设备在粗粒度任务上的统一,多个节点设备也可以进行联合训练。在该app预测模型训练的场景中,细粒度标签可以为qq音乐、酷狗音乐、咪咕音乐、爱奇艺、网易新闻等各应用,通过对上述所有应用进行分类,从而将类别作为粗粒度标签。例如,粗粒度标签包括“音乐”标签,“视频”标签,“网购”标签和“地图”标签等。多个节点设备进行联合训练的方法请参阅下述实施例的说明。需要说明的是,本方案中并不限定应用场景,上述应用场景仅是示例性说明。
657.(22)群体粗粒度模型,细粒度模型
658.本技术实施例中,每个节点设备内装载“群体粗粒度模型”和“细粒度模型”。其中,“群体粗粒度模型”和“细粒度模型”可以根据不同的应用场景使用不同的训练数据集进行训练,并不限定应用场景。其中,群体粗粒度模型的标记空间映射为粗粒度标签,细粒度标签的标记空间映射为细粒度标签。每个节点设备内的群体粗粒度模型是由系统中的多个节点设备联合训练得到的,而细粒度标签是在节点设备本地训练并更新得到的。
659.(23)规则
660.规则是由条件和结论构成的推理语句,当存在事实满足条件时,相应的结论可以被激活。其中,规则可以包含条件部分(left hand side,lhs)和结论部分(right hand side,rhs)。一般的,如果将一条规则看做是if

then语句,那么则可以将规则中的条件部分称为if部分,将规则中的结论部分称为then部分。
661.(24)模式
662.模式是由规则的条件部分分割出的最小的一个条件。多个模式可以组成规则的条件部分。例如,规则的条件部分为“年龄大于20岁,且年龄小于30岁”,则该规则中的有两个模式,其中一个模式为“年龄大于20岁”,另一个模式为“年龄小于30岁”。
663.(25)事实对象
664.事实对象是对于真实事物或者事实的承载对象,其可以理解为规则引擎所需要的输入参数。例如:登录事实对象,可能包含以下事实:登录名,登录设备,近一小时内登录成功次数,近一小时登录失败次数。
665.以上即是对本技术实施例中涉及的部分或全部相关术语及相关概念的介绍。接下来对本技术实施例中涉及的意图识别内容进行介绍。
666.现有技术中电子设备仅根据用户当前时刻的单模态输入获取的信息来预测用户意图,然而只利用当下时刻的用户数据和设备信息,无法准确预测其当下时刻的意图。因为用户一段时间内的连续行为和设备状态变化等会反映事件发生的潜在逻辑,为预测其意图提供根据,但如果忽视上下文信息,则不可避免某一时刻出现某一偶然事件,该偶然事件与用户真实意图并无关联,导致现有技术中对用户意图的识别具有极大的局限性且准确性较差。
667.比如双十一的晚上用户打开了淘宝、京东等购物软件,则接下来他可能会打开支付宝、微信等进行支付,打开购物软件的行为和打开支付软件的行为存在逻辑上的关联性。现有技术则可能会忽视这些上下文信息间逻辑上的关联性,使得意图识别不够准确。
668.而本技术实施例中,电子设备可以根据完整的环境描述和多模态的用户输入,结合领域知识和已有规则,准确无偏颇地识别出用户意图,为用户做出意图决策,如在合适的
设备上响应合适的用户需求或为其提供合适的服务。
669.如图16所示,为本技术实施例中意图识别一个场景示意图。电子设备可以通过操作输入、环境感知、文本输入、语音输入与视觉输入等多模输入获取的信息来预测用户意图。示例性的,电子设备在连接wifi时可以触发30分钟时长的实体识别,然后通过当前连接的wifi信息、打开支付宝进行手机支付的动作、和收到购物短信这三个先后发生的独立事件组成的上下文实体序列,判断出用户可能在商场逛街。当用户打开相机对某商品(比如一个包包)拍照时,判断出用户很可能想要购买该包包,但是又不会在商场直接购买,因此用户下一时刻很可能打开购物软件搜索该商品。根据用户历史使用购物软件的频率,确定用户使用频率最高的两个购物软件是京东和淘宝,提前在后台加载这两个购物软件,以保证用户打开时无卡顿。
670.本技术实施例中,在分布式场景下,电子设备可以根据多设备的环境感知和用户的多模态输入获得对环境的完整描述,并结合一定时间窗格内的用户输入、环境感知和上下文信息,获取一个能反应随时间变化、并且能随环境变化而扩展的完整无偏颇的意图体系,据此做出决策,如推断出接下来一段时间内用户想执行的动作或需要的服务,以决策在何种设备上响应用户的何种需求。本技术实施例提供的方案适用于在信息输入多源且复杂、并依赖于时间因素的分布式场景下,为用户精准地提供他所需要的响应或服务的决策。
671.下面首先介绍本技术实施例提供的示例性电子设备100。示例性的,该电子设备100可以为上文所描述的电子设备,节点设备等。
672.图13是本技术实施例提供的电子设备100的结构示意图。
673.下面以电子设备100为例对实施例进行具体说明。应该理解的是,电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
674.电子设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,用户标识模块(subscriber identification module,sim)卡接口195,以及定位装置(图中未示出)等。其中传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。
675.可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
676.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码
器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural

network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。在一个例子中,处理器110可以从内存中获取语义对象对事实数据进行匹配,也可以从文件中获取语义对象对事实数据进行匹配,亦可以根据匹配结果,确定是否执行相应的操作,即执行下文图21中所描述的步骤;此外,处理器110也可以用于构建规则引擎中的规则拓扑图。在一个例子中,处理器110可以对意图识别模型、动作预测模型、多示例学习模型等进行训练,或者更新模型中的参数等。在一个例子中,处理器110可以用于执行本方案中提供的意图识别方法。
677.其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
678.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。在一个例子中,存储器中可以存储有群体粗粒度模型,个体粗粒度模型和细粒度模型等。
679.在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter

integrated circuit,i2c)接口,集成电路内置音频(inter

integrated circuit sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general

purpose input/output,gpio)接口,用户标识模块(subscriber identity module,sim)接口,和/或通用串行总线(universal serial bus,usb)接口等。
680.可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本技术另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
681.充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。
682.电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
683.电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
684.天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
685.移动通信模块150可以提供应用在电子设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对
经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
686.调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170a,受话器170b等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
687.无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi

fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。在一个例子中,蓝牙可以用于实现电子设备100与其他短距离的设备(例如手机、智能手表等)之间的数据交换。本技术实施例中的蓝牙可以是集成电路或者蓝牙芯片等。
688.在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。
689.电子设备100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
690.显示屏194用于显示图像,视频等。在一个例子中,显示屏194可以为触摸屏,该触摸屏可以具体可以包括触控板和显示器。其中,触控板可采集电子设备100的用户在其上或附近的触摸事件(比如用户使用手指、触控笔等任何适合的物体在触控板上或在触控板附近的操作),并将采集到的触摸信息发送至其他器件(例如处理器110)。显示器可用于显示由用户输入的信息或提供给用户的信息以及电子设备100的各种菜单。可以采用液晶显示器、有机发光二极管等形式来配置显示器。
691.电子设备100可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。
692.摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal

oxide

semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,电子设备100可以包括1个或n个摄像头193,n为大于1的正整数。
693.数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
694.视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,mpeg)1,mpeg2,mpeg3,mpeg4等。
695.npu为神经网络(neural

network,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
696.本技术的一些实施例中,可以使用npu进行语音识别、图像识别或文本理解等生成打点数据。本技术的一些实施例中,可以使用npu从打点数据序列中提取训练数据,对多示例学习模型进行训练。本技术的一些实施例中,可以使用npu按照预设意图规则确定子序列的意图。此处不作限定。本技术的一些实施例中,通过npu可以实现规则引擎的智能认知等应用,例如:文本理解,决策推理等。
697.外部存储器接口120可以用于连接外部存储卡,例如micro sd卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
698.内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用(比如人脸识别功能,指纹识别功能、移动支付功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如人脸信息模板数据,指纹信息模板等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。
699.电子设备100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
700.音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
701.扬声器170a,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170a收听音乐,或收听免提通话。
702.受话器170b,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170b靠近人耳接听语音。
703.麦克风170c,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170c发声,将声音信号输入到麦克风170c。电子设备100可以设置至少一个麦克风170c。在另一些实施例中,电子设备100可以设
置两个麦克风170c,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170c,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
704.压力传感器180a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180a可以设置于显示屏194。压力传感器180a的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180a,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180a检测所述触摸操作强度。电子设备100也可以根据压力传感器180a的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
705.陀螺仪传感器180b可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180b确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180b可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180b检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器180b还可以用于导航,体感游戏场景。
706.气压传感器180c用于测量气压。在一些实施例中,电子设备100通过气压传感器180c测得的气压值计算海拔高度,辅助定位和导航。
707.磁传感器180d包括霍尔传感器。电子设备100可以利用磁传感器180d检测翻盖皮套的开合。在一些实施例中,当电子设备100是翻盖机时,电子设备100可以根据磁传感器180d检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
708.加速度传感器180e可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
709.距离传感器180f,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180f测距以实现快速对焦。
710.接近光传感器180g可以包括例如发光二极管(led)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备100附近有物体。当检测到不充分的反射光时,电子设备100可以确定电子设备100附近没有物体。电子设备100可以利用接近光传感器180g检测用户手持电子设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180g也可用于皮套模式,口袋模式自动解锁与锁屏。
711.环境光传感器180l用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180l也可用于拍照时自动调节白平衡。环境光传感器180l还可以与接近光传感器180g配合,检测电子设备100是否在口袋里,以防误触。
712.指纹传感器180h用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
713.温度传感器180j用于检测温度。在一些实施例中,电子设备100利用温度传感器180j检测的温度,执行温度处理策略。例如,当温度传感器180j上报的温度超过阈值,电子设备100执行降低位于温度传感器180j附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备100对电池142加热,以避免低温导致电子设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。
714.触摸传感器180k,也称“触控面板”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
715.按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
716.马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
717.指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
718.sim卡接口195用于连接sim卡。sim卡可以通过插入sim卡接口195,或从sim卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或n个sim卡接口,n为大于1的正整数。sim卡接口195可以支持nano sim卡,micro sim卡,sim卡等。同一个sim卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。sim卡接口195也可以兼容不同类型的sim卡。sim卡接口195也可以兼容外部存储卡。电子设备100通过sim卡和网络交互,实现通话以及数据通信等功能。
719.定位装置可以为电子设备100提供地理位置。可以理解的是,该定位装置具体可以是全球定位系统(global positioning system,gps)或北斗卫星导航系统、俄罗斯glonass等定位系统的接收器。定位装置在接收到上述定位系统发送的地理位置后,将该信息发送至处理器110进行处理,或者发送至存储器进行保存。
720.本技术实施例中,电子设备100可以通过传感器模块180中的各种传感器、按键190、摄像头193、耳机接口170d、麦克风170c等部件获取用户操作,处理器110响应用户操作,执行相应指令的过程中会产生打点数据,产生的打点数据可以保存在内部存储器121中。处理器110可以根据本技术实施例中的多示例学习模型训练方法和训练数据生成方法训练出多示例学习模型,可以根据本技术实施例中的意图识别方法使用该多示例学习模型将打点数据序列划分为各小粒度且其中打点数据意图一致的子序列,确定出各子序列的意
图。
721.本技术的一些实施例中,各方法中的步骤可以由处理器110中的应用处理器单独完成,可以由处理器110中的npu单独完成,也可以由处理器中的应用处理器和npu协同完成,也可以由处理器110中的其他处理器共同协同完成,此处不作限定。
722.接着对图13中的电子设备100的的软件结构进行介绍。
723.请参阅图14,图14是本发明实施例的电子设备100的软件结构框图。
724.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(android runtime)和系统库,以及内核层。
725.应用程序层可以包括一系列应用程序包。
726.如图14所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,wlan,蓝牙,音乐,视频,短信息,图15中所示意图识别决策系统501等应用程序(也可以称为应用(application,app))。
727.本一个例子中,如图15所示,意图识别决策系统501中可以包含意图识别模块605,该意图识别模块605可以用于用于识别、存储及管理意图。
728.在一个例子中,如图15所示,意图识别决策系统501中可以包含动作反馈模块608。该动作反馈模块608中可以包括有上文所描述的多示例学习模型。该多示例学习模型可以基于多示例学习模型训练模块训练得到,其中,多示例学习模型训练模块可以用于执行本技术实施例中的多示例学习模型训练方法。示例性的,多示例学习模型训练模块可以配置于动作反馈模块608中,也可以配置于端侧或云侧,在此不做限定。
729.在一个例子中,该多示例学习模型训练模块中可以包括有训练数据生成模块,该训练数据生成模块用于执行本技术实施例中的训练数据生成方法。
730.在一个例子中,该多示例学习模型训练模块可以为独立于动作反馈模块608的另一个单独的模块,此处不作限定。
731.在一个例子中,该多示例学习模型训练模块中的训练数据生成模块也可以为独立于动作反馈模块608和多示例学习模型训练模块的另一个单独的模块,此处不作限定。
732.在一个例子中,该意图识别模块605、动作反馈模块608、多示例学习模型训练模块与训练数据生成模块也可以位于该软件构架的其他层级中,例如应用程序框架层、系统库、内核层等,此处不作限定。
733.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
734.如图14所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器,本地profile管理助手(local profile assistant,lpa)等。
735.窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
736.内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
737.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用
于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
738.电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
739.资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
740.通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话界面形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
741.安卓运行时(android runtime)包括核心库和虚拟机。android runt ime负责安卓系统的调度和管理。
742.核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
743.应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
744.系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:opengl es),二维图形引擎(例如:sgl)等。
745.表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了二维(2

dimensional,2d)和三维(3

dimensional,3d)图层的融合。
746.媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。
747.三维图形处理库用于实现3d图形绘图,图像渲染,合成,和图层处理等。
748.2d图形引擎是2d绘图的绘图引擎。
749.内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动,虚拟卡驱动。
750.下面结合捕获拍照场景,示例性说明电子设备100软件以及硬件的工作流程。
751.当触摸传感器180k接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为相机应用图标的控件为例,相机应用调用应用框架层的接口,启动相机应用,进而通过调用内核层启动摄像头驱动,通过摄像头193捕获静态图像或视频。
752.以上即是对本方案中的电子设备100的硬件结构和软件结构的介绍。接下来,基于上述电子设备100的硬件结构和软件结构,对本方案中涉及的意图识别决策系统进行介绍。如图15所示,为上述意图识别决策系统501的示例性软件结构框图。
753.意图识别决策系统501用于将外界多模态的输入,如用户操作、环境感知、文本输
入、语音输入、视觉输入等,映射为高阶实体,并结合一定时间段内的上下文高阶实体,共同组成实体序列,将此实体序列映射到可扩展意图体系中来获取用户当前时刻的意图,结合已有的领域知识、规则以及可扩展的实体序列,基于统计和逻辑,推理并决策应当在何种设备上响应用户的何种需求,亦即,将此意图映射为动作序列和服务链,并据此反馈到意图体系上,对齐做出修正。
754.具体的,该意图识别决策系统501包括多模态输入模块601,知识库602,实体识别模块603,上下文模块604,意图识别模块605,规则引擎606,决策推理模块607和动作反馈模块608。
755.其中,多模态输入模块601用于获取各种不同的输入类型输入的数据。例如,可以获取用户在电子设备100上触摸、按压、滑动等用户操作数据;可以获取电子设备100中各种传感器取得的环境感知数据;可以获取用户在电子设备100中搜索文本时的文本输入数据;可以获取电子设备100的麦克检测到的语音输入数据;可以获取电子设备100中图片、视频、手势、摄像头识别的表情等视觉输入数据等。还可以获取电子设备100能够取得的其他类型的输入,此处不作限定。在一个例子中,多模态输入模块601获取到的数据可以包括打点数据,用户感知数据,等等。
756.知识库602中包含已有的领域知识,具体可以包括实体识别模块603启动实体识别的各种触发点、各触发点对应的进行实体识别的时间窗格长度、各触发点与多模态输入中输入方式的类型的对应关系、保存的用户的习惯规则、根据实体仓库单元6033中的实体训练出来的实体识别模型,以及各实体之间的关联关系。在一个例子中,知识库602中可以包含知识图谱。
757.实体识别模块603用于识别、存储并管理实体。实体识别模块603中包含实体提取单元6031、实体管理单元6032和实体仓库单元6033。其中实体提取单元6031用于根据知识库602中存储的实体识别模型,从多模态输入模块601获取的数据中识别出具有特定意义的实体;实体仓库单元6033用于存储实体;实体管理单元6032用于定期更新和动态扩展实体仓库。
758.作为一种可能的实现方式,实体识别模块603可以从多模态输入的数据中提取特征向量,得到特征向量集合。其中,该特征向量集合中可以包括所有从多模态输入的数据中提取得到的特征向量,该特征向量可以用于表示多模态输入的各个数据的特征。接着,实体识别模块603可以将得到的特征向量集合输入到实体识别模型,得到实体序列。其中,该实体识别模型可以为根据电子设备中存储的实体数据训练得到的特征向量与实体的对应关系,实体数据为实体的存储形式,实体数据至少包括实体的编号及表示该实体的特征向量集合。
759.上下文模块604用于存储上下文实体。上下文实体是指电子设备识别出的一段时间窗格内的实体序列。上下文模块604中存储的实体序列的数目可以预先设定,也可以根据电子设备的存储容量进行实时控制,此处不作限定。
760.意图识别模块605用于识别、存储及管理意图。意图识别模块中包含意图映射单元6051、意图管理单元6052和意图仓库单元6053。其中意图映射单元6051用于根据实体序列预测出用户意图,其输入为实体序列,输出为意图;意图仓库单元6053用于存储意图;意图管理单元6052用于定期更新和动态扩展意图仓库单元6053,有些新出现的意图会被补充进
意图仓库单元6053中,久未出现的意图则会被从意图仓库单元6053中移除。
761.在一个例子中,意图识别模块605可以基于预存储的知识图谱确定出多个候选意图,以及从多个候选意图中确定出目标意图,详见下文描述。
762.在一个例子中,意图识别模块605中可以具有意图识别模型,该意图识别模型可以用于识别出意图。
763.作为一种可能的实现方式,本方案中,在生成意图识别模型时,可以利用生成式对抗网络的特性,降低在生成器中所生成的模拟数据与原始输入的测试数据之间的偏差,以提升神经网络所生成的模拟数据的数据质量,进而使得在利用生成式对抗网络得到的模拟数据,作为预设的训练网络的输入数据的一部分,进行训练得到预测模型,例如,意图识别模型。由于该模拟数据与原始输入的测试数据之间的偏差较小,因此,通过该模拟数据参与训练网络的训练过程,可以提升后续得到的预测模型的预测效果,使得在模拟环境中训练得到较优的预测模型,即得到最优的意图识别模型。对于利用生成式对抗网络的特性进行数据处理的过程,以及基于利用生成式对抗网络的特性得到的模拟数据训练意图识别模型的过程,详见下文描述。
764.作为另一种可能的实现方式,本方案中,该意图识别模型可以基于联合学习系统得到。该联合学习系统可以包括多个节点设备,每个节点设备中均可以配置有群体粗粒度模型和细粒度模型。在训练得到意图识别模型时,可以先获取细粒度标签与粗粒度标签的映射关系;然后再根据映射关系将训练数据集中的细粒度数据映射为粗粒度数据;接着再将粗粒度数据输入到群体粗粒度模型进行训练,通过多个节点设备的联合学习对群体粗粒度模型进行更新,并将细粒度数据输入到细粒度模型进行训练;最后,组合群体粗粒度模型和细粒度模型以得到联合模型,例如,意图识别模型,联合模型的标记空间映射为细粒度标签,联合模型的输出结果可以用于更新细粒度模型。对于得到联合模型(如意图识别模型)的过程,详见下文描述。
765.规则引擎606用于提供推理决策的规则。在一些简单场景中,不需要利用数据预测用户意图并为之作出决策,只需根据规则决定该场景下执行何种动作即可。规则引擎606可以预存有常用现有规则,还可以根据知识库602中存储的用户习惯规则对规则进行更新。
766.在一个例子中,规则引擎606可以从知识库602中获取知识图谱,然后再基于知识图谱预测出用户意图或者该场景下所需执行的动作等。
767.在一个例子中,规则引擎606中可以具有一个或多个规则,此时,规则引擎606中可以包括规则拓扑图。如图17所示,该规则拓扑图中可以包含根节点(root node),类型节点(type node),模式节点(pattern node),组合节点(merge node),结果节点(consequence node)和激活节点(active node)。下面对各个节点分别进行介绍。
768.根节点(root node),是输入起始节点,其可以是规则引擎的入口,所有事实对象可以通过该根节点进入到规则引擎中。一个规则引擎中可以包含一个根节点。
769.类型节点(type node),可以定义事实数据的类型。事实对象中的各个事实从根节点进入后,可以进入类型节点;该类型节点可以进行类型检查,其只让与其类型相匹配的事实到达该节点。其中,类型节点的数量可以由规则中条件部分包含的事实的类型的数量确定。示例性的,当规则拓扑图中包含一条规则时,若该规则的条件部分中包含2个类型的事实,则类型节点为2个;当规则拓扑图中包含多条规则时,若多条规则的条件部分中包含3个
类型的事实,则类型节点为3个,,例如,一条规则的条件部分为“年龄大于20岁,地点为户外”,另一条规则的条件部分为“时间为上午8地点,地点为在家”,则此时总共存在三种类型的事实,分别为“时间”,“年龄”和“地点”,因此,该拓扑图中可以包含3种类型的类型节点。在一个例子中,事实对象在由根节点进入到类型节点时,根节点可以确定事实对象中各个事实的类型,例如基于class类型确定;然后根节点再将各个事实输入到对应的类型节点。例如,若事实对象包括以下事实:日期为12月,时间为上午8点,地点为户外;则该事实对象中包括了两种类型的事实,即时间和地点,其中,“12月,上午8点”这两个事实可以进入到类型为时间的类型节点,“户外”可以进入到类型为地点的类型节点。在一个例子中,事实数据可以为实体,意图等。
770.模式节点(pattern node),可以存储规则中模式的语义对象,以及确定符合该模式节点对应的模式的事实。例如,模式节点可以表达规则中的一个条件,其所表达的条件是计算机可理解的条件表达式;此外,模式节点还可以表达条件的匹配结果,以及对条件表达式进行计算,并存储计算结果。其中,每个模式节点对应规则的一种模式,例如,规则的条件部分“年龄大于20岁,地点为户外”,则此时在规则拓扑图中可以包含两个模式节点,一个模式节点对应该规则的条件部分中的“年龄大于20岁”,另一个模式节点对应该规则的条件部分中的“地点为户外”。在一个例子中,模式节点中存储规则中模式的语义对象,可以理解为该模式节点中存储了该模式节点对应的规则中模式背后的计算语句,通过该计算语句可以对进入到该模式节点的事实进行判断;模式节点确定符合该模式节点对应的模式的事实,可以理解为该模式节点可以加载其存储的语义对象对进入到该模式节点的事实进行判断,以确定进入到该模式节点的事实是否符合该模式节点对应的模式的事实,例如,模式节点对应的模式为“年龄大于20岁”,则其存储判断年龄是否大于20岁的计算语句,当进入到该模式节点的事实为“年龄为19岁”时,该模式节点可以加载相应的计算语句对“年龄为19岁”这一事实进行判断。
771.本方案中,模式节点的类型可以包括瞬态模式节点和持久态模式节点两种类型。瞬态模式节点的语义对象可以存储在内存中,持久态模式节点的语义对象可以持久化于文件中。其中,瞬态模式节点对应的模式的事实的数据变化频率高于持久态模式节点对应模式的事实的数据变化频率。示例性的,瞬态模式节点适合依赖数据变化频繁的模式,例如时间、地理位置的变化等;持久态模式节点适合依赖数据变化缓慢的模式,例如年龄、季节的变化等。也即是说,本方案中,根据事实数据变化的特征,模式节点选择性地将语义对象持久化到文件或是加载到内存中常驻,这样即可以实现对于不常访问的模式节点,释放掉冗余内存,同时对于经常访问的节点,不影响其匹配效率,以此达到降低内存的目的。
772.本方案中,如图18所示,模式节点的数据结构可以用状态表和模式语义索引表示。其中,状态表可以用于缓存模式节点对应的模式的历史匹配信息,模式语义索引可以用于索引获取模式节点的语义对象。在一个例子中,继续参阅图18,历史匹配信息可以包括:模式节点对应的模式的身份标识(即图18中的id)、模式节点对应的模式的前次匹配结果(即图2中的ismatached)和模式节点对应的事实的数据变化次数(即图18中的modcount);模式语义索引可以包括内存或文件,其中,当模式语义索引包括内存时,则表示该模式节点为瞬态模式节点,当模式语义索引包括文件时,则表示该模式节点为持久态模式节点。瞬态模式节点的模式语义索引是从内存中索引获取语义对象,持久态模式节点的模式语义索引是从
文件中索引获取语义对象。
773.在一个例子中,前次匹配结果(即图18中的ismatached)可以使用标志位表示,例如,1代表与该模式节点对应的模式相符,0代表与该模式节点对应的模式不相符,即1代表真(true),0代表假(false);举例来说,模式节点对应的模式为“年龄大于20岁”,若前次输入的事实为“年龄为19岁”,则此时前次匹配结果可以用标志位0表示,若前次输入的事实为“年龄为30岁”,则此时前次匹配结果可以用标志位1表示。
774.在一个例子中,模式节点对应的事实的数据变化次数(即图18中的modcount),可以理解为该模式节点对应的模式的历史匹配信息中事实的数据变化次数,例如,该模式节点总共加载了4次语义对象,则该模式节点对应的模式的历史匹配信息中事实的数据变化次数为4次。本方案中,当输入到规则引擎中的事实的数据变化次数与模式节点的状态表中记录的事实的数据变化次数不一致时,该模式节点则加载语义对象对该事实进行判断,以及更新其状态表中记录的事实的数据变化次数。举例来说,模式节点的状态表中记录的事实数据变化次数为2次,输入到规则引擎中的事实的数据变化次数为3次,此时两者不符,该模式节点则加载语义对象对当前输入的事实进行判断,此时该模式节点可以将其记录的事实的数据变化次数更新为3次。此外,若输入到规则引擎中的事实的数据变化次数与模式节点的状态表中记录的事实的数据变化次数“一致”时,则可以继续使用上一次的匹配结果,此时不需要更新前次匹配结果,即不需要更新图18中的ismatached;否则需要更新使用上一次的匹配结果,即更新图18中的ismatached。
775.在一个例子中,模式节点的状态表中记录的的事实的数据变化次数,可以用来判断在重构规则拓扑图时是否调整该模式节点的类型。示例性的,当模式节点的状态表中记录的的事实的数据变化次数大于预设次数阈值时,表明该事实的变化频率较快,此时则在重构规则拓扑图时,若重构前该模式节点的类型为瞬态模式节点,则此次重构时将该模式节点的类型继续保持为瞬态模式节点;若重构前该模式节点的类型为持久态模式节点,则此次重构时将该模式节点的类型由持久态模式节点变更为瞬态模式节点。同样的,当模式节点的状态表中记录的的事实的数据变化次数小于或等于预设次数阈值时,表明该事实的变化频率较慢,此时则在重构规则拓扑图时,若重构前该模式节点的类型为瞬态模式节点,则此次重构时将该模式节点的类型由瞬态模式节点变更为持久态模式节点;若重构前该模式节点的类型为持久态模式节点,则此次重构时将该模式节点的类型继续保持为持久态模式节点。示例性的,如图19所示,模式节点7的状态表中记录的事实的数据变化次数与预设次数阈值存在差异,且相应的事实的变化频率发生了变化,此时则可以在重构规则拓扑图时变更模式节点7的类型。
776.举例来说,在中国大部分地区的气候是四季分明的,而季度发生变化的时长往往是3个月,即季度变化频率较低。但在中国的新疆地区昼夜温差往往较大,一天中有时候中午的气温相当于夏季,而晚上的气温又相当于冬季,因此可以理解为该地区的季度变化较为频繁。如果默认是将规则引擎中“季度”对应的模式节点的语义对象存储在文件中,则该规则引擎在中国大部分地区使用时均可以符合要求。但当该规则引擎在中国的新疆地区使用时,则会出现频繁从文件中加载语义对象的情况,导致规则引擎的执行效率较低。因此,该规则引擎在中国的新疆地区重构其内的规则拓扑图时,可以将“季度”对应的模式节点的语义对象由存储在文件中切换为存储在内存中,即切换“季度”对应的模式节点的类型。
777.在一个例子中,在首次构建规则拓扑图时,可以基于经验值,确定模式节点的类型。例如,当模式节点对应的事实为“年龄”时,由于年龄的变化频率较慢,因此可以将“年龄”这一事实对应的模式节点的类型确定为持久态模式节点,并将语义对象存储在文件中;当模式节点对应的事实为“时间”时,由于时间的变化频率较快,因此可以将“时间”这一事实对应的模式节点的类型确定为瞬态模式节点,并将语义对象存储在内存中。
778.可以理解的是,本方案中,同一数据类型的不同模式通过链式组合,可以共同构成逻辑“与”关系的组合模式。例如“年龄>22”和“年龄<30”两个模式节点,组合成“22<年龄<30”模式,同理“年龄>22”和“年龄<50”组合成“22<年龄<50”模式,它们共同依赖“年龄>22”模式节点。
779.组合节点(merge node),可以对一个规则对应的各个模式节点的匹配结果进行组合,以及确定是否触发规则。组合节点至少为一个,每个组合节点均对应一条规则。其中,组合节点综合表达了其所组合的模式的语义信息及逻辑结果。不同数据类型的组合模式通过组合节点,可以合并成某一条规则的条件。例如“22<年龄<30”和“位置为户外”合并成的规则的条件部分为“22<年龄<30,位置为户外”。
780.可以理解的是,当一个规则对应的各个模式节点的匹配结果均指示匹配成功时,组合节点则可以确定触发该规则。当一个规则对应的各个模式节点中有一个模式节点的匹配结果指示匹配失败时,组合节点则可以确定限制触发该规则,即不触发该规则。
781.可以理解的是,当一条规则中的各个模式对应的事实的类型均为同一类型时,则该规则对应的组合节点可以与通过链式组合的模式节点的最后一个模式节点对应。此外,当需要删除一条规则时,可以不用直接修改规则拓扑图,而是将该规则对应的组合节点标记为无效状态;之后,在下一次重构规则拓扑图时,再删除该规则。
782.结果节点(consequence node),可以存储规则所需执行动作的语义对象,以及在组合节点确定触发规则时加载规则所需执行动作的语义对象。其中,每条规则具有以一个结果节点,在规则引擎中的规则拓扑图内结果节点的数量至少为一个,每个结果节点均对应一个组合节点。本方案中,结果节点表达了规则中某一动作具体执行的语句,当规则满足所有条件时,即触发相应的动作。
783.本方案中,结果节点的类型可以包括瞬态结果节点和持久态结果节点两种类型。瞬态结果节点的语义对象可以存储在内存中,持久态结果节点的语义对象可以持久化于文件中。在一个例子中,结果节点的类型依赖于模式节点的类型;其中,当一条规则中的各个模式对应的模式节点的类型均为瞬态模式节点时,则该规则对应的结果节点的类型为瞬态结果节点,当一条规则中的各个模式节点的类型中存在持久态模式节点时,则该规则的结果节点的类型为持久态结果节点。示例性的,一条规则包括两个模式,这两个模式对应的模式节点的类型均为瞬态模式节点,则该规则对应的结果节点的类型为瞬态结果节点;一条规则包括两个模式,其中一个模式对应的模式节点的类型为瞬态模式节点,另一个模式对应的模式节点的类型为持久态模式节点,则该规则对应的结果节点的类型为持久态结果节点;一条规则包括两个模式,这两个模式对应的模式节点的类型均为持久态模式节点,则该规则对应的结果节点的类型为持久态结果节点。
784.本方案中,结果节点的数据结构可以包括模式语义索引,该模式语义索引可以用于索引获取结果节点的语义对象。其中,瞬态结果节点的模式语义索引是从内存中索引获
取语义对象,持久态结果节点的模式语义索引是从文件中索引获取语义对象。
785.可以理解的是,本方案中,持久态结果节点对应的规则被触发的频率较低,瞬态结果节点对应的规则的触发频率较高。举例来说,当规则为天气提醒规则时,若每天均需要进行天气提醒,则该规则触发的频率较高,因此可以推知该规则对应的结果节点的类型为瞬态结果节点;当规则为年度总结提醒规则时,由于年度总结往往是一年做一次,因此该规则触发的频率较低,因此可以推知该规则对应的结果节点的类型为持久态结果节点。此外,在重构规则拓扑图时,若重构前后规则对应的模式节点的类型出现变更,则该规则对应的结果节点的类型也可以适应性的进行切换,其中,在切换结果节点的类型时可以参照上文描述的结果节点与模式节点之间的关系。例如,如图19所示,重构规则拓扑图时,模式节点7的类型发生了变化,而模式节点7对应的规则,仅有具有一个模式节点,因此不存在其他模式节点的影响,此时则可以切换该规则对应的结果节点的类型。
786.激活节点(active node),可以在结果节点加载规则所需执行动作的语义对象后,执行规则对应的动作。例如,当规则为天气提醒规则时,则在该规则被触发后,激活节点可以进行天气提醒。
787.以上即为对本方案中提及的规则引擎606中涉及的规则拓扑图的相关介绍。接下来基于上文对规则引擎606中规则拓扑图的相关介绍,对该规则拓扑图的创建过程进行描述。
788.1)创建根节点。
789.2)解析规则,读取规则中的模式a。
790.3)检查模式a对应的事实的数据类型,若属于新类型,则在根节点后添加一个类型节点;若不属于新类型,则直接进行下一步。
791.4)检查模式a对应的模式节点是否存在,若不存在,则在类型节点尾部新增模式节点,根据模式a对应的事实的数据类型,定义该新增的模式节点的类型。例如,模式a为“是否有私家车”,“是否正在驾车”等数据变化较慢或具有互斥性的模式时,可以将模式a对应的模式节点的类型定义为持久态模式节点;模式a为“是否在家”,“是否离家”等地理位置相关变化较频繁的模式时,可以将模式a对应的模式节点的类型定义为瞬态模式节点。
792.定义新增的模式节点的类型后,即可以根据该模式节点类型生成状态表和对应的语义索引。
793.5)重复3)和4),直至处理完规则中所有的模式。
794.6)组合模式节点,若组合的模式节点中存在持久态模式节点,则将对应的结果节点定义为持久态结果节点;若不存在持久态模式节点,则将对应的结果节点定义为瞬态结果节点。可以理解的是,该步骤即为创建组合节点和结果节点的过程。
795.7)重复2)至6),直至解析编译完所有的规则。
796.可以理解的是,上述对规则拓扑图的创建过程的描述中的部分或全部内容,可以参考上文有关规则引擎中规则拓扑图的介绍,例如,如何确定模式节点的类型等等,在此就不再一一赘述。
797.为便于理解,下面对规则拓扑图的创建过程举例进行说明。
798.如图20所示,该图示例给出以下3条简易的服务推荐场景规则:
799.a)路况提醒规则
800.条件:22<age<30&&location==outdoor
801.动作:弹窗附近路况,推荐最优出行方式
802.b)天气提醒规则
803.条件:7:00am<time<8:00am&&location==home
804.动作:通知栏弹出天气预报,推荐穿衣指南
805.c)年度总结提醒规则
806.条件:22<age<50&&7:00am<time<8:00am&&time==december
807.动作:负一屏弹出年终总结卡片
808.在创建这三条规则对应的规则拓扑图过程中,先创建一个根节点(即图20中的root)。然后解析其中一条规则,并读取该规则中的模式。以路况提醒规则为例,在路况提醒规则中包括三个模式,分别为“age>20”,“age<30”和“location==outdoor”。此时,可以随机或按顺序选取一个模式,如“age>20”,然后在检测“age>20”对应的事实的数据类型,若属于新类型,则在根节点后添加一个类型节点,如图20中的“age”节点。接着,确定“age>20”对应的模式节点不存在,则创建一个模式节点,即图20中的“age>20”,并定义该模式节点的类型,年龄事实数据变化的频率较低,故该模式节点的类型为持久态模式节点。之后,即可以生成该模式节点的状态表和语义索引。在遍历完天气提醒规则中的各个模式后,即可以创建组合节点和结果节点。之后,随机或依次对各个规则进行编译,即可以构建出如图20所示的规则拓扑图。
809.在构建出规则拓扑图后,即可以使用该规则拓扑图。下面结合图20该规则拓扑图的应用过程进行描述。
810.以天气提醒规则为例,当用户回到家时,此时事实数据location发生变化,location事实数据进入到处理队列,首先到达根节点通过类型判断,再进入到location节点,同时分别访问location==outdoor和location==home这两个模式节点。分别比较各个模式节点中记录的事实数据的变化次数与输入至规则拓扑图中的location这一事实数据的变化次数。当变化次数不一致时,则加载相应的模式节点中的语义对象来更新模式节点中的ismatched值;其中,location==outdoor这一模式节点的ismatched值可以更新为false,location==home这一模式节点的ismatched值可以更新为true。之后,再对涉及此数据类型模式节点的所有组合节点进行逻辑运算,若其他模式节点此时暂不满足条件,该规则不触发。而当系统时间大于7:00am,且小于8:am时,time事实数据变化进入到处理队列,同理运算相关组合节点,此时天气提醒规则的组合节点逻辑条件满足,触发该规则,访问该规则的结果节点,读取表达式语句,执行对应的动作,即进行天气提醒。
811.以上即是对本方案中的规则引擎中的规则拓扑图的介绍。接下来,基于上文所描述的规则引擎中规则拓扑图的部分或全部内容,对本技术实施例提供的一种规则引擎的执行方法进行介绍。可以理解的是,该方法是基于上文所描述的规则引擎中规则拓扑图提出,该方法中的部分或全部内容可以参见上文对规则引擎中规则拓扑图的描述。
812.请参阅图21,图21是本技术实施例提供的一种规则引擎的执行方法的流程示意图。可以理解,该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。如图21所示,该规则引擎的执行方法包括:
813.步骤s101、确定输入规则引擎中的第一事实数据;根据第一事实数据的第一属性,
从内存中获取第一语义对象对第一事实数据进行匹配,第一属性用于表征第一事实数据的变化频率。
814.本方案中,在使用规则引擎进行决策推理过程中,可以将事实数据输入至规则引擎中。当事实数据输入至规则引擎中后,即可以确定出第一事实数据。示例性的,事实数据可以由图17所示的根节点进入到规则引擎中。在一个例子中,第一事实数据可以为实体,意图等。
815.进一步地,确定出第一事实数据后,可以根据第一事实数据的第一属性,从内存中获取第一语义对象对第一事实数据进行匹配,第一属性用于表征第一事实数据的变化频率。在一个例子中,第一事实数据可以为时间或位置。在一个例子中,第一属性可以为类型,例如,当第一属性为时间类型时,则表明第一事实数据的变化频率较快。示例性的,该步骤可以由图17中所示的瞬态模式节点执行。
816.步骤s102、确定输入规则引擎中的第二事实数据;根据第二事实数据的第二属性,从文件中获取第二语义对象对第二事实数据进行匹配,第二属性用于表征第二事实数据的变化频率,其中,第二属性不同于第一属性。
817.本方案中,在使用规则引擎进行决策推理过程中,可以将事实数据输入至规则引擎中。当事实数据输入至规则引擎中后,即可以确定出第二事实数据。示例性的,事实数据可以由图1所示的根节点进入到规则引擎中。在一个例子中,第二事实数据可以为实体,意图等。
818.进一步地,确定出第二事实数据后,可以根据第二事实数据的第二属性,从文件中获取第二语义对象对第二事实数据进行匹配,第二属性用于表征第二事实数据的变化频率。在一个例子中,第二事实数据可以为年龄或季节。在一个例子中,第二属性可以为类型,例如,当第二属性为年龄类型时,则表明第二事实数据的变化频率较慢。在一个例子中,第二属性不同于第一属性,例如当第一属性为时间类型时,则第二属性可以为年龄类型。示例性的,该步骤可以由图17中所示的持久态模式节点执行。
819.步骤s103、根据第一事实数据对应的第一匹配结果和第二事实数据对应的第二匹配结果,确定是否执行第一操作。
820.本方案中,在得到第一事实数据对应的第一匹配结果和第二事实数据对应的第二匹配结果后,即可以根据第一匹配结果和第二匹配结果,确定是否执行第一操作。在一个例子中,第一操作可以为:提醒天气,提醒路况,提醒用户休息、娱乐或工作,推荐使用手册,或预加载动作或服务。示例性的,该步骤可以由图17中所示的组合节点执行。
821.进一步地,该方法中涉及的规则引擎可以包括第二节点,此时,该步骤s103可以具体为:当第一匹配结果指示匹配成功,且第二匹配结果指示匹配成功时,则可以从第二节点的语义索引指示的文件中获取第三语义对象,及执行第三语义对象对应的第一操作。示例性的,第二节点可以为图17中所示的持久态结果节点。此外,执行第三语义对象对应的第一操作可以由图17中所示的激活节点执行。
822.应理解的,上述步骤s101和步骤s102的执行顺序可以变换,本方案并不对此进行限定。例如先执行步骤s102,再执行步骤s101;或者,步骤s101和步骤s102同时执行,等等。
823.由此,本方案中,基于事实数据的属性,确定从内存或文件中加载语义对象,并基于确定的语义对象匹配事实数据,从而使得可以将规则引擎中的一部分用于匹配事实数据
的语义对象存储至内存中,另一部分用于匹配事实数据的语义对象存储在文件中,进而可以释放一些冗余内存,降低了规则引擎运行过程中的内存开销,提升了规则引擎的能力。特别是,当规则引擎布置在对内存使用非常敏感的端侧平台时,基于本方案中的方法可以大幅降低端侧平台内存的开销,极大了提升了规则引擎在端侧平台的运行能力。可以理解的,本方案中提到的规则引擎的执行方法也可以应用在云侧执行,此时基于本方案中的方法则可以大幅降低云侧服务器资源的开销。应理解的是,当规则引擎的能力提升后,在利用该规则引擎进行意图识别、动作决策等时,则可以显著提升意图识别、动作决策等执行效率。尤其是,当输入到规则引擎的数据的输入方式为多模态输入时,输入的数据量较大且类型大多不同,例如有些数据变化较为频繁,而有些数据变化较慢,此时使用本方案中的规则引擎则可以从内存中加载语义对象对变化频繁的数据进行匹配,从文件中加载语义对象对变化较慢的数据进行匹配,从而可以避免变化较慢的数据对应的语义对象持续占用内存的情况,进而降低了规则引擎运行过程中的内存开销,提升了规则引擎的能力,以及提升了规则引擎的执行效率。
824.在一个例子中,该方法中涉及的规则引擎可以包括第一节点,该第一节点至少包括第一类型节点和第二类型节点,其中,第一类型节点与第一属性相关,第二类型节点与第二属性相关。此时,步骤s101中在确定输入规则引擎中的第一事实数据后,可以根据第一属性对应的第一类型节点的第一语义索引,从第一语义索引指示的内存中获取第一语义对象,及基于第一语义对象对第一事实数据进行匹配。示例性的,第一节点可以为图1中所示的模式节点,第一类型节点可以为图17中所示的瞬态模式节点。
825.此外,步骤s102在确定输入规则引擎中的第二事实数据后,则可以根据第二属性对应的第二类型节点的第二语义索引,从第二语义索引指示的文件中获取第二语义对象,及基于第二语义对象对第二事实数据进行匹配。示例性的,第二类型节点可以为图17中所示的持久态模式节点。
826.进一步地,在步骤s101中从第一语义索引指示的内存中获取第一语义对象之前,还可以先确定第一类型节点中记录的第一事实数据的变化次数与输入至规则引擎中的第一事实数据的变化次数不同。示例性的,第一类型节点中记录的第一事实数据的变化次数可以理解为图18中所示的模式节点的状态表中的modcount的值。在一个例子中,当第一类型节点中记录的第一事实数据的变化次数与输入至规则引擎中的第一事实数据的变化次数相同时,则可以使用第一类型节点记录的前次匹配结果作为第一匹配结果。示例性的,第一类型节点记录的前次匹配结果可以理解为图18中所示的模式节点的状态表中的ismatached。
827.此外,在步骤s102中从第二语义索引指示的文件中获取第二语义对象之前,也可以先确定第二类型节点中记录的第二事实数据的变化次数与输入至规则引擎中的第二事实数据的变化次数不同。示例性的,第二类型节点中记录的第二事实数据的变化次数可以理解为图18中所示的模式节点的状态表中的modcount的值。在一个例子中,当第二类型节点中记录的第二事实数据的变化次数与输入至规则引擎中的第二事实数据的变化次数相同时,则可以使用第二类型节点记录的前次匹配结果作为第二匹配结果。示例性的,第二类型节点记录的前次匹配结果可以理解为图18中所示的模式节点的状态表中的ismatached。
828.在一个例子中,在重构规则引擎中的规则时,可以基于确定出的第一类型节点中
记录的第一事实数据的变化次数,确定是否将第一类型节点切换为第二类型节点。具体地,当第一类型节点中记录的第一事实数据的变化次数小于预设次数阈值时,则表明此时第一事实数据的变化频率较低,此时若将第一类型节点中的语义对象存储在内存中,则存在内存长期被占用的情况,因此,可以此时可以将第一类型节点切换为第二类型节点。
829.同样的,在重构规则引擎中的规则时,可以基于确定出的第二类型节点中记录的第二事实数据的变化次数,确定是否将第二类型节点切换为第一类型节点。具体地,当第二类型节点中记录的第二事实数据的变化次数大于预设次数阈值时,则表明此时第二事实数据的变化频率较块,此时若将第二类型节点中的语义对象存储在文件中,则存在语义对象加载效率慢的情况,因此,可以此时可以将第二类型节点切换为第一类型节点。
830.以上即是对本方案中的规则引擎的执行方法的介绍。接下来,基于上文所描述的规则引擎中规则拓扑图的部分或全部内容,对本技术实施例提供的一种规则引擎进行介绍。可以理解的是,该规则引擎是基于上文所描述的规则引擎中规则拓扑图提出,该规则引擎所执行的的部分或全部内容可以参见上文对规则引擎中规则拓扑图的描述。
831.请参阅图22,图22是本技术实施例提供的一种规则引擎的结构示意图。如图22所示,该规则引擎包括:第一节点61。该第一节点61至少包括第一类型节点611和第二类型节点612。
832.其中,第一类型节点611可以用于根据输入规则引擎中的第一事实数据的第一属性,从内存中获取第一语义对象对第一事实数据进行匹配,得到第一匹配结果,第一属性用于表征第一事实数据的变化频率。第二类型节点612可以用于根据输入规则引擎中的第二事实数据的第二属性,从文件中获取第二语义对象对第二事实数据进行匹配,得到第二匹配结果,第二属性用于表征第二事实数据的变化频率,第二属性不同于第一属性。其中,第一匹配结果和第二匹配结果共同用于确定是否执行第一操作。示例性的,第一类型节点611可以为图17中所示的瞬态模式节点,第二类型612可以为图17中所示的持久态模式节点。
833.在一个例子中,第一事实数据包括时间和位置中的至少一项;第二事实数据包括年龄和季节中的至少一项。第一操作包括以下一项或多项:提醒天气,提醒路况,提醒用户休息、娱乐或工作,推荐使用手册,预加载动作或服务。
834.在一种实现中,第一类型节点611可以具体用于根据第一属性对应的第一语义索引,从第一语义索引指示的内存中获取第一语义对象,及基于第一语义对象对第一事实数据进行匹配。
835.第二类型节点612可以具体用于根据第二属性对应的第二语义索引,从第二语义索引指示的文件中获取第二语义对象,及基于第二语义对象对第二事实数据进行匹配。
836.在一种实现中,第一类型节点611在从内存中获取第一语义对象对第一事实数据进行匹配之前,还可以用于确定第一类型节点611中记录的第一事实数据的变化次数与输入至规则引擎中的第一事实数据的变化次数不同。
837.在一种实现中,第二类型节点612在从文件中获取第二语义对象对第二事实数据进行匹配之前,还可以用于确定第二类型节点612中记录的第二事实数据的变化次数与输入至规则引擎中的第二事实数据的变化次数不同。
838.在一种实现中,第一类型节点611还可以用于在第一类型节点611中记录的第一事实数据的变化次数与输入至规则引擎中的第一事实数据的变化次数相同时,使用第一类型
节点611记录的前次匹配结果作为第一匹配结果。
839.在一种实现中,第二类型节点612还可以用于在第二类型节点612中记录的第二事实数据的变化次数与输入至规则引擎中的第二事实数据的变化次数相同时,使用第二类型节点612记录的前次匹配结果作为第二匹配结果。
840.在一种实现中,该规则引擎还可以包括第二节点62。该第二节点62可以用于当第一匹配结果指示匹配成功,且第二匹配结果指示匹配成功时,从第二节点的语义索引指示的文件中获取第三语义对象,及执行第三语义对象对应的第一操作。示例性的,第二节点62可以为图1中所示的结果节点。
841.可以理解的是,该规则引擎中还可以包括第三节点,第四节点,第五节点和第六节点。其中,第三结点可以为图17中所示的根节点,第四节点可以为图1中所示的类型节点,第五节点可以为图17中所示的组合节点,第六节点可以为图17中所示的激活节点。其中,第一节点可以为图17中所示的模式节点,第二节点可以为图17中所示的结果节点。
842.可以理解的是,该规则引擎可以配置于任何具有计算、处理能力的装置、设备、平台、设备集群中。例如,该规则引擎可以配置于包含有处理器和存储器的设备中,其中,该设备可以为终端或服务器。
843.应当理解的是,上述规则引擎的实现原理和技术效果与上述对规则引擎中的规则拓扑图的描述类似,该规则引擎的工作过程可参考上述对规则引擎中的规则拓扑图中的对应过程,此处不再赘述。
844.在介绍完规则引擎606后,继续对意图识别决策系统501中的其他模块进行介绍。
845.继续参阅图15,意图识别决策系统501中的决策推理模块607用于为用户作出决策,即在何种设备上执行何种动作,决策执行的动作大部分为预加载动作或服务。决策推理模块607中可以维护有一个动作序列库,还可以包含有实体序列、意图和动作序列的对应关系。在一些简单场景中,决策推理模块607可以调用规则引擎606中的规则确定执行何种动作,在一些复杂场景中,决策推理模块607根据实体序列、意图和动作序列的对应关系确定在何种设备上执行何种动作。
846.在一个例子中,决策推理模块607中可以具有动作预测模型,该动作预测模型可以为用户做出决策。示例性的,动作预测模型可以基于上文有关意图识别模块605中意图识别模型的获取方式得到。
847.动作反馈模块608用于将预测出的动作序列和用户真实执行的动作序列作比较,以对预测结果是否正确做出反馈。动作反馈模块608的输入为决策推理模块607预测出的动作序列,输出为预测结果和真实结果的比较,二者相同则反馈预测正确,反之反馈预测错误。动作反馈的结果可用于更新实体序列与意图的对应关系,以及实体序列、意图与动作序列的对应关系,例如若预测用户的意图是打开音乐播放器,决策执行的动作为后台预加载qq音乐,但是用户实际打开的是网易云音乐,则此时动作反馈模块会将其记录下来,用于更新实体序列、意图与动作序列的对应关系。若预测用户的意图是打开音乐播放器,决策执行的动作为后台预加载qq音乐,但用户实际操作为打开京东,则此时动作反馈模块会将其记录下来,用于更新实体序列与意图的对应关系,以及实体序列、意图与动作序列的对应关系。
848.在一个例子中,动作反馈模块608中可以包括多示例学习模型(图中未示出)。该多
示例学习模型可以用于根据各待处理序列中连续的打点数据属于同一意图的可能性,将各待处理序列中可能不属于同一个意图的连续的打点数据划分到不同的粒度更小的子序列中,得到多个子序列。接着,动作反馈模块608可以按照预设意图规则确定出多个子序列中各个子序列的意图,其中,预设意图规则可以用于根据序列中的打点数据确定序列的意图。动作反馈模块608确定出各个子序列的意图后,即获知到用户真实执行的动作序列,进而将其与预测出的动作序列进行比较,并对预测结果是否正确做出反馈。
849.在一个例子中,动作反馈模块608中还可以包括多示例学习模型训练模块(图中未示出)。该多示例学习模型训练模块可以执行本方案中的多示例学习模型的训练方法。对于本方案中的多示例学习模型的训练方法详见下文描述。应理解的是,该多示例学习模型训练模块也可以配置于端侧或云侧,在此不做限定。
850.下面对各模块间的信息交互过程进行描述:
851.多模态输入模块601获取多种不同输入方式的数据,将获取到的数据发送到实体识别模块603。实体识别模块603中的实体提取单元6031从这些数据中提取特征向量,输入到从知识库602中获取的实体识别模型,输出得到识别出的实体。
852.由于知识库602中存储的实体识别模型是根据实体仓库单元6033中的实体训练出来的,因此,根据知识库602中的实体识别模型,实体提取单元6031即可以从这些数据中识别出实体仓库单元6033存储有的实体。在一个实体识别的时间窗格内,实体提取单元6031得到识别出的实体后,按照识别出的顺序发送给上下文模块604,由上下文模块604根据接收到的顺序保存为一个实体序列。所有历史接收到的实体按照接收到的顺序保存的实体序列可称为上下文实体。
853.上下文模块604将上下文实体中最新部分的实体序列(至少包含最近一个实体识别的时间窗格内识别出的实体组成的实体序列)发送给意图识别模块605。
854.意图识别模块605中的意图映射单元6051根据意图仓库单元6053中保存的实体序列与意图的对应关系,确定该实体序列对应的意图,将上下文模块604发送的实体序列以及意图映射单元6051确定好的意图发送给决策推理模块607。
855.决策推理模块607得到意图识别模块6051发送的意图和实体序列后,根据存储的实体序列、意图和动作序列的对应关系或从规则引擎606获取到的规则,确定动作序列,并发送给动作反馈模块608。
856.动作反馈模块608得到决策推理模块607确定的动作序列后,将该动作序列与用户真实执行的动作序列作比较,将比较结果发送至意图识别模块605和决策推理模块607。意图识别模块605根据比较结果更新意图仓库单元6053中存储的实体序列与意图的对应关系,决策推理模块607根据比较结果更新存储的实体序列、意图与动作序列的对应关系。
857.以上即是对本方案中的图15所示的意图识别决策系统501的介绍。接下来,基于上文所描述的内容,对意图识别决策系统501中动作反馈模块608中的多示例模型的训练,多示例学习模型的更新过程等进行详细描述。
858.(1)多示例学习模型的训练方法
859.图23为本技术实施例中多示例学习模型的训练方法中一个数据流向示意图。图24为本技术实施例中多示例学习模型的训练方法中一个流程示意图。下面结合图23所示的数据流向示意图和图24所示的流程示意图,对本技术实施例中的多示例学习模型的训练方法
进行描述:
860.s1301、电子设备确定初始打点数据序列;
861.打点数据为电子设备在本地记录的用户日常的操作数据。该初始打点数据序列中可以包括电子设备中出厂预置的打点数据和/或用户使用电子设备产生的打点数据组成。
862.具体对于打点数据的描述可以参阅上述术语介绍中的(11)打点数据,此处不再赘述。
863.该初始打点数据序列中的打点数据不需要人工标注,可作为训练数据训练多示例学习模型。
864.示例性的,图6所示的打点数据序列可以作为一个初始打点数据序列。
865.s1302、电子设备按照第一预设规则将该初始打点数据序列划分为多个分序列;
866.该第一预设规则用于将打点数据序列划分为不同的分序列,且一个分序列根据第二预设规则至少可以确定一个明确的意图,该第二预设规则用于确定序列的意图。具体对于第一预设规则和第二预设规则的描述可以参阅上述术语介绍中的(13)第一预设规则、第二预设规则和分序列,此处不再赘述。
867.示例性的,按照第一预设规则为:将用户每次从亮屏到息屏一系列连续操作产生的打点数据划分为一个分序列。第二预设规则为:用户息屏前关闭的最后一个使用的应用为用户的意图。可以将图6所述的打点数据序列划分为图7所示的多个分序列:b1、b2、b3。
868.电子设备可以将该s1302中得到的多个分序列,或s1307中得到的多个子序列,作为多个待处理序列,对该待处理序列进行特征提取训练多示例学习模型,并使用训练后的多示例学习模型将该待处理序列划分为粒度更小的序列,具体的,可以执行如下步骤:
869.s1303、电子设备确定该多个待处理序列中的示例和示例标签;
870.电子设备将多个待处理序列中相邻的两条打点数据组成一个示例。将位于同一个待处理序列中的两条打点数据组成的示例的示例标签确定为正,将位于不同待处理序列中的两条打点数据组成的示例的示例标签确定为负。具体的,对示例和示例标签的描述可以参阅上述术语描述中(14)多示例学习模型、示例和示例标签、包和包标签中对示例和示例标签的描述,此处不再赘述。
871.示例性的,图25为本技术实施例中确定示例和示例标签的一个示例性示意图。如图25所示,由12条打点数据组成的打点数据序列a1划分成了待处理序列b1、b2、b3。
872.按照多个待处理序列中相邻的两条打点数据组成一个示例,电子设备可以确定该待处理序列中的共11个示例:s1、s2、s3、s4、s5、s6、s7、s8、s9、s10、s11。
873.按照位于同一个待处理序列中的两条打点数据组成的示例的示例标签确定为正,将位于不同待处理序列中的两条打点数据组成的示例的示例标签确定为负,电子设备可以确定:
874.由同样位于待处理序列b1中的打点数据组成的示例s1、s2、s3、s4、s5、s6、s7的示例标签为正;
875.由同样位于待处理序列b2中的打点数据组成的示例s9的示例标签为正;
876.由同样位于待处理序列b3中的打点数据组成的示例s11的示例标签为正;
877.由分别位于待处理序列b1和b2中的打点数据组成的示例s8的示例标签为负;
878.由分别位于待处理序列b2和b3中的打点数据组成的示例s10的示例标签为负。
879.s1304、电子设备根据多个待处理序列、示例和示例标签,确定包和包标签;
880.电子设备确定示例和示例标签后,可以按照该示例和示例标签与多个待处理序列的关系,确定包和包标签。将由位于同一个待处理序列中的打点数据组成的示例共同作为一个包,且确定其包标签为正;将由位于一个待处理序列中的最后一个打点数据和与该待处理序列连续的下一个待处理序列中的第一个打点数据组成的示例作为一个包,且确定其包标签为负。具体的,对包和包标签的描述可以参阅上述术语描述中(14)多示例学习模型、示例和示例标签、包和包标签中对包和包标签的描述,此处不再赘述。
881.示例性的,图26为本技术实施例中确定包和包标签的一个示例性示意图。3个待处理序列b1、b2、b3中的11个示例共构成了5个包:
882.位于待处理序列b1中的打点数据组成的示例s1、s2、s3、s4、s5、s6、s7共同构成一个包l1,且其包标签为正;
883.位于待处理序列b2中的打点数据组成的示例s9构成一个包l3,且其包标签为正;
884.位于待处理序列b3中的打点数据组成的示例s11构成一个包l5,且其包标签为正;
885.位于待处理序列b1的最后一个打点数据和待处理序列b2的第一个打点数据组成的示例s8构成一个包l2,且其包标签为负;
886.位于待处理序列b2的最后一个打点数据和待处理序列b3的第一个打点数据组成的示例s10构成一个包l4,且其包标签为负。
887.s1305、电子设备从该包中提取包的特征向量矩阵。
888.电子设备可以从包中各示例中提取示例的特征,得到各示例的特征向量;然后将包中各示例的特征向量组成包的特征向量矩阵。具体的,对特征向量和特征向量矩阵的描述可以参阅上述术语描述中(16)打点数据序列包内示例的特征和包的特征向量矩阵的描述,此处不再赘述。
889.示例性的,图27为本技术实施例中提取包的特征向量矩阵的一个示例性示意图。以提取图26所示示例中得到的包l1的特征向量矩阵为例。包l1中包含示例s1、s2、s3、s4、s5、s6、s7。先分别提取各示例的特征,得到各示例的特征向量。假设各示例中的打点数据为json结构体,按如下9个维度提取各示例的特征为例:
890.(1)示例中第一条打点数据和第二条打点数据的json结构体的关键字的总个数;
891.(2)示例中第一条打点数据和第二条打点数据对应的json字符串的总长度
892.(3)示例中两条打点数据的应用程序包名的特征;
893.(4)示例中两条打点数据的时间戳的差;
894.(5)示例中两条打点数据间某些关键字的值是否相同;
895.(6)示例中第一条打点数据记录的操作的使用时间;
896.(7)示例中第一条打点数据的使用时间是否小于预设使用时间阈值;
897.(8)示例中第二条打点数据的使用时间是否大于平均使用时间;
898.(9)示例中第二条打点数据输入打点数据序列的持续时间是否小于平均持续时间。
899.可以理解的是,这里示例性的以上述每个特征都是一个维度的数据为例,在实际应用中,有些特征也可以是更多维度的数据,此处不作限定。
900.从而可以得到各示例的9维特征向量:
901.示例s1:
902.示例s2:
903.示例s3:
904.示例s4:
905.示例s5:
906.示例s6:
907.示例s7:
908.然后可以将该包l1内7个示例的9维特征向量组成包的7*9的特征向量矩阵,得到包l1的特征向量矩阵n1:
[0909][0910]
可以理解的是,在实际应用中,可以采用更多或更少的维度提取示例的特征向量,提取的各维度的特征也可以是其他类型,此处不作限定。示例的特征向量以及包的特征向量矩阵的表示和存储方式也可以采用其他的表示和存储方式,此处不作限定。
[0911]
s1306、电子设备将各个包的特征向量矩阵和包标签输入多示例学习模型,得到训练后的多示例学习模型;
[0912]
多示例学习模型为一种深度学习模型。电子设备得到各个包的特征向量矩阵后,将各包的特征向量矩阵和包标签依次输入多示例学习模型,得到训练后的多示例学习模型。
[0913]
可以理解的是,可以将本技术实施例中还没有被训练过的多示例学习模型称为预置多示例学习模型。在将初始打点数据序列中提取的训练数据输入多示例学习模型进行训练之前,该多示例学习模型可以为一种预置多示例学习模型。该预置多示例学习模型可以为任一种还未训练过的多示例学习模型,例如orlr模型,citation

knn模型,mi

svm模型,c4.5

mi模型,bp

mip模型,ensemble learning

mip模型等,此处不作限定。
[0914]
示例性的,图28为本技术实施例中训练多示例学习模型的一个示例性示意图。电子设备将从包l1提取出的特征向量矩阵n1和包l1的包标签“正”输入多示例学习模型,接着将从包l2提取的特征向量矩阵n2和包l2的包标签“负”输入多示例学习模型,接着将从包l3提取的特征向量矩阵n3和包l3的包标签“正”输入多示例学习模型,接着将从包l4提取的特征向量矩阵n4和包l4的包标签“负”输入多示例学习模型,接着将从包l5提取的特征向量矩阵n5和包l5的包标签“正”输入多示例学习模型,然后可以得到训练后的多示例学习模型。
[0915]
s1307、电子设备将该多个待处理序列,输入训练后的多示例学习模型,得到多个
子序列;
[0916]
本技术实施例中,该多示例学习模型用于将各待处理序列划分为更小粒度的序列,该待处理序列可以为使用该第一预设规则将打点数据序列划分成的分序列,可以为使用该多示例学习模型将该分序列划分成更小粒度后的子序列,也可以为使用该多示例学习模型将该子序列划分成更小粒度后的子序列。
[0917]
得到训练后的多示例学习模型后,电子设备可以将该多个待处理序列输入该训练后的多示例学习模型,得到多个子序列,该多个子序列的数目大于等于该多个待处理序列的数目。
[0918]
示例性的,图29为本技术实施例中多示例学习模型将多个待处理序列划分为多个更小粒度的子序列的示例性示意图。将待处理序列b1、b2、b3输入训练后的多示例学习模型后,该训练后的多示例学习模型可以生成子序列z1、z2、z3、z4,其中,待处理序列b1被划分成了粒度更小的子序列z1和z2。
[0919]
s1308、电子设备确定该训练后的多示例学习模型的损失函数的值;
[0920]
损失函数是衡量预测模型在能够预测预期结果方面的表现有多好的指标。每种机器学习模型都有其对应的损失函数。模型的预测结果越好,则损失函数的值越小。
[0921]
电子设备得到训练后的多示例学习模型,并用该训练后的多示例学习模型将多个待处理序列划分为多个子序列后,可以得到该训练后的多示例学习模型的损失函数的值。
[0922]
示例性的,如图29所示,采用训练后的多示例学习模型将待处理序列b1、b2、b3划分为子序列z1、z2、z3、z4后,电子设备通过采用的多示例学习模型对应的损失函数计算,确定该训练后的多示例学习模型的损失函数的值为10%。
[0923]
s1309、电子设备确定该损失函数的值的减小幅度是否小于预设减小幅度;
[0924]
电子设备得到训练后的多示例学习模型的损失函数的值后,可以确定该损失函数的值的减小幅度是否小于预设减小幅度。
[0925]
由于在初次运行之前,电子设备还没有确定过该训练后的多示例学习模型的损失函数的值,因此,在电子设备第一次得到该训练后的多示例学习模型的损失函数的值后,可以直接默认确定该损失函数的值的减小幅度不小于预设减小幅度。
[0926]
当该减小幅度不小于预设减小幅度时,电子设备可以将该多个子序列作为多个待处理序列,执行步骤s1303~s1309。
[0927]
当该减小幅度小于预设减小幅度时,电子设备可以执行步骤s1310。
[0928]
示例性的,图30为本技术实施例中多示例学习模型迭代训练的一个示例性示意图。电子设备可以将采用训练后的多示例学习模型将待处理序列b1、b2、b3划分得到的子序列z1、z2、z3、z4作为新的待处理序列,执行步骤s1303~s1309:
[0929]
确定示例和示例标签,包和包标签,提取包的特征向量。从而得到7个包,及其相应的特征向量矩阵和包标签:lz1:nz1和正;lz2:nz2和负;lz3:nz3和正;lz4:nz4和负;lz5:nz5和正;lz6:nz6和负;lz7:nz7和正。依次输入该训练后的多示例学习模型,从而更新该训练后的多示例学习模型。
[0930]
图31为本技术实施例中多示例学习模型迭代生成子序列的一个示例性示意图。电子设备可以将上一轮划分得到的子序列,即本轮的待处理序列:z1、z2、z3、z4输入得到的更新训练后的多示例学习模型,得到子序列z1、z2、z3、z4。
[0931]
电子设备确定该更新训练后的多示例学习模型的损失函数的值还是10%。相比上一轮,损失函数的值的减小幅度为0,小于预设减小幅度5%,执行步骤s1310。
[0932]
可以理解的是,根据打点数据序列中打点数据的特征不同,第一预设规则的不同,对子序列通过更新训练后的多示例学习模型重新划分后,可能得到更多的更小粒度的子序列,也可能产生与输入相同的子序列,此处不作限定。
[0933]
可以理解的是,若更新训练后的多示例学习模型将本轮的待处理序列划分为了更多的更小粒度的子序列,且得到的更新训练后的多示例学习模型的损失函数的值相比上一轮得到的训练后的多示例学习模型的损失函数的值的减小幅度不小于预设减小幅度,则可以将得到的多个子序列作为多个待处理序列,再次执行步骤s1303~s1309。直到某一轮损失函数的值的减小幅度不小于预设减小幅度,则执行步骤s1310。
[0934]
可选的,在一些实施例中,在二分类多示例学习模型中,示例的标签只有两个值时,例如只有0和1,或,

1和1等时,上述损失函数可以为交叉熵损失函数,交叉熵损失函数以对多示例学习模型计算出的交叉熵作为损失函数的值。可以在确定某一轮训练得到的多示例学习模型计算出的交叉熵相比于上一轮训练得到的多示例学习模型计算出的交叉熵的减小幅度不小于预设减小幅度时,确定得到了训练完成的多示例学习模型。
[0935]
s1310、电子设备确定该训练后的多示例学习模型为训练完成的多示例学习模型。
[0936]
在确定本轮训练后的多示例学习模型的损失函数的值相比上一轮训练后的多示例学习模型的损失函数的值的减小幅度不小于预设减小幅度时,电子设备确定本轮训练后的多示例学习模型为使用该初始打点数据序列训练完成的多示例学习模型。
[0937]
本技术实施例中,可以直接使用没有进行人工标注的初始打点数据序列对多示例学习模型进行训练,得到可以将打点数据序列划分为更小粒度的多个子序列的训练完成的多示例学习模型,实现了对用户打点数据的自标注。在大量节省了训练意图识别模型进行数据标注的人工成本的同时,使得数据的标注也更加准确,提升了意图识别的准确性。示例性的,当打点数据的输入方式为多模态输入时,由于打点数据的组成可以是多样化的,这使得人工标注训练数据的时间显著增加,而通过本技术实施例中的模型训练方法,则可以显著节省训练意图识别模型进行数据标注的人工成本,以及增加数据标注的准确性,进而提升意图识别的准确性。
[0938]
(2)多示例学习模型的更新过程
[0939]
图32为本技术实施例中多示例学习模型的更新过程一个数据流向示意图。图33为本技术实施例中多示例学习模型的更新过程一个流程示意图。下面结合图32所示的数据流向示意图和图33所示的流程示意图,对本技术实施例中的多示例学习模型的更新过程进行描述:
[0940]
s2501、电子设备确定新增打点数据序列;
[0941]
电子设备可以将在用户使用该电子设备的过程中,电子设备可以在本地记录用户的操作数据作为打点数据。电子设备可以在新产生的没有作为多示例学习模型的训练数据的打点数据累积达到预设数目阈值时,将这些打点数据组成新增打点数据序列;也可以将预设周期内(例如,每天或每周等)新产生的没有作为多示例学习的训练数据的打点数据组成新增打点数据序列,此处不作限定。
[0942]
s2502、电子设备将该新增打点数据序列输入多示例学习模型,得到多个子序列;
[0943]
对于之前已经训练完成的多示例学习模型,这里可以继续在之前训练完成的基础上继续使用新增打点数据训练,更新训练完成的多示例学习模型。这个过程也可以称为对多示例学习模型进行增量训练。
[0944]
具体的,电子设备可以将该新增打点数据序列输入当前已经训练完成的多示例学习模型,得到多个子序列。具体可以参考步骤s2202,此处不再赘述。
[0945]
电子设备可以将该s2502得到的多个子序列,或s2507中得到的多个子序列,作为多个待处理序列,对该待处理序列进行特征提取训练多示例学习模型,得到更新训练完成的多示例学习模型,具体的,可以执行如下步骤:
[0946]
s2503、电子设备确定该多个待处理序列中的示例和示例标签;
[0947]
s2504、电子设备根据多个待处理序列、示例和示例标签,确定包和包标签;
[0948]
s2505、电子设备从该包中提取包的特征向量矩阵;
[0949]
s2506、电子设备将各个包的特征向量矩阵和包标签输入多示例学习模型,得到训练后的多示例学习模型;
[0950]
s2507、电子设备将该多个待处理序列,输入训练后的多示例学习模型,得到多个子序列;
[0951]
s2508、电子设备确定该训练后的多示例学习模型的损失函数的值;
[0952]
s2509、电子设备确定该损失函数的值的减小幅度是否小于预设减小幅度;
[0953]
步骤s2503~s2509与步骤s1303~s1309类似,可参考对步骤s1303~s1309的描述,此处不再赘述。
[0954]
s2510、电子设备确定该训练后的多示例学习模型为更新训练完成的多示例学习模型;
[0955]
在确定本轮训练后的多示例学习模型的损失函数的值相比上一轮训练后的多示例学习模型的损失函数的值的减小幅度不小于预设减小幅度时,电子设备确定本轮训练后的多示例学习模型为使用该新增打点数据序列更新训练完成的多示例学习模型。
[0956]
本技术实施例中,电子设备可以使用新增的打点数据组成新增打点数据序列对多示例学习模型进行更新训练,使得多示例学习模型更符合用户个性化的需求,且划分的子序列更加准确,从而使得意图识别结果更加符合用户期望。
[0957]
可以理解的是,上面实施例中,多示例学习模型的训练方法和多示例学习模型的更新过程中步骤都可以由电子设备执行。在实际应用中,可选的,电子设备可以将打点数据序列发送给服务器,由服务器进行多示例学习模型训练后,将训练完成或更新训练完成的多示例学习模型发送给电子设备使用,此处不作限定。
[0958]
示例性的,图34为本技术实施例中多示例学习模型的训练方法一个交互示意图。对于多实例学习模型的训练方法,其过程可以为:
[0959]
s2601、电子设备确定初始打点数据序列;
[0960]
与步骤s1301类似,此处不作赘述。
[0961]
s2602、电子设备将给初始打点数据序列发送给服务器;
[0962]
s2603、服务器按照第一预设规则将该初始打点数据序列划分为多个分序列;
[0963]
s2604、服务器确定该多个待处理序列中的示例和示例标签;
[0964]
s2605、服务器根据多个待处理序列、示例和示例标签,确定包和包标签;
[0965]
s2606、服务器从该包中提取包的特征向量矩阵;
[0966]
s2607、服务器将各个包的特征向量矩阵和包标签输入多示例学习模型,得到训练后的多示例学习模型;
[0967]
s2608、服务器将该多个待处理序列,输入训练后的多示例学习模型,得到多个子序列;
[0968]
s2609、服务器确定该训练后的多示例学习模型的损失函数的值;
[0969]
s2610、服务器确定该损失函数的值的减小幅度是否小于预设减小幅度;
[0970]
s2611、服务器确定该训练后的多示例学习模型为训练完成的多示例学习模型;
[0971]
步骤s2603~s2611由服务器执行,其执行的具体动作与步骤s1302~s1310中电子设备执行的具体动作类似,此处不作赘述。
[0972]
s2612、服务器将该训练完成的多示例学习模型发送给电子设备。
[0973]
本技术实施例中,由服务器完成多示例学习模型的训练工作,节省了电子设备的处理资源,提升了多示例学习模型的训练效率。
[0974]
示例性的,图35为本技术实施例中多示例学习模型的更新训练过程一个交互示意图。对于多实例学习模型的更新训练,其过程可以为:
[0975]
s2701、电子设备确定新增打点数据序列;
[0976]
与步骤s2501类似,此处不作赘述。
[0977]
s2702、电子设备将该新增打点数据序列发送给服务器;
[0978]
s2703、服务器将该新增打点数据序列输入多示例学习模型,得到多个子序列;
[0979]
s2704、服务器确定该多个待处理序列中的示例和示例标签;
[0980]
s2705、服务器根据多个待处理序列、示例和示例标签,确定包和包标签;
[0981]
s2706、服务器从该包中提取包的特征向量矩阵;
[0982]
s2707、服务器将各个包的特征向量矩阵和包标签输入多示例学习模型,得到训练后的多示例学习模型;
[0983]
s2708、服务器将该多个待处理序列,输入训练后的多示例学习模型,得到多个子序列;
[0984]
s2709、服务器确定该训练后的多示例学习模型的损失函数的值;
[0985]
s2710、服务器确定该损失函数的值的减小幅度是否小于预设减小幅度;
[0986]
s2711、服务器确定该训练后的多示例学习模型为更新训练完成的多示例学习模型;
[0987]
步骤s2703~s2111由服务器执行,其执行的具体动作与步骤s2502~s2510中电子设备执行的具体动作类似,此处不作赘述。
[0988]
s2712、服务器将该更新训练完成的多示例学习模型发送给电子设备。
[0989]
本技术实施例中,由服务器完成多示例学习模型的更新训练工作,节省了电子设备的处理资源,提升了多示例学习模型的更新训练效率。
[0990]
可以理解的是,在多示例学习模型的更新训练效率提升的同时,可以使得多示例学习模型中的各个参数处于最佳状态,从而使得该多示例学习模型可以准确的确定出打点数据序列对应的子序列,进而可以基于确定出的子序列准确的识别出用户的意图,提升了用户意图识别的准确性。
[0991]
以上即是对动作反馈模块608中的多示例模型的训练,多示例学习模型的更新过程等的介绍。接下来对意图识别决策系统501中意图识别模块605中的意图识别模型的训练进行介绍。
[0992]
(1)利用生成式对抗网络的特性,得到意图识别模型
[0993]
需要说明的是,本方案中利用生成式对抗网络的特性,得到意图识别模型,可以基于图36所示的人工智能框架,以及图37和38所示的应用环境实现。
[0994]
其中,图36示出一种人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流程,适用于通用的人工智能领域需求。
[0995]
下面从“智能信息链”(水平轴)和“it价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。
[0996]“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。
[0997]“it价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
[0998]
(a)基础设施
[0999]
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(cpu、npu、gpu、asic、fpga等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。
[1000]
举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
[1001]
(b)数据
[1002]
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
[1003]
(c)数据处理
[1004]
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
[1005]
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
[1006]
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
[1007]
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
[1008]
(d)通用能力
[1009]
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
[1010]
(e)智能产品及行业应用
[1011]
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。
[1012]
下面将对本方案中涉及的神经网络的训练过程进行示例性的说明。
[1013]
参见图37,本发明实施例提供了一种应用环境示意图200,示例性地,本技术实施例所涉及的服务器可以为图37中的执行设备210,客户端可以为图37所示的客户设备240。
[1014]
数据采集设备260用于模拟数据和、或测试数据作为输入数据并存入数据库230,训练设备220基于数据库230中维护的输入数据生成目标模型/规则201。下面将更详细地描述训练设备220如何基于输入数据得到目标模型/规则201。
[1015]
深度神经网络中的每一层的工作可以用数学表达式来描述:从物理层面深度神经网络中的每一层的工作可以理解为通过五种对输入空间(输入向量的集合)的操作,完成输入空间到输出空间的变换(即矩阵的行空间到列空间),这五种操作包括:1、升维/降维;2、放大/缩小;3、旋转;4、平移;5、“弯曲”。其中1、2、3的操作由完成,4的操作由完成,5的操作则由来实现。这里之所以用“空间”二字来表述是因为被分类的对象并不是单个事物,而是一类事物,空间是指这类事物所有个体的集合。其中,是权重向量,该向量中的每一个值表示该层神经网络中的一个神经元的权重值。该向量决定着上文所述的输入空间到输出空间的空间变换,即每一层的权重控制着如何变换空间。训练深度神经网络的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵(由很多层的向量形成的权重矩阵)。因此,神经网络的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩阵。
[1016]
因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数)。比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
[1017]
训练设备220得到的目标模型/规则可以应用不同的系统或设备中。在图37中,执行设备210配置有i/o接口212,与外部设备进行数据交互,“用户”可以通过客户设备240向i/o接口212输入数据。
[1018]
执行设备210可以调用数据存储系统250中的数据、代码等,也可以将数据、指令等存入数据存储系统250中。其中,本技术实施例中的信号检测装置可以包括该执行设备210实现神经网络的处理过程,或者是通过外接该执行设备110以实现神经网络的处理过程,此处不做限定。
[1019]
计算模块211使用目标模型/规则201对输入的数据进行处理。
[1020]
最后,i/o接口212将处理结果返回给客户设备240,提供给用户。
[1021]
更深层地,训练设备220可以针对不同的目标,基于不同的数据生成相应的目标模型/规则201,以给用户提供更佳的结果。
[1022]
在附图37中所示情况下,用户可以手动指定输入执行设备210中的数据,例如,在i/o接口212提供的界面中操作。另一种情况下,客户设备240可以自动地向i/o接口212输入数据并获得结果,如果客户设备240自动输入数据需要获得用户的授权,用户可以在客户设备240中设置相应权限。用户可以在客户设备240查看执行设备210输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备240也可以作为数据采集端将采集到的数据存入数据库230。
[1023]
值得注意的,附图37仅是本发明实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在附图37中,数据存储系统250相对执行设备210是外部存储器,在其它情况下,也可以将数据存储系统250置于执行设备210中。
[1024]
参见图38,本发明实施例提供了另一种应用环境示意图300,示例性地,本技术实施例所涉及的服务器可以为图38中的执行设备310,客户端可以为图38所示的本地设备301及本地设备302。执行设备310由一个或多个服务器实现,可选的,与其它计算设备配合,例如:数据存储、路由器、负载均衡器等设备;执行设备310可以布置在一个物理站点上,或者分布在多个物理站点上。执行设备310可以使用数据存储系统350中的数据,或者调用数据存储系统350中的程序代码实现相关步骤操作。
[1025]
用户可以操作各自的用户设备(例如本地设备301和本地设备302)与执行设备310进行交互。每个本地设备可以表示任何计算设备,例如个人计算机、计算机工作站、智能手机、平板电脑、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。
[1026]
每个用户的本地设备可以通过任何通信机制/通信标准的通信网络与执行设备310进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。
[1027]
在另一种实现中,执行设备310的一个方面或多个方面可以由每个本地设备实现,例如,本地设备301可以为执行设备310提供本地数据或反馈计算结果。
[1028]
需要注意的,执行设备310的所有功能也可以由本地设备实现。例如,本地设备301实现执行设备310的的功能并为自己的用户提供服务,或者为本地设备302的用户提供服务。
[1029]
目前,在ai领域中,研究人员可以按照不同的需求,通过深度学习的方式得到不同的预测模型,并通过预测模型实现相对应的人工智能应用。以模拟数据生成的应用为例,一般来说,客户端需要预先采集用户的真实数据并发送给服务器,然后服务器经过机器学习的方法进行训练,提取得到真实数据对应的数据特征,然后根据数据特征生成模拟数据。该方法可以应用于前述图37或图38所示应用环境中。
[1030]
具体来说,通过该方法的传统实现过程可以存在以下两种示例性的实施方案。
[1031]
一种实现过程中,可以利用存储在客户端设备上的用户数据集来标记训练数据,而无需将用户数据暴露给训练服务器。使用由服务器提供的生成式对抗网络(gan)和少量有标签数据样本,客户端设备可以基于存储在客户端设备中的用户数据执行半监督学习。然后可以将无标签训练数据单元提供给客户端设备。客户端设备上的已训练模型可以生成由服务器提供的无标签训练数据单元的拟议标签。由客户端设备提供的拟议标签被私有化,以掩蔽拟议标签与提出该标签的用户和/或客户端设备之间的关系。可以在服务器上分
析拟议标签集,以确定无标签数据单元最受欢迎的拟议标签。一旦标记了训练数据集中的每个数据单元,则服务器可以使用该训练数据集来训练未训练的机器学习模型或改善预训练模型的准确性。在该实现过程中,存在的缺点至少包括:需要收集有便签的真实数据;且使用众多设备对无便签数据进行拟标注,标注结果是有偏的。然后进行生成对抗网络训练,训练结果不能完全拟合真实数据。
[1032]
另一种实现过程中,可以用于已有基于深度学习的视频分类模型的数据增强,具体包括以下步骤:1)构建视频各动作类别的动态信息图像;2)利用各类所述动态信息图像分别训练生成相应动作类别动态信息图像的生成对抗网络;3)利用训练好的生成对抗网络生成所需数量的动态信息图像;4)将步骤1)和步骤3)两种方法生成的动态信息图像按比例混合后作为训练数据,对已有基于深度学习的视频分类模型进行训练。在该实现过程中,存在的缺点至少包括:少量真实数据可能是有偏的,构建的生成对抗网络生成器生成的数据也可能是有偏的。
[1033]
此外,也可以通过生成式对抗网络(generative adversarial networks,gan)建立的学习框架包括一个神经网络(生成器)试图生成接近真实的数据和另一个网络(判别器)试图区分真实的数据和由生成网络生成的数据。第一阶段,固定判别器,训练生成器,使生成的数据能“骗过”判别器,判别器无法区分真实数据与生成数据;第二阶段固定生成器,训练判别器,提高判别器的鉴别能力,以区分真实数据与生成数据。两个阶段不断循环,生成器网络使用判别器作为损耗函数,并更新其参数以生成看起来更真实的数据,使生成数据无限接近真实数据。然而,传统基于gan生成数据方案大多是使用真实环境数据,仅需要考虑原始数据分布与生成数据分发是否一致。
[1034]
在上述模拟数据生成的应用中,仅考虑真实数据的特征分布来生成模拟数据,而由于参与训练的真实数据是有限的,存在一定的偏差,容易导致所生成的模拟数据也存在相应的偏差,使得所生成的模拟数据质量较差。具体来说,传统方案中都是使用真实环境数据,仅需要考虑生成的数据分布是否与原始数据分布一致,并没有考虑原始数据分布可能与真实数据是有偏差的。然而,在意图识别训练过程中,由于隐私条款等因素,很多业务只能从现网收集到运营打点,而并非原始数据。要想收集比较全的数据,依赖于有限的签约测试(beta)用户数据,能够收集的数据量有限,且beta用户的分布往往不能得到保证,与真实现网用户数据分布有很大差异,导致模型训练效果与真实现网使用的效果有比较大的差距。另一方面,由于训练出来的模型发布到现网,通过运营数据再重新进行调整模型参数,整个模型调优、反馈的周期比较长。
[1035]
也即是说,本方案中可以利用少量、有偏的训练数据,构造无偏意图识别模型。基于有偏的训练数据,以及真实环境的反馈数据,构造能够生成无偏虚拟数据的模拟器,在模拟器上进行训练从而得到无偏模型。
[1036]
请参阅图39,本技术实施例提供了一种基于神经网络的数据处理方法,包括如下步骤:
[1037]
s201、将测试数据输入至第一生成器,经过所述第一生成器处理后得到第一模拟数据。
[1038]
本实施例中,服务器将测试数据作为第一生成器的输入,经过该第一生成器处理后得到测试数据对应的第一模拟数据。
[1039]
s202、将所述测试数据和所述第一模拟数据输入至所述第一判别器,经过所述第一判别器处理后得到第一判别结果;
[1040]
本实施例中,服务器将步骤s201中的测试数据和第一模拟数据输入至第一判别器,经过第一判别器处理后得到第一判别结果,其中,第一判别结果用于指示该测试数据和该第一模拟数据之间的差异。
[1041]
本实施例中,第一判别器可以是神经网络或者是其他机器学习、强化学习模型等,用于判断一条给定数据是测试数据还是虚拟生成的第一模拟数据。通过优化2分类的分类损失(hinge loss,logit loss,mse等),使得第一判别器能完全区分测试数据还是虚拟生成的第一模拟数据。
[1042]
s203、根据所述第一判别结果更新所述第一生成器的权重系数,得到第二生成器;
[1043]
本实施例中,服务器根据步骤202处理得到的第一判别结果更新第一生成器中的权重系数,得到第二生成器。
[1044]
在一种可能的实现方式中,服务器根据该第一判别结果更新该第一生成器的权重系数,得到第二生成器包括:若满足第二条件,则根据该第一判别结果更新该第一生成器的权重系数,得到第二生成器;其中,该第二条件包括:在该测试数据和该第一模拟数据之间的经验分布度量小于第四预设值时;和/或,在该第一判别器对应的损失函数的取值大于第五预设值时。
[1045]
本实施例中,服务器可以在满足上述第二条件时再执行根据第一判别结果更新该第一生成器的权重系数的过程,即通过第二条件的限制,在第一判别器的模型效果达到一定条件时,服务器才执行更新第一生成器的权重系数的过程,可以进一步优化更新得到的第二生成器所生成的第二模拟数据的数据质量。
[1046]
具体地,在该第二条件中,该测试数据和该第一模拟数据之间的经验分布度量小于第四预设值,即使得测试数据和该第一模拟数据之间的经验分布度量最小化。其中,经验分布度量具体可以包括kl散度(kl divergence)、瓦瑟斯坦距离(wasserstein distance)或者其它的取值实现,此处不做限定。此外,第四预设值的大小可以按照方案实施场景的不同选用不同的取值,例如0.001、0.01或者其它的取值,此处不做限定。
[1047]
类似的,在该第二条件中,第一判别器对应的损失函数的取值大于第五预设值,即使得第一判别器对应的损失函数的取值最大化。其中,第一判别器的损失函数可以通过铰链损失函数(hinge loss function)、交叉熵损失函数(cross

entropy loss function)、指数损失函数(exponential loss function)或者是通过其它的损失函数对应实现,此处不做限定。此外,第五预设值的大小也可以按照损失函数的不同设置而选用不同的取值,此处不做限定。
[1048]
在一种可能的实现方式中,在该第二生成器中生成第二模拟数据之前,若不满足该第二条件时,该方法还包括:将该测试数据输入至该第二生成器,经过该第二生成器处理后得到第四模拟数据;将该测试数据和该第四模拟数据输入至该第一判别器,经过该第一判别器处理后得到第三判别结果,该第三判别结果用于指示该测试数据和该第四模拟数据之间的差异;根据该第三判别结果更新该第二生成器的权重系数。
[1049]
本实施例中,服务器可以在不满足上述第二条件时,执行将测试数据输入至第二生成器,并通过第一判别器的进一步处理得到用于更新第二生成器的第三判别结果,即可
以进一步利用生成式对抗网络的特性,对第二生成器的权重系数进行优化。
[1050]
s204、在所述第二生成器中生成第二模拟数据。
[1051]
本实施例中,服务器根据步骤s203所更新得到的第二生成器中,生成第二模拟数据。
[1052]
本实施例中,服务器首先将测试数据输入至第一生成器,经过该第一生成器处理后得到第一模拟数据;然后,服务器将该测试数据和该第一模拟数据输入至该第一判别器,经过该第一判别器处理后得到第一判别结果,该第一判别结果用于指示该测试数据和该第一模拟数据之间的差异;此后,服务器再根据该第一判别结果更新该第一生成器的权重系数,得到第二生成器;最后,服务器在该第二生成器中生成第二模拟数据。其中,服务器通过生成式对抗神经网络中的第一生成器和第一判别器的处理过程,对第一生成器中权重系数的进行更新优化以得到第二生成器,利用生成式对抗网络的特性,降低在生成器中所生成的模拟数据与原始输入的测试数据之间的偏差,从而,提升神经网络所生成的模拟数据的数据质量,进而为后续基于该模拟数据训练意图识别模型提供了良好的基础,使得后续训练出的意图识别模型的精准度较高,进而提升了意图识别的准确性。
[1053]
请参阅图41a,本技术实施例提供了一种基于神经网络的数据处理方法,包括如下步骤。
[1054]
s301、将测试数据输入至第一生成器,经过所述第一生成器处理后得到第一模拟数据;
[1055]
本实施例中,服务器将测试数据作为第一生成器的输入,经过该第一生成器处理后得到测试数据对应的第一模拟数据。
[1056]
本实施例中,测试数据可以是使用少量的测试(beta)数据,可选的,还可以加上人工标注的训练数据,即人工标注数据可以和beta用户数据合在一起,作为beta用户数据的扩充得到步骤s201中的测试数据。此处对beta数据的获取进行示例性说明,其中,beta用户原始数据格式如图40所示,“手机太亮太费电了”、“让屏幕色温恢复正常”、“使用偏冷显示”、“手机的亮度太暗了”、“不在主页面显示所有图标”是用户使用数据采集设备的语音助手说的语料。(“10(设置)setting”、“5(桌面)smarthome”、“5(时钟)clock”、“5(旅行助手)tripassistant”)是用户可能想要执行的意图,前面的数字越大,代表该意图越符合用户预期。通过提取语料的word2vec或n

gram特征,以及一些召回来源、召回类别等特征,可以将原始特征映射为用于训练的数字特征向量,并将该数字特征向量作为测试数据的一种实现。显然,针对不同的应用实现场景,测试数据还可以通过一维或者是多维的张量形式实现,而不仅仅限于向量这一实现,此处不作具体的限定。
[1057]
s302、将所述测试数据和所述第一模拟数据输入至所述第一判别器,经过所述第一判别器处理后得到第一判别结果,所述第一判别结果用于指示所述测试数据和所述第一模拟数据之间的差异;
[1058]
本实施例中,服务器将步骤s301中的测试数据和第一模拟数据输入至第一判别器,经过第一判别器处理后得到第一判别结果,其中,第一判别结果用于指示该测试数据和该第一模拟数据之间的差异。
[1059]
s303、根据所述第一判别结果更新所述第一生成器的权重系数,得到第二生成器;
[1060]
本实施例中,服务器根据步骤302处理得到的第一判别结果更新第一生成器中的
权重系数,得到第二生成器。
[1061]
s304、在所述第二生成器中生成第二模拟数据。
[1062]
本实施例中,服务器根据步骤s303所更新得到的第二生成器中,生成第二模拟数据。
[1063]
本实施例中,步骤s301至步骤s304的实现过程可以参考前述步骤s201至步骤s204的实现过程,此处不再赘述。
[1064]
s305、利用第一目标模拟数据输入预设的训练网络,训练得到预测模型。
[1065]
本实施例中,服务器利用第一目标模拟数据输入预设的训练网络,训练得到预测模型,其中,该第一目标模拟数据包括步骤s304得到的第二模拟数据。可以理解的是,由于第一目标模拟数据的数据质量较高,因此基于该第一目标模拟数据训练出的预测模型的精准度也较高。当该预测模型为意图识别模型时,则该意图识别模型的意图识别的准确性也较高,也即是说,通过图41a中的方法训练得到的意图识别模型可以准确的识别出用户的意图。
[1066]
在本技术实施例第一方面的一种可能的实现方式中,该预测模型为意图决策模型(如:意图识别模型)。
[1067]
本实施例中,该方法可以应用于意图决策判别过程中,相对应的,该预测模型在该过程中可以为意图决策模型(如:意图识别模型),从而,提供了该预测模型的一种具体的实现方式,提升方案的可实现性。此外,该预测模型还可以应用于其它的应用场景实现对应的模型,例如该预测模型还可以为感知模型、推理模型或者是其它的模型实现,此处不做限定。
[1068]
在一种可能的实现方式中,该第一目标模拟数据还包括该测试数据。
[1069]
本实施例中,服务器输入到预设的训练网络进行训练得到预测模型的输入数据中,该第一目标模拟数据还可以包括测试数据,可以进一步丰富训练网络的输入,使得训练网络可以训练得到更多的数据特征,从而提升预测模型在后续执行预测过程的预测效果。
[1070]
在一种可能的实现方式中,服务器在该第二生成器中生成第二模拟数据之后,该方法还包括:该服务器利用第一目标模拟数据输入预设的训练网络,训练得到预测模型,该第一目标模拟数据包括该第二模拟数据。
[1071]
本实施例中,服务器可以利用生成式对抗网络得到的第二生成器所生成的第二模拟数据,作为预设的训练网络的输入数据的一部分,进行训练得到预测模型,由于该第二模拟数据与原始输入的测试数据之间的偏差较小,因此,通过该第二模拟数据参与训练网络的训练过程,可以提升后续得到的预测模型的预测效果,使得在模拟环境中训练得到较优的预测模型。
[1072]
s306、将第二目标模拟数据输入所述预测模型,经过所述预测模型处理得到目标预测结果。
[1073]
本实施例中,服务器将第二目标模拟数据输入步骤s305得到的预测模型,经过该预测模型处理得到目标预测结果,其中,该第二目标模拟数据包括步骤s304得到的第二模拟数据。
[1074]
在一种可能的实现方式中,该方法还包括:服务器将第二目标模拟数据输入该预测模型,经过该预测模型处理得到目标预测结果,该第二目标模拟数据包括该第二模拟数
据。
[1075]
本实施例中,服务器可以利用生成式对抗网络得到的第二生成器所生成的第二模拟数据,作为预测模型的输入数据的一部分,即得到所生成的模拟数据在预测模型中对应的目标预测结果,解决预测模型中训练数据过少的问题。
[1076]
s307、向客户端发送所述预测模型;
[1077]
本实施例中,服务器向客户端发送步骤s305得到的预测模型。
[1078]
s308、获取用户操作数据;
[1079]
本实施例中,客户端获取得到用户操作数据。
[1080]
在一种可能的实现方式中,客户端获取用户操作数据的过程具体包括:客户端响应于用户操作,获取该用户操作对应的初始操作数据;此后,该客户端提取该初始操作数据的数据特征,得到该用户操作数据。
[1081]
本实施例中,客户端可以通过获取用户操作对应的初始操作数据并进行特征提取的方式,获取得到输入到预测模型中的用户操作数据,提供了客户端获取用户操作数据的一种具体的实现方式,提升方案的可实现性。
[1082]
s309、将所述用户操作数据输入至所述预测模型,经过训练得到初始预测结果;
[1083]
本实施例中,客户端将步骤s308得到的用户操作数据输入至步骤s307接收得到的预测模型,经过训练得到初始预测结果。
[1084]
s310、向所述服务器发送所述初始预测结果,所述初始预测结果用于作为判别器的输入,经过所述判别器的处理得到用于更新生成器权重系数的判别结果。
[1085]
本实施例中,客户端向所述服务器发送所述初始预测结果,其中,该初始预测结果用于作为判别器的输入,经过判别器的处理得到用于更新生成器权重系数的判别结果;相应的,服务器在步骤s310中,接收所述客户端发送的初始预测结果,所述初始预测结果为所述预测模型对用户操作数据进行训练得到。
[1086]
s311、将所述目标预测结果和所述初始预测结果输入至第二判别器进行训练,输出第二判别结果;
[1087]
本实施例中,服务器将步骤s306得到的目标预测结果和步骤s310接收得到的初始预测结果输入至第二判别器进行训练,输出第二判别结果,其中,该第二判别结果用于指示目标预测结果和初始预测结果之间的差异。
[1088]
本实施例中,第二判别器可以是神经网络或者是其他机器学习、强化学习模型等,用于判断一条给定输出数据是由开发环境虚拟数据使用模型预测产生的目标预测结果还是由现网环境真实数据使用模型预测产生的初始预测结果。通过优化2分类的分类损失(hinge loss,logit loss,mse等),使得第二判别器能完全区分目标预测结果和初始预测结果。
[1089]
s312、根据所述第二判别结果更新所述第二生成器的权重系数,得到第三生成器;
[1090]
本实施例中,服务器根据步骤s311得到的第二判别结果更新第二生成器的权重系数,得到第三生成器。
[1091]
s313、在所述第三生成器中生成第三模拟数据。
[1092]
本实施例中,服务器在步骤s312得到的第三生成器中生成第三模拟数据。
[1093]
在一种可能的实现方式中,该方法还包括:服务器向客户端发送该预测模型;然
后,该服务器接收该客户端发送的初始预测结果,该初始预测结果为该预测模型对用户操作数据进行训练得到;此后,服务器将该目标预测结果和该初始预测结果输入至第二判别器进行训练,输出第二判别结果,该第二判别结果用于指示该目标预测结果和该初始预测结果之间的差异;进一步地,该服务器根据该第二判别结果更新该第二生成器的权重系数,得到第三生成器;最后,服务器在该第三生成器中生成第三模拟数据。
[1094]
本实施例中,服务器可以向客户端发送该预测模型,并接收客户端使用用户操作数据在该预测模型中进行训练得到的初始预测结果,并将通过模拟数据在该预测模型中得到的目标预测结果和该初始预测结果一并作为第二判别器的输入,得到用于更新第二生成器的权重系数,更新第二生成器得到第三生成器,并在该第三生成器中生成第三模拟数据。其中,第三模拟数据为服务器使用第二判别器对第二生成器进行权重系数更新得到的,相比于第二生成器所生成的第二模拟数据,第三模拟数据可以进一步利用生成式对抗网络的特性,实现在第三生成器中所生成的第三模拟数据与原始输入的测试数据之间的偏差的进一步降低,从而,进一步提升神经网络所生成的模拟数据的数据质量,进而为后续基于该模拟数据训练意图识别模型提供了良好的基础,使得后续训练出的意图识别模型的精准度较高,进而提升了意图识别的准确性。
[1095]
在一种可能的实现方式中,服务器根据该第二判别结果更新该第二生成器的权重系数,得到第三生成器包括:若满足第一条件,则根据该第二判别结果更新该第二生成器的权重系数,得到该第三生成器;其中,该第一条件包括:在该目标预设结果和该初始预测结果之间的经验分布度量小于第一预设值时;和/或,在该第二判别器对应的损失函数的取值大于第二预设值时;和/或,在该预测模型的损失函数小于第三预设值时。
[1096]
本实施例中,服务器可以在满足上述第一条件时再执行根据第二判别结果更新第二生成器的权重系数的过程,即通过第一条件的限制,在第二判别器和/或预测模型的模型效果达到一定条件时,服务器才执行更新第二生成器的权重系数的过程,可以进一步优化更新得到的第三生成器所生成的第三模拟数据的数据质量。
[1097]
具体地,在该第一条件中,该目标预设结果和该初始预测结果之间的经验分布度量小于第一预设值,即使得目标预设结果和该初始预测结果之间的经验分布度量最小化。其中,经验分布度量具体可以包括kl散度(kl divergence)、瓦瑟斯坦距离(wasserstein distance)或者其它的取值实现,此处不做限定。此外,第一预设值的大小可以按照方案实施场景的不同选用不同的取值,例如0.001、0.01或者其它的取值,此处不做限定。
[1098]
类似的,在该第一条件中,第二判别器对应的损失函数的取值大于第二预设值,即使得第二判别器对应的损失函数的取值最大化。其中,第二判别器的损失函数可以通过铰链损失函数(hinge loss function)、交叉熵损失函数(cross

entropy loss function)、指数损失函数(exponential loss function)或者是通过其它的损失函数对应实现,此处不做限定。此外,第二预设值的大小也可以按照损失函数的不同设置而选用不同的取值,此处不做限定。类似的,在该第一条件中,预测模型对应的损失函数的取值大于第三预设值,即使得预测模型对应的损失函数的取值最大化。其中,预测模型的损失函数可以通过铰链损失函数(hinge loss function)、交叉熵损失函数(cross

entropy loss function)、指数损失函数(exponential loss function)或者是通过其它的损失函数对应实现,此处不做限定。此外,第三预设值的大小也可以按照损失函数的不同设置而选用不同的取值,此处
不做限定。
[1099]
本实施例中,客户端可以根据使用用户操作数据作为服务器所发送的预测模型的输入数据,并训练得到初始预测结果之后,向该服务器发送初始预测结果,其中,该初始预测结果用于作为判别器的输入,经过该判别器的处理得到用于更新生成器权重系数的判别结果,使得服务器可以利用生成式对抗网络的特性,降低在生成器中所生成的模拟数据与原始输入的测试数据之间的偏差,从而,提升神经网络所生成的模拟数据的数据质量,进而为后续基于该模拟数据训练意图识别模型提供了良好的基础,使得后续训练出的意图识别模型的精准度较高,进而提升了意图识别的准确性;此外,由于客户端仅需要向服务器发送用户操作数据对应的初始预测结果,相比于客户端向服务器发送用户操作数据的方式,可以避免用户的隐私泄露,从而提升用户体验。
[1100]
下面将通过一个具体的实现示例对图39及图6

1所涉及的步骤过程进行描述。
[1101]
如图41b所示,前述实施例中,服务器可以置于开发环境中,客户端可以置于真实(现网)环境中。在图41b中,“生成器”经过多次处理过程,可以分别实现本方案中“第一生成器”、“第二生成器”、“第三生成器”所对应的步骤实现;“训练数据判别器”可以实现本方案中“第一判别器”所对应的步骤实现;“输出数据判别器”可以实现本方案中“第二判别器”所对应的步骤实现;“模型”可以实现本方案中“预测模型”所对应的步骤实现。
[1102]
基于图41b所示架构,服务器生成无偏虚拟数据、无偏模型以及输出数据的流程可以分为以下六步:
[1103]
a)开发环境中生成器生成虚拟数据;
[1104]
b)基于gan用训练判别器作为损失函数区别beta数据与生成器生成的虚拟数据,优化二分类的分类损失,使训练数据判别器可以完全区分beta数据和虚拟数据;
[1105]
c)优化模拟环境生成器参数,使生成的虚拟数据分布与beta数据的分布无限接近,从而认为虚拟数据训练模型与beta数据训练模型的效果是一致的;
[1106]
d)利用beta数据和大量生成器生成的虚拟数据来训练模型,并使用虚拟数据通过模型得到预测结果,解决训练数据过少的问题;
[1107]
e)将开发环境训练的模型下发到端侧真实环境中,利用真实数据通过模型得到预测结果,并将输出结果返回云侧(开发环境);
[1108]
f)利用输出数据判别器可完全区分虚拟数据的预测结果和真实数据的预测结果;更新模拟环境生成器参数,将虚拟数据的预测结果与真实数据的预测分布无限接近,即可认为生成器生成的虚拟数据是无偏的,对模型的训练效果与真实数据训练模型的效果是一致的,从而能够生成无偏模型,可以在模拟环境中训练出最优模型,直接在真实环境中使用,缩短模型反馈及调优的周期。
[1109]
本发明实施例的应用场景可以是已有数据分布和真实数据分布有偏差,而真实数据又不可完全获取的场景。本发明实施例的中利用生成对抗网络生成数据,先通过已有的有偏数据构建对抗网络,然后利用生成数据进行模型训练。最后利用真实环境数据的输出构建生成对抗网,进一步优化对抗网络的数据生成器。从而达到利用有偏数据生成与真实数据分布一致的无偏训练数据。
[1110]
示例性的,图41b所示架构可以应用的场景包括:用户使用语音助手的打点数据由于隐私安全不能上服务器,使用少量签约beta用户数据和人工标注数据,通过本技术的一
整套流程,生成与真实现网数据分布一致的训练数据,训练数据用于语音助手多意图决策。
[1111]
在该场景中,具体实施步骤如下:
[1112]
a)原始数据导出,导出beta用户语音打点数据和人工标注数据。
[1113]
b)特征提取,对beta用户数据和人工标注数据进行数据清洗和处理,将该原始数据映射为原始特征向量。
[1114]
c)构建生成对抗网络,使用b)中的原始特征向量构建生成对抗网络,优化生成对抗网络的生成器和判别器,使用训练好的生成器产生大量用于模型训练的训练数据。
[1115]
d)模型训练,使用c)中产生的训练数据在服务器上训练意图决策模型,并将训练好的模型下发到众多客户端。
[1116]
e)再次训练生成对抗网络,使用客户端模型对真实数据进行意图决策,构建模型输出判别器,利用真实数据模型输出构建的生成对抗网络再次优化生成器。使生成器生成数据和现网真实数据分布一致。
[1117]
f)模型训练,使用e)中训练好的生成器生成训练数据,在服务器上对模型进行训练。
[1118]
g)模型预测,使用f)中训练好的模型多语音助手产生的多意图进行决策。
[1119]
从而,在现网数据不上服务器的情况下,利用本技术的一整套流程生成和现网数据分布一致的大量训练数据,提高了意图决策模块的准确率,带给用户更好的体验。此外,在该实现过程中,真实数据不需要上传到服务器,即真实数据在客户端进行处理,极大的保护了用户的隐私。另一方面,利用少量有偏数据生成和真实数据分布一致的数据。传统方式中提供的少量真实数据是有偏的,直接利用少量真实数据进行生成对抗网络训练,因此生成数据也是有偏的,上述的beta数据和人工标注数据也是存在一定的偏差,但通过本技术的一整套数据生成流程,生成了与真实数据分布一致的大量数据,进而为后续训练意图识别模型提供了良好的基础,使得后续训练出的意图识别模型的精准度较高,进而提升了意图识别的准确性。
[1120]
(2)基于联合学习系统得到意图识别模型
[1121]
需要说明的是,本方案中基于联合学习系统得到意图识别模型,可以基于图1所示的人工智能框架实现。
[1122]
其中,本技术实施例主要涉及图37中第(c)部分中的机器学习内容,本技术涉及机器学习中的联合学习方法。联合学习是一种分散式的机器学习框架。联合学习与传统的机器学习的不同之处主要在于:传统的机器学习中,训练数据集中在数据库中,训练设备基于数据库中维护的训练数据生成目标模型。而联合学习的训练数据分散在不同的节点设备上,每个节点设备拥有各自的训练数据,各节点之间不会进行数据交换,通过这些节点设备的合作,共同进行机器学习训练。
[1123]
请参阅图42所示,在本技术提供的联合学习的系统框架中,该系统框架包括多个节点设备和中控设备,多个节点设备与中控设备通信连接,每个节点设备和中控设备可以通过任何通信机制或通信标准的通信网络进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。本方案中每个节点设备即是训练数据集的存储设备,又是用于训练模型的执行设备。可选的,每个节点设备又可以是用于采集训练数据的数据采集设备。其中,中控设备用于整合各节点设备上传的参数值(或者梯度,或模型),然后,将整
合后的参数值(或者梯度,或模型)下发至各节点设备,从而使得节点设备更新本地的模型。例如,中控设备下发一个机器学习网络架构(如神经网络)与一组初始化的权重值给各个节点设备。各节点设备收到后,使用本地端的数据对该神经网络进行训练,得到模型参数,然后将该参数上传给中控设备,由中控设备对各个节点设备上传的参数进行整合,将整合之后的参数下发给各节点设备,该整合之后的参数用于更新节点设备的模型。
[1124]
本方案中,节点设备可以为终端设备(或也称为用户设备)。其中,该终端设备可以表示任何计算设备。例如,该终端设备可以为智能手机、平板电脑、可穿戴设备(如眼镜、手表、耳机等)、个人计算机、计算机工作站、车载终端、无人驾驶中的终端、辅助驾驶中的终端、智能家居中的终端(如音箱,智慧屏,扫地机器人,空调等)等。例如,多个节点设备可以均可以以手机为例。本方案中,节点设备也可以简称为“端侧”。
[1125]
本方案中,中控设备可以是云端服务器,或者,也可以是服务器,本方案中,该中控设备以云端服务器为例。该中控设备也可以简称为“云侧”。
[1126]
请参阅图43所示,本技术实施例提供了一种模型训练方法,该方法应用于联合学习系统,系统中包括多个节点设备和中控设备,节点设备的数量并不限定。为了方便说明,本实施例中,该节点设备以3个节点为例进行说明。例如,第一节点设备、第二节点设备和第三节点设备。
[1127]
步骤401、中控设备获取细粒度标签。
[1128]
第一种实现方式中,中控设备可接收各节点设备上传的细粒度标签,中控设备可以获取所有节点设备的细粒度标签。
[1129]
第二种实现方式中,中控设备可以从第三方获取所有的细粒度标签。例如,在以app名称作为细粒度标签的场景中,中控设备通过爬虫获取app名称,或者通过搜索应用市场的方式获取全体的细粒度标签(如app名称)。
[1130]
步骤402、中控设备根据细粒度标签确定粗粒度标签,及细粒度标签到粗粒度标签的映射关系。
[1131]
中控设备将所有的细粒度标签进行分类,每一个类别作为一个粗粒度标签,对于细粒度标签进行分类的方法可以是基于领域知识、基于聚类、基于规则、基于词向量等,具体的方法本技术并不限定。
[1132]
例如,在以app名称作为细粒度标签的场景中,中控设备可以通过app的描述信息、app评论以及领域知识等,对app进行分类,将app的类别作为粗粒度标签。基于上述表1,根据领域知识与app的功能将app划分为音乐类、视频类、网购类、地图、新闻类五个粗粒度标签,请参阅表2所示:
[1133]
表2
[1134]
[1135]
需要说明的是,上述表2中的内容仅是为了方便说明而举的例子,并不造成限定。
[1136]
中控设备根据对细粒度标签的分类,可以确定细粒度标签到粗粒度标签之间的映射关系。即归属于同一个类别的细粒度标签与该类别对应的粗粒度标签具有映射关系。如上表2所示,细粒度标签“qq音乐”、“网易音乐”、“酷狗音乐”、“咪咕音乐”、“酷我音乐”与粗粒度标签“音乐”具有映射关系。
[1137]
步骤403、各节点设备获取细粒度标签到粗粒度标签的映射关系。
[1138]
中控设备将如表2所示的细粒度标签与粗粒度标签的映射关系下发到各节点设备,各节点设备接收该细粒度标签到粗粒度标签的映射关系。
[1139]
步骤404、各节点设备根据映射关系将训练数据集中细粒度数据映射为粗粒度数据。
[1140]
以第一节点设备为例,第一节点设备根据所述映射关系将训练数据集中细粒度数据映射为粗粒度数据。其中,细粒度数据为细粒度标签对应的数据,粗粒度数据为粗粒度标签对应的数据。该训练数据集中包括多个样本数据,该样本数据为app的使用数据。例如,第一节点设备的训练数据集中的一个样本数据为:qq音乐使用数据,在12:05打开qq音乐。第一节点设备根据细粒度标签到粗粒度标签的映射关系(qq音乐属于音乐类应用),可将qq音乐使用数据转化为音乐类使用数据:在12:05打开了音乐类应用。第一节点设备将训练数据集中的每个样本数据根据映射关系进行处理,将细粒度数据映射为粗粒度数据。该样本数据还可以包括用户场景信息,用户状态信息等,如用户场景信息可以为用户在室内还是室外,用户是行走、坐或卧的状态,用户心情(可由心率等一些感知信息得到)等。
[1141]
同理,第二节点设备根据映射关系将本地的训练数据集中细粒度数据映射为粗粒度数据。第三节点设备根据映射关系将本地的训练数据集中细粒度数据映射为粗粒度数据。第二节点设备和第三节点设备对训练数据集中的细粒度数据的处理方式与第一节点设备的处理方式相同,此处不赘述。
[1142]
步骤405、各节点设备将粗粒度数据输入到群体粗粒度模型进行训练,确定群体粗粒度模型的第一信息;并将所述细粒度数据输入到细粒度模型进行训练。
[1143]
第一模型可以理解为初始模型,该初始模型包括模型架构(如神经网络)及初始参数,第一模型包括群体粗粒度模型和细粒度模型。
[1144]
以第一节点设备为例,第一节点设备将粗粒度数据输入到群体粗粒度模型,通过所述群体粗粒度模型对所述粗粒度数据进行学习,得到用于更新所述群体粗粒度模型的第一信息。其中,第一信息可以为梯度、模型参数、或者模型(包括模型架构及参数值)。
[1145]
第一节点设备通过群体粗粒度模型对粗粒度数据进行学习,例如,该粗粒度数据为:在12:05打开了音乐类应用。
[1146]
并且,第一节点设备将所述细粒度数据输入到细粒度模型,通过细粒度模型对细粒度数据进行学习,确定细粒度模型的模型参数。例如,该细粒度数据为:在12:05打开了qq音乐。
[1147]
第二节点设备和第三节点设备执行的动作与第一节点设备类似,第二节点设备和第三节点设备执行的动作请参阅第一节点设备的说明,此处不赘述。
[1148]
步骤406、各节点设备将所述第一信息发送至中控设备。
[1149]
第一节点设备将自身得到的第一信息上传至中控设备;第二节点设备将自身得到
的第一信息上传至中控设备;第三节点设备将自身得到的第一信息上传至中控设备。
[1150]
第一信息可以为梯度、模型参数(如权重)、或者模型(网络架构及模型参数)。第一种实现方式,该第一信息为梯度,第一节点设备根据loss函数计算梯度,然后将梯度发送给中控设备,中控设备将多个节点设备发送的梯度整合后再下发给各个终端设备。各节点设备接收整合后的梯度,再根据整合后的梯度更新各自的群体粗粒度模型的参数值。第二种实现方式,第一信息为参数,每个节点设备得到各自的参数值,然后,各节点设备可以将各自的参数值发送给中控设备,中控设备将多个节点设备发送的参数值整合后再下发给各个终端设备,每个节点设备接收到整合后的参数值后,更新本地端的群体粗粒度模型。第三种实现方式中,第一信息为模型,每个节点设备也可以将经过本地粗粒度数据训练之后的模型发送至中控设备,中控设备对每个节点设备的模型进行整合,然后将整合之后的模型下发给各终端设备,每个终端设备接收更新之后的模型,在第三种实现方式中,本质上,中控设备也是通过整个各节点设备发送的模型的参数来更新模型的。
[1151]
本技术实施例中,该第一信息可以以参数值为例进行说明。
[1152]
步骤407、中控设备接收各个节点设备上传的第一信息,对接收到的所述多个节点设备上传的第一信息进行整合,得到整合后的第二信息;所述第二信息用于更新所述群体粗粒度模型。
[1153]
第二信息可以为梯度、参数值(如权重值)、或者模型。本实施例中,该第一信息以参数值为例,则第二信息也以参数值为例进行说明。
[1154]
中控设备接收各个节点上传的参数值,对接收到的多个节点设备上传的参数值进行整合,具体的实现方法并不限定。本技术实施例中,中控设备整合参数的方法可以为加权平均法,例如,由中控设备根据各个节点设备上传的参数及训练数据的数据量中控设备收集到各设备上传的参数与数据量,如下述式(1)按照比例计算平均值,该平均值w’就是该次计算的结果。
[1155][1156]
其中,k为节点设备的数量,w
k
为第k个节点设备训练的一组权重值,n
k
为第k个节点设备的训练数据的数据量。然后,中控设备将该结果w’传回给各节点设备,这个来回需要多次,使得最后选定的参数可以使模型准确率到达系统预定的要求。
[1157]
步骤408、中控设备将整合后的第二信息下发给各节点设备。
[1158]
中控设备将整合之后的参数值下发给各个节点设备。例如,中控设备可以广播整合之后的参数,从而使得每个节点设备接收到该整合之后的参数。
[1159]
例如,该第二信息为参数(如权重)时,第一节点设备根据该参数更新本地的群体粗粒度模型。同理,第二节点设备根据该参数更新本地的群体粗粒度模型。第三节点设备根据该参数更新本地的群体粗粒度模型。
[1160]
上述步骤406

步骤408用于更新群体粗粒度模型。各节点设备并不会将本地训练数据上传到中控设备,每个节点设备通过本地数据对群体粗粒度模型进行训练,为了达到多个节点设备联合训练的目的,每个节点设备仅将各自的第一信息(如参数)传输至中控设备,以保证各节点设备本地数据的隐私性,中控设备将接收到的各参数值进行整合,将整合之后的参数下发给各个节点设备,各节点设备可以根据中控设备下发的参数对本地的群体
粗粒度模型进行更新,即完成一次更新,从而使得本地的群体粗粒度模型具有群体性。
[1161]
步骤409、各节点设备组合群体粗粒度模型和细粒度模型以得到联合模型,联合模型的标记空间映射为细粒度标签,所述联合模型的输出结果用于更新所述细粒度模型。
[1162]
第一节点设备组合更新后的群体粗粒度模型和自身的细粒度模型以得到联合模型(如:意图识别模型)。第二节点设备组合群体粗粒度模型和自身的细粒度模型以得到联合模型(如:意图识别模型)。第三节点设备组合群体粗粒度模型和自身的细粒度模型以得到联合模型(如:意图识别模型)。
[1163]
需要说明的是,并不限定步骤409的时序,该步骤409可以在步骤405后的任意位置执行。本步骤中,该联合模型可以是初始群体粗粒度模型和初始细粒度模型联合之后的整体模型。随着群体粗粒度模型在训练过程中的不断更新,该联合模型中群体粗粒度模型可以是迭代更新后的模型,细粒度模型可以是每次迭代训练后更新的模型,直到群体粗粒度模型收敛和细粒度模型收敛。群体粗粒度模型和细粒度模型的更新时机不同。群体粗粒度模型是通过多个节点设备联合学习及中控设备协同更新,而细粒度模型是基于loss函数通过联合模型的输出结果进行反向更新。本方案中,每个节点设备中维护群体粗粒度模型和细粒度模型,该群体粗粒度模型和细粒度模型作为一个整体模型,其中,群体粗粒度模型和细粒度模型作为该整体模型中的一个部分进行训练,最后,还需要将这两个模型进行组合,组合成一个整体的模型(即联合模型)。本方案中,对于群体粗粒度模型和细粒度模型的组合方法并不限定,只要保证细粒度模型作为整体模型的一部分即可。
[1164]
示例性的,请参阅图44a和44b所示,在一个应用场景中,细粒度标签和粗粒度标签以上述表2中的内容为例,对群体粗粒度模型和细粒度模型的组合方式进行说明。本实施例中,可以基于群体粗粒度模型的权重和细粒度模型的权重对两个模型进行组合,将群体粗粒度模型的权重和细粒度模型的权重相加得到整体模型的权重。细粒度标签的权重以该细粒度标签对应的粗粒度标签权重作为基,细粒度标签的权重等效于细粒度模型维护的一个偏移量,整体模型(联合模型)的输出结果映射至个体细粒度标签,使得联合模型输出的结果实现端侧的个性化。每个细粒度标签对应的权重包含群体粗粒度模型的权重以及细粒度模型的权重两部分。
[1165]
群体粗粒度模型中,(w11,w21)表示对应音乐类标签的权重,(w12,w22)表示对应视频类标签的权重。细粒度标签有“爱奇艺”、“qq音乐”和“网易音乐”三种。其中,“爱奇艺”对应的粗粒度标签是视频类,“qq音乐”与“网易音乐”对应的是音乐类。细粒度模型对“爱奇艺”、“qq音乐”、“网易音乐”分别对应三组权重(w

11,w

21),(w

12,w

22)和(w

13,w

23)。群体粗粒度模型和细粒度模型结合的整体模型中,输出层将输出的结果映射至个体细粒度标签。其中,“爱奇艺”归属于视频类,其对应的粗粒度标签为“视频”标签,其基部分使用视频类标签的权重(w12,w22)。而“qq音乐”和“网易音乐”归属于音乐类,其对应的粗粒度标签是“音乐”标签,其基部分使用“音乐”标签的权重(w11,w21)。其中,“爱奇艺”对应的权重为(w12+w

11,w22+w

21),“qq音乐”对应的权重为(w11+w

12,w21+w

22),“网易音乐”对应的权重为(w11+w

13,w21+w

23)。
[1166]
在上述步骤406

步骤408步骤为群体粗粒度模型参数更新的步骤,群体粗粒度模型的参数在训练细粒度模型的参数时固定。对于细粒度模型,利用粗粒度模型与细粒度模型的联合模型在端侧采用在线学习或使用mini

batch等方式进行更新。
[1167]
本技术实施例中,节点设备中训练数据集中样本数据的标记空间为细粒度标签,并引入粗粒度标签,通过粗粒度标签来统一各节点设备的标记空间,从而可以保证在各端侧细粒度任务不统一的情况下,各节点设备可以在粗粒度任务上的统一,多个节点设备也可以进行联合训练。节点设备获取细粒度标签与粗粒度标签的映射关系,然后,根据所述映射关系将训练数据集中的细粒度数据映射为粗粒度数据。节点设备利用粗粒度数据对群体粗粒度模型进行本地训练,并且通过所述多个节点设备的联合学习对所述群体粗粒度模型进行更新,该群体粗粒度模型也可以理解为横向维度上的端侧和云侧协同更新,直到该粗粒度标签收敛,从而使得粗粒度模型具有群体性特征。并且节点设备利用将细粒度数据输入到所述细粒度模型进行训练,并且基于损失函数通过联合模型输出结果(细粒度标签)进行反向更新细粒度模型,直到该细粒度标签收敛。本方案中的联合模型既兼顾群体性特征,每个节点设备的细粒度模型能将群体粗粒度模型匹配到具体的细粒度标签上,使得联合模型的标记空间为端侧对应的细粒度标签空间,联合模型又兼顾每个节点设备的个体化特征,进而使得当联合模型为意图识别模型时通过该联合模型可以提升意图识别的准确性。
[1168]
并且,本方案中,由于粗粒度标签(群体粗粒度模型或个体粗粒度模型)和细粒度标签存在层级关系(粗粒度标签为细粒度标签的上一个层级),粗粒度模型学到的知识可以指引细粒度模型。例如,当在一个节点设备中,某细粒度标签首次出现时,可由粗粒度标签对其进行初始化,解决端侧用户冷启动问题。
[1169]
在一个可选的实现方式中,多个节点设备中的群体粗粒度模型可以同步更新,或者,也可以异步更新,示例性的,多个节点设备中的群体粗粒度模型以异步更新为例进行说明:
[1170]
10)中控设备广播更新请求。中控设备向系统内的所有节点设备发送群体粗粒度模型更新请求。
[1171]
20)各节点设备收到请求后,若能参与更新,则向中控设备反馈指示信息,该指示信息用于指示该节点设备能参与更新。
[1172]
各节点设备接收到更新请求后,评估自身的状态,例如,自身当前的网络情况,电量情况,是否处于空闲状态等。
[1173]
各节点设备根据自身当前的状态确定是否能参与更新。例如,第一节点设备和第二节点设备当前的网络情况适合更新,并且电量适合更新,且处于空闲状态。第一节点设备和第二节点设备向中控设备反馈能参与更新,而第三节点设备当前的状态不适合进行更新,第三节点设备可以不进行反馈,以节省网络开销。
[1174]
30)中控设备向目标节点设备下发当前中控设备侧的群体粗粒度模型的参数。该目标节点设备为反馈指示信息的节点设备。
[1175]
可选地,中控设备可以根据一些策略(例如每个节点设备的网络状态等)从多个节点设备中选择至少一个节点设备,这至少一个节点设备为适合进行模型更新的节点设备,中控设备可以向该节点设备发送中控设备侧的群体粗粒度模型的参数。
[1176]
40)目标节点设备接收该参数,利用本地粗粒度数据训练群体粗粒度模型,得到梯度。
[1177]
例如,第一节点设备利用本地粗粒度数据训练群体粗粒度模型,得到第一节点设备对应的梯度变化。第二节点设备利用本地粗粒度数据训练群体粗粒度模型,得到第二节
点设备对应的梯度。
[1178]
50)目标节点设备将计算得到的梯度上传给中控设备。
[1179]
例如,第一节点设备将自身的梯度上传给中控设备。第二节点设备将自身的梯度上传给中控设备。
[1180]
60)中控设备接收目标节点设备上传的梯度后,中控设备对目标节点设备上传的梯度进行整合并更新中控设备侧的梯度,获得更新后的参数(如权重)。
[1181]
可选地,中控设备对梯度整合的方法可以是加权平均,也可以其他的优化算法,可选的,也可以在计算梯度的过程中引入冲量,提高速率,借助上一次的势能来和当前的梯度调节当前的参数,本技术并不具体限定整合的方法。
[1182]
70)中控设备更新完中控设备侧的参数后,中控设备向所有节点设备广播,该广播用于通知节点设备当前有新的模型可以更新。
[1183]
80)各节点设备可根据自身状态(如网络许可、电量许可、手机处于空闲状态),选择模型更新时间,并向中控设备发送请求。
[1184]
90)中控设备接收对应端侧请求后,向发送请求的节点设备发送更新后的参数,节点设备完成一次更新。
[1185]
中控设备和节点设备之间的数据传输过程可以采用同态加密或常用加密算法,具体的并不限定。本示例中,多个节点设备中的粗粒度模型可以异步更新,每个节点设备可以根据各自的状态来对粗粒度模型进行更新,直到该粗粒度模型收敛,保证每个节点设备中粗粒度模型每次更新的成功率。
[1186]
在一个可选的实现方式中,请参阅图45所示,节点设备中还配置个体粗粒度模型。节点设备中的整体模型可由群体粗粒度模型、个体粗粒度模型和细粒度模型构成。群体粗粒度模型能够挖掘群体性的规律,即能够体现多个节点设备群体性的特征。细粒度模型保证模型具有个性化,即体现每个节点设备所属用户的特征。而个体粗粒度模型用于弥合群体粗粒度模型与细粒度模型的差距。
[1187]
个体粗粒度模型与群体粗粒度模型的相同的之处在于:个体粗粒度模型的标记空间为粗粒度标签。通过粗粒度数据对个体粗粒度模型进行训练。
[1188]
个体粗粒度模型与群体粗粒度模型的更新过程不同,不同之处在于:
[1189]
首先,对于群体粗粒度模型,在云侧初始化,云侧将初始化模型及初始化参数下发给所有节点设备,实现群体模型初始化。而个体粗粒度模型在端侧初始化。
[1190]
然后,各节点设备将各自的个体粗粒度模型及模型相关参数上传至中控设备。例如,第一节点设备将自身的个体粗粒度模型及该模型相关参数上传到中控设备。同样的,第二节点设备将自身的个体粗粒度模型及模型相关参数上传到中控设备,第三节点设备将自身的个体粗粒度模型及模型相关参数上传到中控设备,第四节点设备将自身的个体粗粒度模型及模型相关参数上传到中控设备等。
[1191]
最后,中控设备将接收到的每个节点设备上传的个体粗粒度模型加入到模型池,将相关度高于阈值的个体粗粒度模型进行整合,将整合之后的个体粗粒度模型下发至各节点设备。例如,中控设备将第一节点设备的个体粗粒度模型,第二节点设备的个体粗粒度模型,第三节点设备的个体粗粒度模型及第四节点设备的个体粗粒度模型保存至模型池。需要说明的是,此处为了方便说明,以四个节点设备为例进行说明,而在实际应用中,节点设
备的数量并不限定。
[1192]
中控设备对个体粗粒度模型的集成依赖于模型池中各个体粗粒度模型的相关度。其中,各个体粗粒度模型的相关度可以包括多种方式,具体的方法并不限定。
[1193]
示例性的,一种实现方式,中控设备可以根据用户画像来判定个体粗粒度模型的相关度。例如,第一节点设备所属用户的用户画像和第二节点设备所属用户的用户画像的相似度高于第一门限,则确定第一节点设备的个体粗粒度模型和第二节点设备的个体粗粒度模型的相似度高于阈值。中控设备将第一节点设备的个体粗粒度模型和第二节点设备的个体粗粒度模型进行集成,将集成之后的个体粗粒度模型下发至第一节点设备和第二节点设备。第一节点设备和第二节点设备完成一次更新。同理,第三节点设备所属用户的用户画像和第四节点设备所属用户的用户画像的相似度高于第一门限,则确定第三节点设备的个体粗粒度模型和第四节点设备的个体粗粒度模型的相似度高于阈值。中控设备将第三节点设备的个体粗粒度模型和第四节点设备的个体粗粒度模型进行集成,将集成之后的个体粗粒度模型分别下发至第三节点设备和第四节点设备。第三节点设备和第四节点设备完成一次更新。
[1194]
另一种实现方式,模型相关参数可以是粗粒度标签的分布信息。例如,将粗粒度数据作为个体粗粒度模型的训练样本,个体粗粒度模型的输出为粗粒度标签。如在一个应用场景中,该个体粗粒度模型的输出的粗粒度标签为“音乐”、“视频”和“网购”等,中控设备可以粗粒度标签的分布信息确定模型池中个体粗粒度模型的相关度。例如,第一节点设备和第二节点设备的个体粗粒度模型的输出大多集中在“音乐”这个粗粒度标签,第一节点设备的个体粗粒度模型在“音乐”这个粗粒度标签相对于所有的粗粒度标签的分布高于第二门限,第二节点设备的个体粗粒度模型在“音乐”这个粗粒度标签相对于所有的粗粒度标签的分布也高于第二门限,则中控设备确定第一节点设备的个体粗粒度模型和第二节点设备的个体粗粒度模型的相关度高于阈值。中控设备将第一节点设备的个体粗粒度模型和第二节点设备的个体粗粒度模型进行集成,将集成之后的个体粗粒度模型下发至第一节点设备和第二节点设备。
[1195]
可以理解的是,每个节点设备将各自的个体粗粒度模型上传到云侧,个体粗粒度模型的更新是纵向的将相关度高于阈值的个体粗粒度模型进行集成,然后将集成之后的个体粗粒度模型下发到对应的节点设备。可以理解的是,该个体粗粒度模型的更新为纵向维度上端侧和云侧协同更新。群体粗粒度模型体现了系统内所有节点设备的群体性特征,而个体粗粒度模型相较于群体粗粒度模型,是将部分节点设备的个体粗粒度模型进行集成,能够体现部分节点设备的特征,而细粒度模型体现的是个体化特征,由此可见,个体粗粒度模型弥合群体粗粒度模型与细粒度模型的差距。
[1196]
本实施例中,将群体粗粒度模型、个体粗粒度模型和细粒度模型组合为一个整体模型。将群体粗粒度模型的权重、个体粗粒度模型的权重和细粒度模型的权重相加得到整体模型的权重。
[1197]
示例性的,请参阅图44a所示,其中,(w11,w21)表示群体粗粒度模型对应音乐类标签的权重,(w12,w22)表示群体粗粒度模型对应视频类标签的权重。请参阅图46a和46b所示,图46a为个体粗粒度模型的示意图,(w

11,w

21)表示个体粗粒度模型对应音乐类标签的权重,(w

12,w

22)表示个体粗粒度模型对应视频类标签的权重。图46b为整体模型的示
意图,如细粒度标签有“爱奇艺”、“qq音乐”和“网易音乐”三种。其中,“爱奇艺”对应的粗粒度标签是视频类,“qq音乐”与“网易音乐”对应的粗粒度标签是音乐类。粗粒度标签“爱奇艺”、“qq音乐”、“网易音乐”分别对应三组权重(w

11,w

21),(w

12,w

22)和(w

13,w

23)。群体粗粒度模型、个体粗粒度模型和细粒度模型结合的整体模型(也称为联合模型)中,输出层将输出结果映射至个体细粒度标签。其中,“爱奇艺”对应的权重为(w12+w

12+w

11,w22+w

22+w

21),“qq音乐”对应的权重为(w11+w

11+w

12,w21+w

21+w

22),“网易音乐”对应的权重为(w11+w

11+w

13,w21+w

21+w

23)。
[1198]
本实施例中,群体粗粒度模型、个体粗粒度模型和细粒度模型组合为一个整体模型,群体粗粒度模型能够挖掘群体性的规律,能够为端侧的联合模型提供一个好的初始点。但是存在群体性的规律与个体特征之间的差距巨大的情况,而个体粗粒度模型可以弥合少数情况下群体性与个体性的差距。细粒度模型在粗粒度提供的初始点上实现端侧的个性化。
[1199]
本技术实施例中,上述模型训练方法,并不限定应用场景,在不同的场景中,训练数据不同而已,例如上述模型的训练方法还可以应用在意图识别,分类等应用场景中。
[1200]
在一个应用场景中,节点设备以手机为例,该联合模型为app预测模型为例。该app预测模型包括3个部分,即群体粗粒度模型,个体粗粒度模型和细粒度模型。每个节点设备中的群体粗粒度模型都是通过这100节点设备参与联合训练之后得到的,每个节点设备中的群体粗粒度模型的初始模型参数相同,最终训练得到的模型参数也相同,群体粗粒度模型具有群体性。例如,在8:00

9:00通勤时间,大多数用户往往会选择听一些提神醒脑的歌曲,但是对于不同的个体来说,使用的app可能不相同。也就是说,不同节点设备中的训练数据中细粒度数据可能是不同的。例如,用户a的节点设备a中的样本数据是:8:00打开“酷狗音乐”,而用户b的节点设备b中的样本数据是:8:00打开qq音乐,由于“酷狗音乐”和“qq音乐”对应的粗粒度标签都是“音乐”标签,从而实现多个节点设备中粗粒度模型标记空间相同,即实现多个节点设备任务统一,由此,通过100个节点设备联合训练的粗粒度模型具有群体性,即在8:00

9:00可能打开“音乐”类的app。但是,可能有少部分用户虽然也是听歌,但是并不是通过音乐app听歌,而是通过视频app听歌,例如,这少部分用户是爱好健身的用户,可能喜欢边听歌边看视频,那么,在云侧,可以通过用户画像将这部分用户的个人粗粒度模型进行集成,云侧将这部分用户的个人粗粒度模型集成后下发到对应的端侧,那么这部分用户的手机上的个人粗粒度模型弥合群体性与个性化的差异。联合模型输出的结果会映射到细粒度标签,也就是说,包括这三个部分的联合模型输出的结果是每个节点设备下载的app,粗粒度模型指导细粒度模型,例如,节点设备a音乐类的app下载的是“酷狗音乐”,而节点设备b下载的音乐类的app是“qq音乐”,那么,到具体的节点设备,节点设备a的联合模型输出的预测结果可能是“酷狗音乐”,而节点设备b的联合模型输出的预测结果可能是“qq音乐”,从而实现不同端侧个性化app预测。需要说明的是,该场景中仅是为了方便说明,输入特征以时间为例进行说明,并不造成对本技术的限定。该输入特征还可以包括用户相关特征信息,该用户相关特征信息包括用户场景信息,用户状态信息等。其中,用户场景信息可以为用户在室内还是室外等。用户状态信息可以包括用户是行走、坐或卧的状态,用户心情(可由心率等一些感知信息得到)等等。
[1201]
以上对联合模型的训练方法进行了说明,下面对该联合模型的应用进行说明。
[1202]
示例性的,本技术实施例提供了一种app预测方法,该方法应用于节点设备。上述模型训练方法训练得到的联合模型用于app预测。
[1203]
首先,节点设备响应用户的操作,该操作可以是与节点设备进行交互的任意操作。例如,用于开启所述节点设备的屏幕。如该操作可以是点击屏幕的操作,人脸识别的解锁操作等,或者,该操作可以是语音操作,例如,语音指令等。用户对节点设备有操作,表明用户此时有可能会使用节点设备。
[1204]
然后,节点设备响应该操作,并确定接收该操作时的时间信息。例如,该第一操作的时刻为8:15。然后,节点设备将所述时间信息输入到应用预测模型,app预测模型输出预测结果,所述预测结果用于指示目标应用。例如,该目标应用为qq音乐。
[1205]
可选的,终端设备还可以确定接收该操作时的用户相关特征信息,该用户相关特征信息包括但不限定于用户场景信息,用户状态信息等,如用户场景信息可以为用户在室内还是室外,用户是行走、坐或卧的状态,用户心情(可由心率等一些感知信息得到)等。
[1206]
最后,预加载目标应用(qq音乐)。节点设备通过该app预测模型预测用户可能会使用哪个app,而预先加载该app,节省开启该app的响应时长,提升用户体验。
[1207]
接下来对图15所示的意图识别决策系统501中的动作反馈模块608如何识别出用户真实意图(即用户真实的执行动作)进行介绍。
[1208]
请参阅图47,图47为本技术实施例中意图识别方法的一个数据流向示意图。图48为本技术实施例中意图识别方法的一个流程示意图。下面结合图47所示的数据流向示意图和图48所示的流程示意图,对本技术实施例中的意图识别方法进行描述:
[1209]
s2201、电子设备确定待识别的打点数据序列。
[1210]
在用户使用该电子设备的过程中,电子设备可以在本地记录用户的操作数据作为打点数据并组成打点数据序列。当电子设备需要确定这些打点数据的意图时,电子设备可以将这些打点数据序列作为待识别的打点数据序列。在一个例子中,待识别的打点数据序列可以中包括多个数据,多个数据中至少两个数据的输入方式不同。在一个例子中,待识别的打点数据序列可以是在决策推理模块607预测出动作序列后电子设备所记录的数据;其中,该步骤可以由图15所示的意图识别决策系统501中的多模态输入模块601执行。
[1211]
示例性的,在电子设备启动了意图识别功能后,电子设备可以将新产生的打点数据组成打点数据序列作为待识别的打点数据序列。
[1212]
s2202、电子设备将该待识别的打点数据序列输入多示例学习模型,得到多个子序列。
[1213]
该多示例学习模型可以为按照上述多示例学习模型的训练方法训练完成的多示例学习模型,或按照下述多示例学习模型的更新过程更新训练后的多示例学习模型。在一个例子中,该步骤可以由由图15所示的意图识别决策系统501中的动作反馈模块608执行。
[1214]
该多示例学习模型用于将输入序列划分为更小粒度的序列。
[1215]
示例性的,图49为本技术实施例中多示例学习模型将输入序列划分为多个子序列的一个示例性示意图。用户早上起床后,通过语音助手打开音乐应用播放了一首歌。然后下楼打开地图导航应用叫了一辆车去公司。途中在车上打开视频应用程序a看了个小视频。在快到公司的时候查询下想要的健康早餐的内容。在此过程中电子设备在本地记录了如图23中(a)所示的用户操作的打点数据,并形成了打点数据序列:【v,唤醒语音助手

执行打开音
乐】【a,语音助手拉起音乐应用】【l,返回桌面】【a,打开地图导航应用】【l,返回桌面】【a,打开视频应用程序a】【v,唤醒语音助手

执行打开浏览器】【a,语音助手拉起浏览器应用】【a,搜索关键词“健康早餐”】【a,打开燕麦早餐页面】【l,返回桌面】。
[1216]
将该打点数据序列作为待识别的打点数据序列输入多示例学习模型后,可以将该输入序列划分为多个粒度更小的子序列:
[1217]
子序列x1:【v,唤醒语音助手

执行打开音乐】【a,语音助手拉起音乐应用】【l,返回桌面】;
[1218]
子序列x2:【a,打开地图导航应用】【l,返回桌面】;
[1219]
子序列x3:【a,打开视频应用程序a】;
[1220]
子序列x4:【v,唤醒语音助手

执行打开浏览器】【a,语音助手拉起浏览器应用】【a,搜索关键词“健康早餐”】【a,打开燕麦早餐页面】【l,返回桌面】。
[1221]
在一个例子中,每个子序列中可以包括至少一个实体,多个子序列构成第一实体序列。示例性的,如图8所示,电子设备100将打点数据序列a1输入到多示例学习模型后,可以得到子序列b1,子序列b2,和子序列b3。其中,各个子序列(b1,b2,b3)中均包括了多个实体,以子序列b2为例,其包括的实体为:“打开录音机”,“返回桌面”。
[1222]
s2203、电子设备按照第二预设规则确定各子序列的意图;
[1223]
该第二预设规则用于据各序列中的打点数据确定各序列的意图。电子设备得到多示例学习模块输出的多个子序列后,可以按照该第二预设规则确定各子序列的意图。
[1224]
示例性的,对于图49中(b)所示的输出的各个子序列,若第二预设规则为序列中最后一个动作为意图。则电子设备可以确定各子序列的意图为:子序列x1的意图为打开音乐应用;子序列x2的意图为打开地图导航;子序列x3的意图为打开视频应用程序a;子序列x4的意图为打开燕麦早餐页面。
[1225]
本技术实施例中,电子设备可以采用训练好的多示例学习模型,将用户操作产生的打点数据序列作为待识别的打点数据序列划分为粒度更小的多个子序列。再采用第二预设规则确定出各个子序列的意图。由于使用的该多示例学习模型是使用用户自己的打点数据训练出来的,因此该多示例学习模型划分的子序列更符合用户个性化的使用习惯。然后再使用第二预设规则确定各个子序列的意图,使得识别出的意图更准确。
[1226]
需要说明的是,本方案中基于多示例模型进行意图识别的优势可以包括:
[1227]
电子设备可以根据第一预设规则将获取的打点数据序列划分为不同的分序列,经过确定示例和示例标签,确定包和包标签,提取特征向量矩阵等过程后,使用提取的特征向量矩阵对多示例学习模型进行训练,得到训练完成的多示例学习模型。在对多示例学习模型的训练过程中,不需要开发人员对作为训练数据的打点数据进行提前标注,电子设备通过该过程可以实现对打点数据的自标注。然后电子设备可以使用该训练完成的多示例学习模型,自动将该打点数据序列或新输入的打点数据序列划分为粒度更小的子序列,根据第二预设规则确定出各子序列的意图。由于训练数据使用的用户自己的打点数据,且不需要开发人员进行人工标注,实现了自标注用户打点数据。又由于训练好的多示例学习模型能够将打点数据序列划分为粒度更小的子序列,再根据第二预设规则确定出各子序列的意图,从而能更准确的识别数据中的意图,进而提升了意图识别的准确性。
[1228]
下面结合几种其他的意图识别的实现方式,对比说明本技术实施例中基于多示例
模型的意图识别方法的优势:
[1229]
在一种意图识别的实现方式中,定义命名实体为:文本中具有特定意义的实体,如人名、地名等。首先,从用户的查询日志中识别出命名实体和实体类型,并建立命名实体集合。接着,根据命名实体集合把每个查询切分成命名实体e1,e2和实体关系上下文ct,所有切分的结果组成集合。之后,聚合e1,e2和ct,用聚合后的数据训练主题发现模型,并采用变分期望最大算法(expectation

maximization,em算法)估计主题模型的参数。最后,在预测用户意图时,用训练好的模型估计在两个命名实体e1,e2和实体关系上下文ct的条件下,意图为主题r的概率p(r|e1,e2,ct)。
[1230]
在这种意图识别的实现方式中,一方面需要收集大量查询文档提取命名实体,且使用的主题发现模型的训练需要大量的训练数据。另一方面,其能识别的意图类别严重依赖于训练集,能识别出的意图有限。
[1231]
而采用本技术实施例中基于多示例模型的意图识别方法,在有很少的打点数据的情况下就可以对多示例学习模型进行训练,并能准确识别出已经学习到的用户意图。随着打点数据的累积,还可以增量训练,不断优化识别结果。此外,本技术实施例中采用多示例学习模型将打点数据序列划分为更细粒度的子序列后,即可以根据第二预设规则识别出更细粒度子序列对应的意图。识别到的意图不完全依赖于训练集,理论上可以识别无穷多的意图。
[1232]
在另一种意图识别的实现方式中,采取用上下文信息训练有监督模型从而实现意图识别的方式。具体地,首先获取用户历史查询日志,逐句地从日志中对用户提出的问题进行人工标注,标注时关注每句对话的上下文。其次,对每一个标注的问题执行特征提取,生成训练语料,使用的特征为问题的位置信息和上文意图分类信息。接着,用有监督方法训练模型,例如使用逻辑回归(logistic regression,lr)。最后,用训练好的有监督模型预测用户的意图。
[1233]
在这种意图识别的实现方式中,需要开发人员花费大量的时间对每个问题进行人工标注,并且模型是根据群体特征统一训练的,并不能体现用户的差异。
[1234]
而采用本技术实施例中基于多示例模型的意图识别方法,不使用有监督学习的方法训练模型,而是使用用弱监督学习中的多示例学习训练模型。不需要使用人工标注,而是能够对打点数据自标注,节省了大量的标注时间。且训练数据基于每个用户自己的打点数据,从每个用户的打点数据中挖掘有用信息,训练用户自己的多示例学习模型,适用于每个用户。
[1235]
可以理解的是,该基于多示例学习模型的意图识别方法也可以应用到图15所示的意图识别决策系统501中的其他模块中,在此不做限定。例如,应用到意图识别模块605,决策推理模块607中等等。
[1236]
接下来对图15所示的意图识别决策系统501中的意图识别模块605如何识别用户意图进行介绍。
[1237]
(1)基于知识图谱的意图识别
[1238]
请参阅图50,图50是本技术实施例中一种基于知识图谱的意图识别方法。如图50所示,该意图识别方法可以包括以下步骤501

步骤503。
[1239]
s501、电子设备获取用户感知数据。
[1240]
用户感知数据用于表示用户的行为信息,用户感知数据并未明确表明用户的意图。
[1241]
在具体的实现中,用户感知数据可以包括:传感器采集到的数据、电子设备安装的应用(application,app)中记录的用户的操作数据。其中,传感器采集到的数据可以包括:用户动作、用户所处位置、当前时间、当前温度、当前湿度等。用户的操作数据可以包括:用户在第一应用中对音乐a的点击操作、用户在第二应用中对视频a的点击操作、用户在第三应用中对商品a的购买操作等。在一个例子中,用户感知数据可以构成电子设备在第一时间段内获取到的第一数据序列;其中,该用户感知数据可以是由图15所示的意图识别决策系统501中的多模态输入模块601获取到的。
[1242]
在该场景下,电子设备获取用户感知数据的过程为:电子设备的处理器可以接收电子设备的传感器采集到的数据。电子设备的处理器可以周期性的从电子设备安装的各个应用中获取用户的操作数据。
[1243]
示例性的,电子设备的处理器可以接收gps发送的用户所处位置数据,例如,用户所处位置可以为:a道路的人行横道。处理器可以接收运动传感器发送的用户动作数据,例如,用户动作可以为:行走。处理器可以通过电子设备内置时钟获取当前时间,例如,当前时间为:2020年8月12号,星期三,8:30。
[1244]
s502、电子设备根据用户感知数据和存储的知识图谱,确定多个候选意图。
[1245]
在具体的实现中,电子设备在获取到用户感知数据之后,可以先确定用户感知数据中的实体和实体的描述数据。其中,实体的描述数据可以包括该实体的属性值。之后,电子设备可以根据实体和实体的描述数据,查找存储的知识图谱,以确定用户的状态信息和场景信息。其中,状态信息用于标识该用户的当前状态,场景信息用于标识用户当前所处的环境。最后,电子设备可以根据状态信息、场景信息和候选意图的对应关系,获取确定出的状态信息和场景信息对应的多个候选意图。其中,状态信息、场景信息和候选意图的对应关系包含在知识图谱中。
[1246]
示例性的,结合上述步骤501中的例子,假设电子设备获取的感知数据包括:用户位置为a道路的人行横道,用户动作为行走,当前时间为2020年8月12号,星期三,8:30。那么假设将用户动作作为实体,那么电子设备确定的实体为行走,该实体的描述数据为:用户在2020年8月12号,星期三,8:30时在a道路的人行横道上行走。电子设备根据上述行走实体,以及行走实体的描述数据,结合知识图谱中的个人知识:用户周一到周五上班,用户所处位置在家与公司之间等,确定的用户的状态信息为行走状态,场景信息为上班路上。最后,电子设备根据用户的状态信息:行走状态,场景信息:上班路上,确定出来的多个候选意图可以包括:听音乐意图、看新闻意图等。
[1247]
在一个例子中,实体的描述数据也可以理解为为一个或多个实体,例如,将日期作为实体,那么电子设备确定的实体为2020年8月12号,星期三;将时间作为实体,那么电子设备确定的实体为8:30;将位置作为实体,那么电子设备确定的实体为a道路的人行横道。此时,电子设备由用户感知数据确定出的实体序列即为:行走,2020年8月12号,星期三,8:30,a道路的人行横道。也即是说,该步骤s502可以是先识别出用户感知数据中的实体序列,然后,再根据该实体序列和存储的知识图谱,确定出多个候选意图。在一个例子中,可以由图15所示的意图识别决策系统501中的实体识别模块603对用户感知数据中的实体进行识别。
图15所示的意图识别决策系统501中的意图识别模块605可以从知识库602中获取到知识图谱,并基于实体识别模块603识别出的实体和获取到的知识图谱,识别出多个候选意图。
[1248]
需要说明的是,在本技术实施例中,知识图谱能够提供候选意图的查询接口。在一种可能的实现方式中,知识图谱可以包括:状态信息的查询接口、场景信息的查询接口、候选意图的查询接口。其中,状态信息的查询接口用于将用户感知数据的实体和实体的描述数据输入知识图谱,输出用户的状态信息。场景信息的查询接口用于将用户感知数据的实体和实体的描述数据输入知识图谱,输出用户的场景信息。候选意图的查询接口用于将之前输出的用户的状态信息和场景信息输入知识图谱,输出多个候选意图。在另一种可能的实现方式中,知识图谱可以仅包括:状态信息、场景信息和候选意图的查询接口。其中,状态信息、场景信息和候选意图的查询接口用于将用户感知数据的实体和实体的描述数据输入知识图谱,知识图谱确定用户的状态信息和场景信息,并根据该用户的状态信息和场景信息确定对应的候选意图,最后输出:用户的状态信息和场景信息,以及候选意图。本技术实施例在此对候选意图的查询接口的具体实现不做具体限定。
[1249]
s503、电子设备采用预设的强化学习算法,从多个候选意图中确定目标意图。
[1250]
电子设备在确定出多个候选意图后,由于候选意图的数量可能较大,在该情况下,电子设备无法展示全部的候选意图,因此电子设备需要从多个候选意图中确定目标意图。在确定出目标意图后,电子设备会展示该目标意图。在展示目标意图时,一方面需要尽可能展示符合用户真实意图的意图,即展示置信度大的意图,另一方面对于每个意图都需要展示足够多的次数,以获取足够多的反馈,此时出现了探索与利用两难困境。为了解决该困境,电子设备可以采用预设强化学习算法,从多个候选意图中确定目标意图。在一个例子中,该步骤可以由图15所示的意图识别决策系统501中的意图识别模块605执行。
[1251]
在具体的实现中,电子设备可以先确定与多个候选意图一一对应的意图摇臂。之后,电子设备可以根据上下文信息(该上下文信息包括:用户感知数据、用户的状态信息、场景信息)、与多个候选意图一一对应的意图摇臂,以及强化学习算法,从多个候选意图中确定目标意图。
[1252]
可以理解,可以在电子设备中预先存储意图与摇臂的对应关系,每个摇臂包括一组参数,该组参数用于表示一个摇臂模型。
[1253]
示例性的,上述强化学习算法可以为“使用上下文信息的bandit算法”,“使用上下文信息的bandit算法”可以为基于回报与上下文成线性相关的假设的linear bandit算法,例如,贪婪算法(epsilon

greedy)、linucb算法、汤普森采样(thompson sampling)算法等。
[1254]
在该情况下,电子设备可以采用以下三种方式,从多个候选意图中确定目标意图。在具体的实现中,电子设备具体采用以下三种方式中的哪种方式确定目标意图,本技术实施例在此不做限定。
[1255]
方式1,采用贪婪算法。电子设备可以先随机获取一个(0,1)之间的值a。若a>ε,ε为(0,1)之间的超参数,则在与多个候选意图一一对应的意图摇臂中随机选择一个或多个意图摇臂,将该一个或多个意图摇臂对应的意图作为目标意图。若0<a<ε,则根据上下文信息,探索得到意图置信度最大的一个或多个意图摇臂,并将一个或多个意图摇臂对应的意图作为目标意图。
[1256]
方式2,采用linucb算法。电子设备可以根据上下文信息,以及意图对应的意图摇
臂,计算每个意图对应的意图置信度,并通过霍夫丁不等式计算该意图置信度与真实置信度之间的误差,linucb算法中该误差服从预设的分布。之后,电子设备可以在与多个候选意图一一对应的意图摇臂中,选择意图置信度与误差的和最大的一个或多个意图摇臂,并将一个或多个意图摇臂对应的意图作为目标意图。
[1257]
方式3,采用汤普森采样算法。基于贝叶斯理论,认为意图摇臂包括的参数服从预设分布(如该预设分布可以为高斯分布)。在该情况下,电子设备可以对与多个候选意图一一对应的意图摇臂中的每个意图摇臂包括的参数进行采样,根据采样后的参数与上下文信息计算每个意图摇臂的计算结果。之后,电子设备可以选择计算结果最大的一个或多个意图摇臂,并将一个或多个意图摇臂对应的意图作为目标意图。
[1258]
本技术实施例提供的基于知识图谱的意图识别方法,在获取到用于表示用户的行为信息的用户感知数据后,可以根据用户感知数据和存储的知识图谱,确定多个候选意图,并采用预设的强化学习算法,从多个候选意图中确定目标意图。这样,由于用户感知数据仅表示用户的行为信息,并未表明用户的意图,实现了意图识别装置在用户未表明自身意图的情况下,主动识别用户意图,从而提高了用户体验。示例性的,当用户感知数据的输入方式为多模态输入时,则可以在主动基于多模态输入的数据识别用户的意图,使得在用户无感的情况下就可以确定出用户的意图,提升了用户体验。
[1259]
可选的,在本技术实施例中,电子设备在确定出目标意图之后,可以向用户展示该目标意图。具体的,基于图50,如图51所示,本技术实施例提供的意图识别方法还可以包括以下步骤504

步骤506。
[1260]
s504、电子设备根据用户感知数据、状态信息、场景信息、目标意图对应的意图摇臂,确定目标意图对应的意图置信度。
[1261]
其中,意图置信度用于表示目标意图与真实意图的预测符合程度。通常,意图置信度越高,表明目标意图与真实意图的预测符合程度越大,即目标意图贴近真实意图的可能性越大。
[1262]
在具体的实现中,电子设备在从多个候选意图中确定出目标意图之后,可以确定目标意图对应的意图置信度。该目标意图的数量由对应的业务场景决定,可以为一个或多个。本技术实施例在此以确定一个目标意图对应的意图置信度为例进行说明。在一个例子中,该步骤可以由图15所示的意图识别决策系统501中的意图识别模块605执行。
[1263]
电子设备可以使用“使用上下文信息的bandit算法”确定目标意图对应的意图置信度。“使用上下文信息的bandit算法”可以是基于回报与上下文成线性相关的假设的linear bandit算法,例如,贪婪算法、linucb算法、汤普森采样算法等。“使用上下文信息的bandit算法”也可以是提取深度特征的neural bandit算法或使用policy gradient实现基于梯度更新的bandit算法。
[1264]
s505、电子设备根据意图置信度,确定展示目标意图使用的目标交互模式。
[1265]
其中,目标交互模式可以为:消息提示框、通知、锁屏卡片、情景智能卡片或动画指引等。在一个例子中,该步骤可以由图15所示的意图识别决策系统501中的决策推理模块607执行。
[1266]
在本技术实施例中,意图置信度不同,表明对应的目标意图与真实意图的符合程度不同。又由于电子设备与用户的交互模式多种多样,因此,对于不同意图置信度对应的目
标意图,电子设备可以使用不同的交互模式。具体的,电子设备在确定出目标意图对应的意图置信度之后,可以在预存的多个置信区间中,确定意图置信度所属的目标置信度区间。其中,一个置信区间对应一个等级的交互模式,一个等级的交互模式包括一个或多个交互模式。然后,电子设备可以根据目标意图对应的业务,从目标置信区间对应的等级的交互模式中确定目标交互模式。
[1267]
可以理解,在本技术实施例中,可以在电子设备中预先存储置信区间,以及与置信区间对应的等级的交互模式,一个等级的交互模式包括一个或多个交互模式。具体过程为:可以先采用规则设计、用户调研、感知模型分析等方式,来得到不同的交互模式对用户体验的影响力,以及不同的交互模式的提示能力。然后,根据交互模式对用户体验的影响力,以及交互模式的提示能力,来设置置信区间,以及与置信区间对应的等级的交互模式。
[1268]
其中,上述设置置信区间,以及对应的交互模式通常遵循的规则是:当目标意图对应的意图置信度较低时,表明该目标意图贴近真实意图的可能性较低,此时需要选取对用户体验的影响力较小、提示能力较弱的交互模式,如消息提示框、通知等交互模式。当目标意图对应的意图置信度较高时,表明该目标意图贴近真实意图的可能性较大,此时需要选取对用户体验的影响力较大、提示能力交强的交互模式,如锁屏卡片、情景智能卡片、动画指引等交互模式。且,可以预先设置意图置信度的最低阈值,当目标意图对应的意图置信度低于该最低阈值时,表明该目标意图基本与真实意图不符,此时需要将该目标意图只在设备内使用而不展示给用户。
[1269]
需要说明的是,在本技术实施例中,交互模式可以为:图形、语音、动作等方式的交互。其中,图形交互可以包括消息提示、通知、卡片、动画等多种交互形式。本技术实施例在此对交互模式的实现方式不做具体限定。
[1270]
示例性的,假设置信区间,以及与置信区间对应的等级的交互模式如表3所示。
[1271]
表3
[1272]
置信区间置信区间对应的等级的交互模式[a,b)a等级交互模式包括:消息提示框、通知[b,c)b等级交互模式包括:锁屏卡片、情景智能卡片、动画引导[0,a)c等级交互模式包括:机内使用
[1273]
表3中,a<b<c。由表3可知,置信度越大,对应的交互模式对用户体验的影响力越大,交互模式的提示能力越强。也就是说,b等级交互模式对用户体验的影响力>a等级交互模式对用户体验的影响力>c等级交互模式对用户体验的影响力(该影响力为零)。b等级交互模式的提示能力>a等级交互模式的提示能力>c等级交互模式的提示能力(该提示能力为零)。
[1274]
假设a=0.2,b=0.6,c=0.9,那么在用户刚从家里出发的场景下,结合知识图谱中的用户历史数据,该用户通常的出行方式为打车或开车,偶尔步行,假设最终确定出的目标意图包括:打车意图、自驾意图和步行意图。其中,打车意图对应的意图置信度为0.3,自驾意图对应的意图置信度为0.8,步行意图对应的意图置信度为0.1。那么电子设备可以结合打车业务,确定打车意图使用的目标交互模式为通知,以通知用户打开某打车应用。电子设备可以结合驾驶业务,确定自驾意图使用的目标交互模式为锁屏卡片。电子设备不会显示步行意图。
[1275]
s506、电子设备利用目标交互模式,展示目标意图的内容。
[1276]
电子设备可以利用目标交互模式,根据目标意图对应的业务,获取并展示目标意图的内容。在一个例子中,该步骤可以由图15所示的意图识别决策系统501中的决策推理模块607执行。
[1277]
例如,结合步骤505中的例子,电子设备在确定出打车意图使用的交互模式为通知后,可以在通知栏处展示一条通知消息,该通知消息包括的内容为“10:00打开打车应用”。如图52中的(a)所示,假设电子设备当前显示的页面为主屏幕页面,则电子设备可以在主屏幕页面的顶部位置显示该通知消息,在一段时间后,电子设备结束该通知消息的显示。之后,在用户从屏幕顶部进行由上至下的滑动操作后,电子设备可以显示一通知页面,该通知页面中包括通知消息,如图52中的(b)所示。
[1278]
再例如,结合步骤505中的例子,假设电子设备当前显示的页面为锁屏页面,那么电子设备在确定出自驾意图使用的交互模式为锁屏卡片后,可以在锁屏页面显示一个锁屏卡片,该锁屏卡片可以用于指示用户打开地图导航的应用,或者推荐用户可能喜欢的音乐等。例如,该锁屏卡片包括的内容可以为“打开地图导航的应用、歌曲名称a和歌曲名称b”,如图53所示。
[1279]
不同于现有技术中的仅依赖置信度来展示意图,即展示意图置信度大于阈值的意图,本技术实施例能够根据置信区间,以及置信区间对应的等级的交互模式,来选择展示目标意图的目标交互模式,减轻了展示低置信度的意图导致降低用户体验的问题。
[1280]
可选的,在本技术实施例中,电子设备在利用目标交互模式,展示目标意图的内容之后,可以接收用户的反馈操作,并利用该反馈操作,更新知识图谱,以及强化学习算法中的一些参数。具体的,基于图51,如图54所示,本技术实施例提供的意图识别方法还可以包括以下步骤507

509。
[1281]
s507、电子设备在利用目标交互模式,展示目标意图的内容的预设时间段内,识别对目标意图的目标操作。
[1282]
电子设备以开始展示目标意图的内容为起始时间,在预设时间段内接收用户对目标意图的目标操作,并识别该目标操作。在一个例子中,该步骤可以由图15所示的意图识别决策系统501中的多模态输入模块601执行。
[1283]
示例性的,该目标操作可以为点开操作,也可以为关闭操作,还可以为忽视操作,即未接收到用户对目标意图的任何操作,还可以为忽视但打开与目标意图的内容相关的内容的操作,即未接收到用户对目标意图的操作,但是接收到用户打开与目标意图的内容相关的内容的操作,如打开与目标意图的内容相关的应用、打开与目标意图的内容相关的网页。本技术实施例在此对目标操作的具体形式不做具体限制。
[1284]
例如,结合图52中的(b),假设电子设备在通知页面显示一通知消息,那么用户可以通过点开操作,例如点击该通知消息,来打开打车应用,如图55所示。用户可以通过关闭操作,例如向左滑动该通知消息,或者向左滑动该通知消息后,电子设备显示该通知消息的部分内容,并在该通知消息的关联位置显示清除控件,用户点击该清除控件,来关闭该通知消息,如图56所示,为用户点击该清除控件。用户也可以忽视该通知消息,即不对该通知消息进行任何操作,但是用户可以点击主屏幕页面中的打车应用,如图57所示,为用户点击打车应用。
[1285]
s508、电子设备根据目标操作和预设规则,确定目标操作对应的目标值。
[1286]
其中,目标值用于表示目标意图与真实意图的实际符合程度。目标操作不同,对应的目标值不同。在具体的实现中,该目标值可以为奖励值,也可以为惩罚值。可以预先定义,目标值越大,表明目标意图与真实意图的实际符合程度越大。或者,也可以预先定义,目标值越小,表明目标意图与真实意图的实际符合程度越大。在一个例子中,该步骤可以由图15所示的意图识别决策系统501中的动作反馈模块608执行。
[1287]
可以理解,该预设规则可以是预先设计好的规则,也可以是预设的函数,还可以是预设的模型。本技术实施例在此对预设规则的形式不做具体限定。
[1288]
s509、电子设备根据目标值,更新多个候选意图,并更新强化学习算法中用于确定目标意图的参数。
[1289]
可选的,在本技术实施例中,在目标值越大,表明目标意图与真实意图的实际符合程度越大的情况下,电子设备根据目标值,更新知识图谱中的多个候选意图的具体过程为:电子设备可以在确定目标值小于预设阈值的情况下,或者在确定目标值小于预设阈值的次数等于预设次数的情况下,删除上述步骤502中多个候选意图中的目标值对应的目标意图。当然,电子设备也可以根据在知识图谱中实时记录的用户的操作数据,在确定增加了新的意图时,可以在多个候选意图中增加新的意图。在一个例子中,该步骤可以由图15所示的意图识别决策系统501中的意图识别模块605执行,即意图识别模块605可以基于动作反馈模块608反馈的信息更新强化学习算法中用于确定目标意图的参数。
[1290]
可以理解,在场景未变,对应的候选意图发生变化的情况下,电子设备需要重新确定候选意图对应的意图摇臂,从而构成摇臂集合。或者,在出现新场景的情况下,电子设备只需要确定对应的候选意图,并确定候选意图对应的意图摇臂,从而构成摇臂结合。
[1291]
由于现有技术中的摇臂集合是固定的,包含电子设备预存的全部意图摇臂。但是,本技术实施例中,实现了摇臂集合随着候选意图改变而改变,从而实现了用户兴趣转移与意图变化的快速支持,提高了用户体验,以及提升了意图识别的准确性。
[1292]
示例性的,如图58所示,假设电子设备中预存有用户的四个意图,以及每个意图对应的意图摇臂。四个意图分别为:看新闻意图、看视频意图、听音乐意图和导航意图,分别对应的四个意图摇臂为:看新闻摇臂、看视频摇臂、听音乐摇臂和导航摇臂。且假设用户的状态信息为静止状态,场景信息为乘坐公交车。与静止状态、乘坐公交车对应的候选意图为:听音乐意图、看新闻意图和看视屏意图。如果电子设备从候选意图中确定出的目标意图为看视频意图,并在展示该看视频意图的预设时间段内,识别到用户的忽视操作,从而得到看视频意图对应的目标值。在该情况下,如果目标值小于预设阈值,则电子设备可以删除与静止状态、乘坐公交车对应的候选意图中的看视频意图。且在该情况下,如果电子设备实时在知识图谱中记录了用户打开导航的数据,则电子设备可以在与静止状态、乘坐公交车对应的候选意图中增加导航意图。此时,知识图谱中更新后的、与静止状态、乘坐公交车对应的候选意图为:听音乐意图、看新闻意图和导航意图。
[1293]
现有技术中,电子设备在展示意图之后,仅考虑用户是否点击该意图,但是在实际应用中用户的反馈可能包含除是否点击外的其他操作,因此导致分析得到的反馈不准确。在本技术实施例中,通过考虑预设时间段内的反馈操作,该反馈操作的类型较多,并利用不同的反馈操作能够得到不同的目标值,这样增加了反馈信息的准确度,从而为后续更新强
化学习算法中的各个参数奠定了基础,进而提升了意图识别的准确度。
[1294]
(2)基于预先建立的意图识别模型识别意图
[1295]
本方案中,图15所示的的意图识别决策系统501中的意图识别模块605可以将实体识别模块603识别出的实体输入到意图识别模型中,以识别出用户的意图。
[1296]
以上即是对本方案中所涉及的电子设备的硬件结构、软件结构,意图识别决策系统等的相关介绍。为便于理解,下面举例进行介绍本方案中的意图识别过程。
[1297]
实施例1:
[1298]
下面结合上述示例性电子设备100的软硬件结构,对本技术实施例中意图识别方法进行具体描述,如图59所示,为本技术实施例中意图识别方法一个流程示意图:
[1299]
s801、响应于第一触发,电子设备在第一时间段内获取第一数据序列。
[1300]
该第一触发可以为电子设备100中可触发实体识别的任一个触发。可以理解的是,电子设备100中预存了可以触发实体识别的各种触发条件,当满足某个触发条件时,则触发获取相应时间窗格长度内相应输入类型的第一数据序列。本方案中,第一数据序列可以包括多个数据。其中,多个数据中至少两个数据的输入方式不同,也即是说,这些数据的输入方式是多模态的。例如,其中一个数据的输入方式为触控操作的输入,另一个数据的输入方式为传感器数据的输入,又一个数据的输入方式为文本数据的输入等等。
[1301]
不同的触发条件可以包括被动场景变化的触发,例如,检测到从室外到室内时触发、检测到环境温度高于35度时触发、检测到环境噪声高于50分贝时触发、检测到到达交通站点时触发、检测到移动速度高于100km/h时触发、检测到局域网中有新的智能设备接入时触发等等;也可以包括用户主动操作的触发,例如,检测到用户连接wifi时触发、检测到用户打开相机时触发、检测到用户关闭闹钟时触发等等,此处不做限定。
[1302]
不同的触发条件触发后,所对应的实体识别的时间窗格的长度,以及对多模态输入中哪几种输入类型的数据进行实体识别均为预先设置:
[1303]
例如,可以设置其中一个触发条件为从室外到室内,该触发对应的实体识别的时间窗格为30秒,该触发对应的多模态输入的类型为用户操作输入、环境感知输入、文本输入、语音输入。再如,可以设置另一个触发条件为打开音乐播放器,该触发对应的实体识别的时间窗格为20秒,该触发对应的多模态输入的类型为用户操作输入、文本输入、语音输入。具体的不同的触发条件对应的时间窗格的长度与多模态输入的类型,根据实际情况和需求而定,此处不作限定。
[1304]
s802、电子设备根据该第一数据序列,确定第一实体序列。
[1305]
本方案中,电子设备100获取到第一数据序列后,可以对第一数据序列中的数据进行识别,得到第一实体序列。
[1306]
在一个例子中,电子设备100从第一数据序列中确定第一实体序列时,可以从第一数据序列中提取特征向量,得到第一特征向量集合。其中,第一特征向量集合中可以包括所有从第一数据序列中提取得到的特征向量,该特征向量可以用于表示第一数据序列中数据的特征。电子设备100在得到第一特征向量集合后,可以将第一特征向量集合输入到实体识别模型,得到第一实体序列。
[1307]
在一个例子中,实体识别模型可以为实体识别模块603中的实体提取单元6031。若实体识别模块603的实体仓库单元6033中已预先存储了某些实体。由于实体的存储方式中
又包含有表示该实体的特征向量,可以理解为实体仓库单元6033中存储了特征向量与实体的对应关系,而知识库602中又含有根据实体仓库单元6033中存储的实体训练出来的实体识别模型,因此电子设备能将实体仓库单元6033中已预先存储的这些实体识别出来;若某些特征向量在实体仓库单元6033中没有预先存储与其对应的实体,则会将这些特征向量存储起来,以供后续检测是否能提取出新的实体。电子设备100的实体仓库单元6033中已预先存储了大部分日常常用的需要进行识别的实体,能将这些实体识别出来。对实体的描述,具体可参阅上述术语描述中的实体部分,此处不再赘述。
[1308]
可以理解的是,知识库602中的数据可以存储于电子设备100中,也可以存储在云端服务器中以便于多用户共享且实时更新相关现有领域知识,此处不作限定。
[1309]
可选的,本技术的一些实施例中,在触发实体识别后,若多模态输入601中某个输入已能明确的确定其意图,则可以不再执行后续步骤,可直接根据确定的意图进行决策推理,执行相应的动作。例如,若用户打开语音助手为实体识别的一个触发,若用户对语音助手说:现在使用qq音乐播放歌曲1。则可直接执行该动作,不再需要执行后续步骤。若用户对语音助手说:放歌。则意图不明确,需要根据多模态输入进行实体识别组成实体序列,继续执行后续步骤。
[1310]
在一个例子中,第一实体序列可以为一个实体序列,该第一实体序列中至少包括在该第一时间窗格内多模态输入中识别出的实体及顺序。此外得到第一时间窗格内识别出的实体及顺序后,该实体序列可以与电子设备100的上下文模块604中存储的在此前的实体识别过程中识别出来的实体序列,共同组成第一实体序列。对实体序列的描述,具体可以参阅上述术语描述中的实体序列部分,此处不再赘述。
[1311]
s803、电子设备确定该第一实体序列对应的第一意图;
[1312]
作为一种可能的实现方式,根据电子设备100中存储的实体序列与意图的对应关系,电子设备可以确定该第一实体序列对应的第一意图。其中,第一意图为一个意图,第一意图可以用于确定动作序列。
[1313]
其中,实体序列与意图的对应关系的表现形式可以为一种函数或一组函数,其可以包括模型类的函数,例如深度学习的模型、线性回归模型等,也可以包括规则类函数,例如,预先设置好的什么样的实体序列对应什么样的意图的规则函数。不管其表现形式如何,该实体序列与意图的对应关系均预先存储在电子设备中,比如可以存储在意图仓库单元6053中,且根据确定的实体序列的输入,能得到确定的意图的输出,其具体的表现形式,此处不作限定。
[1314]
该实体序列与意图的对应关系可以为电子设备厂商预先设置的,可以为第三方数据服务商根据其获取的大数据提取出来的,可以为根据多用户共享的实体序列数据与意图数据训练出来的,也可以为仅根据用户自己的电子设备获取到的实体序列数据与用户标注的意图训练出来的,此处不做限定。
[1315]
可以理解的是,该实体序列与意图的对应关系可以基于电子设备识别出的实体以及动作反馈模块608的反馈结果进行匹配更新,也可以周期性的从云端下载最新的对应关系数据进行更新,此处不作限定。
[1316]
作为另一种可能的实现方式,电子设备100可以将第一实体序列输入到意图识别模型,得到第一意图。其中,该意图识别模型可以为根据对应的实体序列与意图的数据训练
得到的实体序列与意图的对应关系。示例性的,电子设备100在确定第一实体序列后,可以加载或调用厂商放置于云服务器中的共享的意图识别模型,输入第一实体序列,输出第一意图。其中,若将加载的该意图识别模型存储在电子设备中,当有新的实体序列需要识别其意图时,则电子设备可以直接使用加载的该意图识别模型,也可以继续直接调用云服务器中共享的最新的意图识别模型,此处不作限定。在一个例子中,该意图识别模型可以由图41a中所示的模型训练方法训练得到,也可以由图43所示的模型训练方法训练得到。
[1317]
作为又一种可能的实现方式,电子设备100可以根据第一实体序列中的实体,和存储的知识图谱,确定出多个候选意图。然后,电子设备100再采用预设的强化学习算法,从多个候选意图中确定出第一意图。示例性的,电子设备100可以根据第一实体序列中的实体,查找存储的知识图谱,确定用户的状态信息和场景信息。其中,状态信息可以用于标识该用户的当前状态,场景信息可以用于标识用户当前所处的环境。最后,手机可以根据状态信息、场景信息和候选意图的对应关系,可以获取到确定出的状态信息和场景信息对应的多个候选意图。其中,状态信息、场景信息和候选意图的对应关系包含在知识图谱中。
[1318]
s804、电子设备至少根据该第一意图和第一实体序列,确定第一动作序列;
[1319]
电子设备可以根据实体序列、意图与动作序列的对应关系、该第一意图以及该第一实体序列,确定第一动作序列,该第一动作序列为一个动作序列,该第一动作序列中包括第一待执行动作。
[1320]
实体序列、意图与动作序列的对应关系的表现形式可以有很多种,可以为一种函数或一组函数,其可以包括模型类的函数,例如深度学习的模型、线性回归模型等,也可以包括规则类函数,例如,预先设置好的什么样的实体序列和意图对应什么样的动作序列的规则函数。
[1321]
示例性的,该实体序列、意图与动作序列的对应关系可以为一个训练好的动作预测模型,训练该动作预测模型时,可以将大量的【实体序列、意图、动作序列】数据输入模型进行训练,训练完成后,通过输入实体序列,即可得到意图与对应的动作序列。
[1322]
该动作预测模型可以为由电子设备厂商获取大量用户数据训练完成后共享给用户的,可以为第三方数据服务商根据其获取的大数据训练完成后发布给用户的,可以为根据多个用户共享的数据训练完成后共享使用的,也可以为仅根据用户自己的电子设备获取到的实体序列数据与用户标注的意图和动作序列训练出来的,还可以采用电子设备,此处不作限定。
[1323]
示例性的,当电子设备确定第一意图和第一实体序列时,可以加载或调用厂商训练完成后放置于云服务器中的共享动作预测模型,输入第一意图和第一实体序列,输出第一动作序列。若加载该动作预测模型存储在电子设备中,当有新的实体序列需要识别其意图时,则电子设备可以直接使用加载的该动作预测模型,也可以继续直接调用云服务器中共享的最新的动作预测模型,此处不作限定。
[1324]
在一个例子中,该动作预测模型可以由图41a中所示的模型训练方法训练得到,也可以由图43所示的模型训练方法训练得到。
[1325]
可以理解的是,该实体序列、意图与动作序列的对应关系可以存储在电子设备中,也可以存储在云端服务器中以便于多用户共享和更新,此处不作限定。
[1326]
在一些简单场景中,除了根据该实体序列、意图与动作序列的对应关系来确定动
作序列,电子设备还可以根据规则引擎606提供的规则来确定动作序列。例如,若当前识别得到的实体序列为【上午8点】【智能水壶】,识别到的意图为烧开水,而规则引擎606存储的规则中有一条【上午8点10分烧水,水温40度】,则电子设备可以不再使用存储的实体序列、意图与动作序列的对应关系,例如动作预测模型来预测该实体序列和意图对应的动作序列,而是直接根据该规则,生成【1,智能水壶,上午8点10分烧水,水温40度】的动作序列。在一个例子中,可以将实体序列和意图输入到规则引擎606中,并将规则引擎606的输出结果作为动作序列。示例性的,规则引擎606可以基于图21所示的方法确定动作序列。
[1327]
确定的一个动作序列中可以有多个待执行动作,也可以只有一个待执行动作,此处不作限定。一个动作序列中的多个待执行动作可以需要同一个设备执行,也可以需要不同的设备执行。
[1328]
s805、电子设备发送第一指令给该第一待执行动作对应的第一设备,指示该第一设备执行该第一待执行动作。
[1329]
待执行动作可以包括启动特定目标应用程序/服务或执行预设目标操作以自动化完成操作、后台加载特定目标应用程序以提升打开该应用程序时的响应速度、无线连接特定目标设备以便于操作分布式场景下其他设备、发送通知消息以提醒用户等等电子设备可以执行的各种动作或服务,此处不作限定。
[1330]
电子设备按照第一动作序列中各待执行动作对应的设备,发送指令给各待执行动作对应的设备,使其执行待执行动作中的动作/服务。
[1331]
可以理解的是,若待执行动作对应的设备为电子设备自己,则电子设备可以直接执行该待执行动作中的动作/服务。
[1332]
例如,若电子设备根据实体序列和意图决策推理确定出的一个动作序列为【1、电子设备、打开音乐播放器】,【2、车载设备、打开蓝牙】,【3、车载设备、蓝牙连接电子设备】,【4、电子设备、播放音乐播放器列表中的音乐】,则电子设备执行【1、电子设备、打开音乐播放器】,【4、电子设备、播放音乐播放器列表中的音乐】这两个待执行动作,将执行【2、车载设备,打开蓝牙】,【3、车载设备、蓝牙连接电子设备】这两个待执行动作的指令发送到车载设备,由车载设备执行打开蓝牙和蓝牙连接电子设备的动作。
[1333]
上述实施例中,电子设备响应第一触发后,对第一时间窗格内多模态输入进行识别,得到第一实体序列,据此来预测用户意图,由于用户一段时间内的连续行为和设备状态变化会反应事件发生的潜在逻辑,相比于现有的仅根据用户当前时刻的单模态输入获取的信息来预测意图,采用多模态上下文输入信息,可以挖掘出大量数据中的隐含关联信息,为预测其意图提供了更充足的依据,提升了意图识别的准确性。
[1334]
在预测得到意图后,根据该第一实体序列和第一意图决策推理得到需要执行的第一动作序列,发送指令给第一动作序列中各待执行动作对应的设备,指示各设备执行相应的待执行动作,为用户精准的提供了他所需要的响应或服务的决策,提升了用户体验。
[1335]
可以理解的是,本方案中,电子设备可以在获取到第一数据序列后,基于第一数据序列确定用户的第一意图,以及基于该第一意图确定出第一待执行动作。在一个例子中,基于第一数据序列确定用户的第一意图,可以是将第一数据序列输入到意图识别模型中,由意图识别模型识别到第一意图,也可以是向上文所描述的先确定出第一实体序列,再由第一实体序列确定第一意图,在此不做限定。在一个例子中,电子设备基于第一意图确定出第
一待执行动作,可以是将第一意图输入到动作预测模型中得到第一待执行动作,也可以是向上文所描述的基于第一实体序列和第一意图得到第一待执行动作,在此不做限定。
[1336]
实施例2:
[1337]
如图60所示,为一个多设备互联的分布式场景的示意图。多个智能设备,例如台灯、智能音响、空调、空气净化器、电视、电灯、体脂称等智能设备均可以通过路由器与手机互联,手机与智能手表以及汽车可以通过蓝牙互联,形成一个多设备互联的分布式场景。
[1338]
下面以一具体应用场景为例,结合图59所示意图识别方法,对本技术实施例中的意图识别方法进行具体的示例性描述:
[1339]
除了知识库中预置保存有的实体识别的触发点、触发点对应的时间窗格、触发点对应的多模态输入方式的类型外,手机可以根据获取到的用户对手机及与该手机互联的智能设备的日常使用数据,新增用户习惯规则、实体识别的触发点、触发点对应的时间窗格到知识库中。
[1340]
例如:手机根据从联网的智能水壶获取到的启动记录,确定每天上午6点10分,用户会烧一壶温度为65度的水。手机将【用户上午6点10分使用智能水壶烧水,温度65度】的用户习惯规则添加到知识库602中,并在知识库602中添加一个触发点为时间触发:每天上午6点,同时添加该触发点对应的时间窗格为10分钟。
[1341]
当手机确定时间为上午6点,手机根据从知识库602取得的触发点和该触发点对应的时间窗格,触发实体识别。触发点为上午6点,时间窗格为10分钟。
[1342]
手机按照图59所示方法中的步骤s801和步骤s802,在这10分钟内,对从不同输入方式中获取到的数据进行实体识别:手机从时钟应用获取当前时间信息数据,从互联的路由器中获取联网的智能设备信息数据,从获取到的数据中提取特征向量,将这些特征向量输入从知识库602取得的实体识别模型中。手机中出厂预置的实体仓库单元6033中采用【实体编号、实体名称、特征向量集合】的方式存储有时间实体和常见的智能设备实体,因此知识库602中根据该实体仓库单元6033中的实体训练出来的实体识别模型根据输入的特征向量,能识别出来实体:上午6点,智能水壶。手机将识别出的这2个实体组成实体序列:【上午6点】【智能水壶】。
[1343]
手机按照图59所示方法中的步骤s803,将该实体序列:【上午6点】【智能水壶】输入厂商预先存储在意图仓库单元6053中的意图识别模型(一种实体序列与意图的对应关系的表现形式)中,得到输出的意图:烧水。
[1344]
手机按照图59所示方法中的步骤s804,确定该实体序列【上午6点】【智能水壶】与意图烧水在规则引擎606中有与其匹配的规则,不需要使用厂商根据所有用户数据训练出来的动作预测模型来预测其动作序列,可以直接调用规则引擎606根据知识库602中用户习惯规则【用户上午6点10分使用智能水壶烧水,温度65度】更新而来的规则【上午6点10分使用智能水壶烧水,温度65度】,确定动作序列,其中包括一个待执行动作:【1、智能水壶、6点10分启动、温度65度】。
[1345]
手机按照图59所示方法中的步骤s805,确定该待执行动作【1、智能水壶、6点10分启动、温度65度】对应的设备为智能水壶,发送包含温度控制的定时启动指令给该智能水壶。智能水壶收到该包含温度控制的定时启动指令后,在6点10分定时启动,自动接水、烧水,并在检测到温度达到65度时开始保温。
[1346]
再如,手机根据音乐播放器的启动和播放记录,确定每天上午8点至8点10分,用户会打开音乐播放器播放歌曲。手机将【用户8点开始听歌】的用户习惯规则添加到知识库中,并在知识库中添加一个触发点为时间触发:上午7点40分,添加该触发点对应的时间窗格为20分钟。
[1347]
当手机确定时间为上午7点40分,手机根据从知识库602取得的触发点和该触发点对应的时间窗格,触发实体识别。触发点为上午7点50分,时间窗格为20分钟。
[1348]
手机按照图59所示方法中的步骤s801和步骤s802,在这20分钟内,从日历应用中获取时间信息数据,从用户信息中获取家庭住址数据,从gps获取定位数据,从与该手机互联的路由器获取联网智能设备状态信息数据,从手机历史应用记录中获取用户在7点至8点使用应用程序的记录数据,从获取到的数据中提取特征向量,将这些特征向量输入从知识库602取得的实体识别模型中。手机中出厂预置的实体仓库单元6033中采用【实体编号、实体名称、特征向量集合】的方式存储有时间实体、常见地址实体、常见的智能设备实体、应用程序实体等,因此知识库602中根据该实体仓库单元6033中的实体训练出来的实体识别模型根据输入的特征向量,能识别出来实体:7点40,休息日;地点:家;可用设备:手机、音箱;应用习惯:qq音乐,微信,支付宝,抖音;手机将这些实体组成实体序列:【当前时间:7点40】【休息日】【地点:家】【可用设备:手机、音箱】【应用习惯:qq音乐,微信,支付宝,抖音】。
[1349]
手机按照图59所示方法中的步骤s803,将该实体序列:【当前时间:7点40】【休息日】【地点:家】【可用设备:手机、音箱】【应用习惯:qq音乐,微信,支付宝,抖音】输入厂商预先存储在意图仓库单元6053中的意图识别模型中,得到输出的意图:听歌。
[1350]
手机按照图59所示方法中的步骤s804,确定该实体序列【当前时间:7点40】【休息日】【地点:家】【可用设备:手机、智能音箱】【应用习惯:qq音乐,微信,支付宝,抖音】与意图听歌在规则引擎606中有与其匹配的规则,不需要使用厂商根据所有用户数据训练出来的动作预测模型来预测其动作序列,可以直接调用规则引擎606根据知识库602中用户习惯规则【用户8点开始听歌】更新而来的规则【上午8点,使用可用播放设备和使用频率最高的歌曲播放应用程序播放歌曲】来确定动作序列,其中包括2个待执行动作:【1、手机、预加载qq音乐】【2、手机、预加载音频隔空投送服务】。
[1351]
手机按照图59所示方法中的步骤s805,确定该待执行动作【1、手机、预加载qq音乐】【2、手机、预加载音频隔空投送服务】对应的设备均为手机,预加载qq音乐并预加载音频隔空投送服务。当用户点击qq音乐应用程序时,由于已经预先加载好了,手机即可迅速启动该qq音乐播放器。当用户点击播放一首歌曲后,想要使用联网的智能音箱播放该歌曲,点击音频隔空投送控件时,由于已经预先加载好了音频隔空投送服务,手机可以迅速将播放器正在播放的音频投送到智能音箱进行播放。
[1352]
知识库602中由厂商预设存储有一个实体识别的触发点:进入地库环境,以及该触发点对应的时间窗格:30分钟。
[1353]
当手机检测到环境声音分贝数降低,温度降低且gps定位处于地库位置时,判断用户进入了地库环境,根据从知识库602取得的触发点和该触发点对应的时间窗格,触发实体识别。触发点为上午7点50分,时间窗格为20分钟。
[1354]
触发实体识别。触发点为:进入地库环境,时间窗格为30分钟。
[1355]
手机按照图59所示方法中的步骤s801和步骤s802,在这30分钟内,对从不同输入
方式中获取到的数据进行实体识别:手机从gps中获取位置数据,从无线连接模块获取蓝牙连接信息数据,从获取到的数据中提取特征向量,将这些特征向量输入从知识库602取得的实体识别模型中。手机中出厂预置的实体仓库单元6033中采用【实体编号、实体名称、特征向量集合】的方式存储有常见位置实体、无线连接模块实体以及距离实体,因此知识库602中根据该实体仓库单元6033中的实体训练出来的实体识别模型根据输入的特征向量,能识别出来实体:位置:停车场,蓝牙:连接上了车载蓝牙。手机将识别出的这2个实体与此前识别出的上下文实体,组成实体序列:【当前时间:7点40】【休息日】【地点:家】【可用设备:手机、智能音箱】【应用习惯:qq音乐,微信,支付宝,抖音】【位置:停车场】【蓝牙:连接上了车载蓝牙】。
[1356]
手机按照图59所示方法中的步骤s803,将该实体序列:【当前时间:7点40】【休息日】【地点:家】【可用设备:手机、智能音箱】【应用习惯:qq音乐,微信,支付宝,抖音】【位置:停车场】【蓝牙:连接上了车载蓝牙】输入厂商预先存储在意图仓库单元6053中的意图识别模型中,得到输出的意图:上车。
[1357]
手机按照图59所示方法中的步骤s804,确定该实体序列【当前时间:7点40】【休息日】【地点:家】【可用设备:手机、智能音箱】【应用习惯:qq音乐,微信,支付宝,抖音】【位置:停车场】【蓝牙:连接上了车载蓝牙】与意图上车在规则引擎606中没有与其匹配的规则,使用厂商根据所有用户数据训练出来的动作预测模型来预测其动作序列。将实体序列【当前时间:7点40】【休息日】【地点:家】【可用设备:手机、智能音箱】【应用习惯:qq音乐,微信,支付宝,抖音】【位置:停车场】【蓝牙:连接上了车载蓝牙】与意图上车输入决策推理模块607中存储的动作预测模型,得到动作序列输出,其中包括两个待执行动作:【1、汽车控制设备、唤醒】【2、车载播放器、继续播放手机播放器中的歌曲】。
[1358]
手机按照图59所示方法中的步骤s805,确定该待执行动作【1、汽车控制设备、唤醒】对应的设备为汽车控制设备,发送唤醒指令给该汽车控制设备。汽车控制设备收到该唤醒指令后,唤醒汽车中所有电子设备。确定该待执行动作【2、车载播放器、继续播放手机播放器中的歌曲】对应的设备为车载播放器,发送继续播放指令给该车载播放器,车载播放器收到该继续播放指令后,基于蓝牙连接继续播放手机播放器中的歌曲。
[1359]
知识库602中存储有用户从网络上共享下载的一个实体识别的触发点:车启动,以及该触发点对应的时间窗格:车启动直到车停止。
[1360]
当手机从汽车控制设备获取到车启动的信息时,根据从知识库602取得的触发点和该触发点对应的时间窗格,触发实体识别。触发点为:车启动,时间窗格为:车启动直到车停止。
[1361]
手机按照图59所示方法中的步骤s801和步骤s802,在车启动后,对从不同输入方式中获取到的数据进行实体识别:从互联的车载系统获取汽车当前状态数据,从速度传感器中获取当前速度信息数据,从互联的车载摄像头中获取拍摄的视频数据,从互联的智能手表中获取心率数据,从获取到的数据中提取特征向量,将这些特征向量输入从知识库602取得的实体识别模型中。手机中出厂预置的实体仓库单元6033中采用【实体编号、实体名称、特征向量集合】的方式存储有汽车状态实体、速度实体、常见人物面部特征实体以及心率实体,因此知识库602中根据该实体仓库单元6033中的实体训练出来的实体识别模型根据输入的特征向量,能识别出来实体:汽车状态:行驶中,时速120km/h,用户双目无神,用户
心率低于平均值。手机将识别出的这些实体与此前识别出的上下文实体,组成实体序列:【当前时间:7点40】【休息日】【地点:家】【可用设备:手机、智能音箱】【应用习惯:qq音乐,微信,支付宝,抖音】【位置:停车场】【蓝牙:连接上了车载蓝牙】【汽车状态:行驶中】【时速120km/h】【用户双目无神】【用户心率低于平均值】。
[1362]
手机按照图59所示方法中的步骤s803,将该实体序列:【当前时间:7点40】【休息日】【地点:家】【可用设备:手机、智能音箱】【应用习惯:qq音乐,微信,支付宝,抖音】【位置:停车场】【蓝牙:连接上了车载蓝牙】【汽车状态:行驶中】【时速120km/h】【用户双目无神】【用户心率低于平均值】输入用户从网上共享下载的第三方数据服务商提供的意图识别模型中,得到输出的意图:振作用户精神。
[1363]
手机按照图59所示方法中的步骤s804,确定该实体序列【当前时间:7点40】【休息日】【地点:家】【可用设备:手机、智能音箱】【应用习惯:qq音乐,微信,支付宝,抖音】【位置:停车场】【蓝牙:连接上了车载蓝牙】【汽车状态:行驶中】【时速120km/h】【用户双目无神】【用户心率低于平均值】与意图振作用户精神在规则引擎606中没有与其匹配的规则,使用用户默认设置的从网上共享下载的第三方数据服务商提供的动作预测模型来预测其动作序列。将实体序列【当前时间:7点40】【休息日】【地点:家】【可用设备:手机、智能音箱】【应用习惯:qq音乐,微信,支付宝,抖音】【位置:停车场】【蓝牙:连接上了车载蓝牙】【汽车状态:行驶中】【时速120km/h】【用户双目无神】【用户心率低于平均值】与意图振作用户精神,输入用户默认设置的从网上共享下载的第三方数据服务商提供的动作预测模型,得到动作序列输出,其中包括三个待执行动作:【1、汽车控制设备、打开换气系统】【2、汽车控制设备、调低空调温度】【3、汽车控制设备、播放安全警示】。
[1364]
手机按照图59所示方法中的步骤s805,确定该待执行动作【1、汽车控制设备、打开换气系统】【2、汽车控制设备、调低空调温度】【3、汽车控制设备、播放安全警示】对应的设备均为汽车控制设备,发送打开换气系统、调低空调温度与播放安全警示的指令给该汽车控制设备。汽车控制设备收到该指令后,自动控制打开换气系统,使车内氧气充足,将温度适当调低,使用户神志清醒,并播放安全警示,提醒用户当前状态有风险,保证行车安全。
[1365]
实施例3:
[1366]
上面实施例中实体提取单元6031能从多模态输入模块601获取的数据中提取出特征向量,实体仓库单元6033中存储有预设好的常见的实体与特征向量集合的对应关系,因此若提取出来的特征向量集合在实体仓库单元6033中有与其对应的实体存储,则能将这些实体识别出来。若某些特征向量集合在实体仓库中没有对应的实体存储,则无法将其识别为实体。
[1367]
进一步的,电子设备还可以检测实体仓库单元与实体序列,将出现频率超出预设第一频率阈值的异常特征向量集合确定为新的实体,添加到实体仓库单元中。
[1368]
如图61所示,为本技术实施例中实体扩展的一个信息流示意图。电子设备中还可以包含异常检测模块1101,该异常检测模块1101可以通过对实体仓库单元6033和实体序列的检测,将经常出现的异常特征向量集合确定为新的实体存储到实体仓库单元6033中,从而对实体仓库单元6033中存储的实体进行扩展。
[1369]
具体的,实体提取单元6031可以从多模态输入模块601获取的数据中提取出特征向量,可以将其中不能识别为实体的特征向量集合也存储到实体仓库单元6033中。若某些
还不能识别为实体的特征向量集合与其他可识别为实体的特征向量集合的区分度超出预设区分阈值,则异常检测模块1101可以认为这样的特征向量集合为异常特征向量集合。若异常检测模块1101检测到某异常特征向量集合在短期内反复出现,例如出现频率超出预设频率阈值,则将其判定为一个新的、以前从未出现过的实体,将其补充进实体仓库单元中。将异常特征向量集合补充进实体仓库的方式可以为其分配一个实体编号。
[1370]
例如,若以前实体仓库单元6031中只存储有帽子、女孩、牛仔裤这三个实体,这三个实体在实体仓库单元6031中的存储形式为:【1234,帽子,特征向量集合1】、【1235,女孩,特征向量集合2】、【1236,牛仔裤,特征向量集合3】。因此在实体识别时,仅能识别出这三个实体。但在某个时间段内,一个新的特征向量集合4在实体识别时反复出现,超出了预设第一频率阈值1次/天。初次出现时,由于该新的特征向量集合4无法识别为实体,且其与已有实体对应的特征向量集合1、2、3的区分度超出了预设区分阈值,因此电子设备将其判定为异常特征向量集合。当其反复出现,出现频率超出预设第一频率阈值时,电子设备将该特征向量集合4确定为新的实体,为其分配一个实体编号,保存【1237,特征向量集合4】到实体仓库单元6031中。虽然此时电子设备不知道这个新的实体的实体名为鞋子,但是经过实体仓库单元6031的自动扩展,其在实体识别时已经能识别出来该实体,并用于后续的意图预测。
[1371]
上面实施例中,意图仓库单元6053中存储有预设好的常见意图,且这些意图建立了与实体序列的对应关系。但随着用户的使用,可能会需要有体现用户新的需求的新意图。
[1372]
进一步的,电子设备还可以将检测到的出现频率超出预设第二频率阈值的异常动作确定为新的意图,添加到意图仓库单元中。
[1373]
如图62所示,为本技术实施例中意图扩展的一个信息流示意图;电子设备中的异常检测模块1101可以实时检测实体仓库单元6033、意图仓库单元6053、异常检测模块1101中的动作序列库、当前产生的实体序列、意图与动作序列,如发现用户的某个动作为此前未出现过的与其他意图对应的动作序列中的动作不同的动作,则判定其为一个异常动作,将其存入缓存。如果该异常动作在短期内反复出现,例如出现频率超出预设第二频率阈值,则将其判定为一个新的以前未出现过的意图,将其补充到现有的意图仓库单元,从而对意图仓库单元中的现有意图进行扩展。并根据检测到这个异常动作之前的实体序列,更新意图识别模型,建立实体序列与该新意图的对应关系。
[1374]
例如,若由于用户长期晚上加班,此前有一个实体序列与意图的对应关系:实体序列:【工作日】【晚上11点】【公司】到意图:滴滴企业版打车回家(公司付费)。但由于用户这段时间经常不加班了,电子设备检测出来的实体序列成为【工作日】【晚上6点】【公司】,并在检测到这个实体序列后,检测到用户经常会打开普通滴滴打车(自费)。则电子设备会将普通滴滴打车(自费)作为一个新的意图存储到意图仓库中,并建立与实体序列【工作日】【晚上11点】【公司】的对应关系。
[1375]
请参阅图63,为本技术实施例中的电子设备1200另一实施例包括:
[1376]
输入装置1201、输出装置1202、处理器1203和存储器1204(其中电子设备1200中的处理器1403的数量可以一个或多个,图63中以一个处理器1203为例)。在本技术的一些实施例中,输入装置1201、输出装置1202、处理器1203和存储器1204可通过总线或其它方式连接,其中,图63中以通过总线连接为例。
[1377]
其中,通过调用存储器1204存储的操作指令,处理器1203,用于执行上述实施例中
的意图识别方法。在一个例子中,处理器1203可以为图13中的处理器110。
[1378]
需要说明的是,本方案中对图15中所示的意图识别决策系统501中的一个或多个模块的改进均可以达到实现提升意图识别的准确性的目的。例如,对意图识别模块605中意图识别模型的改进可以提升意图识别的准确性;对决策推理模块607中动作预测模型的改进可以确定出的待执行动作的准确性,从而可以基于用户的反馈准确的更新意图识别模块605中的意图识别模型,进而提升意图识别模块605中的意图识别模型的意图识别的准确性;对动作反馈模块608中多示例学习模型的改进可以准确的确定出打点数据的子序列,从而提升意图识别的准确性,进而可以根据动作反馈模块608的反馈信息更新意图识别模块605中的意图识别模型,进而提升意图识别模块605中的意图识别模型的意图识别的准确性。
[1379]
可以理解的是,图15中所示的意图识别决策系统501中的任意多个模块的组合改进也可以达到实现提升意图识别的准确性目的。例如,同时对决策推理模块607和动作反馈模块608进行改进,则可以提升两者确定的结果的准确性,而在两者确定出的结果的准确性均提高的情况下,意图识别模块605接收到的反馈数据的质量也将提高,从而可以精准的更新意图识别模块605中的意图识别模型,进而提升意图识别模块605中的意图识别模型的意图识别的准确性。
[1380]
以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
[1381]
上述实施例中所用,根据上下文,术语“当

时”可以被解释为意思是“如果
…”
或“在

后”或“响应于确定
…”
或“响应于检测到
…”
。类似地,根据上下文,短语“在确定

时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定
…”
或“响应于确定
…”
或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
[1382]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如dvd)、或者半导体介质(例如固态硬盘)等。
[1383]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:rom或随机存储记忆体ram、磁碟或者光盘等各种可存储程序代码的介质。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1