关联长短期记忆神经网络层的制作方法

文档序号:15884504发布日期:2018-11-09 18:35阅读:158来源:国知局
关联长短期记忆神经网络层的制作方法

本说明书涉及递归神经网络架构。

背景技术

神经网络是采用非线性单元的一个或多个层来针对接收到的输入预测输出的机器学习模型。一些神经网络除了包括输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中的下一个层(即,下一个隐藏层或输出层)的输入。网络的每个层根据相应的参数集合的当前值从接收到的输入生成输出。一些强化学习系统根据神经网络的输出来选择要由代理响应于给定观察结果而执行的动作。

一些神经网络是递归神经网络。递归神经网络是接收输入序列并且从该输入序列生成输出序列的神经网络。特别地,递归神经网络可在在当前时间步计算输出时使用来自前一个时间步的网络的内部状态中的一些或全部。



技术实现要素:

一般而言,本说明书中描述的主题的一个创新方面可被具体实现在包括由一个或多个计算机实现的递归神经网络的系统中,其中,递归神经网络被配置成在多个时间步中的每一个接收相应的神经网络输入并且在多个时间步中的每一个生成相应的神经网络输出,其中,递归神经网络包括关联长短期记忆(lstm)层,其中,关联lstm层被配置成为关联lstm层维护内部状态的n个副本,n是大于一的整数,并且其中,关联lstm层还被配置成在多个时间步中的每一个接收时间步的层输入,使用时间步的层输入和由关联lstm层针对前一个时间步而生成的层输出来更新内部状态的n个副本中的每一个,并且使用内部状态的n个更新的副本来生成时间步的层输出。

此方面的其它实施例包括执行关联lstm层被配置成执行的操作的方法。此方面的其它实施例包括记录在一个或多个计算机存储装置上的对应的计算机系统、设备和计算机程序,分别被配置成执行方法的动作。一个或多个计算机的系统可被配置成借助于安装在系统上的软件、固件、硬件或其任何组合来执行特定操作或动作,所述软件、固件、硬件或其任何组合在操作中可以使系统执行动作。一个或多个计算机程序可被配置成借助于包括指令来执行特定操作或动作,所述指令当由数据处理设备执行时,使设备执行动作。

实施方式可包括以下可选特征中的一个或多个。更新内部状态的n个副本中的每一个包括根据在时间步的层输入和可选地前一个时间步的层输出来确定时间步的cell(神经元)状态更新;针对内部状态的n个副本中的每一个,根据在时间步的层输入和前一个时间步的层输出来确定对应的变换的输入键;以及针对内部状态的n个副本中的每一个,根据内部状态的副本、cell状态更新和对应的变换的输入键来确定内部状态的更新的副本。

针对内部状态的n个副本中的每一个根据在时间步的层输入和前一个时间步的层输出来确定对应的变换的输入键包括根据在时间步的层输入和前一个时间步的层输出来确定输入键;以及针对内部状态的n个副本中的每一个,通过用特定于副本的相应的置换矩阵置换输入键来确定用于副本的对应的变换的输入键。

更新内部状态的n个副本中的每一个还包括根据在时间步的层输入和前一个时间步的层输出来确定输入门,以及根据在时间步的层输入和前一个时间步的层输出来确定遗忘门。

根据内部状态的副本、cell状态更新和对应的变换的输入键来确定内部状态的更新的副本包括:将遗忘门应用于内部状态的副本以生成初始更新的副本;将输入门应用于cell状态更新以生成最终的cell状态更新;将对应的变换的输入键应用于最终的cell状态更新以生成旋转的cell状态更新;以及组合初始更新的副本和旋转的cell状态更新以生成内部状态的更新的副本。

生成时间步的层输出包括:针对内部状态的n个副本中的每一个,根据在时间步的层输入和前一个时间步的层输出来确定对应的变换的输出键;针对内部状态的n个副本中的每一个,使用对应的变换的输出键来修改内部状态的更新的副本;组合n个修改的副本以生成时间步的组合的内部状态;以及根据时间步的组合的内部状态来确定层输出。

组合n个修改的副本包括确定n个修改的副本的平均值。

针对内部状态的n个副本中的每一个根据在时间步的层输入和前一个时间步的层输出来确定对应的变换的输出键包括根据在时间步的层输入和前一个时间步的层输出来确定输出键;以及针对内部状态的n个副本中的每一个,通过利用特定于副本的相应的置换矩阵置换输出键来确定用于副本的对应的变换的输出键。

