首页 / 专利库 / 人工智能 / 对话代理 / 使用机器学习处理自然语言以基于槽描述符确定槽值

使用机器学习处理自然语言以基于槽描述符确定槽值

阅读:357发布:2020-05-12

专利汇可以提供使用机器学习处理自然语言以基于槽描述符确定槽值专利检索,专利查询,专利分析的服务。并且基于接收到的自然语言输入和基于(多个)槽的(多个)描述符来确定(多个)槽值。在一些实施方式中,自然语言输入作为人与自动化助理的对话的一部分被接收。基于自然语言输入的(多个)词条生成自然语言输入嵌入。进一步,生成(或接收)(多个)描述符嵌入,其中描述符嵌入中的每一个是基于被分配给由对话指示的域的相对应的槽的(多个)描述符而生成的。将自然语言输入嵌入和(多个)描述符嵌入应用于神经网络模型的(多个)层,以针对(多个)槽中的每一个确定自然语言输入的哪个(哪些)词条对应于槽。生成包括(多个)槽的(多个)槽值的命令,其中(多个)槽中的一个或多个的(多个)槽值是基于被确定为对应于(多个)槽的(多个)词条来确定的。,下面是使用机器学习处理自然语言以基于槽描述符确定槽值专利的具体信息内容。

1.一种使用神经网络模型的自然语言处理方法,所述方法由一个或多个处理器实施,并且包括:
接收包括词条的序列的自然语言数据流;
生成所述词条中的一个或多个词条的一个或多个嵌入表示;
将一个或多个槽的一个或多个描述符的一个或多个嵌入表示应用于所述神经网络模型的层;
识别描述符和一个或多个词条之间的对应关系,其中识别所述对应关系包括使用所述神经网络模型处理所述一个或多个词条的一个或多个嵌入表示以及所述一个或多个描述符的一个或多个嵌入表示;
从第一网络节点向第二网络节点发送与所识别的对应关系相关的数据,所述第二网络节点被配置为响应于接收到所述数据而执行一个或多个动作,所述一个或多个动作包括使得响应性内容被生成和发送;以及
在所述第一网络节点处接收所述响应性内容。
2.根据权利要求1所述的方法,其中,一个或多个描述符的接收到的嵌入表示中的一个或多个涉及不在所述神经网络在其上进行训练的一个或多个域当中的域。
3.根据权利要求1或权利要求2所述的方法,其中,所述神经网络模型是使用多个样本自然语言数据流和来自多个域的一个或多个槽标签的描述符的样本嵌入表示来训练的神经网络模型。
4.根据权利要求1至3中任一项所述的方法,其中,所述一个或多个描述符的一个或多个嵌入表示连同所述一个或多个词条的一个或多个嵌入表示一起作为输入被应用于所述神经网络模型的组合层。
5.根据权利要求4所述的方法,其中所述组合层包括前馈层。
6.根据权利要求4或权利要求5所述的方法,其中,所述组合层在所述神经网络模型中位于两个存储层之间。
7.根据权利要求1至6中任一项所述的方法,其中,所述神经网络模型的最终层包括soft-max层,所述soft-max层被配置为输出接收到的词条的序列的内外开始表示。
8.根据权利要求1至7中任一项所述的方法,其中,所述方法还包括在将所述词条的嵌入表示输入到所述神经网络模型的层之前,将所述词条的序列分类为语义域。
9.根据权利要求1至7中任一项所述的方法,其中,所述方法还包括:
在麦克处接收语音输入;以及
使用语音到文本算法从所述语音输入生成所述词条的序列。
10.根据权利要求1至9中任一项所述的方法,其中,基于将所述词条中的一个或多个词条应用于所述神经网络模型来执行生成所述词条中的一个或多个词条的一个或多个嵌入表示。
11.根据权利要求1至9中任一项所述的方法,其中,生成所述词条中的一个或多个词条的一个或多个嵌入表示在另外的神经网络模型内执行。
12.一种训练用于自然语言处理的神经网络模型的方法,所述方法包括以下步骤:
将一个或多个槽的一个或多个描述符的一个或多个嵌入表示应用于所述神经网络模型的层;
接收与多个域相关的自然语言数据流,所述数据流包括具有与所述一个或多个描述符的已知对应关系的词条;
生成所述词条中的一个或多个词条的一个或多个嵌入表示;
使用所述神经网络模型处理所述一个或多个词条的一个或多个嵌入表示和所述一个或多个描述符的一个或多个嵌入表示,以识别描述符和一个或多个词条之间的对应关系;
将所识别的对应关系与所述已知对应关系进行比较;以及
根据所述比较更新所述神经网络模型中的权重。
13.根据权利要求12所述的方法,其中,所述方法还包括根据所述神经网络模型的所确定的性能来调整所述神经网络模型的超参数。
14.根据权利要求12或权利要求13所述的方法,其中,描述符的所述一个或多个嵌入表示被应用在所述神经网络模型的组合层,其中所述组合层被配置为将一个或多个描述符的一个或多个嵌入表示与所述一个或多个词条的一个或多个嵌入表示相组合。
15.根据权利要求14所述的方法,其中,所述组合层包括前馈层。
16.根据权利要求14或权利要求15所述的方法,其中,所述组合层在所述神经网络模型中位于两个存储层之间。
17.一种包括处理器和存储器的装置,其中所述存储器包括计算机可读代码,当所述计算机可读代码由所述处理器执行时,使得所述处理器提供用于处理与自然语言数据流中的词条的序列相关的数据的神经网络,其中所述神经网络包括多个层,所述多个层包括至少一个存储层,所述神经网络被配置为:
在所述多个层中的一个处接收一个或多个槽标签的一个或多个描述符的一个或多个嵌入表示;
识别描述符和一个或多个词条之间的对应关系,其中,识别所述对应关系包括使用所述神经网络处理所述一个或多个词条的一个或多个嵌入表示和一个或多个描述符的一个或多个嵌入表示。
18.根据权利要求17所述的装置,其中,在组合层处接收所述一个或多个描述符的一个或多个嵌入表示,所述组合层被配置为将一个或多个描述符的一个或多个嵌入表示与所述一个或多个词条的一个或多个嵌入表示相组合。
19.根据权利要求18所述的装置,其中,所述神经网络包括第一存储层和第二存储层,其中所述组合层位于所述第一存储层和第二存储层之间。
20.根据权利要求19所述的装置,其中,所述第一存储层和第二存储层包括长短期存储层。
21.根据权利要求20所述的装置,其中,所述第一存储层和第二存储层包括双向长短期存储层。
22.根据权利要求17至21中任一项所述的装置,其中,所述神经网络被配置为接收所述词条的序列作为到所述神经网络的存储层的输入。
23.根据权利要求17至22中任一项所述的装置,其中,所述神经网络包括soft-max层,所述soft-max层被配置为输出词条的输入序列的内外开始表示。
24.一种由一个或多个处理器实施的方法,包括:
接收在人与自动化助理的对话期间基于用户界面输入生成的自然语言输入;
生成基于所述自然语言输入确定的词条的词条嵌入;
基于所述人与自动化助理的对话来选择域;
为被分配给所选择的域的槽的至少一个文本描述符确定至少一个槽描述符嵌入,所述至少一个文本槽描述符嵌入是基于在一个或多个计算机可读介质中被分配给所选择的域的所述至少一个槽描述符或所述槽描述符嵌入确定的;
基于将所述词条嵌入和所述槽描述符嵌入应用于经训练的神经网络模型,确定所述词条中的一个或多个词条对应于被分配给所选择的域的槽;
生成代理命令,所述代理命令包括基于被确定为对应于所述槽的词条的槽的槽值;以及
通过一个或多个网络向代理发送代理命令,其中,所述代理命令使所述代理生成响应性内容并通过一个或多个网络发送所述响应性内容。
25.根据权利要求24所述的方法,其中选择所述域包括基于所述人与自动化助理的对话选择所述代理,并且其中,所述至少一个槽描述符嵌入基于被分配给所述代理的至少一个槽描述符或所述槽描述符嵌入来确定。
26.根据权利要求24或权利要求25所述的方法,还包括:
接收由所述代理生成的响应性内容。
27.根据权利要求26所述的方法,还包括:
向在其处提供所述用户界面输入的客户端设备发送基于由所述代理生成的响应性内容的输出。
28.根据权利要求24至27中任一项所述的方法,其中,基于将所述词条嵌入和所述槽描述符嵌入应用于经训练的神经网络模型,确定所述词条中的一个或多个词条对应于被分配给所选择的域的槽包括:
将所述词条嵌入和所述槽描述符嵌入两者应用于所述经训练的神经网络模型的组合层。
29.根据权利要求28所述的方法,其中,所述组合层是前馈层。
30.根据权利要求24至29中任一项所述的方法,其中,生成所述自然语言输入的词条的词条嵌入包括:
将所述词条应用于所述经训练的神经网络模型的存储层,以生成所述词条嵌入。
31.根据权利要求30所述的方法,其中,所述存储层是包括多个存储单元的双向存储层。
32.根据权利要求30所述的方法,其中,生成所述自然语言输入的词条的词条嵌入还包括:
将所述词条中的一个或多个词条的一个或多个注释应用于所述存储层以生成所述词条嵌入。
33.根据权利要求30所述的方法,其中,所述组合层在所述存储层的下游,并且在所述神经网络模型的一个或多个附加层的上游。
34.根据权利要求33所述的方法,其中,所述一个或多个附加层包括以下中的至少一个:附加存储层;和仿射层。
35.一种配置为执行权利要求1至16和24至34中任一项所述的方法的装置。
36.一种计算机可读指令,当所述计算机可读指令由计算装置执行时使得所述计算装置执行权利要求1至16和24至34中任一项所述的方法。

说明书全文

