理解自然语言短语的多模型的制作方法
本公开总体上涉及理解自然语言的系统,并且更具体地,涉及理解自然语言短语的多模型。
背景技术:
电子设备(例如智能手机或膝上型计算机)可以包括个人数字助理,该个人数字助理可以帮助该设备的用户执行不同的任务,例如设置闹钟、接收天气预报或查看新闻更新。个人数字助理可以使用自然语言理解引擎来理解用户说出或以其他方式输入的短语。用户可以输入不同的短语,例如“flightfromdenvertophiladephia(从丹佛到费城的航班)”,表达用户查找航班信息的意图。因此,自然语言理解引擎需要执行两项任务:1)了解用户的一般意图,例如查找航班信息,以及2)了解意图细节,例如航班出发城市“denver(丹佛)”和航班到达城市“philadephia(费城)”。
许多个人数字助理使用两种基于机器学习/规则的模型来分别执行这两项任务。即使这样的个人数字助理正确执行了一项任务,如果个人数字助理错误地执行了另一项任务,则该个人数字助理也会对用户的输入短语做出错误的响应。例如,如果用户说“checkthepriceofapple(查看苹果的价格)”,而个人数字助理将“checkthepriceof…(查看…的价格)”的一般意图识别为对股票市场价格的请求,并将“…apple(…苹果)”的意图细节识别为水果的名称,则个人数字助理无法通过尝试提供一种水果的股票市场价格来正确地做出响应。相反,如果个人数字助理将“checkthepriceof…”的一般意图识别为对食品价格的请求,并且将“…apple”的意图细节识别为公司名称,则个人数字助理将无法通过尝试提供公司的食品价格来正确地做出响应。
技术实现要素:
技术问题
本公开是提供理解自然语言短语的多模型。
技术方案
在实施例中,系统理解自然语言短语。意图编码器基于接收到的短语中的对象确定意图值。细节编码器基于接收到的短语中的对象确定细节值。意图解码器基于所述意图值和所述细节值确定意图状态值。细节解码器基于所述意图值和所述细节值确定细节状态值和意图细节值。所述意图编码器基于所述意图值和所述接收到的短语中的另一个对象确定其他意图值。所述细节编码器基于所述细节值和接收到的短语中的另一个对象确定其他细节值。所述意图解码器基于所述其他意图值、所述其他细节值和所述意图状态值确定一般意图值。所述细节解码器基于所述其他意图值、所述其他细节值和所述细节状态值确定另一意图细节值。
在另一实施例中,一种方法理解自然语言短语。该方法包括意图编码器基于接收到的短语中的对象确定意图值,包括细节编码器基于接收到的短语中的对象确定细节值。该方法还包括意图解码器基于所述意图值和所述细节值确定意图状态值,包括细节解码器基于所述意图值和所述细节值确定细节状态值和意图细节值。该方法还包括所述意图编码器基于所述意图值和所述接收到的短语中的另一个对象确定其他意图值,包括所述细节编码器基于所述细节值和接收到的短语中的另一个对象确定其他细节值。该方法还包括所述意图解码器基于所述其他意图值、所述其他细节值和所述意图状态值确定一般意图值,包括所述细节解码器基于所述其他意图值、所述其他细节值和所述细节状态值确定另一意图细节值。
在又一实施例中,一种计算机程序产品包括计算机可读程序代码,该计算机可读程序代码包括理解自然语言短语的指令。该程序代码包括用于意图编码器基于接收的短语中的对象确定意图值以及细节编码器基于接收到的短语中的对象确定细节值的指令。该程序代码还进一步包括用于意图解码器基于意图值和细节值确定意图状态值以及细节解码器基于意图值和细节值确定细节状态值和意图细节值的指令。该程序代码包括用于意图编码器基于意图值和接收到的短语中的另一对象确定其他意图值以及细节编码器基于细节值和接收到的短语中的另一对象确定其他细节值的额外的指令。该程序代码还包括用于意图解码器基于其他意图值、其他细节值和意图状态值确定一般意图值以及细节解码器基于其他意图值、其他细节值和细节状态值确定另一意图细节值的指令。
图1描绘了理解自然语言短语的多模型100的示例。在用户说“buyapple(购买苹果)”之后,自然语言理解引擎将用户的短语解析为“buy(购买)”102和“apple(苹果)”104。在时间步骤1的意图编码器106将“buy”102的词典编号x1转换为“buy”的一般意图编号h11,并且在时间步骤1的细节编码器108将“buy”102的词典编号x1转换为“buy”意图细节编号h12。在时间步骤1的意图解码器110将“buy”一般意图编号h11和“buy”意图细节编号h12转换为“buy”意图状态编号s11,并且在时间步骤1的细节解码器112将“buy”一般意图编号h11和“buy”意图细节编号h12转换为“buy”意图状态编号s12和确定意图细节标签y12=0的意图细节编号y12。在时间步骤2的意图编码器114将“apple”104的词典编号x2和“buy”一般意图编号h11转换为“buyapple”一般意图编号h21,并且在时间步骤2的细节编码器116将“apple”104的词典编号x2和“buy”意图细节编号的h12转换为“apple”意图细节编号h22。在时间步骤2的意图解码器118将“buyapple”一般意图编号h21、“apple”意图细节编号h22和“buy”意图状态编号s11转换为一般意图值y21,该一般意图值y21确定一般意图类别y意图1=“食品订单”或“股票市场购买”,并且每个一般意图类别都包括其相应的概率。在时间步骤2的细节解码器120将“apple”一般意图编号h21和“apple”意图细节编号h22以及“buy”意图状态编号s12转换为确定意图细节标签y22=“水果名称”或“公司名称”的意图细节编号y22,并且每个标签都包括其对应的概率。如果确定了意图细节标签y22=“水果名称”,则自然语言理解引擎确定一般意图类别y意图1=“食品订单”,并以“您何时要订购苹果这种水果?”的答复对用户进行响应。如果确定了意图细节标签y22=“公司名称”,则自然语言理解引擎确定一般意图类别y意图1=“购买股票”,并以“你想购买多少苹果公司的股票”的答复对用户进行响应。
提供本发明内容部分仅是为了引入某些概念,而不是确定所要求保护的主题的任何关键或必要特征。根据附图和以下详细描述,本发明的许多其他特征和实施例将变得显而易见。
技术效果
根据本公开的各种实施例,通过理解自然语言短语的多模型,用户的输入短语可以根据其意图被正确地识别。
附图说明
附图示出了一个或更多个实施例。然而,附图不应被用来仅将本发明限制为示出的实施例。通过阅读以下详细说明并参考附图,各个方面和优点将变得显而易见。
图1示出了根据实施例的理解自然语言短语的示例多模型;
图2示出了根据实施例的用于理解自然语言短语的多模型的示例系统的框图;
图3示出了根据实施例的被训练为理解自然语言短语的示例双模型结构;
图4示出了根据实施例的理解自然语言短语的示例双模型结构;
图5示出了根据实施例的理解自然语言短语的不包括解码器的示例双模型结构;
图6示出了根据实施例的理解自然语言短语的包括图像模型的示例三模型结构;
图7示出了根据实施例的理解自然语言短语的包括音频模型的示例三模型结构;
图8示出了根据实施例的理解自然语言短语的包括自动建议模型的示例三模型结构;
图9是示出根据实施例的用于理解自然语言短语的多模型的方法的流程图;以及
图10是示出其中可以实现本主题的示例硬件设备的框图。
具体实施方式
以下描述是为了说明一个或更多个实施例的一般原理,并不意味着限制本文所保护的发明构思。此外,本文描述的特定特征可以以各种可能的组合和排列中的每一个与其他描述的特征组合使用。除非本文另有明确定义,否则所有术语均应给予其尽可能广泛的解释,包括从说明书中隐含的含义以及本领域技术人员所理解的含义和/或在词典、专论等中定义的含义。
术语“对象”或“位置”通常指表示概念的一个单词、一组单词或一组字符。术语“接收到的短语”或“话语”通常指输入到系统中并且包括至少一个动词和至少一个名词的一组单词。术语“接收到的补充对象”通常指同样输入到系统中并表示概念的一个单词、一组单词或一组字符。术语“图像对象”通常用于指视觉表示。术语“音频对象”通常指输入到系统中的任何类型的声音,例如语音或录音。术语“建议对象”通常指表示所提出的概念的一个单词、一组单词或一组字符。
术语“值”通常是指数值、代数术语或标签。术语“一般意图值”通常指与主要目的相关联的数值、代数术语或标签。术语“意图细节值”通常指与目的属性相关联的数值、代数术语或标签。
术语“意图值”通常指与目的相关联的数值、代数术语或标签。术语“细节值”通常指与目的属性相关联的数值、代数术语或标签。术语“补充值”通常指附加的数值、代数术语或标签。术语“图像值”通常指与视觉表示相关联的数值、代数术语或标签。术语“音频值”通常指与输入到系统的任何类型的声音相关联的数值、代数术语或标签。术语“建议值”通常指与建议相关联的数值、代数术语或标签。
术语“意图状态值”通常指与条件和目的相关联的数值、代数术语或标签。术语“细节状态值”通常指与目的的条件和属性相关联的数值、代数术语或标签。术语“补充状态值”通常指与条件相关联的附加的数值、代数术语或标签。术语“图像状态值”通常指与条件和视觉表示相关联的数值、代数术语或标签。术语“音频状态值”通常指与条件和输入到系统中的任何类型的声音相关联的数值、代数术语或标签。术语“建议状态值”通常指与条件和建议相关联的数值、代数术语或标签。
术语“意图编码器”通常指将与目的相关联的信息或代码从一种格式转换为另一种格式的电路、软件程序或算法。术语“细节编码器”通常指将与目的的属性相关联的信息或代码从一种格式转换为另一种格式的电路、软件程序或算法。术语“补充编码器”通常指将信息或代码从一种格式转换为另一种格式的附加电路、软件程序或算法。术语“图像编码器”通常指将与视觉表示相关联的信息或代码从一种格式转换为另一种格式的电路、软件程序或算法。术语“音频编码器”通常指将与任何类型的声音相关联的信息或代码从一种格式转换为另一种格式的电路、软件程序或算法。术语“建议编码器”通常指将与建议相关联的信息或代码从一种格式转换为另一种格式的电路、软件程序或算法。
术语“意图解码器”通常指将与目的相关联的信号或代码从一种格式转换为另一种格式的电路、软件程序或算法。术语“细节解码器”通常指将与目的的属性相关联的信号或代码从一种格式转换为另一种格式的电路、软件程序或算法。术语“补充解码器”通常指将信号或代码从一种格式转换为另一种格式的附加电路、软件程序或算法。术语“图像解码器”通常指将与视觉表示相关联的信号或代码从一种格式转换为另一种格式的电路、软件程序或算法。术语“音频解码器”通常指将与任何类型的声音相关联的信号或代码从一种格式转换为另一种格式的电路、软件程序或算法。术语“建议解码器”通常指将与建议相关联的信号或代码从一种格式转换为另一种格式的电路、软件程序或算法。
术语“参数”通常指形成定义系统或设置其操作条件的集合的数值或其他可测量因素。术语“差”通常指量不同的数量,或者一个值与另一个值相减后剩下的余数。术语“经验证的一般意图”通常指已确认的主要目的。术语“经验证的意图细节”通常指确认的目的属性。术语“响应”通常指对某事物的反应。
图2示出了根据实施例的用于理解自然语言短语的系统200的框图。如图2所示,系统200可以示出云计算环境,在该云计算环境中数据、应用、服务和其他资源通过共享的数据中心被存储和传递,并且对于终端用户而言表现为单个访问点。系统200还可以代表服务器控制用于不同客户端用户的资源和服务的存储和分配的任何其他类型的分布式计算机网络环境。
在实施例中,系统200表示云计算系统,其包括第一客户端202、第二客户端204以及可以由托管公司提供的第一服务器206和第二服务器208。客户端202-204和服务器206-208经由网络210进行通信。尽管图2将第一客户端202描绘为智能手机202并且将第二客户端204描绘为膝上型计算机204,但是客户端202-204中的每一个可以是任何类型的计算机。在实施例中,可以称为自然语言服务器206的第一服务器206包括组件212-234。尽管图2描绘了具有两个客户端202-204、两个服务器206-208和一个网络210的系统200,但是系统200可以包括任何数量的客户端202-204、任何数量的服务器206-208和/或任何数量的网络210。客户端202-204和服务器206-208可以分别与图10所示和以下描述的系统1000基本相似。
系统组件212-234(每个组件可以组合成较大的组件和/或划分为较小的组件)包括训练器212、个人数字助理214和自然语言理解引擎216。自然语言理解引擎216包括:意图模型218,该意图模型218包括意图编码器220和意图解码器222;细节模型224,该细节模型224包括细节编码器226和细节解码器228;以及补充模型230,该补充模型230包括补充编码器232和补充解码器234。图2描绘了系统组件212-234完全驻留在自然语言服务器206上,但是系统组件212-234也可以完全驻留在自然语言服务器206上,完全驻留在第二服务器208上,完全驻留在客户端202-204上,或部分驻留在服务器206-208上和部分驻留在客户端202-204上的任何组合中。例如,在自然语言服务器206使用训练器212来训练个人数字助理214中的自然语言理解引擎216时,自然语言服务器206可以将个人数字助理214的副本提供给智能手机202。
自然语言理解引擎216可以理解不是自然语言句子而是不完整的句子的自然语言短语,这是因为当与个人数字助理交互时,人们更可能输入的是诸如“flightfromdenvertophiladephia(从丹佛到费城的航班)”这样不完整的句子短语而不是输入诸如“我想要关于从丹佛到费城的航班的信息”这样的句子。此外,如果对自然语言理解引擎216进行充分的训练以便于理解诸如“flightfromdenvertophiladephia(从丹佛到费城的航班)”这样不完整的句子,那么自然语言理解引擎216会受到充分的训练以理解包括完整句子短语的完整句子,例如“我想要有关从丹佛到费城的航班的信息”。
图3示出了根据实施例的用于训练以理解自然语言短语的包括解码器的双模型结构300的框图。自然语言服务器206可以具有多个基于神经的编码器-解码器模型,例如一般意图检测任务网络和意图细节检测任务网络,其可以被称为位置标签检测任务网络或位置填充检测任务网络。双向模型结构300包括用于一般意图检测任务网络的双向编码器和用于意图细节检测任务网络的双向编码器。双模型结构300可以使用双向长短期存储器(blstm)来实现相应的编码器,并且可以使用长短期存储器(lstm)来实现相应的解码器。
每个编码器读取从接收到的短语前向和反向解析出来的对象序列(x1,x2,…xt)中的对象(通常是单词)。然后,用于一般意图检测任务的编码器神经网络生成隐藏状态hi1,而用于意图细节检测任务的编码器神经网络生成隐藏状态hi2。与分别训练一般意图模型和意图细节模型的个人数字助理系统不同,自然语言服务器206通过与其他模型共享每个模型的隐藏状态来一起使用一般意图模型和意图细节模型。例如,来自意图编码器f1的原始隐藏状态hi1与来自意图细节编码器f2的hi-12连接,然后被馈送到意图解码器g1。类似地,对于意图细节模型,来自其细节编码器f2的隐藏状态hi2与来自意图编码器f1的隐藏状态hi-11连接,然后被馈送到细节解码器g2。因此,blstm生成隐藏状态序列(h1i,h2i,…hti),其中i=1对应于一般意图检测任务网络,而i=2对应于意图细节检测任务网络。为了检测一般意图,将意图编码器f1的隐藏状态h1与意图细节编码器f2的隐藏状态h2组合在一起以生成状态s1:
其中
类似地,为了检测意图细节,将来自意图细节编码器f2的隐藏状态h2与来自意图编码器f1的隐藏状态h1组合在一起以生成状态s2。然而,如果解决了序列标签问题,则意图细节解码器f2将在每个训练阶段t生成输出yt2。在每个训练阶段:
st2=ψ(ht-12,ht-11,st-12,yt-12)
其中yt2是在训练阶段t检测到的意图细节标签。
自然语言服务器206可以使用具有共享隐藏状态参数的自身损失函数来训练多个任务网络。在每个训练迭代中,一般意图检测任务网络和意图细节检测任务网络都从其模型中的先前迭代中生成一组隐藏状态ht1和ht2。一般意图检测任务网络读取一批输入数据xi和隐藏状态ht2,然后生成一般意图类别y意图1。
例如,在系统管理员说“flightfromdenvertophiladelphia(从丹佛到费城的航班)”之后,自然语言理解引擎216将系统管理员的短语解析为“flight(航班)”302、“from(从)”304、“denver(丹佛)”306、“to(到)”308以及“philadelphia(费城)”310。训练阶段1的意图编码器312将“flight”302的词典编号x1转换为“flight”一般意图编号h11,而训练阶段1的细节编码器314将“flight”302的词典编号x1转换为“flight”意图细节编号h12。诸如“flight”302之类的对象的词典编号xi是诸如词语“flight”之类的对象的含义的数字表示,其可以基于与该对象相同的短语中的其他词语通过算法被转换为hi1和hi2,这是对象含义的其他数字表示。诸如词语“flight”302之类的对象的值x1、x2、hi1、hi2、s11和s12可以表示为任意维度(例如,200)的向量。训练阶段1的意图解码器316将“flight”一般意图编号h11和“flight”意图细节编号h12转换为“flight”意图状态编号s11。
训练阶段2的意图编码器318将“from”304的词典编号x2和“flight”一般意图编号h11和意图细节编号h12转换为“flightfrom(来自…的航班)”一般意图编号h21,并且训练阶段2的细节编码器320将“from”304的词典编号x2、“flight”一般意图编号h11和意图细节编号h12转换为“from”意图细节编号h22。训练阶段2的意图解码器322将“flightfrom”一般意图编号h21、“from”意图细节编号h22和“fight”意图状态编号s11转换为“flightfrom”意图状态编号s21。
训练阶段3的意图编码器324将“denver”306的词典编号x3、“flightfrom”一般意图编号h21和意图细节编号h22转换为“flightfromdenver(从丹佛出发的航班)”一般意图编号h31,并且训练阶段3的细节编码器326将“denver”306的词典编号x3和“from”意图细节编号h22转换为“denver”意图细节编号h32。训练阶段3的意图解码器328将“flightfromdenver”一般意图编号h31、“denver”意图细节编号h32和“from”意图状态编号s21转换为“flightfromdenver”意图状态编号s31。
训练阶段4的意图编码器330将“to”308的词典编号x4和“flightfromdenver”一般意图编号h31和意图细节编号h32转换为“flightfromdenverto(从丹佛到…的航班)”一般意图编号h41,训练阶段4的细节编码器332将“to”308的词典编号x4和“denver”意图细节编号h32转换为“to”意图细节编号h42。训练阶段4的意图解码器334将“flightfromdenverto”一般意图编号h41、“to”意图细节编号h42和“flightfromdenver”意图状态编号s31转换为“flightfromdenverto”意图状态编号s41。
训练阶段5的意图编码器336将“philadelphia”310的词典编号x5和“flightfromdenverto”的一般意图编号h41和意图细节编号h42转换为“flightfromdenvertophiladelphia”一般意图编号h51,并且训练阶段5的细节编码器338将“philadelphia”310的词典编号x5和“to”意图细节编号h42转换为“philadelphia”意图细节编号h52。训练阶段5的意图解码器340将“flightfromdenvertophiladelphia”一般意图编号h51、“philadelphia”意图细节编号h52和“flightfromdenverto”意图状态编号s41转换为确定一般意图类别y意图1=“flight”的一般意图编号
一般意图模型中最后训练阶段的意图解码器通过识别出一般意图编号
自然语言服务器206基于函数l1计算一般意图检测任务网络代价,并在一般意图检测任务网络代价的基础上训练一般意图检测任务网络。使用交叉熵将l1定义为:
其中,k是一般意图类别类型的数量。
在图3的示例中,y意图1=“flight”,并且系统管理员或算法验证了短语“flightfromdenvertophiladephia”的一般意图类别“flight”。因此,损失函数或代价函数(数据实例的估计值与真实值之间的差的函数)的计算将导致意图编码器或意图解码器的参数变化最小(如果有的话)。在导致确定的一般意图值与经验证的一般意图值之间存在差异的其他示例中,这种差异可能导致意图编码器和/或意图解码器的参数发生任何数量的改变。
接下来,自然语言服务器206将相同批次的数据xi与来自一般意图检测任务网络的隐藏状态ht1一起提供给意图细节检测任务网络,这使得意图细节检测任务网络能够生成一批训练阶段2的输出yt2。
继续图3所示的示例,训练阶段1的细节解码器342将“flight”一般意图编号h11和“flight”意图细节编号h12转换为“flight”细节状态编号s12和确定出意图细节标签y12=“0”的意图细节编号
训练阶段2的细节解码器344将“flightfrom”一般意图编号h21、“from”意图细节编号h22和“flight”细节状态编号s12转换为“from”细节状态编号s22和确定意图细节标签y22=0的意图细节编号
然后,自然语言服务器206基于函数l2计算意图细节检测任务网络代价,并且根据意图细节检测任务网络代价训练意图细节检测任务网络。使用交叉熵将l2定义为:
其中,m是意图细节标签类型的数量,n是短语中对象(词语)的数量。
在图3的示例中,y12=“0”、y32=“出发地(fromposition)”、y52=“到达地”,并且系统管理员或算法仅验证短语“flightfromdenvertophiladelphia”的意图细节标签“出发地”和“到达地”。因此,损失函数或代价函数的计算将导致细节编码器和/或细节解码器的参数发生变化,从而降低生成意图细节标签y12=“0”的概率。在导致确定的意图细节值与经验证的意图细节值之间没有差异的其他示例中,细节编码器和/或细节解码器的参数中的变化量(如果有的话)最小。
由于针对两个不同的任务,保持两个单独的代价函数很重要,所以自然语言服务器206使用异步训练。自然语言服务器206过滤了两个任务之间的负面影响,从而克服了一种模型的结构限制。只能通过共享两个模型的隐藏状态来学习两个任务之间的交叉影响,这两个模型使用两个代价函数进行单独训练。通过减少每个任务的错误并学习有用的共享信息,可以提高所有任务的性能。
图4示出了根据实施例的用于理解自然语言短语的包括解码器的双模型结构400的框图。在用户说“checkthepriceofapple(查看该苹果的价格)”之后,自然语言理解引擎216将用户的短语解析为“check(查看)”402、“the(该)”404、“price(价格)”406、“of(的)”408和“apple(苹果)”410。在时间步骤1的意图编码器412将“check”402的词典编号x1转换为“check”一般意图编号h11,并且时间步骤1的细节编码器414将“check”402的词典编号x1转换为“check”意图细节编号h12。在时间步骤1的意图解码器416将“check”意图编号h11和“check”意图细节编号h12转换为“check”意图状态编号s11,并且在时间步骤1的细节解码器418将“check”一般意图编号h11和“check”意图细节编号h12转换为“check”细节状态编号s12和确定意图细节标签y12=0的意图细节编号
在时间步骤2的意图编码器420将“the”404的词典编号x2、“check”一般意图编号h11和意图细节编号h12转换为“checkthe(查看该)”一般意图编号h21,在时间步骤2的细节编码器422将“the”404的词典编号x2、“check”意图细节编号h12和一般意图编号h11转换为“the”意图细节编号h22。在时间步骤2的意图解码器424将“checkthe”一般意图编号h21、“the”意图细节编号h22和“check”意图状态编号s11转换为“checkthe”意图状态序号s21,并且在时间步骤2的细节解码器426将“checkthe”一般意图编号h21、“the”意图细节编号h22和“check”细节状态编号s12转换为“the”细节状态编号s22和确定意图细节标签y22=0意图细节编号
在时间步骤3的意图编码器428将“price”406的词典编号x3、“checkthe”一般意图编号h21和意图细节编号h22转换为“checktheprice(查看该价格)”一般意图编号h31,并且在时间步骤3的细节编码器430将“price”406的词典编号x3、“the”意图细节编号h22和一般意图编号h21转换为“price”意图细节编号h32。在时间步骤3的意图解码器432将“checktheprice”一般意图编号h31、“price”意图细节编号h31和“checktheprice”意图状态编号s21转换为“checktheprice”意图状态编号s31,在时间步骤3的细节解码器434将“checktheprice”一般意图编号h31、“price”意图细节编号h32和“the”细节状态编号s22转换为“price”细节状态编号s32和确定意图细节标签y32=0的意图细节编号
时间步骤4的意图编码器436将“of(的)”408的词典编号x4、“checktheprice”一般意图编号h31、以及意图细节编号h32转换为“checkthepriceof(查看该…的价格)”一般意图编号h41,在时间步骤4的细节编码器438将“of”408的词典编号x4、“price”意图细节编号h32和一般意图编号h31转换为“of”意图细节编号h42。在时间步骤4的意图解码器440将“checkthepriceof”一般意图编号h41、“of”意图细节编号h42和“checkthepriceof”意图状态编号s31转换为“checkthepriceof”意图状态编号h41,在时间步骤4的细节解码器442将“checkthepriceof”一般意图编号h41、“of”意图细节编号h42和“price”细节状态编号s32转换为“of”细节状态编号s42和确定意图细节标签y42=0的意图细节编号
在时间步骤5的意图编码器444将“apple”410的词典编号x5、“checkthepriceof”一般意图编号h41和意图细节编号h42转换为“checkthepriceofapple”一般意图编号h51,并且在时间步骤5的细节编码器446将“apple”310的词典编号x5、“of”意图细节编号h42和一般意图编号h41转换为“apple”意图细节编号h52。在时间步骤5的意图解码器448将“checkthepriceofapple”一般意图编号h51、“apple”意图细节编号h52和“checkthepriceof”意图状态编号h41转换为一般意图编号
图5示出了根据实施例的用于理解自然语言短语的不包括解码器的双模型结构500的框图。在该双模型结构500中,不存在以前的双模型结构300和400中那样的解码器。用于一般意图检测任务的编码器在最后一个时间步骤n仅生成一个检测到的一般意图类别y意图1,其中n等于接收到的短语中的对象(词语)的数量。状态值yt1和一般意图类别y意图1生成为:
对于意图细节检测任务,编码器的基本结构与用于一般意图检测任务的编码器相似,其不同之处在于,在每个时间步骤t都生成一个意图细节标签yt2。意图细节编码器还从两个编码器中获得隐藏状态ht-11和ht-12以及意图细节标签yt-12,以生成下一个状态值ht2和意图细节标签yt2。这些在数学上表示为:
ht2=ψ(ht-12,ht-11,yt-12)
例如,图5示出了根据实施例的用于理解自然语言短语的不包括解码器的双模型结构500的框图。在用户说“flightfromdenvertophiladelphia”之后,自然语言理解引擎216将用户的短语解析为“flight”502、“from”504、“denver”506、“to”508和“philadelphia”510。在时间步骤1的意图编码器512将“flight”502的词典编号x1转换为“flight”一般意图编号h11,并且在时间步骤1的细节编码器514将“flight”502的词典编号x1转换为“flight”意图细节编号h12。在时间步骤1的意图编码器512将“flight”一般意图编号h11和“flight”意图细节编号h12转换为“flight”一般意图状态编号
在时间步骤2的意图编码器516将“from”504的词典编号x2和“flight”一般意图状态编号
在时间步骤3的意图编码器520将“denver”506的词典编号x3和“flightfrom”一般意图状态编号
在时间步骤4的意图编码器524将“to”508的词典编号x4和“flightfromdenver”一般意图状态编号
时间步骤5的意图编码器528将“philadelphia”510的词典编号x5和“flightfromdenverto”一般意图状态编号
先前的示例是基于双模型结构-具有共享隐藏状态信息的被异步训练用于两个相关任务的两个模型。该概念可以进一步扩展到针对一个任务或多个相关任务异步训练多个模型的情况。除了一般意图模型和意图细节模型之外,自然语言服务器206可以通过与一般意图模型和意图细节模型共享其隐藏状态来添加另一种模型以根据给定的训练数据进行学习。类似地,通过连接三个模型的隐藏状态,一般意图模型和意图细节模型的隐藏状态也可以与新模型共享。如上所述,这三个模型也可以异步训练。
例如,基于视觉的查询回答任务的主要目的是找到基于给定图像的问题的答案。典型模型将图像特征和问题特征同时作为输入,并将它们一起训练。自然语言理解引擎214使用不同的异步训练后的模型获取多种类型的数据,并找到它们之间的内部交叉影响。例如,问题“howmanysurfers(有多少个冲浪者)?”与给定的图像(该图像描绘了在海滩上的四个人,其中一个人拿着冲浪板,另一个人在冲浪时站在冲浪板上)有较强的相关性。自然语言理解引擎216通过识别图像中的“howmanysurfers”来回应该问题,这可以由使用不同的方法的注意力图来显示,例如通过用冲浪者1标签、冲浪者2标签和冲浪者3标签给图片中的三个被识别为冲浪者的人加标签。自然语言理解引擎216可以提供注意力图,标记目标人群并正确回答,这是典型自然语言理解引擎所无法实现的。
图6示出了根据实施例的用于理解自然语言短语的包括图像模型的三模型结构600的框图。在用户说“howmanysurfers?”并提供了海滩上四个人的图像之后,自然语言理解引擎216将用户的短语解析为“how(有)”602、“many(多少)”604和“surfers(冲浪者)”606,并将图像划分为颜色层608、纹理层610和对比层612。时间步骤1的意图编码器614将“how”602的词典编号x1转换为“how”一般意图编号h11,时间步骤1的细节编码器616将“how”602的词典编号x1转换为“how”意图细节编号h12,并且时间步骤1的图像编码器618将颜色层608的词典编号z1转换为颜色图像编号h13。时间步骤1的意图解码器620将“how”一般意图编号h11、“how”意图细节编号h12和颜色图像编号h13转换为“how”意图状态编号s11。在时间步骤1的细节解码器622将“how”一般意图编号h11、“how”意图细节编号h12和颜色图像编号h13转换为“how”细节状态编号s12和确定意图细节标签y12=0的意图细节编号
在时间步骤2的意图编码器626将“how”604的词典编号x2和“how”一般意图编号h11转换为“howmany(有多少)”一般意图编号h21,在时间步骤2的细节编码器628将“many”604的词典编号x2和“how”意图细节编号h12转换为“many”意图细节编号h22,并且在时间步骤2的图像编码器630将纹理层610的词典编号z2和颜色图像编号h13转换为纹理图像编号h23。在时间步骤2的意图解码器632将“howmany”一般意图编号h21、“many”意图细节编号h22、纹理图像编号h23和“how”意图状态编号s11转换为“howmany”意图状态编号s21。在时间步骤2的细节解码器634将“howmany”一般意图编号h21、“many”意图细节编号h22、纹理图像编号h23和“how”细节状态编号s12转换为“many”细节状态编号s22和确定意图细节标签y22=0的“many”意图细节编号
在时间步骤3的意图编码器638将“surfers”606的词典编号x3和“howmany”一般意图编号h21转换为“howmanysurfers”一般意图编号h31,在时间步骤3的细节编码器640将“surfers”606的词典编号x3和“many”意图细节编号h22转换为“surfers”意图细节编号h32,并且在时间步骤3的图像编码器642将对比层612的词典数字z3和“many”图像编号h23转换为对比图像编号h33。在时间步骤3的意图解码器644将“howmanysurfers”一般意图编号h31、“surfers”意图细节编号h32、对比图像编号h33和“many”意图状态编号s21转换为确定一般意图类别y意图1=“计数”的“howmanysurfers”一般意图状态编号
图7示出了根据实施例的用于理解自然语言短语的包括音频记录模型的三模型结构700的框图。对于此示例,系统用户希望收听四个小时时长的在此期间讨论了诉讼的音频记录的每个部分,而不必收听整个记录。在用户说“whenislitigationdiscussed(什么时候讨论了诉讼)?”之后,自然语言理解引擎216将用户的短语解析为“when(什么时候)”702、“is(是)”704、“litigation(诉讼)”706和“discussed(讨论了)”708,并将音频记录解析为音频记录的第一个小时710、音频记录的第二个小时712、音频记录的第三个小时714和音频记录的第四个小时716。在时间步骤1的意图编码器718将“when”702的词典编号x1转换为“when”一般意图编号h11,在时间步骤1的细节编码器720将“when”702的词典编号x1转换为“when”意图细节编号h12,并且在时间步骤1的音频编码器722将音频记录的第一个小时710的音频编号z1转换为第一个小时的音频编号h13。在时间步骤1的意图解码器724将“when”一般意图编号h11、“when”意图细节编号h12和第一个小时的音频编号h13转换为“when”意图状态编号s11。在时间步骤1的细节解码器726将“when”一般意图编号h11、“when”意图细节编号h12和第一个小时的音频编号h13转换为“when”细节状态编号s12和确定意图细节标签y12=0的意图细节编号
时间步骤2的意图编码器730将“is”704的词典编号x2和“when”一般意图编号h11转换为“whenis(什么时候是)”一般意图编号h21,时间步骤2的细节编码器732将“is”704的词典编号x2和“when”意图细节h12变为“is”意图细节编号h22,并且在时间步骤2的音频编码器734将音频记录的第二个小时712的音频编号z2和第一个小时的音频编号h13转换为第二个小时的音频编号h23。在时间步骤2的意图解码器736将“whenis”一般意图编号h21、“is”意图细节编号h22、第二个小时的音频编号h23和“when”意图状态编号s11转换为“whenis”意图状态编号s21。在时间步骤2的细节解码器738将“whenis”一般意图编号h21、“is”意图细节编号h22、第二个小时的音频编号h23和“when”细节状态编号s12转换为“is”细节状态编号s22和确定意图细节标签y22=0的意图细节编号
在时间步骤3的意图编码器742将“litigation”706的词典编号x3和“whenis”一般意图编号h21转换为“whenislitigation(什么时候是诉讼)”一般意图编号h31,在时间步骤3的细节编码器744将“litigation”706的词典编号x3和“is”意图细节h22转换为“litigation”意图细节编号h32,并且在时间步骤3的音频编码器746将音频记录的第三个小时714的音频编号z3和第二个小时的音频编号h23转换为第三个小时的音频编号h33。时间步骤3的意图解码器748将“whenislitigation”一般意图编号h31、“litigation”意图细节编号h32、第三个小时的音频编号h33和“whenislitigation”意图状态编号s21转换为“whenislitigation”意图状态编号s31。在时间步骤3的细节解码器750将“whenislitigation”一般意图编号h31、“litigation”意图细节编号h32、第三个小时的音频编号h33和“is”细节状态编号s22转换为“litigation”意图状态编号s32和确定意图细节标签y32=“话题(topic)”的意图细节编号
在时间步骤4的意图编码器754将“discussed”708的词典编号x4和“whenislitigation”的一般意图编号h31转换为“whenislitigationdiscussed”一般意图编号h41,在时间步骤4的细节编码器756将“discussed”708的词典编号x4和“litigation”意图细节编号h32转换为“discussed”意图细节编号h42。在时间步骤4的音频编码器758将音频记录的第四个小时716的音频编号z4和第三个小时的音频编号h33转换为第四个小时的音频编号h43。在时间步骤4的意图解码器760将“whenislitigationdiscussed”一般意图编号h41、“discussed”意图细节编号h42、第四个小时的音频编号h43和“whenislitigation”意图状态编号s31转换为确定一般意图类别y意图1=“时间”的“whenislitigationdiscussed”一般意图编号
图8示出了根据实施例的用于理解自然语言短语的包括语言模型的三模型结构800的框图。在用户输入文本“flightfromdenvertophiladelphia”之后,自然语言理解引擎216将用户的短语解析为“flight”802、“from”804、“denver”806、“to”808和“philadelphia”810,并使用自动建议的语言模型从基于先前词语的时间步骤1的词汇集812、时间步骤2的词汇集814、时间步骤3的词汇集816、时间步骤4的词汇集818、时间步骤5的词汇集816中选择预测出的词语。在时间步骤1的意图编码器822将“flight”802的词典编号x1转换为“flight”一般意图编号h11,在时间步骤1的细节编码器824将“flight”802的词典编号x1转换为“flight”意图细节编号h12,在时间步骤1的建议编码器826将词汇集812的词典编号z1转换为第一词汇编号h13。在时间步骤1的意图解码器828将“flight”一般意图编号h11、“flight”意图细节编号h12和第一词汇编号h13转换为“flight”意图状态编号s11。在时间步骤1的细节解码器830将“flight”一般意图编号h11、“flight”意图细节编号h12和第一词汇编号h13转换为“flight”细节状态编号s12和确定意图细节标签y12=0的“flight”意图细节编号
在时间步骤2的意图编码器834将“from”804的词典编号x2和“flight”一般意图编h11转换为“flightfrom(来自…的航班)”的一般意图编号h21,在时间步骤2的细节编码器836将“from”804的词典编号x2和“flight”一般意图编号h12转换为“from”意图细节编号h22,并且在时间步骤2的建议编码器838将时间步骤2的词汇集814的词典编号z2和第一词汇编号h13转换为第二词汇编号h23。在时间步骤2的意图解码器840将“flightfrom”一般意图编号h21、“from”意图细节编号h22、第二词汇编号h23和“flight”意图状态编编号s11转换为“flightfrom”意图状态编号s21。在时间步骤2的细节解码器842将“flightfrom”一般意图编号h21、“from”意图细节编号h22、第二词汇编号h23和“flight”细节状态编号s12转换为“from”细节状态编号s22和确定意图细节标签y22=0的“from”意图细节编号
在时间步骤3的意图编码器846将“denver”806的词典编号x3和“flightfrom”一般意图编号h21转换为“flightfromdenver”一般意图编号h31,在时间步骤3的细节编码器848将“denver”306的词典编号x3和“from”意图细节编号h22转换为“denver”意图细节编号h32,并且在时间步骤3的建议编码器850将时间步骤3的词汇集816的词典编号z3和第二词汇编号h23转换为第三词汇编号h33。在时间步骤3的意图解码器852将“flightfromdenver”一般意图编号h31、“denver”意图细节编号h32、第三词汇编号h33和“from”意图状态编号s21转换为“flightfromdenver”意图状态编号s31。在时间步骤3的细节解码器854将“flightfromdenver”一般意图编号h31、“denver”意图细节编号h32、第三词汇编号h33和“from”细节状态编号s22转换为“denver”细节状态编号s32和确定意图细节标签y32=“出发地”的“denver”意图细节编号
在时间步骤4的意图编码器858将“to”808的词典编号x4和“flightfromdenver”一般意图编号h31转换为“flightfromdenverto”一般意图编号h41,在时间步骤4的细节编码器860将“to”808的词典编号x4和“denver”意图细节编号h32转换为“to”意图细节编号h42,并且在时间步骤4的建议编码器862将时间步骤4的词汇集818的词典编号z4和第三词汇编号h33转换为第四词汇编号h43。在时间步骤4的意图解码器864将“flightfromdenver”一般意图编号h41、“to”意图细节编号h42、第四词汇编号h43和“flightfromdenver”意图状态编号s31转换为“flightfromdenverto”意图状态编号s41。在时间步骤4的细节解码器866将“flightfromdenverto”一般意图编号h41、“to”意图细节编号h42、第四词汇编号h43和“flight”细节状态编号s32转换为“to”细节状态编号s42和确定意图细节标签y42=0的“to”意图细节编号
在时间步骤5的意图编码器870将“philadelphia”810的词典编号x5和“flightfromdenverto”一般意图编号h41转换为“flightfromdenvertophiladelphia”一般意图编号h51,在时间步骤5的细节编码器872将“philadelphia”810的词典编号x5和“to”意图细节编号h42转换为“philadelphia”意图细节编号h52,并且在时间步骤5的建议编码器874将时间步骤5的词汇集820的词典编号z5和第四词汇编号h43转换为第五词汇编号h53。在时间步骤5的意图解码器876将“flightfromdenvertophiladelphia”一般意图编号h51、“philadelphia”意图细节编号h52、第五词汇表编号h53和“flightfromdenverto”意图状态编号s41转换为确定一般意图类别y意图1=“flight”的“flightfromdenvertophiladelphia”一般意图编号
自然语言服务器206可以将附加信号用于基于视觉的提问回答任务。例如,自然语言服务器206可以使用图像模型、文本问题模型和语音信号模型,这使人们能够通过输入文本和讲话两者来针对给定图像提出问题。通过共享它们的隐藏状态信息,这三个模型可以通过利用来自三个不同数据源的重要信息来同时工作,以提高基于视觉的查询回答任务的性能。
图9是示出根据实施例的用于理解自然语言短语的多模型的方法的流程图。流程图900示出了作为图2的客户端202-204和/或服务器206-208中和/或之间所涉及的某些步骤的流程图框示出的方法动作。
框902:意图编码器基于接收到短语中的对象确定意图值。系统将词语的词典编号从输入的短语转换为一般意图编号。例如但不限于,这可以包括在训练阶段4的意图编码器330将“to”308的词典编号x4和“flightfromdenver”一般意图编号h31转换为“flightfromdenverto”一般意图编号h41。基于图4所示的示例模型,在时间步骤4的意图编码器436将“of”408的词典编号x4和“checktheprice”一般意图编号h31转换为“checkthepriceof”一般意图编号h41。
基于图6所示的示例模型,在时间步骤2的意图编码器626将“many”604的词典编号x2和“how”一般意图编号h11转换为“howmany”一般意图编号h21。基于图7所示的示例模型,在时间步骤3的意图编码器742将“litigation”706的词典编号x3和“whenis”一般意图编号h21转换为“whenislitigation”一般意图编号h31。基于图8所示的示例模型,在时间步骤4的意图编码器858将“to”808的词典编号x4和“flightfromdenver”一般意图编号h31转换为“flightfromdenverto”一般意图编号h41。
框904:在生成一般意图编号时,细节编码器基于接收到的短语中的对象确定细节值。系统将词语的词典编号从输入的短语转换为意图细节编号。例如但不限于,这可以包括在训练阶段4的细节编码器332将“to”308的词典编号x4和“denver”意图细节编号h32转换为“to”意图细节编号h42。基于图4所示的示例模型,在时间步骤4的细节编码器438将“of”408的词典编号x4和“price”意图细节编号h32转换为“of”意图细节编号h42。
基于图6所示的示例模型,在时间步骤2的细节编码器628将“many”604的词典编号x2和“how”意图细节编号h12转换为“many”意图细节编号h22。基于图7所示的示例模型,在时间步骤3的细节编码器744将“litigation”706的词典编号x3和“is”意图细节编号h22转换为“litigation”意图细节编号h32。基于图8所示的示例模型,在时间步骤4的细节编码器860将“to”808的词典编号x4和“denver”意图细节编号h32转换为“to”意图细节编号h42。
框906:在生成一般意图和意图细节的编号的过程中,补充编码器可选地基于接收到的补充对象确定多个补充值。系统将另一个对象的词典编号转换为其他编号,例如图像、音频或建议编号。在实施例中,这可以包括在时间步骤2的图像编码器630将纹理层610的词典编号z2和颜色图像编号h13转换为纹理图像编号h23。
基于图7所示的示例模型,在时间步骤3的音频编码器746将记录的第三个小时714的音频编号z3和第二个小时的音频编号h23转换为第三个小时的音频编号h33。基于图8所示的示例模型,在时间步骤4的建议编码器862将时间步骤4的词汇集818的词典编号z4和第三词汇编号h33转换为第四词汇编号h43。
框908:在生成了意图值和细节值之后,意图解码器基于意图值和细节值确定意图状态值。系统将隐藏状态转换为一般意图状态编号。例如但不限于,这可以包括在训练阶段4的意图解码器334将“flightfromdenverto”一般意图编号h41、“to”意图细节编号h42和“flightfromdenver”意图状态编号s31转换为“flightfromdenverto”意图状态编号s41。基于图4所示的示例模型,在时间步骤4的意图解码器440将“checkthepriceof”一般意图编号h41、“of”意图细节编号h42和“checktheprice”意图状态编号s31转换为“checkthepriceof”意图状态编号s41。
基于图6所示的示例模型,时间步骤2的意图解码器632将“howmany”一般意图编号h21、“many”意图细节编号h22、纹理图像编号h23和“how”意图状态编号s11转换为“howmany”意图状态编号s21。基于图7所示的示例模型,在时间步骤3的意图解码器748将“whenislitigation”一般意图编号h31、“litigation”意图细节编号h32、第三个小时的音频编号h33和“whenis”意图状态编号s21转换为“whenislitigation”意图状态编号s31。基于图8所示的示例模型,在时间步骤4的意图解码器864将“flightfromdenverto”一般意图编号h41、“to”意图细节编号42、第四词汇编号h43和“flightfromdenver”意图状态编号s31转换为“flightfromdenverto”意图状态编号s41。
框910:在生成意图值和细节值之后,细节解码器基于意图值和细节值确定细节状态值和意图细节值。系统将隐藏状态转换为意图细节状态编号和意图细节标签。例如但不限于,这可以包括训练阶段4的细节解码器348将“flightfromdenverto”一般意图编号h41、“to”意图细节编号h42和“flight”细节状态编号s32转换为“to”细节状态编号s42和确定意图细节标签y42=0的意图细节编号
基于图6所示的示例模型,在时间步骤2的细节解码器634将“howmany”一般意图编号h21、“many”意图细节编号h22、纹理图像编号h23和“how”细节状态编号s12转换为“many”细节状态编号s22和具有意图细节标签y22=0的“many”意图细节编号
框912:在生成意图值和细节值之后,补充解码器可选地基于意图值、细节值和多个补充值确定补充状态值和一个补充值。系统将隐藏状态转换为状态编号和其他模型的标签,例如图像、音频或建议模型。在实施例中,这可以包括在时间步骤的2图像解码器636将“howmany”一般意图编号h21、“many”意图细节编号h22、纹理图像编号h23和“how”图像状态编号s12转换为“many”图像状态编号s23和包括冲浪者2标签的纹理注意力图2y23。
基于图7所示的示例模型,在时间步骤3的音频解码器752将“whenislitigation”一般意图编号h31、“litigation”意图细节编号h32、第三个小时的音频编号h33和第二个小时的音频状态编号s23转换为第三个小时的音频状态编号s33以及确定第三个小时的音频标签y33=0的第三个小时的音频编号
框914:在对一些值进行解码之后,意图编码器基于意图值和接收到的短语中的另一个对象确定其他意图值。系统将词语的词典编号从输入的短语转换为一般意图编号。例如但不限于,这可以包括在训练阶段5的意图编码器336将“philadelphia”310的词典编号x5和“flightfromdenverto”一般意图编号h41转换为“flightfromdenvertophiladelphia”一般意图编号h51。基于图4所示的示例模型,在时间步骤5的意图编码器444将“apple”410的词典编号x5和“checkthepriceof”一般意图编号h41转换为“checkthepriceofapple”一般意图编号h51。
基于图6所示的示例模型,在时间步骤3的意图编码器638将“surfers”606的词典编号x3和“howmany”一般意图编号h21转换为“howmanysurfers”一般意图编号h31。基于图7所示的示例模型,在时间步骤4的意图编码器752将“discussed”708的词典编号x4和“whenislitigation”的一般意图编号h31转换为“whenislitigationdiscussed”一般意图编号h41。基于图8所示的示例模型,在时间步骤5的意图编码器870将“philadelphia”810的词典编号x5和“flightfromdenverto”一般意图编号h41转换为“flightfromdenvertophiladelphia”一般意图编号h51。
框916:在解码了一些值之后,细节编码器基于细节值和接收到的短语中的另一对象确定其他细节值。系统将词语的词典编号从输入的短语转换为意图细节编号。例如但不限于,这可以包括在训练阶段5的细节编码器338将“philadelphia”310的词典编号x5和“to”意图细节编号h42转换为“philadelphia”意图细节编号h52。基于图4所示的示例模型,在时间步骤5的细节编码器446将“apple”310的词典编号x5和“of”意图细节编号h42转换为“apple”意图细节编号h52。
基于图6所示的示例模型,在时间步骤3的细节编码器640将“surfers”606的词典编号x3和“many”意图细节编号h22转换为“surfers”意图细节编号h32。基于图7所示的示例模型,在时间步骤4的细节编码器754将“discussed”708的词典编号x4和“litigation”意图细节编号h32转换为“discussed”意图细节编号h42。基于图8所示的示例模型,在时间步骤5的细节编码器872将“philadelphia”810的词典编号x5和“to”意图细节编号h42转换为“philadelphia”意图细节编号h52。
框918:在对一些值进行解码之后,补充编码器可选地基于其他意图值、其他细节值和接收到的补充对象确定其他补充值。系统将另一个对象的词典编号转换为其他编号,例如图像、音频或建议编号。在实施例中,这可以包括在时间步骤3的图像编码器642将对比层612的词典编号z3和“many”图像编号h23转换为对比图像编号h33。
基于图7所示的示例模型,在时间步骤4的音频编码器756将记录的第四个小时716的音频编号z4和第三个小时的音频编号h33转换为第四个小时的音频编号h43。基于图8所示的示例模型,在时间步骤5的建议编码器874将时间步骤5的词汇集820的词典编号z5和第四词汇编号h43转换为第五词汇编号h53。
框920:在生成了意图值和细节值之后,意图解码器基于其他意图值、其他细节值和意图状态值确定一般意图值。系统识别该一般意图。例如但不限于,这可以包括在训练阶段5的意图解码器340将“flightfromdenvertophiladephia”一般意图编号h51、“philadephia”意图细节编号h52和“flightfromdenverto”意图状态编号s41转换为确定一般意图类别y意图1=“flight”的一般意图编号
基于图6所示的示例模型,在时间步骤3的意图解码器644将“howmanysurfers”一般意图编号h31、“surfers”意图细节编号h32、对比图像编号h33和“many”意图状态编号s21转换为确定了一般意图类别y意图1=“计数”的“howmanysurfers”一般意图状态编号
框922:在生成意图值和细节值之后,细节解码器基于其他意图值、其他细节值和细节状态值确定另一意图细节值。系统将隐藏状态转换为意图细节状态编号和意图细节标签。例如但不限于,这可以包括训练阶段5处的细节解码器350将“flightfromdenvertophiladelphia”一般意图编号h51、“philadelphia”意图细节编号h52和“to”细节状态编号s42转换为确定意图细节标签y52=“到达地”的意图细节编号
基于图6所示的示例模型,在时间步骤3的细节解码器646将“howmanysurfers”一般意图编号h31、“surfers”意图细节编号h32、对比图像编号h33和“many”细节状态编号s22转换为“surfers”意图细节编号
框924:除了确定一般意图外,补充解码器还可以根据其他意图值、其他细节值和补充状态值确定另一补充值。系统将隐藏状态转换为另一个模型的标签,例如图像、音频记录或自动建议。在实施例中,这可以包括在时间步骤3的图像解码器648将“howmanysurfers”一般意图编号h31、“surfers”意图细节编号h32、对比图像编号h33和纹理图像编号s23转换为包含冲浪者1标签和冲浪者2标签的对比注意力图3y33。
基于图7所示的示例模型,在时间步骤4的音频解码器762将“whenislitigationdiscussed”一般意图编号h41、“discussed”意图细节编号h42、第四个小时的音频编号h43和第三个小时的音频状态编号s33转换为确定第四个小时的音频标签y43=“3:19至3:38”的第四个小时的音频编号
框926:在确定了一般意图值之后,基于确定的一般意图值和经验证的一般意图之间的差,可选地在意图编码器和/或意图解码器中修改参数。系统基于一般意图类别的正确性训练一般意图模型。例如但不限于,这可以包括训练器212基于y意图1=“flight”来计算损失函数,以及系统管理员验证短语“flightfromdenvertophiladephia”的一般意图类别“flight”。因此,训练器212对意图编码器或意图解码器的参数进行最小的改变(如果有的话)。
框928:在确定了各种意图细节值之后,可选地在细节编码器和/或细节解码器中基于确定的意图细节值和/或确定的其他意图细节值与至少一个经验证的意图细节之间的差来修改参数。系统基于意图细节标签的正确性来训练意图细节模型。例如但不限于,这可以包括训练器212基于y12=“0”、y32=“出发地”、y52=“到达地”来计算损失函数,以及系统管理员仅验证短语“flightfromdenvertophiladephia”的意图细节标签“出发地”和“到达地”。因此,训练器212改变细节编码器和/或细节解码器中的参数,以减小生成意图细节标签y12=“0”的概率。
框930:在多个模型理解了接收到的短语之后,可选地输出对接收到的短语的响应,该响应是基于确定的一般意图值、确定的意图细节值和/或确定的其他意图细节值。系统输出对多个模型所理解的自然语言短语的响应。在实施例中,这可以包括自然语言理解引擎216以回答“您什么时候要订购苹果这种水果(whendoyouwanttoorderdeliveryofthefruitapple)?”或“您想购买多少苹果公司的股票(howmuchstockdoyouwanttopurchaseinthecompanyapple)?”来回复用户。
基于图6所示的示例模型,自然语言理解引擎216通过用户提供的图像中的“2个冲浪者”的计数来响应用户,并使用注意力图1-3识别标注了冲浪者1和2的位置。基于图7所示的示例模型,自然语言理解引擎216以“音频记录包括从3:19到3:38的诉讼讨论”的答复对用户做出响应,从而为用户节省了本是用来听这3个小时19分钟录音的三小时以上的时间。基于图8所示的示例模型,自然语言理解引擎216通过自动建议其他文本输入选项y13=“机票”、y23=“状态”、y33=“时间”、y43=“登机口”来响应用户输入的文本“flightfromdenvertophiladephia”。
尽管图9描绘了以特定顺序出现的框902-930,但是框902-930可以以另一顺序出现。在其他实施方式中,框902-930中的每个框也可以与其他框组合执行和/或一些框可以划分为不同的框集合。在其他实施方式中,可以省略框902-930中的至少一个。例如,可以省略框906、912、918、924、926、928和930。
根据本公开的实施例,一种方法包括:意图编码器基于接收到的短语中的对象确定意图值;细节编码器基于接收到的短语中的对象确定细节值;意图解码器基于所述意图值和所述细节值确定意图状态值;所述意图编码器基于所述意图值和接收到的短语中的另一对象确定其他意图值;所述细节编码器基于所述细节值和接收到的短语中的另一对象确定其他细节值;所述意图解码器基于所述其他意图值、所述其他细节值和所述意图状态值确定一般意图值;以及所述细节解码器基于所述其他意图值、所述其他细节值和所述细节状态值确定另一意图细节值。
根据本公开的实施例,所述方法还包括:基于确定的一般意图值与经验证的一般意图之间的差来修改所述意图编码器和所述意图解码器中的至少一个中的参数;或者基于确定的意图细节值和确定的其他意图细节值中的至少一个与至少一个经验证的意图细节之间的差来修改所述细节编码器和所述细节解码器中的至少一个中的参数。
根据本公开的实施例,该方法还包括:输出对接收到的短语的响应,所述响应基于确定的一般意图值、确定的意图细节值和确定的其他意图细节值中的至少一个。
根据本公开的实施例,该方法还包括:补充编码器基于接收到的补充对象确定多个补充值;补充解码器基于所述意图值、所述细节值和所述多个补充值确定补充状态值和一个补充值;所述补充编码器基于所述意图值、所述细节值和接收到的补充对象确定其他补充值;以及所述补充解码器基于所述其他意图值、所述其他细节值和所述补充状态值来确定另一补充值。
根据本公开的实施例,所述补充编码器包括图像编码器,所述多个补充值包括图像值,接收到的补充对象包括图像对象,所述补充解码器包括图像解码器,所述补充状态值包括图像状态值,所述一个补充值包括图像值,所述其他补充值包括其他图像值,并且所述另一补充值包括另一图像值。
根据本公开的实施例,所述补充编码器之一包括音频编码器,所述多个补充值包括音频值,接收到的补充对象包括音频对象,所述补充解码器包括音频解码器,所述补充状态值包括音频状态值,所述一个补充值包括音频值,所述其他补充值包括其他音频值,所述另一补充值包括另一音频值,所述补充编码器包括建议编码器,所述多个补充值包括建议值,接收到的补充对象包括建议对象,所述补充解码器包括建议解码器,所述补充状态值包括建议状态值,所述一个补充值包括建议值,所述其他补充值包括其他建议值,并且所述另一补充值包括另一建议值。
根据本公开的实施例,一种方法包括:由意图编码器基于接收到的短语中的对象来确定意图值;细节编码器基于接收到的短语中的对象确定细节值;意图解码器基于所述意图值和所述细节值确定意图状态值;所述意图编码器基于所述意图值和接收到的短语中的另一个对象确定其他意图值;所述细节编码器基于所述细节值和接收到的短语中的另一个对象确定其他细节值;所述意图解码器基于所述其他意图值、所述其他细节值和所述意图状态值确定一般意图值;基于确定的一般意图值和经验证的一般意图之间的差来修改所述意图编码器和所述意图解码器中的至少一个中的参数。
根据本公开的实施例,所述方法还包括:细节解码器基于所述意图值和所述细节值确定细节状态值和意图细节值;所述细节解码器基于所述其他意图值、所述其他细节值和所述细节状态值确定另一意图细节值;以及基于确定的意图细节值和确定的其他意图细节值中的至少一个与至少一个经验证的意图细节之间的差来修改所述细节编码器和所述细节解码器中的至少一个中的参数。
将描述可以在其中实现主题的示例性硬件设备。本领域普通技术人员将理解,图10所示的元件可以根据系统实现而变化。参考图10,用于实现本文公开的主题的示例性系统包括硬件设备1000,其包括处理器1002、存储器1004、存储装置1006、数据输入模块1008、显示适配器1010、通信接口1012、以及将元件1004-1012耦接到处理器1002的总线1014。
总线1014可以包括任何类型的总线架构。示例包括存储器总线、外围总线、局部总线等。处理器1002是指令执行机器、装置或设备,并且可以包括微处理器、数字信号处理器、图形处理单元、专用集成电路(asic)、现场可编程门阵列(fpga)等。处理器1002可以配置为执行存储在存储器1004和/或存储装置1006中和/或通过数据输入模块1008接收的程序指令。在本公开的实施例中,处理器1002可以包括或控制意图解码器(例如,意图编码器220)、意图解码器(例如,意图解码器22)、细节编码器(例如,细节编码器226)、细节解码器(例如,细节解码器228)、补充编码器(例如,补充编码器232)和/或补充解码器(例如,补充解码器234)。
存储器1004可以包括只读存储器(rom)1016和随机存取存储器(ram)1018。存储器1004可以被配置为在设备1000的操作期间存储程序指令和数据。在各个实施例中,存储器1004可以包括多种存储技术中的任何一种,例如静态随机存取存储器(sram)或动态ram(dram),例如包括诸如双数据速率同步dram(ddrsdram)、纠错码同步dram(eccsdram)或rambusdram(rdram)。存储器1004还可包括诸如非易失性闪存ram(nvram)或rom的非易失性存储技术。在一些实施例中,可以预期的是,存储器1004可以包括诸如前述的技术以及未特别提及的其他技术的组合。当主题在计算机系统中实现时,包含帮助在计算机系统内的元件之间(例如在启动期间)传递信息的基本例程的基本输入/输出系统(bios)1020被存储在rom1016中。
存储装置1006可以包括:闪存数据存储设备,用于从闪存读取和写入到闪存;硬盘驱动器,用于从硬盘读取和写入到硬盘;磁盘驱动器,用于从磁盘驱动器读取或写入到磁盘驱动器;和/或用于从写入可移动光盘(例如cdrom,dvd或其他光学介质)读取或写入到可移动光盘的光盘驱动器。驱动器及其相关的计算机可读介质为硬件设备1000提供了计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。
注意,本文描述的方法可以体现在存储在计算机可读介质中的可执行指令中,以供指令执行机器、装置或设备(例如基于计算机或包含处理器的机器、装置或设备)使用或与其结合使用。本领域技术人员将认识到,对于一些实施例,可以使用其他类型的计算机可读介质,其可以存储可由计算机访问的数据,例如磁带、闪存卡、数字视频光盘、伯努利墨盒等。在示例性操作环境中,ram、rom等也可以被使用。如这里所使用的,“计算机可读介质”可以包括任何适当的介质中的一个或多个,用于以电子、磁性、光学和电磁格式中的一种或多种存储计算机程序的可执行指令,从而使得指令执行机器、系统、装置或设备可以从计算机可读介质读取(或获取)指令并执行用于执行所描述的方法的指令。常规示例性计算机可读介质的非详尽列表包括:便携式计算机软盘;ram;rom;可擦可编程只读存储器(eprom或闪存);光学存储设备,包括便携式光盘(cd)、便携式数字视频光盘(dvd)、高清dvd(hd-dvdtm)和蓝光光盘;等等。
多个程序模块可以存储在存储装置1006、rom1016或ram1018上,包括操作系统1022、一个或更多个应用程序1024、程序数据1026和其他程序模块1028。用户可以将命令和信息通过数据输入模块1008输入到硬件设备1000中。数据输入模块1008可以包括诸如键盘、触摸屏、定点设备等的机构。其他外部输入设备(未显示)通过外部数据输入接口1030连接到硬件设备1000。例如但不限于,外部输入设备可以包括麦克风、操纵杆、游戏手柄、碟形卫星天线、扫描仪等。在一些实施例中,外部输入设备可以包括视频或音频输入设备,诸如摄像机、静态照相机等。数据输入模块1008可以被配置为从设备1000的一个或更多个用户接收输入并将输入通过总线1014传送到处理器1002和/或存储器1004。
显示器1032也经由显示器适配器1010连接到总线1014。显示器1032可以被配置为向一个或更多个用户显示设备1000的输出。在一些实施例中,例如触摸屏的给定设备可以充当数据输入模块1008和显示器1032两者。外部显示设备还可以经由外部显示接口1034连接到总线1014。未示出的输出设备(例如,扬声器和打印机)可以连接到硬件设备1000。
硬件设备1000可以使用经由通信接口1012到一个或更多个远程节点(未示出)的逻辑连接在联网环境中操作。远程节点可以是另一台计算机、服务器、路由器、对等设备或其他公共网络节点,并且通常包括上述相对于硬件设备1000的许多或所有元件。通信接口1012可以与无线网络和/或有线网络接口。无线网络的示例包括例如蓝牙网络、无线个人局域网、无线802.11局域网(lan)和/或无线电话网络(例如,蜂窝、pcs或gsm网络)。有线网络的示例包括例如lan、光纤网络、有线个人局域网、电话网络和/或广域网(wan)。这样的联网环境在企业内部网、因特网、办公室、企业范围的计算机网络等中是常见的。在一些实施例中,通信接口1012可以包括被配置为支持存储器1004与其他设备之间的直接存储器访问(dma)传输的逻辑。
在联网环境中,相对于硬件设备1000或其部分描述的程序模块可以存储在远程存储设备中,例如存储在服务器上。将理解的是,可以使用在硬件设备1000和其他设备之间建立通信链路的其他硬件和/或软件。
应当理解,图10所示的硬件设备1000的布置仅仅是一种可能的实现方式,并且其他布置也是可能的。还应该理解的是,由权利要求书所限定的,下面描述的并且在各种框图中示出的各种系统组件(和装置)表示被配置为执行本文描述的功能的逻辑组件。例如,这些系统组件(和装置)中的一个或更多个可以全部或部分地通过硬件设备1000的布置中所示的至少一些组件来实现。
根据本发明的一个实施例,一种系统包括一个或更多个处理器;存储多个指令的非暂时性计算机可读介质,所述指令在执行时使所述一个或更多个处理器执行以下操作:意图编码器基于接收到的短语中的对象确定意图值;细节编码器基于接收到的短语中的对象确定细节值;意图解码器基于所述意图值和所述细节值确定意图状态值;细节解码器基于所述意图值和所述细节值确定细节状态值和意图细节值;所述意图编码器基于所述意图值和所述接收到的短语中的另一个对象确定其他意图值;所述细节编码器基于所述细节值和所述接收到的短语中的另一个对象确定其他细节值;所述意图解码器基于所述其他意图值、所述其他细节值和所述意图状态值确定一般意图值;以及所述细节解码器基于所述其他意图值、所述其他细节值和所述细节状态值确定另一意图细节值。
根据本公开的实施例,所述多个指令在被执行时使所述一个或更多个处理器进一步执行以下至少一个操作:基于确定的一般意图值与经验证的一般意图之间的差来修改所述意图编码器和所述意图解码器中的至少一个中的参数;或者基于确定的意图细节值和确定的其他意图细节值中的至少一个与至少一个经验证的意图细节之间的差来修改所述细节编码器和所述细节解码器中的至少一个中的参数。
根据本公开的实施例,所述多个指令在被执行时使所述一个或更多个处理器进一步执行以下操作:输出对接收到的短语的响应,所述响应基于确定的一般意图值、确定的意图细节值和确定的其他意图细节值中的至少一个。
根据本公开的实施例,所述多个指令在被执行时将进一步使所述一个或更多个处理器执行以下操作:补充编码器基于接收到的补充对象确定多个补充值;补充解码器基于所述意图值、所述细节值和所述多个补充值确定补充状态值和一个补充值;所述补充编码器基于所述意图值、所述细节值和接收到的补充对象确定其他补充值;以及所述补充解码器基于所述其他意图值、所述其他细节值和所述补充状态值来确定另一补充值。
根据本公开的实施例,所述补充编码器包括图像编码器,所述多个补充值包括图像值,接收到的补充对象包括图像对象,所述补充解码器包括图像解码器,所述补充状态值包括图像状态值,所述一个补充值包括图像值,所述其他补充值包括其他图像值,并且所述另一补充值包括另一图像值。
根据本公开的实施例所述补充编码器之一包括音频编码器,所述多个补充值包括音频值,接收到的补充对象包括音频对象,所述补充解码器包括音频解码器,所述补充状态值包括音频状态值,所述一个补充值包括音频值,所述其他补充值包括其他音频值,所述另一补充值包括另一音频值,所述补充编码器包括建议编码器,所述多个补充值包括建议值,接收到的补充对象包括建议对象,所述补充解码器包括建议解码器,所述补充状态值包括建议状态值,所述一个补充值包括建议值,所述其他补充值包括其他建议值,并且所述另一补充值包括另一建议值。
根据本公开的实施例,一种计算机程序产品包括当从非暂时性计算机可读介质检索时由一个或更多个处理器执行的计算机可读程序代码。该程序代码包括指令以便:意图编码器基于接收到的短语中的对象确定意图值;细节编码器基于接收到的短语中的对象确定细节值;意图解码器基于所述意图值和所述细节值确定意图状态值;细节解码器基于所述意图值和所述细节值确定细节状态值和意图细节值;所述意图编码器基于所述意图值和所述接收到的短语中的另一个对象确定其他意图值;所述细节编码器基于所述细节值和所述接收到的短语中的另一个对象确定其他细节值;所述意图解码器基于所述其他意图值、所述其他细节值和所述意图状态值确定一般意图值;以及所述细节解码器基于所述其他意图值、所述其他细节值和所述细节状态值确定另一意图细节值。
根据本公开的实施例,所述程序代码还包括指令以便:基于确定的一般意图值与经验证的一般意图之间的差来修改所述意图编码器和所述意图解码器中的至少一个中的参数;或者基于确定的意图细节值和确定的其他意图细节值中的至少一个与至少一个经验证的意图细节之间的差来修改所述细节编码器和所述细节解码器中的至少一个中的参数。
根据本公开的实施例,程序代码还包括指令以便:输出对接收到的短语的响应,所述响应基于确定的一般意图值、确定的意图细节值和确定的其他意图细节值中的至少一个。
根据本公开的实施例,程序代码还包括指令以便:补充编码器基于接收到的补充对象确定多个补充值;补充解码器基于所述意图值、所述细节值和所述多个补充值确定补充状态值和一个补充值;所述补充编码器基于所述意图值、所述细节值和接收到的补充对象确定其他补充值;以及所述补充解码器基于所述其他意图值、所述其他细节值和所述补充状态值来确定另一补充值。
根据本公开的实施例,所述补充编码器包括图像编码器,所述多个补充值包括图像值,接收到的补充对象包括图像对象,所述补充解码器包括图像解码器,所述补充状态值包括图像状态值,所述一个补充值包括图像值,所述其他补充值包括其他图像值,并且所述另一补充值包括另一图像值。
根据本公开的实施例,所述补充编码器之一包括音频编码器,所述多个补充值包括音频值,接收到的补充对象包括音频对象,所述补充解码器包括音频解码器,所述补充状态值包括音频状态值,所述一个补充值包括音频值,所述其他补充值包括其他音频值,所述另一补充值包括另一音频值,所述补充编码器包括建议编码器,所述多个补充值包括建议值,接收到的补充对象包括建议对象,所述补充解码器包括建议解码器,所述补充状态值包括建议状态值,所述一个补充值包括建议值,所述其他补充值包括其他建议值,并且所述另一补充值包括另一建议值。
另外,尽管这些组件中的至少一个至少部分地被实现为电子硬件组件,并因此构成机器,但是其他组件可以以软件、硬件、或软件和硬件的组合来实现。更具体地,由权利要求书限定的至少一个组件至少部分地被实现为电子硬件组件,诸如指令执行机器(例如,基于处理器或包含处理器的机器)和/或专用电路或电路(例如,相互连接以执行特定功能的离散逻辑门),如图10所示。
其他组件可以用软件、硬件、或软件和硬件的组合来实现。而且,可以组合这些其他组件中的一些或全部,可以完全省略其中的一些,并且可以添加附加组件,同时仍实现本文所述的功能。因此,本文描述的主题可以以许多不同的变形来体现,并且所有这样的变体都被认为在所要求保护的范围内。
在上面的描述中,除非另外指出,否则将参考由一个或多个设备执行的动作的行为和符号表示来描述主题。这样,可以理解,有时被称为计算机执行的这种动作和操作包括处理单元对结构化形式的数据的操纵。该操作转换数据或将其保存在计算机的存储系统中的位置,以本领域技术人员熟知的方式重新配置或以其他方式改变设备的操作。维护数据的数据结构是存储器的物理位置,具有由数据格式定义的特定属性。然而,尽管在上下文中描述了主题,但是这并不意味着是限制性的,因为本领域技术人员将理解,下文中描述的各种动作和操作也可以以硬件来实现。
为了促进对上述主题的理解,根据动作序列描述了许多方面。由权利要求书限定的这些方面中的至少一个是由电子硬件组件执行的。例如,将认识到,各种动作可以由专用电路或电路系统,由一个或更多个处理器执行的程序指令,或两者的组合来执行。本文对任何动作序列的描述并不旨在暗示必须遵循为执行该序列而描述的特定顺序。除非本文另外指出或与上下文明显矛盾,否则本文描述的所有方法可以以任何合适的顺序执行。
尽管已经通过示例的方式并且根据特定实施例描述了一种或多种实施方式,但是应当理解,一种或多种实施方式不限于所公开的实施方式。相反,本发明意图涵盖对本领域技术人员显而易见的各种修改和类似布置。因此,所附权利要求书的范围应被赋予最宽泛的解释,以涵盖所有这样的修改和类似的布置。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除