通用变换器的制作方法

文档序号:22400416发布日期:2020-09-29 18:12阅读:84来源:国知局
通用变换器的制作方法



背景技术:

诸如变换器(transformer)的自注意力前馈序列模型已示出在包括机器翻译、图像生成和选区解析的序列建模任务上实现给人深刻印象的结果,从而为递归神经网络呈现不可抗拒的替代方案,这些递归神经网络是许多序列建模问题的事实标准架构。然而,不管这些成功,变换器未能在递归模型轻松处理的一些任务中推广。这包括当字符串或公式长度超过在训练时观察到的那些长度时复制字符串或简单逻辑推理。

变换器模型在可在https://papers.nips.cc/paper/7181-attention-is-all-you-need.pdf处获得的vaswani等人,attentionisallyouneed,31stconferenceonneuralinformationprocessingsystems(nips2017),longbeach,ca,us中有所描述。此论文通过引用并入在这里。



技术实现要素:

本说明书描述了实现通用变换器(universaltransformer)的系统。通用变换器尤其解决了以上背景技术中描述的缺点。代替常见的序列对齐递归,通用变换器是在深度上递归,同时采用自注意力来组合来自序列的不同部分的信息。

通用变换器将自注意力前馈模型的理想并行性与非常适于一系列算法和自然语言问题的归纳偏置组合。通过跨层(深度)绑定参数,能够将通用变换器视为通过针对若干步(在深度上)遍及序列中的所有符号并行应用递归变换来迭代地细化其序列的编码。

通用变换器具有附加计算有利的特征。例如,与变换器模型不同,通用变换器是计算通用的,意味着模型能够用于模拟任何图灵机。此外,能够在训练之后动态地改变通用变换器的计算步数,因为模型跨其顺序计算步共享权重。因此,能够将由模型采用的深度动态地缩放到输入序列的大小和/或复杂度。

在若干任务上的实验中,通用变换器一贯优于前馈变换器和lstm(长短期记忆)递归神经网络显著地改进。

通用变换器的自适应变体按照序列中的位置采用自适应计算时间机制。当运行固定数目的步时,通用变换器相当于其参数跨层绑定的变换器。然而,在其自适应形式方面,通用变换器能够有效地插置在前馈固定深度变换器与取决于输入数据运行许多步的门控递归架构之间。在实验中,自适应变体在多种语言理解任务上实现了现有技术水平结果。

通用变换器任选地在序列的每个位置处应用动态自适应计算时间(act)暂停机制。act机制在可在https://arxiv.org/pdf/1603.08983.pdf处获得的graves,adaptivecomputationtimeforrecurrentneuralnetworks,arxivpreprintarxiv:1603.08983,2016中有所描述。

能够在特定实施例中实现本说明书中描述的主题,以便实现以下优点中的一个或多个。

所述类型的通用变换器系统能够用于实现自回归序列到序列模型,其中此类模型用于生成输出。自回归模型的应用的示例包括文本的概括从一种自然语言到另一种自然语言的机器翻译,其中输出是句子中的单词的序列、语音到文本和文本到语音,涉及单词和音素的序列。其它示例应用包括图像生成、语言建模和解析,例如选区解析。其它示例包括基于图像的序列的应用,包括自动驾驶汽车和机器人控制中的应用。例如,根据包括这种模型的真实或虚拟物理系统的输入的序列,例如图像,能够输出用于控制在物理系统中或与物理系统一起操作的机器的动作的序列。

能够在具有gpu和其它加速器硬件的计算机系统中有利地实现这些技术,以利用通用变换器的并行计算结构。

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

附图说明

图1是图示示例通用变换器对序列的操作的图。

图2是用于对源序列进行编码的示例过程的流程图。

图3是用于对目标序列进行解码的示例过程的流程图。

图4图示通用变换器的示例架构。

图5图示对序列中每元素的许多处理步骤的动态选择。

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

具体实施方式