使用机器学习处理自然语言以基于槽描述符确定槽值

背景技术

[0001] 自动化助理(也称为“个人助理”、“移动助理”等)可以由用户经由各种客户端设备(诸如智能电话、平板计算机、可穿戴设备、汽车系统、独立的个人助理设备等)进行交互。自动化助理接收来自用户的输入(例如,键入和/或口头自然语言输入),并用响应性内容(例如,视觉和/或听觉自然语言输出)进行响应。经由客户端设备进行交互的自动化助理可以
经由客户端设备本身和/或经由与客户端设备(例如,“”中的(多个)计算设备)进行网络通信中一个或多个远程计算设备来实施。
[0002] 一些自动化助理与一个或多个代理(诸如第三方(3P)代理)交互。例如,一些自动化助理可以处理接收到的自然语言输入,以生成3P代理的代理命令,并将所生成的代理命
令发送给3P代理。响应性内容可以由3P代理响应代理命令生成,并被用于提供响应于自然
语言输入的输出。在一些情况下,自动化助理接收响应性内容并提供响应性内容(或其转
换)作为响应性输出。在一些情况下,3P代理本身可以直接提供响应性内容,而不利用自动化助理作为中介。
[0003] 在处理自然语言输入以生成代理命令时,一些自动化助理试图基于自然语言输入来确定与代理命令相关的(多个)槽的(多个)槽值。所确定的(多个)槽值可以被包括在代理
命令中。通常,控制自动化助理的一方可以预定义可以由3P代理利用的槽。考虑到这种预定义的槽,执行自然语言输入的处理以生成槽值。然而,这种预定义的槽可能不适用于3P代理被配置为用于其的各种域和/或意图。例如,用于3P代理的期望槽可以不由任何预定义槽来定义,和/或可以由预定义槽中的一个或多个来过于概括和/或过于具体地定义。这可能限
制各种3P代理的功能性和/或导致与3P代理的在计算方面负担沉重的过度交互,以解析之
前已经由先前的自然语言输入指示的(多个)值。进一步,用于实现对(多个)新槽的(多个)
槽值的处理的自动化助理的任何调整(例如,对新域的调整)可能需要执行大量的在计算方
面负担沉重的训练,这些训练被具体化为(多个)新槽。由各种当前槽值确定技术呈现了附
加和/或可替代的缺点。
发明内容
[0004] 本说明书总体上涉及用于基于(多个)自然语言输入词条(token)和基于(多个)槽的(多个)描述符来确定代理命令的(多个)槽的(多个)槽值的方法、系统和计算机可读介
质。槽的描述符可以是槽的文本描述符,诸如描述可以由槽的槽值定义的(多个)参数的标
题和/或其他描述符。例如,“餐馆预订”域可以包括各种槽,诸如具有“人数”描述符的槽、具有“餐馆名称”描述符的另一槽、具有“预订日期”描述符的另一槽、具有“菜肴”描述符的另一槽、具有“预订时间”描述符的另一槽等。在一些实施方式中,在确定(多个)槽值时,可以使用除了(多个)槽的(多个)描述符之外的(多个)槽的(多个)附加特征。例如,除了槽的(多个)描述符之外或者代替槽的(多个)描述符,可以利用公共类型的槽的一个或多个特定词
条。例如,对于具有“离开时间”描述符的槽,可以附加地利用(多个)特定词条,诸如<出发>和/或<时间>词条。
[0005] 在一些实施方式中,自然语言输入作为用户(例如,经由客户端设备)和(例如,经由客户端设备和/或与客户端设备进行网络通信的一个或多个远程计算设备实施的)自动
化助理之间的对话的一部分被接收。自然语言输入包括词条的序列,并且可以作为数据流
被接收。该序列的词条可以各自是一个或多个字符,诸如构成单词的一部分的一个或多个
单词(例如,“芝加哥”或“纽约”)或字符(例如,“c”、“h”、“i”、“c”、“a”、“g”和“o”的词条,而不是“芝加哥(Chicago)”的单个词条)。基于自然语言输入的(多个)词条中的一个或多个生成自然语言输入嵌入。在一些实施方式中,基于自然语言输入的注释,诸如本文描述的注释(例如,词性(part of speech)标签的一部分、实体注释、对话状态),附加地或可替代地生成自然语言输入嵌入。进一步,生成(或接收)(多个)描述符嵌入,其中描述符嵌入中的每一个是基于被分配给由对话指示的域的相对应的槽的(多个)描述符生成的。在一些实施方式
或情况下,由对话指示的域是特定代理(例如,特定3P代理),或者由对话指示的特定代理意图。可以通过例如特定代理和/或代理意图的显式调用(例如,通过被分配给特定代理的代
理调用短语)来在对话中指示特定代理和/或特定代理意图。在一些实施方式或情况下,由
对话指示的域可适用于多个代理。例如,该域可以是至少可适用于第一航班预订代理和第
二航班预订代理的“预订航班”域。
[0006] 将自然语言输入嵌入和(多个)描述符嵌入应用于神经网络模型的一个或多个层,以针对(多个)槽中的每一个确定自然语言输入的哪个(哪些)词条(如果有的话)对应于槽。
以这样的方式,在确定对应于(多个)槽的(多个)词条时(经由应用(多个)描述符嵌入)利用
(多个)槽的(多个)描述符。然后生成包括(多个)槽中的一个或多个的(多个)槽值的命令,
其中(多个)槽中的一个或多个的(多个)槽值是基于被确定为对应于(多个)槽的(多个)词
条来确定的。例如,槽的槽值可以是对应于槽的(多个)词条,或者基于(多个)词条确定的另一值(例如,唯一实体标识符)。命令可以被传输到代理,以使代理响应于命令生成响应性内容。响应性内容可以用于提供响应于自然语言输入的输出。在一些情况下,自动化助理接收响应性内容,并提供响应性内容(或其转换)作为响应输出作为对话的一部分。在一些情况
下,代理本身可以直接提供响应性内容,而不利用自动化助理作为中介。
[0007] 在各种实施方式中,同一神经网络模型可以用于确定跨多个不同域的(多个)槽的(多个)值。在这些实施方式中,神经网络模型可以通过应用考虑中的当前域的(多个)槽的
(多个)描述符嵌入(作为对神经网络模型的输入),有效地被适配于给定通路(pass)中的考
虑中的当前域。在这些不同实施方式的一些中,利用来自多个域的训练数据来训练神经网
络模型,其中训练数据的每个实例包括:自然语言输入词条(或其嵌入)、域的(多个)槽的
(多个)描述符(或其嵌入)、以及哪个(哪些)自然语言输入词条(如果有的话)对应于哪个
(哪些)槽的指示。然后,经训练的神经网络模型可以用于对这些域和/或附加域进行槽填充(slot-filling)。例如,经训练的神经网络模型随后可以被用于对未被用于训练神经网络
模型的任何训练数据的实例中的任何一个实例化的附加域进行槽填充。神经网络模型仍可
以用于槽填充这种未观察到的域,因为在使用中,(多个)槽的(多个)描述符的(多个)嵌入
将被应用为到神经网络模型的输入,并且这种(多个)嵌入可以类似于(即,按距离嵌入)(多个)训练实例的(多个)描述符嵌入。将(多个)槽的(多个)描述符的(多个)嵌入应用于神经
网络模型可以避免任何显式模式对齐的需要。
[0008] 可以实施本说明书中描述的主题的特定实施方式,以便实现以下优点中的一个或多个。与其他基于机器学习的方法相比,本说明书中描述的自然语言处理方法和模型可以
提供改进的数据效率,并且可以允许用较少的训练数据进行训练,同时保持性能特征。例
如,通过利用跨多个域的槽描述之间的相似性,可以减少手动注释数据和/或显式模式对齐的使用,并且因此可以减少用于训练神经网络模型的训练数据的总量。例如,神经网络模型可以与新域(例如,新代理)一起使用,而不需要基于特定于新域的训练实例的任何训练(或减少这种训练的量),并且也不需要显式模式对齐(而是依赖于(多个)槽描述符)。而且,与现有架构相比,一些实施方式为自然语言处理提供了改进的神经网络模型架构。
[0009] 作为本文描述的一些实施方式的一个特定示例,可以利用来自多个域(诸如“预订公共汽车票”域、“航班预订”域和“餐馆预订域”)的训练实例来训练神经网络模型。训练实例中的每一个可以包括:(1)相对应的自然语言输入词条;(2)相对应的域的(多个)槽的(多个)槽描述符;以及(3)对应于(多个)槽的(多个)自然语言输入词条(如果有的话)的指示。
例如,“预订公共汽车票”域的第一训练实例可以包括:(1)“为两个成年人预订从路易斯维尔到芝加哥的公共汽车旅程”的自然语言输入词条;(2)“出发位置”的槽描述符;以及(3)“路易斯维尔”是具有“出发位置”的槽描述符的槽的唯一词条的指示。而且,例如,“预订公共汽车票”域的第二训练实例可以包括:(1)“为两个成年人预订从路易斯维尔到芝加哥的公共汽车旅程”的自然语言输入词条;(2)“到达位置”的槽描述符;以及(3)“芝加哥”是具有“到达位置”的槽描述符的槽的唯一词条的指示。而且,例如,“预订公共汽车票”域的第三训练实例可以包括:(1)“为两个成年人预订从路易斯维尔到芝加哥的公共汽车旅程”的自然语言输入词条;(2)“成年乘客数量”的槽描述符;以及(3)“2”是具有“成年乘客数量”的槽描述符的槽的唯一词条的指示。
[0010] 可以基于来自多个域的训练实例来训练神经网络模型。例如,对于上面的第一训练实例,“为两个成年人预订从路易斯维尔到芝加哥的公共汽车旅程”的自然语言输入词条可以逐个词条(token-by-token)地应用于神经网络模型的双向长短期记忆(long short-
term memory,LSTM)层的相对应的输入,以生成词条的嵌入(即,其中嵌入是在应用之后双向LSTM层的隐藏状态)。作为可替代的示例,自然语言输入词条可以应用于神经网络模型的(多个)非存储层(non-memory layer),诸如(多个)卷积层或具有位置特征的前馈层。进一
步,可以生成“出发位置”的槽描述符的嵌入。例如,槽描述符的嵌入可以是经由分离的机器学习模型生成的词袋(bag of word)嵌入(例如,词袋平均值)或Word2vec嵌入。而且,例如,槽描述符的嵌入可以基于将槽描述符应用于神经网络模型本身的(多个)层(例如,(多个)
LSTM层、(多个)前馈层或(多个)卷积层)来生成。槽描述符的嵌入可以与词条的嵌入相结
合。例如,它们可以通过将两者作为输入应用于神经网络模型的(多个)前馈层来组合。然
后,所组合的输出可以被应用于(多个)附加层(例如,(多个)附加的双向LSTM层和/或(多
个)softmax layer),以在神经网络模型上生成最终输出。例如,最终输出可以指示词条中的每一个的内外开始(in-out-begin)(IOB)表示。例如,对于词条中的每一个,最终输出可以指示词条是:在槽外部(即,不包括在槽中)、在槽的开始处(即,槽的第一词条),还是在槽内部(即,槽的后续词条)。最终输出可以与“路易斯维尔”是具有“出发位置”的槽描述符的槽的唯一词条的指示进行比较,并且神经网络模型的权重根据比较进行更新。例如,可以基于最终输出与以下指示的比较来确定误差(如果有的话):“路易斯维尔”是应已经被指示为“槽的开始”的词条,并且所有其他词条被指示为“在槽的外部”。神经网络模型可以基于该误差和可选地来自其他训练实例的误差来更新(例如,通过(多个)误差的反向传播来更
新)。
[0011] 通过基于来自多个域的训练实例的训练,神经网络模型被训练成被用于利用槽的词条和(多个)描述符两者来确定对应于槽的自然语言输入的词条。例如,假设“预定出租
车”的附加域并且进一步假设在训练神经网络模型时没有利用来自预定出租车”域的训练
实例。然而,经训练的神经网络模型仍然可以用于基于自然语言输入来确定域的(多个)槽
的(多个)槽值。例如,假设“预订从机场到市中心出租车”的自然语言输入,以及“预订出租车”域的具有“接车位置”的槽描述符的槽。自然语言输入词条的嵌入和“接车位置”描述符的嵌入可以用于在神经网络模型上生成指示“机场”对应于具有“接车位置”描述符的槽的输出。即使“接车位置”不是用于训练神经网络模型的任何训练实例的槽描述符,也可能是这种情况。例如,“接车位置”的嵌入仍然可以“足够接近”在槽描述符上进行“训练”的其他(诸如“出发位置”)的嵌入,以使得能够利用经训练的模型来确定“机场”对应于具有“接车位置”描述符的槽。以这些和其他方式,本文描述的技术提供了可适用于各种域的神经网络模型,而无需在这些域中的一个或多个域上进行训练(或者减少在训练中利用的来自这些
域的训练实例的数量)。而且,以这些和其他方式,本文描述的技术使得第三方能够用自然语言描述符来定义槽,并且不需要定义的槽中的每一个符合预定义的模式和/或不需要生
成大量标记的训练数据来使得能够识别由第三方定义的槽的槽值。
[0012] 以上和/或本文其他地方描述的实施方式使得能够基于被提供给自动化助理的自然语言输入和基于特定代理的(多个)槽描述符来确定槽值。进一步,在这些实施方式的一
些中,调用请求和/或其他代理命令被传输到特定代理,其中代理命令包括所确定的槽值。
各种实施方式可以导致提高的槽值准确性和/或提高的槽值宽度,该提高的槽值准确性和/
或提高的槽值宽度可以在代理命令中确定和传输。这可以实现与特定代理的更有效的交
互,这可以节省各种计算资源。例如,它可以节省网络和/或处理器资源,否则在试图解析之前在用户的先前自然语言输入中指示(但是根据先前的技术已变得无法识别)的(多个)值
时,这些资源可能通过与特定代理的交互而被消耗。例如,它可以减少用户和特定代理之间为解析使得特定代理满足用户的意图所需的(多个)值而需要的对话和/或其他交互的“回
合”数。
[0013] 如本文所使用,“代理”是指由自动化助理利用的一个或多个计算设备和/或软件。在一些情况下,代理可以与自动化助理分离和/或可以通过一个或多个通信信道与自动化
助理通信。在这些情况中的一些情况下,自动化助理可以从第一网络节点向实施代理的功
能性的所有或方面的第二网络节点传输数据(例如代理命令)。在一些情况下,代理可能是
第三方(3P)代理,因为它由与管理自动化助理的一方分离的另一方管理。在其他一些情况
下,代理可以是第一方(1P)代理,因为它由管理自动化助理的同一方管理。
[0014] 代理被配置为从自动化助理接收(例如,通过网络和/或经由API)调用请求和/或其他代理命令。响应于接收到代理命令,代理基于代理命令生成响应性内容,并发送响应性内容以提供基于响应性内容的用户界面输出。例如,代理可以将响应性内容发送给自动化
助理,以便由自动化助理提供基于响应性内容的输出。作为另一示例,代理本身可以提供输出。例如,用户可以经由客户端设备与自动化助理交互(例如,自动化助理可以在客户端设备上实施和/或与客户端设备网络通信),并且代理可以是安装在客户端设备上的应用或者
远离客户端设备但在客户端设备上是“可流式传输的”可执行的应用。当应用被调用时,它可以由客户端设备执行和/或由客户端设备带到前端(例如,它的内容可以接管客户端设备
的显示)。
[0015] 本文描述了各种类型的输入,这些输入可以由用户经由(多个)用户界面输入设备提供给自动化助理和/或提供给代理。在一些情况下,输入可以是自由形式的自然语言输
入,诸如基于由用户经由一个或多个用户界面输入设备生成的用户界面输入(例如,基于经由物理或虚拟键盘提供的键入输入或者基于经由麦克提供的口头输入)的文本输入。如
本文所使用,自由形式输入是这样的输入——该输入由用户制定,并且不限于由用户呈现
以供选择的一组选项(例如,不限于下拉菜单中呈现的一组选项)。
[0016] 在一些情况下,响应于根据本文公开的技术对特定代理的调用,人与自动化助理的对话(human-to automated assistant dialog)可以至少暂时(实际上或有效地)被转移
到特定代理。例如,基于特定代理的响应性内容的输出可以被提供给用户以促进对话,并且响应于该输出接收进一步的用户输入。可以向特定代理提供进一步的用户输入(或其转
换)。特定代理在生成进一步的响应性内容时可以利用其自己的语义引擎和/或其他组件,
该响应性内容可以用于生成进一步的输出,以便以促进对话的方式进行提供。这个一般性
过程可以继续,直到例如特定代理提供终止特定代理对话的响应性内容(例如,回答或解决方案而不是提示)、用户的附加用户界面输入终止特定代理对话(例如,替代地调用来自自
动化助理或另一代理的响应)等。
[0017] 在一些情况下,当对话被有效地转移到特定代理时,自动化助理仍然可以充当中介。例如,在充当其中用户的自然语言输入是语音输入的中介时,自动化助理可以将该语音输入转换成文本、向特定代理提供文本(以及可选地提供文本的注释),从特定代理接收响
应性内容,并且提供基于特定响应性内容的输出以便呈现给用户。而且,例如,在充当中介时,自动化助理可以分析用户输入和/或特定代理的响应性内容,以确定是否应该终止与特定代理的对话、是否应该将用户转移到替代代理、是否应该基于特定代理对话更新全局参
数值等。在一些情况下,对话实际上可以被转移到特定代理(不需要一旦转移自动化助理就充当中介),并且在出现一个或多个条件时(诸如,由特定代理终止时(例如,响应于经由特定代理的意图的完成)),可选地被转移回自动化助理。
[0018] 在一些实施方式中,提供了一种由一个或多个处理器执行的方法,并且包括:接收在人与自动化助理的对话期间基于用户界面输入生成的自然语言输入;生成基于自然语言输入确定的词条的词条嵌入;基于人与自动化助理的对话来选择域;以及为被分配给所选
择的域的槽的至少一个文本描述符确定至少一个槽描述符嵌入。基于被分配给一个或多个
计算机可读介质中的所选择的域的至少一个槽描述符或槽描述符嵌入来确定至少一个文
本槽描述符嵌入。该方法还包括基于将词条嵌入和槽描述符嵌入应用于经训练的神经网络
模型,确定词条中的一个或多个对应于被分配给所选择的域的槽。该方法还包括:生成代理命令,该代理命令包括基于被确定为对应于槽的词条的槽的槽值;以及通过一个或多个网
络向代理发送代理命令。代理命令使得代理生成响应性内容,并通过一个或多个网络发送
响应性内容。
[0019] 本文公开的技术的这些和其他实施方式可以可选地包括以下特征中的一个或多个。
[0020] 在一些实施方式中,选择域包括基于人与自动化助理的对话选择代理,并且至少一个槽描述符嵌入基于被分配给代理的至少一个槽描述符或槽描述符嵌入来确定。
[0021] 在一些实施方式中,该方法还包括接收由代理生成的响应性内容。在这些实施方式中的一些中,该方法还包括向在其处提供用户界面输入的客户端设备发送基于由代理生
成的响应性内容的输出。
[0022] 在一些实施方式中,基于将词条嵌入和槽描述符嵌入应用于经训练的神经网络模型来确定词条中的一个或多个对应于被分配给所选择的域的槽包括:将词条嵌入和槽描述
符嵌入两者应用于经训练的神经网络模型的组合层(combining layer)。在这些实施方式
中的一些中,组合层是前馈层和/或生成自然语言输入的词条的词条嵌入包括将词条应用
于经训练的神经网络模型的存储层以生成词条嵌入。存储层可以可选地是包括多个存储单
元的双向存储层。组合层可以在存储层的下游,并且在神经网络模型的一个或多个附加层
(例如,附加存储层和/或仿射层)的上游。
[0023] 在一些实施方式中,生成自然语言输入的词条的词条嵌入包括将词条应用于经训练的神经网络模型的存储层,并将词条中的一个或多个的一个或多个注释应用于存储层。
[0024] 在一些实施方式中,提供了一种使用神经网络模型的自然语言处理方法,并且包括:接收包括词条序列的自然语言数据流;生成词条中的一个或多个的一个或多个嵌入表
示;以及将一个或多个槽的一个或多个描述符的一个或多个嵌入表示应用于神经网络模型
的层。该方法还包括识别描述符和一个或多个词条之间的对应关系。识别对应关系包括使
用神经网络模型处理一个或多个词条的一个或多个嵌入表示以及一个或多个描述符的一
个或多个嵌入表示。该方法还包括从第一网络节点向第二网络节点发送与所识别的对应关
系相关的数据。第二网络节点被配置为响应于接收到数据而执行一个或多个动作,包括使
得响应性内容被生成和发送。
[0025] 本文公开的技术的这些和其他实施方式可以可选地包括以下特征中的一个或多个。
[0026] 该方法可以还包括在第一网络节点处接收响应性内容。
[0027] 一个或多个描述符的接收到的嵌入表示中的一个或多个可以涉及不在神经网络在其上进行训练的一个或多个域当中的域。
[0028] 神经网络模型可以是使用多个样本自然语言数据流和来自多个域的一个或多个槽标签的描述符的样本嵌入表示来训练的神经网络模型。
[0029] 一个或多个描述符的一个或多个嵌入表示可以连同一个或多个词条的一个或多个嵌入表示一起作为输入被应用于神经网络模型的组合层。组合层可以包括前馈层和/或
可以在神经网络模型中位于两个存储层之间。
[0030] 神经网络模型的最终层可以包括soft-max层,该soft-max层被配置为输出接收到的词条的序列的内外开始(in-out-begin)表示。
[0031] 该方法可以还包括在将词条的嵌入表示输入到神经网络模型的层之前,将词条的序列分类为语义域。
[0032] 该方法可以还包括:在麦克风处接收语音输入;以及使用语音到文本算法从语音输入生成词条的序列。
[0033] 生成词条中的一个或多个的一个或多个嵌入表示可以基于将词条中的一个或多个应用于神经网络模型来执行,或者可以在另一神经网络模型内执行。
[0034] 在一些实施方式中,提供了一种训练用于自然语言处理的神经网络模型的方法,并且包括:将一个或多个槽的一个或多个描述符的一个或多个嵌入表示应用于神经网络模
型的层,并接收与多个域相关的自然语言数据流。数据流包括具有与一个或多个描述符的
已知对应关系的词条。该方法还包括:生成所述词条中的一个或多个的一个或多个嵌入表
示;使用神经网络模型处理一个或多个词条的一个或多个嵌入表示和一个或多个描述符的
一个或多个嵌入表示,以识别描述符和一个或多个词条之间的对应关系;将所识别的对应
关系与已知对应关系进行比较;以及根据比较更新神经网络模型中的权重。
[0035] 本文公开的技术的这些和其他实施方式可以可选地包括以下特征中的一个或多个。
[0036] 该方法可以还包括根据神经网络模型的确定的性能来调整神经网络模型的超参数。
[0037] 可以在神经网络模型的组合层处应用描述符的一个或多个嵌入表示。组合层可以被配置为将一个或多个描述符的一个或多个嵌入表示与一个或多个词条的一个或多个嵌
入表示相组合。组合层可以包括前馈层和/或可以在神经网络模型中位于两个存储层之间。
[0038] 在一些实施方式中,提供了一种包括处理器和存储器的装置。存储器包括计算机可读代码,当由处理器执行时,该代码使得处理器提供神经网络,用于处理与自然语言数据流中的词条的序列相关的数据。神经网络包括多个层,该多个层包括至少一个存储层,并且神经网络被配置为:在该多个层中的一个处接收一个或多个槽标签的一个或多个描述符的
一个或多个嵌入表示;并识别描述符和一个或多个词条之间的对应关系。识别对应关系包
括使用神经网络处理一个或多个词条的一个或多个嵌入表示以及一个或多个描述符的一
个或多个嵌入表示。
[0039] 本文公开的技术的这些和其他实施方式可以可选地包括以下特征中的一个或多个。可以在组合层处接收一个或多个描述符的一个或多个嵌入表示。组合层可以被配置为
将一个或多个描述符的一个或多个嵌入表示与一个或多个词条的一个或多个嵌入表示相
组合。神经网络可以包括第一存储层和第二存储层,并且组合层可以位于第一存储层和第
二存储层之间。第一存储层和第二存储层可以包括长短期存储层,诸如双向长短期存储层。
神经网络可以被配置为接收词条的序列作为到神经网络的存储层的输入。神经网络可以包
括soft-max层,该soft-max被配置为输出词条的输入序列的输入输出开始表示。
[0040] 此外,一些实施方式包括一个或多个计算设备的一个或多个处理器,其中该一个或多个处理器可操作来执行存储在相关联的存储器中的指令,并且其中该指令被配置为使
得执行本文描述的一个或多个方法。处理器可以包括一个或多个图形处理单元(graphics 
processing unit,GPU)、中央处理单元(central processing unit,CPU)和/或张量处理单元(tensor processing unit,TPU)。一些实施方式包括存储计算机指令的一个或多个非暂时性计算机可读存储介质,这些计算机指令可由一个或多个处理器执行,以执行本文描述
的一个或多个方法。
[0041] 应该理解的是,本文更详细描述的前述构思和附加构思的所有组合都被认为是本文公开的主题的一部分。例如,出现在本公开末尾处的所要求保护的主题的所有组合被认
为是本文公开的主题的一部分。
附图说明
[0042] 图1是其中可以实施本文公开的实施方式的示例环境的框图
[0043] 图2是图1的各种组件在一些实施方式中如何交互的示例。
[0044] 图3示出了槽模型的示例。
[0045] 图4示出了槽模型的另一示例。
[0046] 图5是示出根据本文公开的实施方式的利用经训练的槽模型的示例方法的流程图。
[0047] 图6是示出根据本文公开的实施方式的训练作为神经网络模型的槽模型的示例方法的流程图
[0048] 图7示出了用户和示例客户端设备。
[0049] 图8示出了附加的示例客户端设备。
[0050] 图9示出了计算设备的示例架构。