生成时间步的层输出还包括根据在时间步的层输入和前一个时间步的层输出来确定输出门,并且其中,根据时间步的组合的内部状态来确定层输出包括:对组合的内部状态应用激活函数以确定初始层输出;以及将输出门应用于初始层输出以确定时间步的层输出。

本说明书中描述的主题可被实现在特定实施例中以便实现以下优点中的一个或多个。具有长短期记忆(lstm)架构的递归神经网络层可被实现有用于存储内部状态值的附加存储器单元并且被实现有为内部状态存储器编索引的能力。由lstm层维护的内部状态值将不太有噪声且更可靠。将增强涉及跟踪输入数据中的多个元素的lstm计算的准确性。通过针对时间步存储内部状态的多个副本,lstm层在内部故障或内部状态数据丢失时变得更具弹性。可将lstm层的时间复杂度降低至依赖于存储的内部状态副本的数量的线性增长级。通过使用未涉及冲突或者冲突已被解决的内部状态副本,可减轻两个或更多个内部状态副本的存储之间的冲突。通过存储更多的内部状态数据,lstm层可更好地检测其输入和输出数据之间的长期依赖关系。

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

附图说明

图1示出示例神经网络系统。

图2是用于生成时间步的层输出的示例过程的流程图。

图3是用于使用内部状态的更新的副本来生成层输出的示例过程的流程图。

图4是用于更新特定时间步的内部状态的副本的示例过程的流程图。

在各个附图中相似的附图标记和名称指示相似的元素。

具体实施方式

图1示出示例神经网络系统100。神经网络系统100是作为计算机程序实现在一个或多个位置中的一个或多个计算机上的系统的示例,其中可实现在下面所描述的系统、组件和技术。

神经网络系统100是在多个时间步中的每一个接收相应的神经网络输入并且在这些时间步中的每一个生成相应的神经网络输出的机器学习系统。也就是说,在多个时间步中的每一个,神经网络系统100接收神经网络输入并处理该神经网络输入以生成神经网络输出。例如,在给定时间步,神经网络系统100可接收神经网络输入102并生成网络输出132。

神经网络系统100可将生成的神经网络输出存储在输出数据储存库中或者提供神经网络输出以用于某个其它直接目的。

神经网络系统100可被配置成接收任何种类的数字数据输入并且基于该输入生成任何种类的分数或分类输出。

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

作为另一示例,如果神经网络系统100的输入是因特网资源(例如,web页面)、文档或文档的部分,或者从因特网资源、文档或文档的部分中提取的特征,则由神经网络系统100针对给定因特网资源、文档或文档的部分而生成的输出可以是针对一组话题中的每一个的分数,其中每个分数表示因特网资源、文档或文档部分关于该话题的估计的可能性。

作为另一示例,如果神经网络系统100的输入是针对用户的个性化推荐的特征,例如,表征用于推荐的上下文的特征,例如,表征由用户采取的先前动作的特征,则由神经网络系统100生成的输出可以是针对一组内容项中的每一个的分数,其中每个分数表示用户将对被推荐该内容项做出有利响应的估计可能性。在这些示例中的一些中,神经网络系统100是向用户提供内容推荐的强化学习系统的一部分。

作为另一示例,如果神经网络系统100的输入是一种语言中的文本,则由神经网络系统100生成的输出可以是针对另一语言中的一组文本片段中的每一个的分数,其中每个分数表示另一语言中的文本片段是输入文本变成另一语言的适当翻译的估计的可能性。

作为另一示例,如果神经网络系统100的输入是口头发言的特征,则由神经网络系统100生成的输出可以是针对一组文本片段中的每一个的分数,每个分数表示该文本片段是针对该发言的正确转录的估计的可能性。

作为另一示例,如果神经网络系统100的输入是图像,则由神经网络系统100生成的输出可以是针对一组文本片段中的每一个的分数,每个分数表示该文本片段是存在于输入图像中的文本的估计的可能性。

特别地,神经网络系统100包括递归神经网络110,其进而包括关联长短期记忆(lstm)层120。

递归神经网络110被配置成在每个时间步接收神经网络输入,并且处理该神经网络输入以在该时间步生成神经网络输出。

递归神经网络110除了包括关联lstm层120之外还可以包括一个或多个神经网络层。例如,递归神经网络110可包括一个或多个常规lstm层、一个或多个其它关联lstm层、一个或多个常规递归神经网络层和/或一个或多个前馈神经网络层。在一些实施方式中,递归神经网络110是深度lstm神经网络,其中关联lstm层120的输入是递归神经网络110的输入或递归神经网络110的另一lstm层的输出。

关联lstm层120被配置成在每个时间步接收当前层输入102,并且处理当前层输入102和内部状态以生成更新的内部状态。关联lstm层120通过根据层输入102更新内部状态来生成更新的内部状态。

