混合专家神经网络的制作方法

文档序号:17980883发布日期:2019-06-22 00:06阅读:202来源:国知局
混合专家神经网络的制作方法

本申请要求于2016年11月4日提交的美国临时申请序列号62/418,135和于2016年12月9日提交的美国临时申请序列号62/432,497的优先权。在先申请的公开内容被认为是本申请公开内容的一部分,并通过引用结合于此。



背景技术:

本说明书涉及通过神经网络层处理输入以生成输出。

神经网络是采用一层或多层非线性单元来预测接收到的输入的输出的机器学习模型。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中另一层(即另一隐藏层或输出层)的输入。网络的每一层根据相应参数集的当前值从接收到的输入生成输出。



技术实现要素:

一般而言,本说明书中描述的主题的一个创新方面可以体现在在包括神经网络的一个或多个位置处的一个或多个计算机上被实施为计算机程序的系统中。神经网络包括神经网络中的第一神经网络层和第二神经网络层之间的混合专家(mixtureofexperts,moe)子网。moe子网包括多个专家神经网络,其中每个专家神经网络被配置为根据专家神经网络的相应专家参数集来处理由第一神经网络层生成的第一层输出,以生成相应的专家输出。moe子网还包括选通子系统,选通子系统被配置为:基于第一层输出来选择专家神经网络中的一个或多个并为每个所选择的专家神经网络确定相应权重,将第一层输出作为输入提供给所选择的专家神经网络中的每一个,根据所选择的专家神经网络的权重来组合由所选择的专家神经网络生成的专家输出以生成moe输出,以及将moe输出作为输入提供给第二神经网络层。

前述内容和其他实施例可以各自可选地单独或以组合的形式包括以下特征中的一个或多个。专家神经网络可以具有相同或相似的架构,但是具有不同的参数值。组合由所选择的专家神经网络生成的专家输出可以包括:按所选择的专家神经网络的权重对由所选择的专家神经网络中的每一个生成的专家输出进行加权,以生成加权专家输出,并将加权专家输出求和以生成moe输出。选通子系统可以包括选通子网,其中选通子网被配置为:根据选通参数集来处理第一层输出以生成包括多个专家神经网络中的每一个的相应权重的权重向量,以及基于权重向量中的权重来选择专家神经网络中的一个或多个。权重向量可以是仅针对专家神经网络中的少数专家神经网络包括非零权重的稀疏向量。选择一个或多个专家神经网络可以包括仅选择在权重向量中具有非零权重的专家神经网络。

根据选通参数集来处理第一层输出以生成包括多个专家神经网络中的每一个的相应权重的权重向量包括:生成初始选通输出,其中生成初始选通输出包括将选通参数集应用于第一层输出;将稀疏化函数应用于初始选通输出,以生成稀疏化的初始选通输出;以及将softmax函数应用于稀疏化的初始选通输出以生成权重向量。

生成初始选通输出可以包括:将选通参数集应用于第一层输出,以生成修改后的第一层输出;以及将可调谐高斯噪声添加到修改后的第一层输出,以生成初始选通输出。将可调谐高斯噪声添加到修改后的第一层输出以生成初始选通输出可以包括:将可训练噪声参数集应用于第一层输出,以生成初始噪声输出;将初始噪声输出与从正态分布采样的噪声值的向量按元素相乘,以生成最终噪声输出;以及将最终噪声输出添加到修改后的第一层输出。稀疏化函数将初始选通输出中除了k个最高值以外的所有值设置为被softmax函数映射为零的值。选通子系统包括父选通子网和多个子选通子网,其中子选通子网中的每一个管理多个专家神经网络的与每个其他子选通子网不相交的子集。

本说明书中描述的主题的另一创新方面可以体现在包括以下步骤的方法中:接收网络输入;以及使用上述系统来处理网络输入,以生成网络输入的网络输出。

本说明书中描述的主题的其他创新方面可以体现在用指令编码的一个或多个非暂时性存储介质中,这些指令在由一个或多个计算机实施时使得一个或多个计算机实施上述系统和方法。