具体实施方式

[0051] 图1示出了其中可以实施本文公开的技术的示例环境。示例环境包括客户端设备106、自动化助理110和多个代理140A-N。客户端设备106可以是例如独立的语音激活扬声器设备、台式计算设备、膝上型计算设备、平板计算设备、移动电话计算设备、用户的车辆的计算设备和/或包括计算设备的用户的可穿戴装置(例如,具有计算设备的用户手表、具有计
算设备的用户眼镜、虚拟或增强现实计算设备)。可以提供附加的和/或可替代的客户端设
备。
[0052] 尽管自动化助理110在图1中被示出为与客户端设备106分离,但是在一些实施方式中,自动化助理110的所有或方面可以由客户端设备106实施。例如,在一些实施方式中,输入处理引擎112可以由客户端设备106实施。在其中自动化助理110的一个或多个(例如,
所有)方面由远离客户端设备106的一个或多个计算设备实施的实施方式中,客户端设备
106和自动化助理110的那些方面经由一个或多个网络(诸如广域网(wide area network,
WAN)(例如,因特网))通信。
[0053] 尽管仅示出了一个客户端设备106与自动化助理110相结合,但是在许多实施方式中,自动化助理110可以是远程的,并且可以与同一用户的多个客户端设备中的每一个和/
或与多个用户的多个客户端设备中的每一个接口。例如,自动化助理110可以经由不同的会话管理与多个设备中的每一个的通信,并且可以并行管理多个会话。例如,自动化助理110在一些实施方式中可以被实施为采用云基础设施的基于云的服务,例如,使用运行适合于
处理来自多个用户的大量请求的软件的服务器群组或高性能计算机集群。然而,为了简单
起见,本文中的许多示例针对单个客户端设备106进行描述。
[0054] 自动化助理110与代理140A-N分离,并且经由API和/或经由一个或多个通信信道(例如,客户端设备106的内部通信信道和/或诸如WAN的网络)与代理140A-N通信。在一些实施方式中,代理140A-N中的一个或多个各自由与管理自动化助理110的一方分离的相应一
方管理。
[0055] 代理140A-N中的一个或多个可以各自可选地直接或间接提供代理槽描述符,用于存储在槽描述符数据库152中。为给定代理提供的槽描述符可以为由代理处理的一个或多
个意图中的每一个定义这些意图的(多个)槽的(多个)描述符。例如,在向自动化助理110注册时,代理140A-N中的一个或多个可以向自动化助理110和/或其他组件提供(例如,通过
WAN发送)可以由代理处理的意图,连同域和/或意图的(多个)槽的描述符。例如,对代理
140A进行编程的(多个)用户可以定义代理的意图的槽,并定义所定义的槽的描述符。所定
义的槽的描述符可以被定义为自然语言文本,并且可以经由(多个)用户的键入或口头输入
经由图形用户界面来定义。(多个)特定词条可以附加地或替代地由(多个)用户分配给所定
义的槽中的一个或多个,诸如由管理自动化助理110的一方定义的并且指向公共槽类型的
(多个)特定词条。自动化助理110和/或其他组件可以验证和存储与槽描述符数据库152中
的代理相关联的此类槽描述符(以及可选的特定词条)。附加地或可替代地,自动化助理110和/或其他组件可以生成槽描述符(以及可选的特定词条)的嵌入,并将与代理相关联的描
述符嵌入存储在槽描述符数据库152中。槽描述符数据库152可以附加地或可替代地存储与
比特定代理更小粒度地定义的域相关联的一个或多个槽描述符(以及可选的特定词条)。例
如,一些槽描述符可以与通用“旅程”域相关联地存储,该域可以是由多个代理处理的域。当这些槽描述符也可适用于特定代理时,此类槽描述符(以及可选地特定词条)也可以与特定
代理相关联地存储。槽描述符数据库152可以附加地存储各种代理的其他特征,诸如用于调用代理140A-N中的每一个的(多个)调用短语、代理的排名、代理的流行度度量等。
[0056] 自动化助理110包括输入处理引擎112、代理选择引擎122、槽引擎124、调用/交互引擎126和输出引擎135。在一些实施方式中,自动化助理110的引擎中的一些可以被省略、组合和/或在与自动化助理110分离的组件中实施。此外,为了简单起见,自动化助理110可以包括本文未示出的附加引擎。
[0057] 自动化助理110从客户端设备106接收用户输入的实例。例如,自动化助理110可以接收包括词条的序列的自然语言数据流。例如,自动化助理110可以响应于键入的用户输入来接收自然语言数据流,或者可以接收呈流式音频记录形式的自然语言语音输入数据流。
流式音频记录可以由客户端设备106响应于从客户端设备106的麦克风接收到的、捕获客户
端设备106的用户的口头输入的信号而生成。在一些实施方式中,响应于由客户端设备106
的用户对自动化助理110的显式调用,用户输入可以由客户端设备106生成和/或被提供给
自动化助理110。例如,调用可以是由客户端设备106检测的、用户的特定语音输入(例如,自动化助理110热词/短语,诸如“嘿,助理”)、用户与硬件按钮和/或虚拟按钮的交互(例如,点击硬件按钮、选择由客户端设备106显示的图形界面元素)和/或其他特定用户界面输入。
[0058] 自动化助理110响应于从客户端设备106接收到用户输入的实例而提供输出的实例。输出的实例可以是例如将由设备106可听地呈现的音频(例如,经由客户端设备106的扬声器输出)、将由设备106图形化呈现的文本和/或图形内容(例如,经由客户端设备106的显示器渲染)等。如本文所述,输出的一些实例可以基于由代理140A-N中的所选择的一个生成的响应性内容。
[0059] 自动化助理110的输入处理引擎112处理从客户端设备106接收的自然语言输入,并生成注释输出供自动化助理110的一个或多个其他组件(诸如代理选择引擎122和/或槽
引擎124)使用。例如,输入处理引擎112可以处理由用户经由客户端设备106的一个或多个
用户界面输入设备生成的自然语言自由形式的输入。生成的注释输出包括基于自然语言输
入的词条,并且可选地包括自然语言输入的一个或多个注释。如本文所述,由输入处理引擎
112生成的(多个)词条和/或注释可以作为输入应用于槽模型160,并用于生成自然语言输
入的嵌入。例如,自然语言输入的词条嵌入可以基于自然语言输入的词条生成,并且基于:
词条的词性标签、词条的实体标签和/或对话的当前状态的表示。每个词条是一个或多个字符的序列,诸如单个术语或其他n-gram(例如,词条可以是“出租车”、“芝加哥”、“纽约”、“2”)。输入处理引擎112在生成词条时可以可选地标准化或以其他方式转换一些n-gram。例如,输入处理引擎112可以移除大写、将日期转换成标准格式、将相对时间术语转换成标准格式(例如,将“明天”转换成对应于“明天”的日期)、将数字转换成通用标识符(例如,将任何数字转换成“#”)等。
[0060] 在一些实施方式中,输入处理引擎112包括语音到文本模114,其接收语音输入的实例(例如,呈数字音频数据的形式),并将语音输入转换成包括一个或多个文本单词或
短语的文本。然后,输入处理引擎112可以利用经转换的文本来生成词条和/或其他数据。在一些实施方式中,语音到文本模块114是流式语音到文本引擎,其使用一个或多个语音到文本算法来基于语音输入生成文本。语音到文本模块114可以依赖于一个或多个存储的语音
到文本模型(也称为语言模型),每个模型可以对音频信号和语言中的语音单元之间的关
系,连同语言中的单词序列进行建模。在一些实施方式中,语音到文本模块114的(多个)中间输出可以用作应用于槽模型160的自然语言输入的词条和/或附加注释。例如,由语音到
文本模块114生成的格子(lattice)可以应用于槽模型160,作为自然语言输入的词条的表
示。格子是这样图形——该图形简洁地表示话语的多个可能的假设。因此,格子表示自然语言输入的可能词条。
[0061] 在一些实施方式中,输入处理引擎112被配置为识别和注释自然语言输入中的各种类型的语法信息。例如,输入处理引擎112可以包括被配置为利用术语的语法色来注释术语的词性标注器。例如,词性标注器可以用其词性(诸如“名词”、“动词”、“形容词”、“代词”等)来标注每个术语。此外,例如,在一些实施方式中,输入处理引擎112可以附加地和/或可替代地包括被配置为确定自然语言输入中的术语之间的句法关系的依赖性解析器。例
如,依赖性解析器可以确定哪些术语修改句子的其他术语、主题和动词等(例如,分析
树)——并且可以对这种依赖性进行注释。
[0062] 在一些实施方式中,输入处理引擎112可以附加地和/或可替代地包括实体标注器,该实体标注器被配置为注释一个或多个节段(segment)中的实体引用,诸如对人、组织、位置等的引用。实体标注器可以以高粒度平(例如,以能够识别对诸如人的实体类的所有引用)和/或以较低粒度水平(例如,以能够识别对诸如特定人的特定实体的所有引用)注释
对实体的引用。实体标注器可以依赖于自然语言输入的内容来解析特定实体和/或可以可
选地与知识图或其他实体通信来解析特定实体。在一些实施方式中,除了或代替被确定为
对应于那些槽的词条,为词条解析的实体可以被用作相对应的槽的槽值。
[0063] 在一些实施方式中,输入处理引擎112可以附加地和/或替代地包括共指解析器(coreference resolver),该共指解析器被配置为基于一个或多个上下文线索(cue)对对
同一实体的引用进行分组或“聚类”。例如,共指解析器可以用于将用户输入的实例中的术语“它”解析为用户输入的紧接在前的实例中的“餐馆A”的在前表述。在这些实施方式中的一些中,由输入处理引擎112供应的词条可以包括代词的引用对象来代替代词本身。例如,“餐馆A”而不是“它”可以被提供为词条。
[0064] 在一些实施方式中,输入处理引擎112可以附加地和/或可替代地包括对话状态组件,该对话状态组件生成指示对话的当前状态的输出。指示对话的当前状态的输出可以基
于当前自然语言输入和/或基于先前在对话中接收的先前输入(例如,先前的自然语言输
入)。例如,对话状态组件可以包括对来自对话的一个或多个先前回合的话语进行编码的存储网络。编码因此可以提供对话的当前状态的表示。
[0065] 在一些实施方式中,输入处理引擎112的一个或多个组件可以依赖于来自输入处理引擎112的一个或多个其他组件的注释。例如,在一些实施方式中,命名的实体标注器在注释对特定实体的所有表述时可以依赖于来自共指解析器和/或依赖性解析器的注释。而
且,例如,在一些实施方式中,共指解析器在对同一实体的引用进行聚类时可以依赖于来自依赖性解析器的注释。在一些实施方式中,在处理特定自然语言输入时,输入处理引擎112的一个或多个组件可以使用相关的先前输入和/或特定自然语言输入之外的其他相关的数
据来确定一个或多个注释。
[0066] 输出引擎135向客户端设备106提供输出的实例。输出的实例可以基于来自代理140A-N中的一个的响应性内容(当自动化助理110充当该代理的中介时)。在一些实施方式
中,输出引擎135可以包括将响应性内容的文本成分转换成音频格式的文本到语音引擎,并且输出引擎135提供的输出呈音频格式(例如,作为流式音频)。在一些实施方式中,响应性内容可能已经呈音频格式。在一些实施方式中,输出引擎135附加地或可替代地提供文本回复内容作为输出(可选地用于由设备106转换成音频),和/或提供其他图形内容作为输出,
用于由客户端设备106进行图形显示。
[0067] 代理选择引擎122选择由与客户端设备106进行的当前对话指示的代理140A-N中的一个或多个。代理选择模块122可以基于由用户在对话中提供的输入和/或基于其他数据
来选择代理140A-N中的一个或多个。代理选择模块122可以在其上选择代理的其他数据可
以包括,例如:客户端设备的用户的历史交互(例如,对于给定的域和/或意图,用户在过去使用了哪个(哪些)代理)、代理的受欢迎程度、代理的评级、客户端设备上当前渲染和/或最近渲染的内容、客户端设备的位置、当前日期和/或时间等。
[0068] 在一些实施方式中,代理选择引擎122基于由用户在对话中对代理的显式调用来选择特定代理。例如,一些代理可以与显式调用短语相关联,并且代理选择引擎122可以基于包括用于特定代理的调用短语的自然语言输入来选择特定代理。在一些实施方式中,代
理选择引擎122基于与意图相关联的(多个)代理以及由用户在对话中指示的意图来选择一
个或多个特定代理。例如,代理选择引擎122可以基于由在对话中被提供给自动化助理的最近自然语言输入和/或在对话中被提供的过去自然语言输入所指示的意图来选择代理。代
理选择引擎122在确定意图时可以可选地依赖于来自输入处理引擎112的注释输出。在其中
代理能够根据多个意图行动的一些情况下,代理选择模块122可以选择特定代理和代理的
特定意图。
[0069] 槽引擎124确定被分配给当前在对话中指示的域的(多个)槽的(多个)槽值。例如,槽引擎124可以确定被分配给由代理选择模块122选择的代理的(多个)槽的槽值。如本文所
述,槽引擎124可以基于接收到的自然语言输入的词条,并基于(多个)相对应的槽的(多个)槽描述符来确定槽值中的一个或多个。例如,槽描述符(或其嵌入)可以与所选择的代理(以及可选地意图)相关联地存储在槽描述符数据库158中。槽引擎124可以将槽描述符的嵌入
和接收到的自然语言输入的词条(或其嵌入)应用于槽模型160,以确定哪些词条对应于哪
些槽。槽引擎124然后可以分配词条和/或基于词条的(多个)值,作为它们相对应的槽的槽
值。槽引擎124的附加描述在下文和本文的其他地方提供。
[0070] 调用/交互引擎126向由代理选择引擎122选择的代理发送代理命令,并且在代理命令中包括由槽引擎124确定的槽值。代理命令可以是结构化命令,其包括相关联的槽中的(多个)槽值,以及可选地附加数据,诸如意图的指示、用户标识符、会话标识符等。在一些实施方式或情况下,代理命令是调用所选择的代理的调用命令。在一些实施方式或情况下,代理已经在对话中被调用(例如,基于先前的自然语言输入),并且代理命令被提供为促进调
用所调用的代理的对话。所选择的代理可以响应代理命令而生成响应性内容。在一些实施
方式中,响应性内容由所选择的代理发送到自动化助理110,并且输出引擎135基于响应性
内容来生成输出。例如,输出引擎135可以提供未改变的响应性内容作为输出,或者可以执行响应性内容的文本到语音转换(或其他转换),并且提供经转换的内容作为输出。在一些
实施方式中,响应性内容由所选择的代理直接传输到客户端设备106。在又一实施方式中,所选择的代理可以在客户端设备106上本地操作(例如,是安装在客户端设备106上的应
用),并且可以生成用于在客户端设备106上直接显示的响应性内容。
[0071] 代理140A-N中的每一个可以包括其自己的内容引擎和/或其他引擎。此外,在许多实施方式中,代理可以在生成响应性内容时访问各种存储的模型和/或其他资源(例如,其
自己的(多个)语法模型和/或(多个)内容模型)。
[0072] 参考图2,示出了图1的各种组件以及它们在一些实施方式中如何交互的示例。在图2中,由自动化助理110的输入处理引擎112接收自然语言输入171。作为工作示例,自然语言输入171可以是“预订4人桌,室外座位,餐馆A”。输入处理引擎112基于自然语言输入生成词条172,并将词条172提供给槽引擎124和代理选择引擎122。在一些实施方式中,自然语言输入171的附加注释可以附加地被提供给引擎122和/或引擎124。
[0073] 代理选择引擎122利用词条172和/或其他数据来选择特定代理,并且向槽描述符模块124A以及可选地向调用/交互模块128提供代理140A的指示。继续工作示例,代理选择
引擎122可以基于特定代理与“餐馆预订”意图相关联并且基于用户先前已经指示特定代理为他/她的优选“餐馆预订”代理来选择该特定代理。
[0074] 代理选择引擎122向槽描述符模块124A提供代理140A的指示,该槽描述符模块124A可以是槽引擎124的模块。槽描述符模块124A访问槽描述符数据库158,以在数据库158中识别被分配给代理140A的(多个)槽描述符的(多个)嵌入175(以及可选地,当所选择的代
理具有多个意图时的意图)。槽描述符模块124A向槽引擎124提供(多个)槽描述符的(多个)
嵌入175。在一些实施方式中,槽描述符模块124A替代地从数据库158中识别(多个)槽描述
符本身,并生成(多个)槽描述符的(多个)嵌入175。例如,槽描述符模块124A可以基于将(多个)槽描述符应用于词袋模型、Word2vec模型和/或生成单词嵌入的其他模型来生成(多个)
嵌入。在一些实施方式中,代理选择引擎122可以不选择特定代理,并且可以代替地选择适用于多个代理的更通用的域。在这些实施方式中的一些中,槽描述符模块124A识别并提供
被分配给更通用的域的槽描述符的(多个)嵌入。
[0075] 槽引擎124利用词条172和(多个)槽描述符的(多个)嵌入175来确定哪些词条172对应于哪个(哪些)槽(如果有的话)。特别地,槽引擎124将词条172和(多个)槽描述符的(多个)嵌入175作为输入应用于槽模型160,并基于输入在槽模型160上生成指示哪些标记172
对应于哪个(哪些)槽(如果有的话)的输出。槽引擎124利用(多个)输出来确定哪些词条172
对应于哪个(哪些)槽。如本文所述,在一些实施方式中,槽引擎124附加地将与词条172相关的一个或多个注释(诸如由输入处理引擎112提供的注释)作为输入应用于槽模型160。关于
图3和图4描述了槽模型160的示例的附加描述。
[0076] 槽引擎124基于相对应的确定的词条生成一个或多个槽的(多个)槽值176。例如,(多个)槽值176可以严格对应于词条,或者可以是实体标识符或词条的其他指示。继续工作示例,槽引擎124可以基于槽模型160上的一次或多次传递来确定:“4”是具有“人数”描述符的槽的槽值,“室外”是具有“座位位置”描述符的槽的槽值,并且“餐馆A”是具有“餐馆名称”描述符的槽的槽值。
[0077] 槽引擎124向调用/交互模块128提供(多个)槽值176。调用/交互模块128生成包括(多个)槽值176的代理命令177,并将代理命令177发送到由代理选择引擎122选择的代理
140A。代理140A响应代理命令177而生成响应性内容178。响应性内容178可以被提供给自动化助理110,并且由自动化助理110基于响应性内容178来生成输出。可替代地,响应性内容
178可以由代理140A直接发送到提供自然语言输入171的客户端设备。
[0078] 在一些实施方式中,代理命令177是调用具有(多个)槽值176的代理140A的调用请求。如本文所述,在一些情况下,在代理140A被调用之后,自动化助理110仍然可以充当中介。还如本文所述,在一些情况下,对话实际上可以被转移到代理140A(不需要一旦转移自动化助理110就充当中介),并且在出现一个或多个条件时被转移回自动化助理110。进一
步,还如本文所述,在一些情况下,代理140A可以由客户端设备106执行和/或由客户端设备
106带到前端(例如,它的内容可以接管客户端设备106的显示)。
[0079] 图3示出了槽模型160A,其是图1的槽模型160的一个示例。槽模型160A包括(多个)词条嵌入层162A、(多个)组合层164A和(多个)附加层166A。来自自然语言数据流的输入词
条371可以作为输入被应用到(多个)词条嵌入层162A,以生成词条嵌入373。在一些实施方
式中,(多个)词条嵌入层162A是存储层,因为它们包括一个或多个存储单元,词条可以顺序地被应用于这些存储单元,并且在应用的输入的每个时间步骤,(多个)存储单元可以用于
基于该时间步骤的输入和基于当前隐藏状态(其可以基于(多个)先前时间步骤的(多个)输
入)来计算新的隐藏状态。在一些实施方式中,存储单元可以是长短期存储(“LSTM”)单元。
在一些实施方式中,可以使用附加或可替代的存储单元,诸如控循环单元(gated 
recurrent unit,“GRU”)。如本文所述,在一些实施方式中,(多个)词条嵌入层162A包括双向存储层。双向存储层包含用于在第一方向上操作输入序列的第一组一个或多个存储单
元,以及用于在相反方向上操作输入序列的第二组一个或多个存储单元。例如,假设词条
T1、T2、T3和T4将被应用于双向存储层。词条可以顺序地以顺序:T1、T2、T3、T4应用于第一组存储单元,并以顺序:T4、T3、T2、T1应用于第二组存储单元。第一和第二循环神经网络单元的输出可以被组合(例如,附加)并用作词条嵌入373。图4中示出了作为双向存储层的词条
嵌入层的一个示例。
[0080] 词条嵌入373和(多个)描述符嵌入358被作为输入应用于(多个)组合层164A。(多个)描述符嵌入358中的每一个是如本文所述的槽的一个或多个描述符的嵌入。在一些实施
方式中,(多个)描述符嵌入358中的每一个是基于将槽的(多个)相对应的描述符应用于分
离的神经网络模型而生成的。在一些其他实施方式中,描述符嵌入层可以可选地被集成在
槽模型160A中,并且(多个)描述符本身被应用于描述符嵌入层以生成(多个)描述符嵌入。
[0081] (多个)组合层164A被用于生成基于词条嵌入373和(多个)描述符嵌入358两者的输出。在一些实施方式中,(多个)组合层164A可以是(多个)前馈层。
[0082] 基于(多个)组合层164A生成的输出被应用于一个或多个附加层166A以生成最终输出375。(多个)附加层166A可以包括仿射层,诸如soft-max层。仿射层可以是y=f(Wx+b)的形式,其中x表示输入层(例如,基于(多个)组合层164A生成的输出),W表示参数,b是偏置向量,以及f是非线性激活函数(例如,soft-max激活函数)。
[0083] 输出375针对输入词条371中的每一个和针对(多个)描述符嵌入358中的每一个指示输入词条是否对应于描述符嵌入。例如,在(多个)描述符嵌入358仅包括仅单个槽的(多
个)描述符的嵌入的情况下,输出375可以指示每个词条是在该单个槽的内部、外部还是在
其开始处。而且,例如,在(多个)描述符嵌入358至少包括第一槽的(多个)描述符的第一嵌入和第二槽的(多个)描述符的第二嵌入的情况下,输出375可以指示:每个词条是在第一槽的内部、外部还是在其开始处;以及每个词条是在第二槽的内部、外部还是在其开始处。
[0084] 图4示出了槽模型160B,其是图1的槽模型160的另一示例。槽模型160B包括第一双向LSTM层162B。第一双向LSTM层162B包括第一方向存储单元M1DIN1-M1D1NN和第二方向存
储单元M1D2N1-M1D2NN。第一方向存储单元M1D1N1-M1D1NN在第一方向上对自然语言输入的
词条T1-TN进行操作,该第一方向符合它们在接收到的自然语言输入中的实际序列。例如,词条T1被作为输入应用于M1D1N1。基于将词条T1应用于M1D1N1生成的输出连同词条T2一起
被应用于M1D1N2。基于将词条T2和来自M1D1N1的输出应用于M1D1N2生成的输出连同词条T3
一起被应用于M1D1N3。这一直持续到达到M1D1NN。注意,如果自然语言输入中的词条的数量小于第一方向存储单元M1D1N1-M1D1NN的数量,则“填充”值可以被作为输入应用于超过词条数量的那些第一方向存储单元M1D1N1-M1D1NN。“填充”值可以是空值或指示不存在词条的其他值。
[0085] 第二方向存储单元M1D2N1-M1D2NN在与它们的实际序列相反的第二方向上对自然语言输入的词条T1-TN进行操作。例如,词条TN被作为输入应用于M1D2NN。基于将词条TN应用于M1D2NN生成的输出连同词条TN-1(未示出)一起被应用于M1D2NN-1(也未示出)。这一直
持续到达到M1D2N1。注意,如果自然语言输入中的词条数量小于第二方向存储单元M1D2N1-M1D2NN的数量,则“填充”值可以被作为输入应用于超过词条数量的那些第二方向存储单元M1D2N1-M1D2NN。
[0086] 前馈层164B包括多个前馈单元C1-CN。基于第一双向LSTM层162生成的输出连同(多个)描述符嵌入458一起被作为输入应用于前馈层164B。例如,基于M1D1N1和M1D2N1生成的输出(例如,两个输出的串联)连同(多个)描述符嵌入458一起被应用于C1。而且,例如,基于M1D1N2和M1D2N2生成的输出连同(多个)描述符嵌入458一起被应用于C2。
[0087] 基于将输入应用于前馈层164B而生成的输出被作为输入施加到第二双向LSTM层166B1。第二双向LSTM层166B1包括第一方向存储单元M2D1N1-M2D1NN和第二方向存储单元
M2D2N1-M2D2NN。第一方向存储单元M2D1N1-M2D1NN在第一方向上对基于C1-CN生成的输出
操作,以及第二方向存储单元M2D2N1-M2D2NN在相反的第二方向上对那些输出操作。
[0088] Soft-max层166B2包括soft-max单元SM1-SMN。基于第二双向LSTM层166B1生成的输出被作为输入应用于soft-max层166B2。例如,基于M2D1N1和M2D2N1生成的输出(例如,两个输出的串联)被应用于SM1。而且,例如,基于M2D1N2和M2D2N2生成的输出(例如,两个输出的串联)被应用于SM2。
[0089] 最终输出475是基于被应用于soft-max层166B2的输入生成的。输出475包括多个分离的输出O1-ON。输出O1-ON中的每一个对应于词条T1-TN中的一个(即,O1对应于T1,O2对应于T2等)。在一些实施方式中,输出O1-ON中的每一个指示相对应的词条在由(多个)描述
符描述的槽的外部(即,不在槽中)、在槽的开始处(即,槽的第一词条),或者在槽的内部
(即,槽的后续词条)。在这些实施方式中的一些中,输出Ol-ON中的每一个是相对应的单个值,其大小指示它是在槽外部、在槽开始处还是在槽内部。在这些实施方式中的其他一些实施方式中,输出O1-ON中的每一个包括对应于外部、开始和内部的三个值——并且这些值的大小指示词条是在外部、在开始处还是在内部。
[0090] 尽管在图4中示出了特定槽模型160B,但是应当理解,其他槽模型可以具有不同的架构,并且特定架构(例如,层的(多个)类型、层的数量和层的序列)可以取决于实际任务。
例如,在一些实施方式中,(多个)描述符嵌入可以被应用于模型,其中(多个)嵌入中的每一个用于不同槽的(多个)描述符。在这些实施方式中,层164B、166B1和166B2的尺寸可以被扩展以适应附加的嵌入——并且所生成的输出可以针对词条中的每一个和针对槽中的每一
个来指示词条和槽之间是否存在对应关系。例如,如果将五个描述符嵌入应用于模型,则输出可以包括词条中的每一个的五个输出,其中每个输出指示相对应的词条和五个槽中的相
对应的一个槽之间的对应关系。作为图4的架构可以如何变化的另一示例,在一些实施方式中,前馈层164B可以从其在图4中的位置移动到第二双向LSTM层166B1和soft-max层166B2
之间的位置(并且(多个)描述符嵌入仍然被应用于前馈层164B)。在这样的示例中,词条的
嵌入将基于第一双向LSTM层162B和第二双向LSTM层166B1两者来生成。
[0091] 图5是示出根据本文公开的实施方式的利用经训练的槽模型的示例方法500的流程图。为了方便,参考执行操作的系统描述图5的流程图的操作。该系统可以包括各种计算机系统的各种组件,诸如自动化助理110的一个或多个组件。而且,尽管方法500的操作以特定顺序示出,但这并不意味着是限制性的。一个或多个操作可以被重新排序、省略或添加。
[0092] 在框550,系统接收自然语言输入。例如,系统可以接收包括词条的序列的自然语言数据流。
[0093] 在框552,系统选择域。系统可以基于在框550处接收的自然语言输入、先前接收的自然语言输入和/或其他数据来选择域。在一些实施方式中,在选择域时,系统选择特定代理,诸如特定3P代理。在这些实施方式中的一些中,系统基于在框550处接收的自然语言输入中或者在先前接收的自然语言输入中对特定代理的调用来选择特定代理。在这些实施方式中的一些其他实施方式中,系统基于生成自然语言输入的客户端设备的用户的历史交
互、该用户的指示的偏好和/或其他数据来选择特定代理。
[0094] 在框554,系统将以下内容作为输入应用于槽模型:(1)在框550处接收的自然语言输入的(多个)词条;以及(2)在框552处选择的域的(多个)槽的(多个)描述符的(多个)嵌
入。基于在一个或多个计算机可读介质中被分配给域的(多个)槽和/或(多个)描述符(或
(多个)描述符嵌入),应用该域的(多个)槽的(多个)描述符的(多个)嵌入。例如,域可以是特定代理,并且基于被分配给特定代理来选择(多个)槽。槽模型可以是经训练的神经网络
模型。
[0095] 在框556,系统基于根据在框554中被应用于槽模型的输入而通过槽模型生成的输出来确定域的(多个)槽的(多个)值。例如,通过槽模型生成的输出可以针对自然语言输入
的词条中的每一个和针对(多个)槽(和/或(多个)槽描述符)中的每一个来指示词条是否对
应于槽(和/或(多个)槽描述符)。对于被确定为对应于槽的(多个)词条,系统可以包括(多
个)词条作为(多个)槽的值,和/或基于(多个)词条确定槽的另一值。
[0096] 在框558,系统基于在框556处确定的(多个)槽的(多个)值发送代理命令。例如,系统可以通过将(多个)值包括在代理命令的(多个)相对应的槽中来生成代理命令,并发送所生成的代理命令。
[0097] 在可选框560,系统响应于在框558处发送代理命令而从代理接收响应性内容。
[0098] 在可选框562,系统提供基于在框560处接收到的响应性内容的输出。例如,可以经由提供框550的自然语言输入的客户端设备来提供输出以供呈现。
[0099] 在可选框564,系统等待来自提供框550的自然语言输入的客户端设备的附加输入。
[0100] 当在框564处接收到附加输入时,在框566,系统确定附加输入是否指示新域(例如,新代理)。如果是,则系统前进回到框552。如果不是,则系统可以前进回到框554,并且将附加输入的任何自然语言输入的(多个)词条连同域的(多个)槽的(多个)描述符的(多个)
嵌入一起应用于槽模型。然后,系统可以前进到框556,基于在框554的最近迭代处应用的输入来确定(多个)槽(例如,先前未定义的槽)的(多个)新值。系统然后可以前进到框558,并基于(多个)新值生成另一代理命令。
[0101] 图6是示出根据本文公开的实施方式的训练作为神经网络模型的槽模型的示例方法600的流程图。为了方便,参考执行操作的系统描述图6的流程图的操作。该系统可以包括各种计算机系统的各种组件,诸如一个或多个GPU、CPU和/或TPU。而且,尽管方法600的操作以特定顺序示出,但这并不意味着是限制性的。一个或多个操作可以被重新排序、省略或添加。
[0102] 在框652,系统基于多个域生成训练实例。在基于域生成训练实例时,框652包括子框6521和6522。执行子框6521和6522的多次迭代,并且可以对多个域中的每一个执行多次迭代。
[0103] 在框6521,系统生成训练实例输入,该训练实例输入包括:域的自然语言输入的词条、以及域的(多个)槽的(多个)描述符(或(多个)描述符嵌入)。该域的自然语言输入可以基于提供被提供给该域的自动化助理的自然语言输入的实际用户。域的(多个)槽的(多个)
描述符可以是语义上描述槽的文本描述,诸如由(多个)开发人员提供的文本描述。
[0104] 在框6522,系统生成训练实例输出,该输出针对(多个)槽中的每一个槽的(多个)词条中的每一个槽来指示:词条是在内(槽内部)、在外(槽外部)还是在开始(槽的开始)。训练实例输出可以可选地基于审核者进行的标记和/或审核者进行的标记的验证。
[0105] 在框654,系统选择在框652处生成的训练实例中的一个。
[0106] 在框656,系统基于将词条作为输入应用于神经网络模型的(多个)存储层,生成训练实例的训练实例输入的词条的词条嵌入。
[0107] 在框658,系统将训练实例输入(或基于训练实例输入生成)的(多个)描述符嵌入应用于神经网络模型的(多个)附加层。
[0108] 在框660,系统基于词条嵌入和(多个)描述符嵌入两者通过神经网络模型生成输出。
[0109] 在框662,系统基于所生成的输出和训练实例的训练实例输出来更新神经网络模型。例如,系统可以基于所生成的输出和训练实例输出来确定误差,并且通过神经网络模型反向传播误差以更新神经网络模型的权重。
[0110] 在框664,系统确定是否存在一个或多个附加的未处理训练实例。如果是,则系统前进回到框654、选择附加训练实例、然后基于附加的未处理训练实例执行框656、658、660和662。在一些实施方式中,在框664,如果已经满足一个或多个训练标准(例如,已经发生了阈值数量的时期和/或已经发生了阈值训练持续时间),则系统可以确定不处理任何附加的
未处理训练实例。尽管方法600是针对非批量学习技术来描述的,但是批量学习可以附加地和/或可替代地被利用。
[0111] 此后,根据方法600训练的神经网络模型可以用于针对未来的自然语言输入预测自然语言输入的哪些词条对应于(多个)槽,利用(多个)槽的词条和(多个)描述符。注意,这种神经网络模型可适用于除了框652的多个域之外的各种域,而不需要在这些域中的一个
或多个域上进行训练(或者减少在训练中使用的来自这些域的训练实例的数量)。例如,这
种神经网络模型可以用于基于槽的(多个)槽描述符来确定对应于槽的(多个)词条——即
使(多个)槽描述符(或其嵌入)未被包括在框652的任何训练实例中。
[0112] 图7示出了用户101和语音支持客户端设备706。客户端设备706包括一个或多个麦克风和一个或多个扬声器。图1的自动化助理110的一个或多个方面可以在客户端设备706
上和/或与客户端设备706网络通信的一个或多个计算设备上实施。因此,为了便于解释,在图7的描述中参考了自动化助理110。
[0113] 在图7中,用户提供“助理,两人桌,室外座位,今晚6:00在假想咖啡馆”的口头输入780。对应于口头输入的语音输入由设备806生成并将其提供给自动化助理110(例如,作为
流式语音输入)。自动化助理110可以利用本文描述的技术来基于口头输入780确定代理命
令的各个槽值。例如,自动化助理110可以基于确定口语输入780的哪些词条对应于域(诸如“餐厅预订”域或特定“餐厅预订”代理)的哪些槽来确定槽值。在这样做时,自动化助理110可以利用槽模型和域的槽的(多个)描述符的(多个)嵌入。
[0114] 自动化助理110可以向代理发送代理命令、作为响应接收响应性内容、并提供基于响应性内容的输出782。在图7中,代理命令使得代理能够完成餐馆预订,并且响应性内容可以指示预订已经完成,并且餐馆的文本确认将被提供给用户。输出782反映了这样的响应性内容。
[0115] 图8示出了另一客户端设备806和客户端设备806的显示屏840。客户端设备806可以包括自动化助理110和/或与自动化助理110通信。显示屏840包括回复界面元素888和语
音回复界面元素889,用户可以选择该回复界面元素888以经由虚拟键盘生成用户输入,并
且用户可以选择该语音回复界面元素889以经由麦克风生成用户输入。在一些实施方式中,用户可以经由麦克风生成用户输入,而无需选择语音回复界面元素889。例如,在对话期间,可以对经由麦克风的听觉用户界面输入进行主动监控,以消除用户选择语音回复界面元素
889的需要。在那些实施方式中的一些和/或其他实施方式中,可以省略语音回复界面元素
1089。显示屏840还包括系统界面元素885、886、887,用户可以与这些系统界面元素交互以使客户端设备810执行一个或多个动作。
[0116] 在图8中,用户提供“助手,请代理1今天送一打玫瑰到我家”的自然语言输入880。自动化助理110可以基于其在自然语言输入880中的调用来选择“代理1”(即,“请代理1”),并且可以进一步确定用于确定“代理1”的(多个)槽的(多个)槽值的(多个)槽的(多个)描述符(或(多个)描述符的(多个)嵌入)。基于(多个)描述符(多个)的嵌入和自然语言输入880
的词条,自动化助理110可以确定代理命令的(多个)槽值,并将代理命令发送给“代理1”。作为响应,“代理1”生成响应性内容,该响应性内容是图8中示出的提示882。在一些实施方式中,响应性内容被提供给自动化助理110,并且自动化助理110提供提示(连同它是“代理1”生成的内容的指示)。在一些其他实施方式中,“代理1”可以直接提供提示882,而不需要自动化助理110充当中介。
[0117] 图8被示为与自动化助理110和/或代理的图形交互(代替图7的口头/听觉交互)的示例。尽管图8示出了图形交互的一个示例,但是可以设想不同的示例。例如,代替如图8所示“代理1”经由与自动化助理的公共界面提供提示882,代理1可以替代地是响应调用而被启动和/或被带到前端的分离的应用。例如,响应于自然语言输入880,“代理1”应用界面可以取代图8的自动化助理界面,然后提供类似于提示882的输出。
[0118] 图9是示例计算设备910的框图,该示例计算设备910可以可选地用于执行本文描述的技术的一个或多个方面。在一些实施方式,客户端设备106、自动化助理110、代理和/或(多个)其他组件中的一个或多个可以包括示例计算设备910的一个或多个组件。
[0119] 计算设备910通常包括至少一个处理器914,该至少一个处理器914经由总线子系统912与多个外围设备通信。这些外围设备可以包括存储子系统924(包括例如存储器子系
统925和文件存储子系统926)、用户接口输出设备920、用户接口输入设备922和网络接口子系统916。输入和输出设备允许用户与计算设备910交互。网络接口子系统916提供到外部网络的接口,并且耦合到其他计算设备中的相对应的接口设备。
[0120] 用户界面输入设备922可以包括:键盘;诸如鼠标轨迹球触摸板或图形板的定点设备、扫描仪、并入显示器的触摸屏、诸如语音识别系统的音频输入设备、麦克风和/或其他类型的输入设备。通常,术语“输入设备”的使用旨在包括用于将信息输入到计算设备910或通信网络中的所有可能类型的设备和方式。
[0121] 用户界面输出设备920可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(cathode ray tube,CRT)、诸如液晶显示器(liquid crystal display,LCD)的平板设备、投影设备或用于创建可视图像的一些其他机构。显示子系统还可以诸如经由音频输出设备提供非视觉显示。通常,术语“输出设备”的使用旨在包括用于将来自计算设备910的信息输出到用户或输出到另一机器或计算设备
的所有可能类型的设备和方式。
[0122] 存储子系统924存储提供本文描述的一些或所有模块的功能的编程和数据构造。例如,存储子系统924可以包括用于执行图5和/或图6的(多个)方法的所选择的方面的逻
辑。
[0123] 这些软件模块通常由处理器914单独或与其他处理器结合执行。存储子系统924中使用的存储器925可以包括多个存储器,该多个存储器包括用于在程序执行期间存储指令
和数据的主随机存取存储器(random access memory,RAM)930和其中存储固定指令的只读
存储器(read only memory,ROM)932。文件存储子系统926可以为程序和数据文件提供持久存储,并且可以包括硬盘驱动器软盘驱动器连同相关联的可移动介质、CD-ROM驱动器、光驱或可拆卸介质盒。实施某些实施方式的功能性的模块可以由文件存储子系统926存储在
存储子系统924中,或者存储在可由(多个)处理器914访问的其他机器中。
[0124] 总线子系统912提供用于让计算设备910的各种组件和子系统按照预期相互通信的机制。尽管总线子系统912示意性地示出为单个总线,但是总线子系统的可替代的实施方式可以使用多个总线。
[0125] 计算设备910可以具有不同类型,包括工作站、服务器、计算集群、刀片服务器、服务器群组或任何其他数据处理系统或计算设备。由于计算机和网络的不断变化的性质,图9中描绘的计算设备910的描述仅旨在作为用于说明一些实施方式的特定示例。计算设备910的许多其他配置可能具有比图9中描绘的计算设备更多或更少的组件。
[0126] 在本文描述的某些实施方式可以收集或使用关于用户的个人信息(例如,从其他电子通信中提取的用户数据、关于用户社交网络的信息、用户的位置、用户的时间、用户的生物统计信息以及用户的活动和人口统计信息)的情况下,向用户提供一个或多个机会来
控制是否收集信息、是否存储个人信息、是否使用个人信息以及如何收集、存储和使用关于用户的信息。也就是说,本文描述的实施方式仅在从相关用户接收到这样做的明确授权时
收集、存储和/或使用用户个人信息。例如,向用户提供对程序或特征是否收集关于该特定用户或与程序或特征相关的其他用户的用户信息的控制。要为其收集个人信息的每个用户
被呈现有一个或多个选项,以允许对与该用户相关的信息收集进行控制、提供关于是否收
集信息以及关于要收集信息的哪些部分的许可或授权。例如,可以通过通信网络向用户提
供一个或多个这样的控制选项。此外,在存储或使用某些数据之前,可以以一种或多种方式对其进行处理,使得移除个人可识别信息。作为一个示例,可以处理用户的身份,使得个人可识别信息不能被确定。作为另一示例,用户的地理位置可以被泛化到更大的区域,使得用户的特定位置不能被确定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