图1是图示示例通用变换器对序列的操作的图。图1中图示的计算结构能够用于在在一个或多个位置中具有一个或多个计算机的编码器计算机系统或解码器计算机系统上实现编码器或解码器。为了简单,将示例描述为被实现在一个或多个计算机的系统上。如上所述,能够在并行处理系统上实现通用变换器的计算结构,其中并行处理系统的每个计算资源执行序列中的一个或多个位置的操作。

通常,为了实现编码器或解码器,系统能够遍及m个序列位置执行相同系列的编码或解码操作,可能并行进行t次迭代。如将在下面更详细地描述的,在一些实现方式中,系统能够自适应地将更多的计算资源投入于一些位置而将更少的资源投入于其它位置。在一些实现方式中,系统跨所有位置和所有时间步使用相同的参数值。

在每个位置处每个时间步的操作能够包括至少自注意力过程和转换函数。例如,在步t,系统能够使用自注意力过程112a和转换函数114a来处理序列中的第一元素,h1表示105a。系统然后能够更新h1表示105a并且重复相同步骤以进行t次迭代。类似地,系统能够使用自注意力过程112b后面接着转换函数114b进行t次迭代来处理序列中的第二元素,h2表示105b,并且更新h2表示105b。同样地,系统能够使用自注意力过程112m后面接着转换函数114m进行t次迭代来处理序列中的最后元素,hm表示105m,并且更新hm表示105m。

尽管在图1中示出了针对仅三个序列位置的计算,但是序列能够具有任一任意长度。因此,为了改进计算性能,系统能够在任何适当的并行处理硬件上实现计算。例如,每个步操作能够由gpu的不同流多处理器或多核心cpu的不同处理核心来实现。替换地或此外,每个步操作能够由分布式系统中的不同计算机来执行。

如图1中所示,针对每个序列位置的自注意力过程112a-m能够使用其它序列位置的当前表示作为输入。换句话说,在每步,系统能够将特定位置的输出以迄今为止针对一个或多个其它位置生成的表示为条件。当正在以并行处理执行操作时,能够将表示存储在中央可访问的位置中,或者在每步之后将表示广播给执行操作的所有处理器。

如将在下面更详细地描述的,用于解码器的自注意力过程也能够包括第二阶段注意力过程,该第二阶段注意力过程使用由编码器生成的最终表示作为输入。

图2是用于对源序列进行编码的示例过程的流程图。该示例过程能够由一个或多个位置中的一个或多个计算机的适当地编程的系统来执行。该过程将被描述为由一个或多个计算机的系统来执行。

系统接收输入序列(210)。如上所述,通用变换器广泛地适用于大量的序列到序列学习任务。因此,输入序列可以是序列到序列学习任务中的元素的任何适当的输入序列。

常见的序列到序列学习任务包括:问答任务,在此情况下输入序列是问句子中的单词;主语-动词一致任务,在此情况下输入序列是自然语言句子中的单词;预测遗漏目标单词,在此情况下输入序列是一个或多个前面的自然语言句子;算法任务,在此情况下输入序列可以是符号例如整数的序列;程序评价和记忆任务,在此情况下输入是计算机程序中的符号;机器翻译任务,在此情况下输入是第一语言的自然语言句子的单词。

系统生成输入序列中的元素的相应的初始表示(220)。例如,系统能够生成输入序列中的每个元素的向量表示。因此,如果输入序列的长度为m并且表示为d维的,则系统能够初始化具有m行的矩阵输入序列的每项各一行,同时在该行中项的表示的d个元素在矩阵的d列中。当输入元素是单词时,系统能够生成作为单词的相应单词嵌入的输入表示,其中单词嵌入是单词的向量表示。

系统然后使用自注意力过程和转换函数来多步重复地修订表示。因此,系统修订表示(230),并且确定对于每个输入元素是否达到了停止编码条件(240)。在一些实现方式中,针对每个输入元素的停止编码条件是最小修订步数t。

然而,在序列处理系统中,某些符号例如一些单词或音素通常比其它单词或音素更含糊。因此,系统能够动态地确定要将更多的处理资源分配给这些更含糊的符号。例如,系统能够将自适应计算时间用作用于动态地调制处理每个输入元素所需的计算步数的机制。具有动态暂停的通用变换器因此动态地调制处理每个输入符号所需的计算步数。步数能够基于由模型在每步预测的标量思考值。思考值在某种意义上是模型在每个处理步骤处对输入符号需要多少进一步计算的估计。