本说明书中描述的主题可以在特定实施例中实施,以便实现以下优点中的一个或多个。虽然一些moe实施方式涉及大量的训练时间和计算成本,但是本文描述的各种实施例涉及在不极大地增加计算资源需求的情况下提高计算能力的moe实施方式。特别地,本说明书中描述的各种实施例涉及moe实施方式,其中包括moe子网的神经网络的计算能力(参数数量)可以通过利用大量专家神经网络的可用性来增加。在本文描述的一些moe实施方式中,在由神经网络处理任何给定网络输入期间,仅选择少量专家神经网络,并且因此使用神经网络处理推理需要的处理时间和计算资源可以维持在合理的水平。也就是说,在维持合理的处理时间的同时,可以极大地增加计算能力,而不需要极大地增加处理推理所需的计算资源的数量。结果,在合理的处理时间和计算成本下,神经网络可以实现比现有方法显著更好的结果(例如,更好的预测精度),特别是对于其中模型能力对于吸收训练数据集中大量可用知识至关重要的任务。因此,本说明书中描述的主题可以在特定实施例中实施,以实现各种技术效益。不仅如此,根据各种实施例的神经网络系统可以应用于各种技术目的,包括但不限于估计图像包含属于某个类别的对象的图像的可能性。

本说明书主题的一个或多个实施例的细节在附图和以下描述中阐述。从说明书、附图和权利要求书中,主题的其他特征、方面和优点将变得显而易见。

附图说明

图1是神经网络系统的示例的框图。

图2是用于针对输入生成混合专家(moe)输出的示例过程的流程图。

图3是用于确定权重向量并用于基于该权重向量选择专家神经网络中的一个或多个的示例过程的流程图。

不同附图中相同的参考数字和标记指示相同的元件。

具体实施方式

图1示出了神经网络系统100的示例。神经网络系统100是在一个或多个位置处的一个或多个计算机上被实施为计算机程序的系统的示例,其中可以实施下面描述的系统、组件和技术。一般而言,系统100包括神经网络102,神经网络102可以被配置为接收任何种类的数字数据输入,并基于该输入生成任何种类的分数、类别或回归输出。

例如,如果到神经网络102的输入是已经从图像中提取的图像或特征,则由神经网络102针对给定图像生成的输出可以是对象类别集中的每一个类别的分数,其中每个分数表代表图像包含属于该类别的对象的图像的估计可能性。

作为另一示例,如果到神经网络102的输入是互联网资源(例如,网页),文档,或文档的部分,或从互联网资源、文档或文档的部分中提取的特征,则神经网络针对给定互联网资源、文档或文档的部分生成的输出可以是主题集中的每一个主题的分数,其中每个分数代表互联网资源、文档或文档的部分是关于主题的估计可能性。

作为另一示例,如果到神经网络102的输入是特定内容元素的印象上下文的特征,则由神经网络102生成的输出可以是代表特定内容元素将被点击的估计可能性的分数。

作为另一示例,如果到神经网络102的输入是用户的个性化推荐的特征,例如,表征该推荐的上下文的特征,例如表征用户采取的先前的动作的特征,则由神经网络102生成的输出可以是内容元素集中的每一个内容元素的分数,其中每个分数代表用户对被推荐内容元素有利地进行响应的估计可能性。

作为另一示例,如果到神经网络102的输入是一种语言的文本序列,则由神经网络102生成的输出可以是另一语言的文本片段集中的每一个文本片段的分数,其中每个分数代表另一语言的文本片段是输入文本到另一语言的的正确翻译的估计可能性。

作为另一示例,如果到神经网络102的输入是代表口头话语(spokenutterance)的序列,则由神经网络102生成的输出可以是文本片段集中的每一个文本片段的分数,每个分数代表该文本片段是话语的正确记录(transcript)的估计可能性。

神经网络102包括神经网络层的堆叠。神经网络层的堆叠可以是任何种类的神经网络层,例如,长短期记忆(longshort-termmemory,lstm)神经网络层或者其他递归神经网络层、卷积神经网络层或全连接神经网络层。在一些实施方式中,神经网络层的堆叠可以包括两个或更多个不同种类的神经网络层的混合。为了增加神经网络102的计算能力,神经网络102在堆叠的神经网络层之间包括一个或多个混合专家(moe)子网。