关联lstm层120可基于与层120相关联的许多lstm门的值来生成对当前内部状态的更新。在一些实施方式中,lstm门包括输入门、遗忘门和输出门。

关联lstm层120可使用lstm门的值来针对时间步确定隐藏状态。关联lstm层120维护内部状态的多于一个副本。在每个时间步,关联lstm层120使用时间步的层输入102和由关联lstm层针对前一个时间步而生成的更新的内部状态来更新内部状态的副本121中的每一个。在下面参考图3更详细地描述更新内部状态的副本121。

关联lstm层120也针对每个时间步使用内部状态的更新的副本121来生成该时间步的层输出122。在下面参考图2更详细地描述使用内部状态的更新的副本121来生成时间步的层输出。

在一些实施方式中,通过针对每个时间步维护内部状态的多于一个副本121,神经网络系统100可减少与用于关联lstm层120计算的内部状态的值相关联的噪声量。内部状态的每个副本121是内部状态的不同表示。为了减少与内部状态的检索值相关联的噪声量,神经网络系统100可使用存储在多个副本121中的内部状态的表示的集中趋势(例如,平均值)的度量来针对每个时间步确定关联lstm层120的隐藏状态。

关联lstm层120的内部状态的个体副本121可以包括噪声。这例如可以是当内部状态跟踪多个元素在层输入102值的序列中的出现时的情况。在此类情况下,从内部状态的多个副本导出的内部状态的度量可校正一些噪声并且因此更可靠且准确。

例如,如果时间步的内部状态聚合多个组成值,其中每个组成值针对特定时间步估计一类过滤器在层输入102值的序列中的出现,则神经网络系统100可通过维护内部状态的多于一个副本并且使用内部状态的多个副本的集中趋势的度量来计算用于关联lstm层120计算的内部状态的度量来减少与处于聚合内部状态下的每个组成值的表示相关联的噪声。

图2是用于生成时间步的层输出的示例过程200的流程图。为了方便,过程200将被描述为通过由位于一个或多个位置中的一个或多个计算机的系统所实现的关联lstm层来执行。例如,根据本说明书适当地编程的神经网络系统中的关联lstm层(例如,图1的神经网络系统100的关联lstm层120)可执行过程200。

关联lstm层接收时间步的层输入(210)。

关联lstm层使用时间步的层输入和由关联lstm层针对前一个时间步而生成的层输出来更新内部状态的n个副本中的每一个(220)。在下面参考图4更详细地描述更新内部状态的n个副本中的每一个。

关联lstm层使用内部状态的n个更新的副本来生成时间步的层输出(230)。在下面参考图3更详细地描述使用更新的内部状态副本来生成时间步的层输出。

图3是用于使用内部状态的更新的副本来生成层输出的示例过程300的流程图。为了方便,过程300将被描述为通过由位于一个或多个位置中的一个或多个计算机的系统所实现的关联lstm层来执行。例如,根据本说明书适当地编程的神经网络系统中的关联lstm层(例如,图1的神经网络系统100的关联lstm层120)可执行过程300。

关联lstm层接收层输入(310)。

关联lstm层根据在时间步的层输入和前一个时间步的层输出来确定用于每个内部状态副本的相应的变换的输出键(320)。

也就是说,关联lstm层维护从时间步到时间步的内部状态的多个副本。当针对给定时间步接收层输出时,关联lstm层根据在该时间步的层输入和在前一个时间步的层输出来确定用于每个副本的变换的输出键。

针对每个内部状态副本,经变换的输出键被配置成被用于从具有分布式表示的数据结构中检索时间步的内部状态,该分布式表示表示该时间步的内部状态副本中的全部。当内部状态副本被存储在分布式表示数据结构中时,内部状态副本的内容不再能通过那些副本的位置来检索,因为那些内容分布在分布式表示数据结构的所有位置中。为了检索内部状态副本,关联lstm层需要对分布式数据结构中的数据应用提取操作。关联lstm层使用用于每个内部状态副本的经变换的输出键来从分布式表示数据结构获得该内部状态副本的值。

分布式表示数据结构的示例包括基于全息缩减表示(hrr)生成的复数矢量。

在一些实施方式中,关联lstm层根据在时间步的层输入和前一个时间步的层输出来确定输出键,并且通过用特定于内部状态副本的相应的置换矩阵置换该输出键来确定用于副本的所对应的变换的输出键。

在一些实施方式中,关联lstm层在每个时间步期间执行以下操作:

其中ro是相应的时间步的初始输出键,xt是时间步的层输入,ht-1是前一个时间步的层输出,bh是时间步的偏置矢量,并且wxh和whh分别是应用于xt和ht-1的参数矩阵。

在一些实施方式中,关联lstm层对初始键应用界函数以生成时间步的输出键。

在一些实施方式中,界函数是对复数矢量进行操作并且限制复数矢量中的每个复数对的模数的函数。

例如,界函数对复数矢量h可能要求以下操作:

其中是关于矢量d的逐元素除法操作,其通过h中的每个复数的模数导致逐元素归一化。在一些实施方式中,关联lstm层可以使用以下等式来确定d的元素的值:

其中⊙是逐元素矢量乘法操作。

关联lstm层更新内部状态的每个副本(330)。在下面参考图3更详细地描述更新内部状态的副本。

关联lstm层使用所对应的变换的输出键来修改内部状态的每个更新的副本(340)。

在一些实施方式中,关联lstm层在内部状态的更新的副本与对应于该更新的副本的经变换的输出键之间执行合并操作,诸如复数矢量乘法操作,以修改更新的副本。

关联lstm层组合内部状态的已修改的副本(350)。

在一些实施方式中,关联lstm层计算内部状态的已修改的副本的集中趋势(例如,平均值)的度量以生成组合的内部状态。

关联lstm层根据时间步的已组合的内部状态来确定层输出(360)。

在一些实施方式中,关联lstm层维护输出门,其在每个时间步的值是基于当前时间步的层输入和来自前一个时间步的层输出来确定的。例如,关联lstm层可以基于处理当前时间步的层输入和来自前一个时间步的层输出并且对该处理的结果应用激活函数(例如,逻辑sigmoid函数)来针对每个时间步确定输出门的值。

在那些实施方式中的一些中,关联lstm层对已组合的内部状态应用激活函数(例如,双曲正切函数)以确定初始层输出并且将输出门应用于该初始层输出以确定时间步的层输出。

除了输出门之外,关联lstm层还可以包括:(1)遗忘门,其值确定关联lstm层是否应该将关联lstm层针对前一个时间步的输出处理或者忽略为隐藏状态,以及(2)输入门,如果决定要忽略前一个时间步的输出,则其值确定关联lstm层应该采取什么作为隐藏状态。

例如,关联lstm层可以执行以下操作:

ht=go⊙tanh(ct)

其中ht是时间步的层输出,go是输出门在时间步期间的值,ct是时间步的已组合的内部状态,并且tanh是双曲正切函数。

图4是用于针对特定时间步更新内部状态的副本的示例过程400的流程图。为了方便,过程400将被描述为由位于一个或多个位置中的一个或多个计算机的系统来执行。例如,根据本说明书适当地编程的神经网络系统中的关联lstm层(例如,图1的神经网络系统100的关联lstm层120)可执行过程400。

关联lstm层根据在时间步的层输入以及可选地前一个时间步的层输出来确定时间步的cell状态更新(410)。cell状态更新是关联lstm层基于对时间步的内部状态的提议更新的度量来计算的值。关联lstm层可以从时间步的层输入和前一个时间步的层输出生成对时间步的内部状态的提议更新。

在一些实施方式中,关联lstm层执行以下操作以生成提议更新:

其中是对时间步的内部状态的提议更新,xt是时间步的层输入,ht-1是前一个时间步的层输出,bu是用于生成提议更新的时间步的偏置值,并且wxu和whu是应用于xt和ht以生成提议更新的参数值。

在一些实施方式中,关联lstm层将界函数应用于对时间步的内部状态的提议更新以生成时间步的cell状态更新。

关联lstm层根据在时间步的层输入来确定用于时间步的变换的输入键,并且可选地根据在时间步的层输入和前一个时间步的层输出来确定用于每个内部状态副本的对应的变换的输入键(420)。

在一些实施方式中,关联lstm层使用插入操作来将内部状态副本插入到分布式表示数据结构,该分布式表示数据结构包括时间步的内部状态副本的内容(如上面所说明的)。经变换的输入键可以是该插入操作的操作数。

在那些实施方式中的一些中,关联lstm层通过对输入键应用用于特定内部状态副本的置换矩阵,基于输入键确定经变换的输入键。

在一些实施方式中,关联lstm层使用相同的副本特定置换矩阵来为特定内部状态副本生成经变换的输出键和经变换的输入键两者。

副本特定置换矩阵可以是具有以下形式的随机置换矩阵:

其中ps是具有随机值的矩阵,该矩阵被应用于复数输入键矢量和复数输出键矢量的实部和虚部两者。