一旦每元素递归块暂停(对于该元素指示足够数目的修订),就将其表示简单地复制到下一步,直到所有块都停止为止或直到达到了最大数量的步为止。

如果尚不满足停止编码条件,则系统执行另一修订步(分支到230)。

系统能够通过递归地应用相同系列的操作在每一步上迭代地应用相同系列的操作。在一些实现方式中,系统也对于每步使用相同学习到的参数值。

例如,在从1到t的每个修订步t,系统能够计算更新的表示ht。为了这样做,系统能够应用多头点乘积自注意力机制,然后应用递归转换函数。在一些实现方式中,系统也使用围绕这些计算中的每一个的残余连接并且应用dropout(失落)和层归一化。在一些实现方式中,系统根据下式来计算ht的更新表示:

ht=layernorm(at-1+tranition(at))

其中at=layernorm(ht-1+multiheadselfattention(ht-1+pt),

其中pt项是通过针对每个维度(i)分别对于位置和时间步(pos)根据下式垂直地且水平地计算以下正弦位置嵌入向量而获得的二维(位置,时间)坐标嵌入:

系统然后能够在应用自注意力过程之前按分量合计这些。

能够根据下式将自注意力过程计算为具有k个头的多头自注意力:

multiheadselfattention(h)=concat(head1,...,headk)wo

其中

投影是以下学习到的参数矩阵:

并且注意力是根据下式计算的定标点积注意力:

其中d是q、k和v的列数以及符号表示的维数。

系统能够为特定任务定制转换函数。例如,系统能够使用在按位置例如单独地应用于at的每行的两个线性变换之间具有单个修正线性激活函数的可分离卷积或全连接神经网络。

在达到停止编码条件之后,例如在t步之后,系统将最终表示提供给解码器(250)。在一些实现方式中,最终输出是针对输入序列的向量表示矩阵ht

图3是用于对目标序列进行解码的示例过程的流程图。如上所述,解码过程能够共享在深度上与编码器过程相同的基本结构,但是执行使用最终编码器表示的附加自注意力阶段。如由图2和图3所示,系统能够通过按t步运行编码器过程一次、然后对于目标序列中的每个元素自回归地按n步运行解码器过程多次来实现通用变换器。示例过程能够由一个或多个位置中的一个或多个计算机的适当地编程的系统来执行。该过程将被描述为由一个或多个计算机的系统来执行。

系统接收初始目标序列(310)。系统能够根据手头任务来生成初始目标序列。例如,对于与自然语言处理和机器翻译有关的任务,系统能够初始化答案序列。对于与算法过程和程序评价有关的任务,系统能够初始化符号的序列。

系统使用两阶段自注意力和转换函数来修订目标序列中的下一个预测元素的表示(320)。系统能够使用与编码器相同的结构和第一自注意力阶段。系统能够附加地运用多头点乘积注意力函数使用输入序列的最终编码器表示来应用第二自注意力阶段。在第二自注意力阶段中,系统能够使用从投影解码器表示而获得的查询q以及从投影编码器表示而获得的密钥k和值v。系统能够自回归地确定序列中的每个下一个符号,这意味着目标序列中的每个输出都以目标序列中所有先前生成的输出为条件。

系统确定目标序列中的下一个元素是否满足停止解码条件(330)。在一些实现方式中,系统使用固定步数n,其可以或可能不等于由编码器过程使用的步数t。

替换地或此外,系统能够对于下一个符号取决于下一个符号的位置而自适应地更改解码过程中的步数。例如,系统能够在每个位置处应用自适应计算时间(act)暂停机制并且在块被暂停之后将状态复制到下一步,直到所有块都被暂停或已执行了预定最大步数为止。

如果不满足停止解码条件,则系统再次对于目标序列中的下一个元素执行另一修订步(分支到320)。

否则,系统确定是否有更多的元素要解码(分支到340)。在一些实现方式中,模型被训练成当不再有要解码的输出元素时生成特殊序列结束符号。因此,系统能够继续该过程直到解码器生成序列结束符号为止。

如果有更多的元素要要解码,则系统开始修订目标序列中的下一个元素的表示(分支到320)。

如果没有更多的元素要解码,则系统提供最终变换后的输出序列(分支到350)。为了获得位置1至n处的每符号目标分布,系统能够应用从最终状态到输出词汇量的仿射变换o,然后应用以下softmax函数:

p(ypos|y[1:pos-1],ht)=softmax(oht)。

在训练过程期间,系统能够执行教师强制训练,其中解码器输入是向右移位了一个位置的目标输出。系统还能够掩盖解码器自注意力分布,使得模型仅能够关注任何预测符号左边的位置。

图4图示通用变换器的示例架构。如上所述,通用变换器包括递归编码器块410和递归解码器块420。这些块中的每一个均能够使用相应的计算资源来实现,并且如上所述,这些块对于输入序列中的每个元素能够具有多个实例。

为了图示的容易,编码器块410在图4中被图示为接收源序列401。然而,如上所述,系统能够对于源序列401中的每个元素使用编码器块的多个实例,这多个实例能够被并行执行t步。因此,能够将图4中的源序列401的表示解释为矩阵,其中每行是源序列401中的不同元素的不同表示。

在操作中,编码器块401能够接收源序列401并添加位置和时间步嵌入。编码器块410然后能够执行多头自注意力过程411,接着执行dropout层412和层归一化413。编码器块410然后能够执行转换函数414,接着执行另一dropout层415和层归一化416。

编码器块然后每次修订源序列401中的每个元素的表示时重复这些操作t步。在t步之后,编码器块410将源序列401中的元素的最终表示提供给解码器块420。如上所述,针对每个输入元素的步数能够不同。对于其编码块已暂停的元素,系统能够简单地将已暂停的表示复制到下一步。

为了图示的容易,解码器块420在图4中被图示为接收目标序列402。然而,如上所述,系统能够针对多个步对于迄今为止在目标序列中生成的每个元素使用解码器块的多个实例。换句话说,解码器块的数目能够随着在目标序列中生成了更多的元素而增加。系统能够对于目标序列中的元素中的每一个并行执行解码器块中的每一个。

在操作中,解码器块420能够接收目标序列402并添加位置和时间步嵌入。解码器块420然后能够执行多头自注意力过程421,后面是dropout层422和层归一化423。解码器块420然后能够执行第二阶段的注意力,其中多头注意力过程424以由编码器块410生成的最终表示为条件。

解码器块420然后能够在执行转换函数427之前执行附加dropout层425和层归一化426。解码器块420能够执行最终dropout层428和层归一化429。

解码器块420能够对于目标序列中的每个元素重复这些操作多个步。如上所述,步数能够由模型针对要解码的每个位置动态地选择。

在解码的n步已完成之后,系统应用最终softmax层430以生成最终输出概率440。

图5图示对序列中每元素的许多处理步骤的动态选择。如图所示,序列具有四个元素,每个元素具有相应的初始表示505a、505b、505c和505d。

在步骤1处,系统能够使用每个位置的相应的编码器或解码器块来并行生成四个修订表示。

在步骤2处,位置4的块暂停,同时系统针对其它位置生成三个修订表示。

在步骤3处,系统针对尚未暂停的三个位置生成三个修订表示。

在步骤4处,位置1的块暂停。系统针对在位置2和位置3处尚未暂停的其它位置生成两个修订表示。

图5中的虚线表示用于生成修订表示的自注意力过程的输入。因此,在步骤4处,系统通过使用其它位置的表示作为自注意力过程的输入来针对位置3生成修订表示。值得注意的是,如图5中所示,系统使用来自步骤2的针对位置4的暂停表示,同时使用来自步骤3的针对位置1和2的表示。换句话说,系统能够通过使用在不同时间在不同步骤处生成的表示来执行自注意力过程。

在步骤5处,位置3的块暂停,并且系统仅针对位置2生成修订表示。

类似地,在步骤6处,系统使用在三个不同步骤上生成的以下表示来针对位置2生成修订表示:来自步骤5的针对位置3的表示、来自步骤4的针对位置1的表示和来自步骤2的针对位置4的表示。

过程的最终输出然后是每个位置处的最终暂停表示的合集。

如上所述,可以将本文描述的系统和方法应用于各种技术任务,现在将更详细地描述其中的几个技术任务。

例如,对于问答任务,目标是为了给定对潜在多个支持事实进行编码的许多英语句子回答问题。目标是为了通过要求对每个故事中呈现的语言事实进行某种类型的推理来测量各种形式的语言理解。标准变换器在这种类型的任务上不会取得良好的结果。为了对输入进行编码,系统能够首先通过对每个单词的嵌入应用学习到的倍增位置掩盖并且对所有嵌入求和来对故事中的每个事实进行编码。模型能够单独地在每个任务上(“单独训练”)或联合地在所有任务上(“联合训练”)训练。系统能够以相同的方式嵌入问题,然后以事实和问题的这些嵌入馈给通用变换器。超过10次按不同初始化运行并且使用基于验证集性能的最佳模型,通用变换器和具有动态暂停的通用变换器都在所有任务上在平均错误和失败任务数方面实现了现有技术水平结果。表1概括了结果。

表1

对于主语-动词一致任务,目标是为了预测英语中的主语和动词之间的数一致。此任务作为用于测量模型捕获自然语言句子中的层次依存结构的能力的代理。系统能够使用语言建模训练设置,即下一个单词预测目标,然后在测试时计算出目标动词的排名准确性。在具有按一致吸引子—具有与主语相反的数(意在使模型混淆)的中间名词的数目而测量的不同任务难度的测试数据的子集上评价通用变换器。例如,给定句子“thekeystothecabinet(橱柜的钥匙)”,训练期间的目标是预测动词are(复数)。在测试时,评价一致吸引子的排名准确性:即目标是为了这种情况下将“are”排名得“高于”is。受到文献关注的最好lstm在此任务上达到99.18%,这胜过了常规的变换器。通用变换器显著地胜过标变换器并且实现了与现有技术水平(99.2%)相当的平均结果。然而,随着吸引子数增加,通用变换器(并且特别具有动态暂停)表现渐进地好于所有其它模型。表2概括了结果。

表2

对于语言建模任务,目标是为了预测遗漏目标单词,在此情况下输入序列是一个或多个前面的自然语言句子。数据集被专门地设计为使得人类能够在被示出完整上下文时准确地预测目标单词,而在被仅示出出现有目标单词时不能准确地预测目标单词。它因此超出语言建模的范围并且测试模型在预测目标单词时并入更广泛的论述和更长期的上下文的能力。在如下两种设定中评价任务:作为语言建模(标准设置)和作为阅读理解。在前者(更有挑战性的)情况下,模型被简单地训练以在训练数据上进行下一个单词预测,并且在测试时在目标单词上进行评价。换句话说,模型被训练来预测所有单词,而不是具体地有挑战性的目标单词。在后者设定中,目标句子(减去最后单词)被用作用于从上下文句子中选择目标词的查询。在此任务中,通用变换器在语言建模和阅读理解设置两者中均达到现有技术水平结果,从而胜过lstm和普通变换器两者。在此实验中,类似于语言建模开发和测试集构建控制集,但是在未以任何方式过滤它们的情况下,如此在此集上实现良好的结果表明模型在标准语言建模中的优势。

对于算法任务,目标是为了执行从一个序列到另一序列的符号变换,例如复制、反转和整数加法。在用长度40的序列来训练模型并且在长度400的序列上评价模型的实验中,系统使用以随机化偏移开始的位置来训练了通用变换器以进一步鼓励模型学习位置相对变换。通用变换器在所有这三个任务上大幅度地胜过lstm和普通变换器两者。

对于学习执行任务,例如程序评价和记忆,在指示模型学习执行计算机程序的能力的任务上评价通用变换器。这些任务包括程序评价任务(程序、控制和加法)和记忆任务(复制、加倍和反转)。在训练期间不使用任何课程学习策略的情况下并在测试时不使用目标序列的情况下,通用变换器在所有记忆任务中均实现完美分数并且也在所有程序评价任务中大幅度地胜过lstm和变换器两者。

对于机器翻译,通过训练英语-德语翻译任务来评价通用变换器。具有全连接递归转换函数(而不是可分离卷积)且没有act的通用变换器在大致相同数目的参数情况下比变换器提高了0.9bleu且比加权变换器提高了0.5bleu。

通用变换器也能够被适配用于在其它序列到序列任务上使用。一个示例应用是语音到文本转换,在此情况下输入序列是声波的表示并且输出序列是特定语言的文本。另一示例是文本到语音转换,在此情况下输入序列是文本,并且输出序列是声波的表示。另一示例应用是图像生成。另一示例应用是机器人控制。例如,在一些实现方式中,输入的序列可以包括图像(例如包括像素数据的图像),例如物理系统的图像或来自物理系统的图像,并且所对应的输出可以包括用于控制机器或机器人的动作的序列,该机器或机器人可以在物理系统中操作或与物理系统一起操作。

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

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

计算机程序,其也可以被称为或描述为程序、软件、软件应用、app、模块、软件模块、引擎、脚本或代码,能够用任何形式的编程语言加以编写,该编程语言包括编译或解释语言、或声明或过程语言;并且它能够被以任何形式部署,包括作为独立程序或作为适合于在计算环境中执行的模块、组件、引擎、子例程或其它单元,该环境可以包括在一个或多个位置中通过数据通信网络互连的一个或多个计算机。

计算机程序可以但不必对应于文件系统中的文件。能够在保持其它程序或数据例如存储在标记语言文档中的一个或多个脚本的文件的一部分中、在专用于所述程序的单个文件中或在多个协调文件例如存储一个或多个模块、子程序或代码的部分的文件中存储计算机程序。

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

适合于执行计算机程序的计算机能够基于通用微处理器或专用微处理器或两者,或任何其它种类的中央处理器。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元件是用于执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器能够由专用逻辑电路补充,或者并入在专用逻辑电路中。

通常,计算机也将包括一个或多个大容量存储设备,或者在操作上耦合以从一个或多个大容量存储设备接收数据或将数据转移到一个或多个大容量存储设备。大容量存储设备可以是例如磁盘、磁光盘或光盘、或固态驱动器。然而,计算机不必具有此类设备。此外,能够将计算机嵌入在另一设备中,该另一设备例如为移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏机、全球定位系统(gps)接收器或便携式存储设备,例如通用串行总线(usb)闪存驱动器,仅举几例。

为了提供与用户的交互,本说明书中描述的主题的实施例能够被实现在计算机上,或者被配置成与计算机进行通信,该计算机具有用于向用户显示信息的显示设备,例如lcd(液晶显示器)监视器,并且具有用户能够用来向计算机提供输入的输入设备,例如键盘和指点设备,例如鼠标、轨迹球或触摸板。其它种类的设备也能够用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声学、语音或触觉输入。此外,计算机能够通过向由用户使用的设备发送文档并且从由用户使用的设备接收文档来与用户交互;例如,通过响应与从web浏览器接收到的请求向用户的设备上的web浏览器发送web页面,或者通过与在用户设备例如智能电话或电子平板上运行的app交互。另外,计算机能够通过向个人设备例如正在运行消息传送应用的智能电话发送文本消息或其它形式的消息并且作为回报从用户接收响应消息来与用户交互。

本说明书连同系统、装置和计算机程序组件一起使用术语“被配置成”。对于要配置成执行特定操作或动作的一个或多个计算机的系统,意味着该系统已在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中使该系统执行操作或动作。对于要配置成执行特定操作或动作的一个或多个计算机程序,意味着该一个或多个程序包括指令,这些指令当由数据处理装置执行时,使该装置执行操作或动作。对于要配置成执行特定操作或动作的专用逻辑电路,意味着该电路具有执行操作或动作的电子逻辑。

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

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

已经描述了主题的特定实施例。其它实施例在以下权利要求的范围内。例如,权利要求中叙述的动作能够被以不同的次序执行并仍然实现所希望的结果。通常,多任务处理和并行处理可以是有利的。

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