特别地,如图1所示,神经网络102包括布置在神经网络102中的第一神经网络层104和第二神经网络层108之间的moe子网130。第一神经网络层104和第二神经网络层108可以是任何种类的神经网络层,例如,lstm神经网络层或其他递归神经网络层、卷积神经网络层或全连接神经网络层。在一些实施方式中,第一神经网络层104和第二神经网络层108中的一个或两者可以是其他moe子网。

moe子网130包括多个专家神经网络,例如,专家神经网络114-122。moe子网130中的每个专家神经网络可以被配置为根据专家神经网络的相应专家参数集来处理由第一神经网络层104生成的第一层输出124,以生成相应的专家输出。

虽然图1示出了moe子网130仅包括5个专家神经网络,但是一般而言,moe子网可以包括大量专家神经网络,例如,数千个专家神经网络。每个专家神经网络可以是具有自己参数的前馈神经网络。专家神经网络被配置为接收相同大小的输入并产生相同大小的输出。在一些实施方式中,专家神经网络是具有相同架构但具有不同参数的前馈神经网络。每个专家神经网络可以具有非常大量的参数。例如,每个专家神经网络可以具有100万到200万个参数,使得moe子网的参数的总数为数十亿个参数。

虽然moe子网包括大量的专家神经网络,但是在由神经网络102处理任何给定网络输入期间,仅选择少量的专家神经网络,例如,仅选择少量的专家神经网络来处理第一层输出124。神经网络102包括选通子系统110,选通子系统110被配置为基于第一层输出124来选择专家神经网络中的一个或多个,并为每个所选择的专家神经网络确定相应的权重。选通子系统110然后将第一层输出作为输入提供给所选择的专家神经网络中的每一个。选通子系统110根据所选择的专家神经网络的权重来组合由所选择的专家神经网络生成的专家输出,以生成moe输出132。选通子系统110然后将moe输出132作为输入提供给第二神经网络层108。

特别地,选通子系统110包括选通子网112,选通子网112被配置为根据选通子网的选通参数集来处理第一层输出以生成包括多个专家神经网络中的每一个的相应权重的权重向量,并且基于权重向量中的权重来选择专家神经网络中的一个或多个。

例如,假定moe子网130包括n个专家神经网络e1,...,en的集合,则表示为g的选通子网112被配置为处理给定输入x(例如,第一层输出124)以生成权重向量g(x)。权重向量g(x)包括该n个专家神经网络的集合中的每个专家神经网络的相应权重。选通子网112被配置为基于权重向量g(x)中的权重从该n个专家神经网络的集合中选择一个或多个专家神经网络。特别地,权重向量g(x)是仅针对该集合中的专家神经网络中的少数专家神经网络包括非零权重的稀疏n维向量。非零权重的数量是整数,并且与moe子网130中的专家神经网络的数量相比非常小。例如,moe子网130可以具有成百上千个专家神经网络,并且权重向量g(x)可以具有一个、两个或五个非零权重。非零权重的数量可以基于诸如计算成本、模型质量(例如预测质量)以及moe子网130是否处于测试或训练条件下的标准来确定。一般而言,较小数量的非零权重需要较少的计算,而较大数量的非零权重导致较高的模型质量。一般而言,非零权重的数量可以在每个网络输入之前修改,或者可以针对所有网络输入保持固定。在训练期间,对于训练期间处理的至少一些网络输入,非零权重的数量被设置为大于1的值。选通子网112仅选择在权重向量g(x)中具有非零权重的专家神经网络。例如,图1中的专家神经网络116和120具有非零权重,并且因此被选择用于进一步处理。

下面参照图3更详细地描述用于生成具有预定数量的非零权重的权重向量的过程。

在已经生成权重向量并且已经选择了一个或多个专家神经网络(例如,专家神经网络116和120)之后,选通子系统110通过按所选择的专家神经网络的权重对由所选择的专家神经网络中的每一个生成的专家输出(例如,由专家神经网络116生成的专家输出126和由专家神经网络120生成的专家输出128)进行加权,以生成加权专家输出,并将加权专家输出(例如,加权专家输出134和136)求和以生成moe输出132。

特别地,moe输出132可以表达如下:

其中y是基于权重向量g(x)的输出的稀疏性而计算的moe输出。这意味着在任何g(x)i=0的情况下,专家神经网络集中的第i个专家神经网络ei不需要计算相应的专家输出ei(x)。