在一些实施方式中,关联lstm层执行以下操作:

其中ri是相应的时间步的初始输入键,xt是时间步的层输入,ht-1是前一个时间步的层输出,bh是时间步的偏置值,并且wxh和whh分别是应用于xt和ht-1的参数值。

在一些实施方式中,关联lstm层将界函数应用于用于时间步的输入键的初始值以生成时间步的输入键。

关联lstm层根据内部状态的副本、cell状态更新和对应的变换的输入键来确定内部状态的每个更新的副本(430)。

在一些实施方式中,关联lstm根据时间步的层输入和多个lstm门在时间步中的值来确定时间步的内部状态的每个更新的副本。

在一些实施方式中,关联lstm层将用于内部状态副本的经变换的输入键应用于时间步的cell状态更新并且将结果得到的值与内部状态副本的度量组合以确定更新的内部状态副本。

在一些实施方式中,关联lstm层执行以下操作:

其中cs,t是内部状态的更新的副本,gf是针对时间步的关联lstm层的遗忘门,ri,s是用于内部状态副本的经变换的输入键,gi是针对时间步的关联lstm层的输入门,u是时间步的cell状态更新,是复数矢量乘法操作,并且⊙是逐元素矢量乘法操作。

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

术语“数据处理设备”包含用于处理数据的所有种类的设备、装置和机器,作为示例包括可编程处理器、计算机或多个处理器或计算机。设备可包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。设备除了包括硬件之外还可包括为所述计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。

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

如本说明书中所使用的,“引擎”或“软件引擎”指代提供与输入不同的输出的软件实现的输入/输出系统。引擎可以是功能性的编码块,诸如库、平台、软件开发工具包(“sdk”)或对象。可将每个引擎实现在包括一个或多个处理器和计算机可读介质的任何适当类型的计算装置上,所述计算装置例如为服务器、移动电话、平板计算机、笔记本计算机、音乐播放器、电子书阅读器、膝上型或台式计算机、pda、智能电话或其它固定或便携式装置。附加地,可以将这些引擎中的两个或更多个实现在相同的计算装置上或在不同的计算装置上。

本说明书中描述的过程和逻辑流程可以是通过一个或多个可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能来执行的。过程和逻辑流程也可由专用逻辑电路执行,并且设备也可作为专用逻辑电路被实现,所述专用逻辑电路例如为fpga(现场可编程门阵列)或asic(专用集成电路)。

作为示例,适合于执行计算机程序的计算机可基于通用微处理器或专用微处理器或两者,或任何其它种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元素是用于执行或者实行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器装置。通常,计算机也将包括或者在操作上耦合以从用于存储数据的一个或多个大容量存储装置(例如,磁盘、磁光盘或光盘)接收数据或者向所述大容量存储装置传送数据,或者兼而有之。然而,计算机未必具有此类装置。此外,计算机可被嵌入在另一装置中,所述另一装置例如为移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储装置(例如,通用串行总线(usb)闪存驱动器)等等。

适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器装置,作为示例包括半导体存储器装置,例如eprom、eeprom和闪速存储器装置;磁盘,例如内部硬盘或可移动盘;磁光盘;以及cdrom和dvd-rom盘。处理器和存储器可由专用逻辑电路补充,或者并入专用逻辑电路。

为了提供与用户的交互,可在计算机上实现本说明书中描述的主题的实施例,所述计算机具有用于向用户显示信息的显示装置(例如,crt(阴极射线管)或lcd(液晶显示器)监视器)以及用户可用来向该计算机提供输入的键盘和指点装置,例如,鼠标或轨迹球。其它种类的装置也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以任何形式接收来自用户的输入,包括声、语音或触觉输入。此外,计算机可通过向由用户使用的装置发送文档并且从由用户使用的装置接收文档来与用户交互;例如,通过响应于从web浏览器接收到的请求而向用户的客户端装置上的web浏览器发送web页面。

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

计算系统可包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络来交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。

虽然本说明书包含许多具体实现细节,但是这些不应该被解释为对任何发明的或可能要求保护的范围构成限制,而是相反作为可能特定于特定发明的特定实施例的特征的描述。也可在单个实施例中相结合地实现在本说明书中在单独的实施例的上下文中描述的某些特征。相反地,也可在多个实施例中单独地或者按照任何适合的子组合实现在单个实施例的上下文中描述的各种特征。此外,尽管特征可能已经在上面被描述为按照某些组合起作用并且甚至最初如此要求保护,然而来自要求保护的组合的一个或多个特征可在一些情况下被从该组合中除去,并且所要求保护的组合可以针对子组合或子组合的变化。

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

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

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