在生成moe输出132之后,选通子系统110将moe输出132作为输入提供给第二神经网络层108用于进一步处理。

在一些实施方式中,第二神经网络层108可以是另一moe子网,而不是传统的神经网络层。

在一些实施方式中,如果专家神经网络的数量非常大(例如,超过一千个专家神经网络),则可以通过使用多级分层moe子网来降低选通子网112的分支因子(branchingfactor)。例如,在两级分层moe子网中,选通子系统110可以包括父选通子网和多个子选通子网,其中子选通子网中的每一个本身是具有其自己的选通子网的次级moe子网。子选通子网中的每一个管理多个专家神经网络的与每个其他子选通子网不相交的子集。父选通子网选择子选通子网的稀疏加权组合,并基于该稀疏加权组合生成moe输出。

条件计算的使用(其中moe子网130的部分在每个输入示例的基础上是激活的)可以显著增加神经网络102的计算能力,而不会成比例地增加计算。这是因为moe子网130可以具有数千个专家神经网络,但是对于每个输入只需要估计非常少的专家神经网络。结果,神经网络102可以以较低的计算成本实现比现有方法明显更好的结果,特别是对于诸如语言建模和机器翻译的任务,其中模型能力对于吸收训练语料库(trainingcorpora)中大量可用知识至关重要。作为示例,神经网络102可以在具有包括10亿至1000亿单词的数据集的语言建模任务上被训练。在另一示例中,神经网络102可以在具有数千万个句子对(sentencepair)的数据集的单一语言对(languagepair)机器翻译任务上被训练。在又一示例中,神经网络102可以在具有十二种语言对的非常大的组合数据集的多语言机器翻译任务上被训练。在训练期间,神经网络102的各种组件可以通过反向传播来联合训练。

图2是用于使用moe子网(例如图1的moe子网130)针对输入生成混合专家(moe)输出的示例过程200的流程图。为了方便起见,该过程将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,适当编程的神经网络系统(例如,图1的神经网络系统100)可以执行该过程。

系统接收由moe子网之前的神经网络层生成的第一层输出作为输入(步骤202)。moe子网包括多个专家神经网络和含有选通子网的选通子系统。

系统基于第一层输出来选择多个专家神经网络中的一个或多个,并为每个所选择的专家神经网络确定相应权重(步骤204)。

具体地,系统根据选通子网的选通参数集来处理第一层输出以生成包括多个专家神经网络中的每一个的相应权重的权重向量。然后,系统基于权重向量中的权重来选择多个专家神经网络中的一个或多个。具体而言,权重向量是仅针对专家神经网络中的少数专家神经网络包括非零权重的稀疏向量,并且系统仅选择在权重向量中具有非零权重的专家神经网络。下面参考图3更详细地描述生成权重向量。

系统将第一层输出作为输入提供给所选择的专家神经网络中的每一个(步骤206)。所选择的专家神经网络中的每一个被配置为根据所选择的专家神经网络的参数的相应当前值来处理第一层输出,以生成相应的专家输出。

然后,系统根据所选择的专家神经网络的权重组合由所选择的专家神经网络生成的专家输出,以生成moe输出(步骤208)。

具体地,系统按所选择的专家神经网络的权重对由所选择的专家神经网络中的每一个生成的专家输出进行加权,以生成加权专家输出。然后,系统将加权专家输出求和以生成moe输出。

然后,系统将moe输出作为输入提供给moe子网之后的第二神经网络层,用于进一步处理。

图3是用于确定权重向量并用于基于权重向量来选择被包括在moe子网(例如,图1的moe子网130)中的专家神经网络中的一个或多个的示例过程300的流程图。为了方便起见,该过程将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,适当编程的神经网络系统(例如,图1的神经网络系统100)可以执行该过程。

系统将moe子网的选通子网的选通参数集应用于第一层输出,以生成修改后的第一层输出(步骤302)。

系统向修改后的第一层输出添加噪声,以生成初始选通输出(步骤304)。噪声有助于负载平衡,即,鼓励专家神经网络在训练期间在训练数据集中接收大致相等数量的训练示例,或者在测试期间在输入数据中接收大致相等数量的输入示例。

例如,噪声可以是可调谐高斯噪声。为了将可调谐高斯噪声添加到修改后的第一层输出,系统首先将可训练噪声参数集应用到第一层输出,以生成初始噪声输出。系统然后将初始噪声输出与从正态分布中采样的噪声值的向量按元素相乘,以生成最终噪声输出。在一些实施方式中,系统可以在将初始噪声输出与从正态分布中采样的噪声值的向量按元素相乘以生成最终噪声输出之前,在初始噪声输出上应用softplus函数。然后,系统将最终噪声输出添加到修改后的第一层输出,以生成初始选通输出。

例如,第一层输出x的初始选通输出可以表示为向量h(x),其具有等于moe子网中专家神经网络的数量的维度。与第i个专家神经网络相对应的h(x)第i个元素可以计算如下:

h(x)i=(x·wg)i+standardnormal()·softplus((x·wnoise)i);

其中wg是被应用于第一层输出x以生成修改后的第一层输出xwg的选通参数集;wnoise是可训练噪声参数集;并且standardnormal()是用于采样噪声值的向量的正态分布。

系统将稀疏化函数应用于初始选通输出,以生成稀疏化的初始选通输出(步骤306)。稀疏化函数将初始选通输出中除了k个最高值以外的所有值设置为被softmax函数映射为零的值,其中k是整数。k可以基于诸如计算成本、模型质量(例如,预测质量)以及moe子网是否处于测试或训练条件下的标准来确定。一般而言,较小的k值需要较少的计算,而较大的k值会导致较高的模型质量。一般而言,非零权重的数量可以在每个网络输入之前修改,或者可以针对所有网络输入保持固定。在训练期间,对于训练期间处理的至少一些网络输入,非零权重的数量被设置为大于1的值。稀疏化函数的示例具有以下形式:

稀疏化的初始选通输出可以被表达为keeptopk(h(x),k)。

系统将softmax函数应用于稀疏化的初始选通输出,以生成权重向量(步骤308)。权重向量是仅针对专家神经网络中的少数专家神经网络包括非零权重的稀疏向量。例如,权重向量g(x)可以如下计算:

g(x)=softmax(keeptopk(h(x),k))。

系统基于权重向量中的权重来选择多个专家神经网络中的一个或多个(步骤310)。具体而言,系统仅选择在权重向量中具有非零权重的专家神经网络。

在神经网络102的训练期间,过程200和300可以被用作“针对训练输入生成网络输出”的一部分。目标函数的梯度可以反向传播,以调整神经网络102的各种组件的参数值,从而相对于训练输入的已知输出改善网络输出的质量。

本说明书结合系统和计算机程序组件而使用术语“配置”。对于一个或多个计算机的系统来说,被配置为执行特定的操作或动作意味着系统已经在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中使得系统执行操作或动作。对于一个或多个计算机程序来说,被配置为执行特定操作或动作意味着该一个或多个程序包括指令,当由数据处理装置执行时,这些指令使得该装置执行操作或动作。

本说明书中描述的主题和功能性操作的实施例可以在数字电子电路系统、有形体现的计算机软件或固件、计算机硬件(包括本说明书中公开的结构及其结构等同物)中实施,或者在它们中的一个或多个的组合中实施。本说明书中描述的主题的实施例可以被实施为一个或多个计算机程序,即被编码在有形非暂时性存储介质上、用于由数据处理装置执行或控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机存储介质可以是机器可读存储设备、机器可读存储基底、随机或串行访问存储器设备、或者它们中的一个或多个的组合。可替换地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电信号、光信号或电磁信号,该信号被生成以编码信息以用于传输到合适的接收器装置以供数据处理装置执行。

术语“数据处理装置”指的是数据处理硬件,并且涵括用于处理数据的各种装置、设备和机器,举例来说包括可编程处理器、计算机或多个处理器或计算机。该装置还可以是或者进一步包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置可以可选地包括为计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。

计算机程序(也可以被称为或描述为程序、软件、软件应用、应用、模块、软件模块、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,或者声明性或程序性语言;并且其可以以任何形式部署,包括作为独立程序,或作为模块、组件、子例程或适合在计算环境中使用的其他单元。程序可以但不必对应于文件系统中的文件。程序能够存储在保存其它程序或者数据的文件的部分(例如,存储在标记语言文档中的一个或多个脚本)中、存储在专用于所讨论的程序的单一文件中、或者存储在多个协调的文件(例如,存储一个或多个模块、子程序、或者代码的部分的文件)中。可以部署计算机程序以在一个计算机上或者在位于一个站点处或跨多个站点分布并通过数据通信网络互连的多个计算机上执行。

本说明书中描述的过程和逻辑流程可以由运行一个或多个计算机程序的一个或多个可编程计算机执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路系统,例如,fpga或asic,或者由专用逻辑电路系统和一个或多个编程计算机的组合来执行。

适于执行计算机程序的计算机可以基于通用微处理器或专用微处理器或两者,或者任何其他类型的中央处理单元。一般而言,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路来补充或并入专用逻辑电路系统。一般而言,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘或光盘)或者可操作地被耦合到这样的一个或多个大容量存储设备,以从其接收数据或向其发送数据或两者均可。然而,计算机不需要这样的设备。此外,计算机可以被嵌入在另一设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏机、全球定位系统(gps)接收器、或便携式存储设备(例如,通用串行总线(usb)闪速驱动器),仅列举几个。

适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,举例来说,包括半导体存储器设备(例如,eprom,eeprom和闪存设备)、磁盘(例如,内部硬盘或可移动盘)、磁光盘、以及cd-rom和dvd-rom盘。

为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有用于向用户显示信息的显示设备(例如crt(阴极射线管)或lcd(液晶显示器)监视器)以及用户可通过其向计算机提供输入的键盘和指示设备(例如,鼠标或轨迹球)的计算机上实施。其他类型的设备也可被用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以包括声音、语音或触觉输入的任何形式接收来自用户的输入。此外,计算机可以通过向用户使用的设备传送文档和从该设备接收文档来与用户交互,例如,通过响应于从网页浏览器接收的请求向用户的设备上的网页浏览器传送网页。并且,计算机可以通过向个人设备(例如,运行消息传送应用的智能手机)传送文本消息或其他形式的消息以及从用户接收响应消息作为交换来与用户交互。

用于实施机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,专用硬件加速器单元用于处理机器学习训练或生产的公共且计算密集的部分,即推理、工作负载。

机器学习模型可以使用机器学习框架来实施和部署,例如,tensorflow框架、微软认知工具包框架、apachesinga框架或apachemxnet框架。

本说明书中描述的主题的实施例可以在计算系统中实施,计算系统包括后端组件(例如作为数据服务器的后端组件),或者包括中间件组件(例如应用服务器),或者包括前端组件(例如具有用户可以通过其与本说明书中描述的主题的实施方式交互的图形用户界面、网页浏览器或应用的客户端计算机),或者包括一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信相互连接,例如通信网络。通信网络的示例包括局域网(lan)和广域网(wan),例如互联网。

计算系统可以包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通过通信网络交互。客户端和服务器的关系由于在各个计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将数据(例如,html页面)发送到用户设备,例如,用于向与充当客户端的设备交互的用户显示数据和从该用户接收用户输入的目的。在用户设备处生成的数据(例如用户交互的结果)可以在服务器处从设备接收。

虽然本说明书包含许多特定的实施方式细节,但这些不应被解释为对任何发明的范围或可能要求保护的范围的限制,而是对可能特定于特定发明的特定实施例的特征的描述。本说明书中在分离的实施例的上下文中描述的某些特征也可以在单一实施例中以组合的方式实施。相反,在单一实施例的上下文中描述的各种特征也可以分离地或以任何合适的子组合在多个实施例中实施。此外,虽然以上可以将特征描述为以某些组合起作用并且甚至这些特征最初被要求这样保护,但是在某些情况下来自要求保护的组合的一个或多个特征可以从该组合中删去,并且要求保护的组合可以指向子组合或子组合的变体。

类似地,虽然在附图中描述了操作,并且在权利要求中以特定顺序记载了操作,但是这不应该被理解为要求这些操作以所示的特定次序或按顺序的次序执行,或者要求执行所有示出的操作,以实现期望的结果。在某些情况下,多任务处理和并行处理可以是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解的是,描述的程序组件和系统一般可以在单一软件产品中集成在一起或者被封装到多个软件产品中。

已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中记载的动作可以以不同的次序执行,并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定要求所示的特定次序或顺序的次序来实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。

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