CN116982054A - 使用前瞻树搜索的序列到序列神经网络系统 - Google Patents
使用前瞻树搜索的序列到序列神经网络系统 Download PDFInfo
- Publication number
- CN116982054A CN116982054A CN202280013917.8A CN202280013917A CN116982054A CN 116982054 A CN116982054 A CN 116982054A CN 202280013917 A CN202280013917 A CN 202280013917A CN 116982054 A CN116982054 A CN 116982054A
- Authority
- CN
- China
- Prior art keywords
- sequence
- neural network
- output
- training
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 188
- 238000000034 method Methods 0.000 claims abstract description 87
- 238000009826 distribution Methods 0.000 claims abstract description 55
- 238000012549 training Methods 0.000 claims description 123
- 230000009471 action Effects 0.000 claims description 52
- 230000008569 process Effects 0.000 claims description 45
- 238000012545 processing Methods 0.000 claims description 38
- 238000006243 chemical reaction Methods 0.000 claims description 31
- 239000013598 vector Substances 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 9
- 238000004821 distillation Methods 0.000 claims description 3
- 230000001419 dependent effect Effects 0.000 claims 1
- 238000013519 translation Methods 0.000 description 16
- 230000014616 translation Effects 0.000 description 16
- 238000004590 computer program Methods 0.000 description 13
- 230000007246 mechanism Effects 0.000 description 10
- 238000005070 sampling Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 5
- 239000012634 fragment Substances 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 230000001537 neural effect Effects 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000036541 health Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000010339 medical test Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000011524 similarity measure Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种用于从输入令牌序列生成输出令牌序列的计算机实现的方法。该方法将诸如蒙特卡罗树搜索的前瞻树搜索与序列到序列神经网络系统相结合。序列到序列神经网络系统具有定义下一令牌概率分布的策略输出,并且可以包括提供值输出以评估序列的值神经网络。使用由序列到序列神经网络系统的策略输出和在实现中的值输出引导的前瞻树搜索来扩展初始部分输出序列,直到获得完整的输出序列。
Description
技术领域
本说明书涉及用于序列转换的神经网络系统,即用于将一个序列转换为另一个序列的神经网络系统。
背景技术
神经网络是采用一层或多层非线性单元来预测接收到的输入的输出的机器学习模型。一些神经网络是深度神经网络,其除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中的下一层(即,下一隐藏层或输出层)的输入。网络的每个层根据相应参数集的当前值从接收到的输入生成输出。
发明内容
本说明书总体上描述了序列转换神经网络系统,其被实现为在一个或多个位置中的一个或多个计算机上的一个或多个计算机程序,其接受输入序列并提供输出序列。这样的系统可以解决许多现实世界的问题。
因此,描述了用于通过将诸如蒙特卡罗树搜索的前瞻树搜索与序列到序列神经网络系统组合来从输入令牌(token)序列生成输出令牌序列的计算机实现的方法和对应的系统的示例。序列到序列神经网络系统具有定义下一令牌概率分布的策略输出,并且可以包括提供值输出以评估序列的值神经网络。使用由序列到序列神经网络系统的策略输出和在实现中的值输出引导的前瞻树搜索来扩展初始部分输出序列,直到获得完整的输出序列。还描述了用于训练值神经网络的技术的示例。
可以实现本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。
所描述的系统和方法的一些实施方式能够以允许序列转换过程更好地适应复杂任务的方式执行序列转换。例如,与仅产生具有高序列模型可能性的输出序列相反,系统的实施方式可以生成旨在为特定的所选序列转换度量生成高评分的输出序列。
具有高似然性的序列不一定是实践中最有用的序列,并且根据理论,基于最大似然性训练模型可以产生次优结果。在许多现实世界应用中,所描述的系统的实现可以比一些先前技术更好地执行。更具体地,系统的实施方式可以根据宽范围的度量产生具有更高值的输出序列。
该系统不限于使用任何特定的度量,并且可以根据期望的输出序列的类型来选择度量。该系统可以用于根据特定度量生成准确的输出序列,或者它可以用于生成特征在于它们的多样性的输出序列,或者用于输出特征在于特定的期望特征的存在或占优势或者特征在于不期望特征的不存在或相对降低的可能性的序列。
在一些实施方式中,前瞻树搜索可以用于修改例如通过使用与用于训练选择令牌的策略的目标不同或附加的目标来训练值神经网络而生成的输出序列的分布。例如,在令牌表示用于机器翻译的文本的情况下,系统可以用于改进所生成的输出文本,使得其对人类看起来更自然,例如,通过选择特定的序列转换度量,即使当根据一些其他度量,结果可能客观上不太准确时。还描述了有用类型的度量的特定示例,“非特权”度量。
系统的一些实施方式可以以比一些其他方法所需的计算和存储要求更少的计算和存储要求来生成准确的序列。特别地,所描述的系统和方法的一些实施方式特别适用于硬件加速,以实现快速的序列到序列处理。
在附图和下面的描述中阐述了本说明书的主题的一个或多个实施例的细节。根据说明书、附图和权利要求,主题的其他特征、方面和优点将变得显而易见。
附图说明
图1示出了被配置为接收和处理输入序列以生成输出序列的系统。
图2示出了用于使用由序列到序列神经网络系统引导的前瞻搜索从输入序列生成输出序列的过程。
图3示出了用于训练值神经网络的过程
图4示出了示例值神经网络训练过程。
图5示出了神经机器翻译系统的比较性能。
各个附图中相同的附图标记和名称指示相同的元件。
具体实施方式
图1示出了可以在一个或多个位置中的一个或多个计算机上实现为一个或多个计算机程序并且被配置为接收输入序列并处理输入序列以生成输出序列的系统的示例。
输入序列包括输入令牌序列,并且输出序列包括输出令牌序列。仅作为一个示例,神经网络系统可以是神经机器翻译系统。然后,输入令牌可以表示第一自然语言的单词,并且输出令牌可以表示不同的第二自然语言的单词。也就是说,如果输入序列表示原始自然语言中的单词序列,诸如句子或短语,则输出序列可以是输入序列到目标自然语言的翻译。令牌可以包括序列结束(EOS)令牌。
该系统包括序列到序列神经网络系统100和树搜索引擎120。在训练期间,系统还包括训练引擎130;这在训练之后是不需要的。
序列到序列神经网络系统100被配置为接收包括输入序列122和部分输出序列128的系统输入。输入序列包括输入令牌序列。部分输出序列包括零个、一个或多个输出令牌。
序列到序列神经网络系统100被配置为处理系统输入以生成系统输出112,系统输出112包括针对扩展部分输出序列128的下一个输出令牌的可能输出令牌上的下一个令牌概率分布108。例如,下一个令牌概率分布可以包括定义可能的下一个输出令牌的概率的一组评分。
在实施方式中,系统输出112还包括评估部分输出序列128的标量值或评分110。系统输出112可以直接定义该值,或者它可以定义可能值上的概率分布,并且可以通过从分布中采样来确定该值或评分。如下文所使用的,生成值可以指代任一种方法。该值可以包括序列转换度量,即输入序列122到部分输出序列128的转换的度量。更具体地,该值可以近似于最终序列转换度量或评分,如果基于由连续的下一个令牌概率分布108定义的令牌选择策略继续部分输出序列以完成输出序列,则预期获得该最终序列转换度量或评分。
树搜索引擎120被配置为使用输入序列122来执行前瞻树搜索,以扩展初始部分输出序列124从而提供扩展部分输出序列126。然后将扩展部分输出序列126用作下一个初始部分输出序列124。因此,树搜索引擎120迭代地扩展初始部分输出序列,例如从没有输出令牌的空输出序列开始,直到生成完整的输出序列。使用基于先前生成的部分输出序列的前瞻树搜索,一次一个输出令牌地自回归地生成完整的输出序列。在实现中,树搜索引擎被配置为执行蒙特卡罗树搜索。
树搜索引擎120使用序列到序列神经网络系统100来引导前瞻搜索。更具体地,下一个输出令牌由树搜索引擎120使用下一个令牌概率分布来选择,以引导前瞻搜索,特别是在扩展搜索树时。在前瞻树搜索期间,树搜索引擎120将节点(例如,树的叶节点)的部分输出序列提供给序列到序列神经网络系统100,并且接收回部分输出序列的系统输出112。
训练引擎130用于训练序列到序列神经网络系统100,例如,如稍后所述,并且此后不需要训练引擎130。通常,树搜索引擎120使用的序列到序列神经网络系统100是先前训练的系统。
在一些实施方式中,序列到序列神经网络系统100包括耦合到解码器神经网络系统106的编码器神经网络系统102。编码器神经网络系统102被配置为处理输入序列122以生成输入序列122的潜在表示104。解码器神经网络系统106被配置为结合部分输出序列128来处理潜在表示104以生成系统输出112。在一些实施方式中,部分输出序列128可以向右移位一步,即第一令牌在位置二处。
在一些实施方式中,但不是本质上,编码器神经网络系统102包括变换器神经网络子系统,即包括一个或多个变换器块或自注意力层的神经网络子系统。变换器块通常包括注意力或自注意力神经网络层,随后是前馈神经网络。注意力或自注意力神经网络层是包括注意力或自注意力机制(其在注意力层输入上操作以生成注意力层输出)的神经网络层。可以掩蔽自注意机制,使得输入序列中的任何给定位置不参与输入序列中的给定位置之后的任何位置。存在许多不同的可能的(自)注意力机制。Vaswani等人在“Attention is allyou need”中(31st Conference on Neural Information Processing Systems(NIPS2017),Long Beach,CA,USA)描述了包括注意力机制在内的变换器块的一些示例。
类似地,在一些实施方式中,但不是本质上,解码器神经网络系统106包括变换器神经网络子系统。潜在表示104可以由解码器神经网络系统106使用一个或多个交叉注意力层(即,在编码器和解码器之间操作的注意力层)来处理,例如使用包括来自潜在表示104的输入的注意力机制。
在实施方式中,系统输入,特别是系统输入的输入令牌和输出令牌,由嵌入表示,即由诸如向量的数值的任何有序集合表示。可以生成令牌嵌入作为处理令牌的神经网络的输出。作为另一示例,在令牌表示单词的情况下,词汇表中的每个单词的d维向量嵌入可以由具有d列的嵌入矩阵来定义。因此,编码器神经网络系统104和解码器神经网络系统106可以包括初始嵌入确定阶段。
在实施方式中,编码器神经网络系统104的输入序列122的每个令牌(例如,令牌的每个嵌入)可以与令牌在序列中的位置的嵌入组合,例如通过求和。类似地,解码器神经网络系统106的部分输出序列128的每个令牌(例如,令牌的每个嵌入)可以与令牌在序列中的位置的嵌入组合。Vaswani等人(同上)描述了一种确定位置嵌入向量的方法。。
图2示出了用于使用由序列到序列神经网络系统引导的前瞻搜索从输入序列生成输出序列的示例过程。图2的过程可以由一个或多个位置中的一个或多个适当编程的计算机来实现。
该过程获得如前所述的输入序列,以及初始部分输出序列,例如空序列(步骤202)。
然后,该过程执行由序列到序列神经网络系统100的系统输出112引导的初始部分输出序列的可能延续的前瞻树搜索,例如蒙特卡罗树搜索,例如直到满足一个或多个终止标准(步骤204)。例如,前瞻树搜索可以是树内搜索,并且终止标准可以是遇到叶节点(未打开的节点),或者终止标准可以取决于搜索预算,例如搜索步骤的预算数量,或者终止标准可以取决于正在生成的一个或多个完整输出序列。
前瞻树搜索的结果用于生成扩展的部分输出序列126,例如,如稍后所述(步骤206)。例如,该过程可以使用前瞻树搜索来选择可能的延续中的一个以扩展初始部分输出序列。然后,可以通过执行由序列到序列神经网络系统引导的扩展部分输出序列的可能延续的另一个前瞻树搜索来进一步扩展扩展部分输出序列。
因此,在实施方式中,该过程使用扩展部分输出序列126作为下一个初始部分输出序列124进行循环(步骤208)。该过程可以通过执行连续的前瞻树搜索来迭代地扩展部分输出序列,直到生成输出序列的完整版本(步骤210)。
在一些实施方式中,该过程使用前瞻树搜索来生成初始部分输出序列的可能延续上的搜索树概率分布。然后,该过程使用搜索树概率分布从可能的延续中选择初始部分输出序列的延续,即下一个输出令牌。例如,下一个输出令牌可以是根据搜索树概率分布具有最高值的令牌。在一些实施方式中,搜索树概率分布取决于根节点的子节点的统计,其中根节点表示初始部分输出序列,并且子节点表示其不同的可能延续。
在一些实施方式中,前瞻树搜索还由值110引导,值110由被配置为评估树的节点的值神经网络生成。树的节点表示初始部分输出序列的可能的延续之一,即序列的候选延续。
值神经网络处理由树的节点表示的候选延续,即与节点相关联的部分输出序列,并且还可以处理输入序列,以生成节点的值。在树搜索引擎120被配置为执行蒙特卡罗树搜索的情况下,被评估的节点包括树的叶节点。生成的值110用于引导前瞻树搜索。
在一些实施方式中,值110和下一令牌概率分布108由共享神经网络生成,例如,由如图1所示的公共躯干上的单独头部生成。也就是说,值神经网络可以是序列到序列神经网络系统100的一部分。在一些实施方式中,值110和下一令牌概率分布108由单独的神经网络生成。使用共享神经网络生成值110和下一令牌概率分布108可以显著改善所生成的值,特别是通过减少过度拟合。
在实施方式中,值神经网络是先前训练的神经网络。也就是说,在使用值神经网络来评估搜索树的节点之前,已经对其进行了训练。在值110和下一令牌概率分布108输出由共享神经网络生成的情况下,可以(但不需要)联合训练这些输出。
在实施方式中,序列到序列神经网络系统(更具体地,下一令牌概率分布108)和值神经网络(更具体地,值110)已经被训练以优化不同的目标。更具体地,下一令牌概率分布108和值110可以各自已经被训练以优化不同的相应序列转换度量(尽管特定目标可以匹配这两个输出的相应形式)。
例如,下一令牌概率分布108的目标可以包括基于输入和输出序列的基本真实配对(ground truth pairing)的序列转换度量。目标可以直接或间接地基于基本真实,例如,如果提取初始监督策略,即,如果被训练以匹配使用输入和输出序列的基本真实配对而训练的策略本身。值110的目标可以包括基于输入和输出序列的基本真实配对的不同序列转换度量,或者它可以包括不依赖于基本真实的知识的度量。
通常,使用包括训练输入序列和训练输出序列的训练数据对来训练下一令牌概率分布108和值110。稍后参考图3更详细地描述训练序列到序列神经网络系统100,特别是值神经网络。
根据应用,例如根据输入序列和输出序列表示什么,可以使用许多可能的序列转换度量。如本文所使用的,两种通用类型的序列转换度量是“特权度量”和“非特权度量”。现在在机器翻译的特定示例上下文中描述这些,尽管它们也适用于其他上下文。
在与输入序列相关联的基本真实输出序列(例如,其表示输入序列的转换)和用于输入序列的模型生成的输出序列之间计算“特权度量”。特权度量可以例如用于评估模型生成的输出的质量。特权度量不显式地依赖于输入序列,而是依赖于相关联的基本真实序列。特权度量的示例包括BLEU(Papineni等人,“BLEU:a method for automatic evaluationof machine translation”,Proc.40th Annual Meeting of the Association forComputational Linguistics,2002)和BERT评分(Zhang等人,arXiv:1904.09675)。
在输入序列和用于该输入序列的模型生成的输出序列之间计算“非特权度量”,或者可以仅在模型生成的输出上计算“非特权度量”。也就是说,非特权度量可以或可以不依赖于输入序列。例如,对于机器翻译,输出序列的人工评估或基于输出序列的人工评估的学习度量不需要输入序列。
现在描述适合于在不需要人类输入的情况下评估机器翻译的非特权度量,稍后称为MLBERT评分:该度量是在输入序列(例如,源句子)和模型生成的输出序列(例如,句子的翻译)之间计算的。使用多语言语言模型,例如使用BERT(来自变换器的双向编码器表示)模型,“BERT:Pre-training of Deep Bidirectional Transformers for LanguageUnderstanding,Devlin等人,arXiv:1810.04805”,,来计算针对输入序列中的每个令牌和输出序列中的每个令牌的嵌入。然后,在所有嵌入对之间,即在输入序列的每个令牌和输出序列的每个令牌的嵌入之间,计算相似性度量,例如余弦相似性。然后,序列中的一个序列的每个令牌与另一个序列的令牌,例如,输入序列与输出序列对齐,反之亦然。这可以通过对齐具有最大相似性度量的令牌来完成。然后,组合(例如,平均)对齐的令牌的相似性度量,以确定度量。这可以具有不依赖于人工评估的优点。
如前所述,在实现方式中,前瞻树搜索的搜索树的根节点表示初始部分输出序列。搜索树的子节点表示不同的可能延续,即从根节点到路径上的子节点的边各自表示初始部分输出序列的候选延续。然后,执行前瞻树搜索可以包括使用来自序列到序列神经网络系统100的下一令牌概率分布108来扩展搜索树,特别是扩展作为搜索树的叶节点的子节点。通常,叶节点是未扩展的节点,例如没有其自己的子节点或具有其自己的潜在附加子节点的节点。
可以通过使用序列到序列神经网络系统处理输入令牌序列、初始部分输出序列和由子节点表示的初始部分输出序列的候选延续来扩展子节点,例如叶节点。这为下一个输出令牌生成可能的下一个输出令牌上的下一个令牌概率分布108,以扩展初始部分输出序列的候选延续。在实施方式中,节点的下一令牌概率分布仅需要在任何特定的前瞻树搜索中针对该节点确定一次。每个可能的下一个输出令牌的概率或评分可以存储在来自子(叶)节点的传出边中。
可以选择一个或多个下一个输出令牌来扩展搜索树,例如,通过选择具有最高概率的令牌或通过从下一个令牌概率分布108中采样,以添加一个或多个新节点。选择下一个输出令牌稍后被称为“动作”。可以从可能令牌的词汇表中选择下一个输出令牌。
前瞻树搜索也可以由值神经网络引导。通常,这可以通过评估由前瞻树搜索的节点表示的初始部分输出序列的候选延续、通过使用值神经网络处理由节点表示的初始部分输出序列的候选延续以确定该节点的值来完成。更具体地,当扩展叶节点时,序列到序列神经网络系统100可以处理输入令牌序列、初始部分输出序列和由叶节点表示的初始部分输出序列的候选延续,以确定叶节点的值110以及下一令牌概率分布108。叶节点的值可以通过更新搜索树概率分布(例如,通过更新叶节点和根节点之间的边的动作评分)来引导前瞻树搜索。稍后描述特定示例。
在一些实施方式中,序列到序列神经网络系统100不生成值110。
在这样的实施方式中,完整的输出序列可以通过单个前瞻树搜索来确定,例如从包括零个令牌的初始部分输出序列开始。然后,在来自序列到序列神经网络系统的下一个令牌概率分布的引导下,可以使用前瞻树搜索来扩展初始部分输出序列,直到获得完整的输出序列。令牌之一可以是序列结束(EOS)令牌,并且当添加EOS令牌时,输出序列可以被识别为完整的输出序列。
在这种类型的一些实施方式中,值110由从完整输出序列计算的值(例如,作为完整输出序列或输入序列和完整输出序列的组合的度量的评分)替换。前瞻树搜索可以由该评分而不是来自序列到序列神经网络系统100的值110引导。
在可能但不需要生成值110的一些其它实施方案中,可使用前瞻树搜索来确定多个完整候选输出序列,且接着可选择这些候选输出序列中的一者作为真实输出序列。例如,可以对每个完整的候选输出序列进行评分,并且可以基于评分来选择候选输出序列,例如通过选择具有最大评分的序列,或者选择使得具有最大评分的序列相对更可能被选择的序列。评分可以是输出序列的任何度量,例如输出序列的质量或多样性的度量。评分可以是学习的度量和/或它可以包括如前所述的序列转换度量。
搜索树包括由边连接的节点。在实施方式中,边具有包括针对边的动作评分的边数据。
边的动作评分可以包括动作的评分,即用于将输出令牌添加到由节点表示的初始部分输出序列的候选延续的评分。例如,动作评分可以是动作值Q(s,a),这取决于由节点表示的状态s,并且取决于定义要添加到由边从其延伸的节点表示的部分输出序列的可能输出令牌之一的动作a。动作值Q(s,a)表示在状态s中采取动作a的值。在序列转换步骤t并且由对应节点表示的状态st可以被定义为其中,x是输入令牌的序列,并且是初始部分输出序列和初始部分输出序列的候选延续(其中,/>表示输出序列令牌的估计)。
边缘数据还可以包括状态动作访问计数N(s,a)。这可以是在构建搜索树时从状态s已经取得动作a(即,特定令牌)的次数的计数。
执行前瞻树搜索可以包括通过基于边的动作评分和下一令牌概率分布的组合选择要遍历的边来从根节点遍历搜索树。例如,可以基于置信上限(例如,取决于对应于动作π(a|s)的下一个令牌的先验概率或评分的动作值Q(s,a)和值(U)的组合,诸如总和)来选择边,并且因此选择动作和下一个子节点。(应当采取动作的)先验概率可以由序列到序列神经网络系统确定,例如,先验概率π(a|s)可以是节点的下一令牌概率分布108。先验概率可以通过边的访问计数(其本身可以被修改)来缩放。可以采取动作来最大化的总和Q(s,a)和U。
作为特定示例,执行前瞻树搜索可以包括根据下面的公式从根节点开始递归地挑选子节点,直到到达叶节点:
其中c是确定搜索期间的探索级别的常数,并且是可能动作(下一个令牌)的集合。在该示例中/>是置信上限U(s,a)。先验概率或“策略”π(a|s)可以通过平衡搜索树的探索和利用的温度参数τ来修改,例如,在上述公式中π(a|s)可以被πτ(a|s)=π(a|s)1/τ/∑bπ(b|s)1/τ替换。在一些实施方式中,可以通过(Q(s,a)-minQ)/(maxQ-minQ)替换Q(s,a)来将值Q(s,a)重新缩放到区间[0,1]。
从广义上讲,搜索树从根节点遍历,基于例如最大化动作值Q(s,a)和置信上限U的组合来迭代地选择边,直到遇到未打开的(即尚未扩展的)叶节点。然后,这通过为叶节点创建至少一个新的子节点来扩展,每个新的子节点表示初始部分输出序列的候选延续的候选扩展。
使用值神经网络评估叶节点以确定叶节点的叶节点值。使用序列到序列神经网络系统(即,根据下一令牌概率分布108)来确定从叶节点到新子节点的每个新边的先验概率。例如,由叶节点表示的状态s0可以由输入令牌序列、初始部分输出序列和由叶节点表示的初始部分输出序列的候选延续来定义。可以通过为每个可能的动作a确定π(a|s0)来扩展叶节点,即,确定令牌词汇表中每个令牌的在s0处的先验概率;以及通过将状态v(s0)的值110确定为叶节点值来扩展叶节点。可以初始化每个新边的动作评分和访问计数,例如以设置Q(s,a)=0和N(s,a)=0。
前瞻树搜索可以包括备份阶段,在该备份阶段期间,基于叶节点值更新边数据。在实现中,在叶节点已经被扩展之后,使用叶节点的值v(s0)来更新被遍历以到达叶节点的每个边的边数据。这可以包括使用叶节点值来更新在搜索期间遍历的叶节点和根节点之间的边的动作评分。每次在搜索期间遍历边时,也可以更新边的访问计数,例如递增1。
在一些实施方式中,所遍历的每个边的动作评分(例如,动作值)Q(s,a)被更新为包括该边的搜索的平均值,例如,根据通过利用叶节点值v(s0)确定先前动作值Q(s,a)的加权平均值,其中,visits是访问计数。在一些实施方式中,针对边的动作评分被更新为由在前瞻树搜索期间执行的涉及边的树搜索中的最大值确定的值。例如,动作值Q(s,a)可以被更新为先前的动作值Q(s,a)和叶节点值v(s0)的最大值。以这种方式更新到最大值可以提供改进的序列转换,特别是当值神经网络(值110)已经被训练以优化非特权序列转换度量时。
搜索树概率分布可以根据根节点的子节点的统计数据来确定,特别是根据将根节点连接到其子节点的边的边数据来确定。例如,搜索树概率分布可以根据访问计数或者根据动作评分(例如根节点处的动作的边的动作值Q(s,a))或者根据这两者来确定。所选择的动作,即所选择的下一个输出令牌,可以是具有最高访问计数的动作(令牌),或者具有最高聚合动作评分或动作值Q(s,a)的动作(令牌),其中聚合涉及在包括边的搜索上取平均值或最大值,如前所述。
如前所述,扩展部分输出序列的每个步骤涉及重复前瞻搜索以产生另一个输出令牌。
图3示出了用于训练值神经网络(诸如形成图1的序列到序列神经网络系统100的一部分的值神经网络)的示例过程,例如用于引导如上所述的前瞻树搜索。图3的过程可以由一个或多个位置中的一个或多个适当编程的计算机实现。
该过程最初获得第一训练的序列到序列神经网络系统(步骤302)。经训练的序列到序列神经网络系统可以但不必具有类似于图1的序列到序列神经网络系统100的架构。
例如,经训练的序列到序列神经网络系统可以被配置为接收系统输入,该系统输入包括输入序列,该输入序列包括输入令牌序列,并且可选地还包括部分输出序列,该部分输出序列包括零个、一个或多个输出令牌。经训练的序列到序列神经网络系统可以被配置为处理系统输入以生成系统输出,该系统输出定义针对下一个输出令牌的可能输出令牌的下一个令牌概率分布“策略”πsup,以扩展部分输出序列。
该过程还获得包括训练数据对的训练数据集,每个训练数据对包括训练输入序列和训练输出序列(步骤304)。训练输出序列可以是训练输入序列的基本真实转换。训练数据集可能已经用于训练第一训练的序列到序列神经网络系统,但这不是必需的。
该过程涉及用从训练的序列到序列神经网络系统采样的输出序列替换训练数据集中的至少一些训练输出序列(步骤306)。这里,使用训练的序列到序列神经网络系统从输入序列生成输出序列的过程被称为采样;采样可以是贪婪采样。因此,对于至少一些训练数据对中的每一个,该过程可以涉及使用序列到序列神经网络系统处理训练输入序列以生成采样的训练输出序列,并用采样的训练输出序列替换训练输出序列以获得修改的训练数据集。在一些其他实施方式中,代替用采样的训练输出序列替换训练输出序列,由在每个采样步骤获得的下一令牌概率分布替换训练输出序列。
然后,该过程可以例如基于序列转换度量为训练数据集的每个训练数据对添加评分,即值(步骤308)。例如,评分可以包括在采样的训练输出序列和替换的(基本真实)训练输出序列之间计算的度量,即度量可以是特权度量。或者评分可以包括在采样的训练输出序列和训练输入序列之间计算的度量,或者仅在采样的训练输出序列上计算的度量,即度量可以是非特权度量。
值神经网络可以被配置为处理训练输入序列和部分训练输出序列以生成部分输出序列的值。例如,值神经网络可以是第二序列到序列神经网络系统(例如,图1的序列到序列神经网络系统100)的一部分。该过程可以使用修改的训练数据集来训练值神经网络,以根据针对训练数据集的每个训练数据对确定的评分(例如,序列转换度量)来优化目标(步骤310)。
在一些实施方式中,值神经网络被配置为处理训练输入序列和部分训练输出序列两者以生成用于确定部分训练输出序列的下一个输出令牌的令牌预测输出。然后,训练值神经网络可以包括使用训练数据对来训练令牌预测输出。值神经网络可以使用训练数据对的训练输入序列和训练输出序列来学习预测输出令牌,这可以帮助正则化由值神经网络生成的值的训练。
例如,在值神经网络是被配置为生成值110和下一令牌概率分布108的序列到序列神经网络系统的一部分的情况下,可以使用每个训练数据对的值来训练所生成的值,并且可以训练下一令牌概率分布π以匹配从第一训练的序列到序列神经网络输出的下一令牌概率分布πsup。例如,可以训练下一个令牌概率分布“策略”π,以优化目标DKL(π|πsup),其中DKL(·)是Kullback-Leiblπer散度。在另一种方法中,可以使用负对数似然损失来训练下一令牌概率分布输出π。这有利地将学习值与前瞻树搜索使用的下一个令牌概率分布相关联,以扩展输出序列。
可以使用回归或分类目标来训练所生成的值。例如,由评分跨越的区间可以被离散化成桶,并且交叉熵损失可以用于训练所生成的值以预测正确的桶,例如,桶上的softmax分布(即,每个桶的概率)与具有相同维度的目标值的一次性(one-hot)编码之间的交叉熵。在这样的实施方式中,可以通过将每个桶的softmax分布的概率输出乘以每个桶中的平均值,然后对结果求和来确定该值。
训练值神经网络可以包括:对于每个训练数据对,将训练输入序列和采样的训练输出序列的部分版本提供给值神经网络,并且累加由值神经网络生成的值以确定与完整(采样的)训练输出序列相关的训练数据对的累加值。然后,该方法可以在累积值和训练数据对的序列转换度量之间的差上训练值神经网络。可以在训练期间应用先前提到的自我注意力(因果关系)掩模(以忽略未来)。
在实施方式中,值神经网络的架构可以与序列到序列神经网络系统100的架构类似或相同。例如,它可以包括编码器神经网络系统,例如包括耦合到解码器神经网络系统(例如包括变换器神经网络子系统)的变换器神经网络子系统。
在一些实施方式中,值神经网络可以包括具有共享权重的两个这样的编码器-解码器系统。这些中的第一个例如自回归地一次一个令牌地预测训练输出序列,并且第二个(更具体地,第二个编码器)在其自回归预测期间接收替换的(基本真实)训练输出序列。这两个系统被训练损失鼓励以匹配它们的输出。每个系统还具有可以如前所述进行训练的值预测输出。仅训练所述第一系统的所述令牌预测输出;第二系统仅在训练期间使用,并且在训练之后,第一系统可以用作值神经网络。
图4示出了示例值神经网络400,其包括第一和第二基于变换器神经网络子系统的编码器402、412以及第一和第二基于变换器神经网络子系统的解码器404、414。第一编码器-解码器系统402、404接收训练输入序列和采样的训练输出序列(逐步地,并且如前所述右移)。第二编码器-解码器系统412、414接收基本真实训练输出序列和采样的训练输出序列(逐步地,并且向右移位)。第一编码器-解码器系统402、404被训练以输出策略(例如,可能的输出令牌上的概率分布)和输出的值评分。训练第二编码器-解码器系统412、414以输出使用特权度量确定的基本真实输出序列的值评分。策略π和值损失和/>应用于第一系统,例如如前所述,并且使用特权度量确定的值损失/>应用于第二系统。在每个系统的一个或多个最终层(即,最接近输出的层)之间施加额外的蒸馏损失(distillation loss),例如L2损失/>其中第二系统具有停止梯度。也就是说,该损失不反向传播到第二系统中,使得第二系统的表示不直接受/>影响。损失可以相对于彼此加权。在训练之后,仅需要第一编码器-解码器系统402、404来提供训练值神经网络。
如上所述训练的值神经网络可以在图1的系统中或在另一个序列到序列转换系统中使用。例如,训练值神经网络可以用于值引导的波束搜索系统中,例如用于神经机器翻译,其中可以至少部分地基于由训练值神经网络确定的它们各自的值来选择前k个假设(候选部分输出序列)以用于保留。作为另一示例,神经机器翻译系统可以用于生成候选输出序列集合,然后可以使用由训练值神经网络确定的它们各自的值对候选输出序列集合进行排序,并且选择候选之一(例如具有最大值的候选)作为系统的输出序列。
如前所述,在实施方式中,编码器神经网络系统102和解码器神经网络系统各自包括变换器神经网络子系统,该变换器神经网络子系统包括一个或多个变换器块,每个变换器块包括被配置为实现注意力或自我注意力机制的注意力或自我注意力神经网络层。
通常,注意力机制将查询和一组键-值对映射到输出,其中查询、键和值都是向量。输出被计算为值的加权和,其中分配给每个值的权重由查询与对应键的兼容性函数(例如,点积或缩放点积)来计算。例如,注意力机制的输出可以被确定其中d是键(和值)向量的维度,其中查询向量Q=XWQ、键向量K=XWK和值向量V=XWV,具有输入序列X和学习的查询矩阵WQ、学习的键矩阵WK和学习的值矩阵WV。输出可以由一个或多个全连接的前馈神经网络层处理。还可以结合层范数操作。注意力机制可以实现多头注意力,即它可以并行地应用多种不同的注意力机制。然后,如果需要,可以将这些的输出与应用于减少到原始维度的学习线性变换组合,例如级联。
序列到序列神经网络系统100的一些实施方式使用一个或多个硬件加速器单元来实现变换器神经网络子系统。示例硬件加速器单元包括GPU(图形处理单元)或TPU(张量处理单元)。在这样的实现中,与直觉相反,存储器访问可能是性能瓶颈,由存储和读取来自存储器的键和值以实现快速增量推断的需要所驱动。
在这些实施方式中,在使用多头注意力的情况下,通过仅计算每个变换器块的跨所有注意力头部共享的单个键和值集合来减少存储器访问要求。这可以仅以小的精度成本产生大的加速。可以通过增加在一个或多个全连接的前馈神经网络层中使用的权重的数量(例如,通过使用更大的内部隐藏维度)来抵消成本。
因此,在一些实施方式中,使用编码器神经网络系统102处理输入序列122以生成输入序列122的潜在表示104,并且使用解码器神经网络系统106结合部分输出序列128处理潜在表示104以生成系统输出112包括:将输入序列122和部分输出序列128提供给硬件加速器单元,使用硬件加速器单元,使用编码器神经网络系统102和解码器神经网络系统106的一个或多个变换器块,处理输入序列122和部分输出序列128。一个或多个变换器块被配置为实现多头注意力。处理输入序列122和部分输出序列128包括将用于多头注意力的键和值存储到(外部)存储器以及从存储器读取用于多头注意力的键和值。在实现中,该处理包括仅计算每个变换器块的单个键和值集合,其在所有注意力头部之间共享。在一些情况下,存储器访问是性能瓶颈,例如,由于键和值被存储在存储器中和从存储器读取。每个变换器块共享单个键和值集合可以减少存储器占用,并且能够相对于注意力头部的数量实现几乎线性的加速(例如,推断延迟)。
此外或替代地,可以选择键(和值)向量的维度d,使得这与由硬件加速器单元使用的硬件中定义的向量的维度相匹配,以处理变换器块的键(和值)向量。这避免了昂贵的填充操作,进一步促进了更快的操作。
在一些实施方式中,用于执行前瞻树搜索(例如,蒙特卡罗树搜索(MCTS))的代码可以用代码批处理以实现序列到序列系统100,特别是在相同的硬件加速单元上运行,从而促进数据的有效交换。其他代码,例如控制和接口代码,可以在主机处理器上运行。
仅作为一个示例,编码器和解码器神经网络系统可以各自包括6个变换器块,每个变换器块具有16个注意力头。下一个令牌概率分布108可以由策略头提供,该策略头从隐藏维度(例如,512)线性投影到令牌词汇表大小(例如,大约32K),然后进行softmax操作以输出整个词汇表上的分布;并且值110可以由从隐藏维度线性地投影到多个(例如500个)桶的值头提供,然后进行softmax操作。键和值的尺寸可以是例如128。
上述技术可以应用于各种不同类型的输入序列和输出序列。在所描述的技术的实施方式中,令牌可以表示、表征或编码序列(例如,数据流)中的任何类型的信息。术语“表示”在下面通常用于指代令牌可以对序列的一部分进行编码的任何方式。令牌可以包括标记令牌,例如序列开始令牌、序列结束令牌和分隔符令牌(指示序列的两个不同部分之间的分隔或中断)。令牌可以但不需要从定义的令牌词汇表中提取。
在一些实施方式中,输入令牌和输出令牌各自表示自然语言中的单词、单词片段或字符。单词片段可以是子词(词的一部分),并且可以是单独的字母或字符。如这里所使用的,“字符”包括中文和其他类似字符,以及徽标(logogram)、音节图等。
这些实施方式中的一些可以用于自然语言任务,诸如提供对自然语言输入的自然语言响应,例如用于问答或用于文本完成。在一些实施方式中,输入序列可以表示自然语言的文本,并且输出序列可以表示相同自然语言的文本,例如,较长的文本项。例如,在一些实施方式中,输入序列可以表示自然语言的文本,并且输出序列可以表示添加或填充有文本的缺失部分的相同文本。例如,输出序列可以表示由输入序列表示的文本的预测完成。这样的应用可以用于例如为例如基于自然语言的搜索提供自动完成功能。在一些实施方式中,输入序列可以表示自然语言的文本,例如提出问题或定义主题,并且输出序列可以表示自然语言的文本,其是对问题或关于指定主题的响应。
作为另一示例,输入序列可以表示第一文本项,并且输出序列可以表示第二较短的文本项,例如,第二文本项可以是作为第一文本项的段落的概要。作为另一示例,输入序列可以表示第一文本项,并且输出序列可以表示第一文本项的方面,例如,它可以表示蕴涵任务、释义任务、文本相似性任务、情感分析任务、句子完成任务、语法性任务、以及通常对某种自然语言的文本序列进行操作的任何自然语言理解任务,例如以生成对文本的某种属性进行分类或预测的输出。例如,一些实施方式可以用于识别第一文本项的自然语言,或者在输入是音频的情况下识别口语单词的自然语言(如下所述)。
一些实施方式可以用于执行神经机器翻译。因此,在一些实施方式中,输入令牌表示第一自然语言的单词、单词片段或字符,并且输出令牌表示不同的第二自然语言的单词、单词片段或字符。也就是说,输入序列可以表示第一语言的输入文本,并且输出序列可以表示输入文本到第二语言的翻译。
一些实施方式可以用于自动代码生成。例如,输入令牌可以表示第一自然语言中的单词、单词片段或字符,并且输出令牌可以表示计算机编程或标记语言中的指令,或者用于控制应用程序执行任务(例如构建诸如图像或网页的数据项)的指令。
一些实施方式可以用于语音识别。在这样的应用中,输入序列可以表示口语单词,并且输出序列可以表示口语单词到机器书写的表示(例如,文本)的转换。然后,输入令牌可以包括表示音频数据输入的令牌,该音频数据输入包括例如表征时域或时频域中的音频波形的口语单词。输出令牌可以表示语音输入的机器书写(例如文本)表示的单词、单词片段、字符或字素,其表示语音输入的转录。
一些实施方式可以用于手写识别。在这样的应用中,输入序列可以表示手写单词、音节图或字符,并且输出序列可以表示输入序列到机器书写表示(例如文本)的转换。然后,输入令牌可以包括表示手写的部分的令牌,并且输出令牌可以表示机器书写的单词、单词片段、字符或字素,例如语音输入的文本表示。
一些实施方式可以用于文本到语音转换。在这样的应用中,输入序列可以表示文本,并且输出序列可以表示文本到口语单词的转换。然后,输入令牌可以包括表示文本的单词或单词片段或字素的令牌,并且输出令牌可以表示用于生成与文本相对应的语音的音频数据的部分,例如,在时域或时频域中表征语音的波形的一部分或音素的令牌。
在一些实施方式中,输入序列和输出序列表示输入的不同模态。例如,输入序列可以表示自然语言中的文本,并且输出序列可以表示与文本相对应的图像或视频;或反之亦然。通常,令牌可以表示图像或视频特征,并且这样的令牌的序列可以表示图像或视频。存在使用令牌来表示图像(或视频)的许多方式。作为一个示例,图像(或视频)可以被表示为图像中的感兴趣区域(ROI)的序列,可选地包括用于全局图像特征的一个或多个令牌。例如,可以使用神经网络对图像进行编码以提取RoI特征;可选地(但不是必须的),令牌还可以包括表示图像中的RoI的位置的数据,例如位置编码。作为另一示例,令牌可以对图像的像素的颜色或强度值进行编码。作为另一示例,一些图像处理神经网络系统(例如,自回归系统)自然地将图像表示为图像特征序列。作为另一示例,如前所述的基于变换器的序列到序列神经网络系统可以用于处理图像而不是文本或者与文本一起处理(例如,如果在图像而不是文本上训练或者与文本一起训练)。
因此,在一些实施方式中,输入序列和输出序列中的至少一个是表示图像或视频的序列,并且令牌表示图像或视频。例如,输入序列可以是文本序列,输入令牌可以表示单词、单词片段或字符,并且输出序列可以包括表示例如由文本描述的图像或视频的输出令牌,或者提供对由文本提出的问题的可视答案,或者提供文本主题的可视化。在另一示例中,输入序列可以包括表示图像或视频的输入令牌序列,并且输出令牌可以表示单词或单词片段,或表示文本的字符,例如用于图像或视频的描述或表征,或者提供对由图像或视频视觉上提出的问题的答案,或者提供关于图像或视频的主题的主题的信息。
在一些其他实施方式中,输入序列和输出序列都可以表示图像或视频,并且输入令牌和输出令牌都可以表示相应的图像或视频。在此类实施方案中,所述方法/系统可经配置以执行图像或视频变换。例如,输入序列和输出序列可以以不同的风格表示相同的图像或视频,例如,一个作为图像,另一个作为图像的草图;或同一件衣服的不同款式。
在一些实施方式中,输入序列表示要压缩的数据,例如,图像数据、文本数据、音频数据或任何其他类型的数据;并且所述输出序列是所述数据的压缩版本。输入和输出令牌可以各自包括待压缩数据/压缩数据的任何表示,例如由相应的神经网络生成/解码的符号或嵌入。
在一些实施方式中,输入序列表示要由代理执行的动作序列,例如,现实世界环境中的机械代理,该代理实现动作以执行机械任务。输出序列可以包括修改的动作序列,例如其中操作参数(诸如运动速度或功耗)具有有限值的动作序列;或安全边界或其他边界不太可能被越过的边界。然后,输入令牌和输出令牌都可以表示要执行的动作。
在一些实施方式中,输入序列表示健康数据序列,并且输出序列可以包括预测治疗序列。然后,输入令牌可以表示患者健康的任何方面,例如来自患者的血液和其他医疗测试的数据和/或EHR(电子健康记录)数据;并且输出令牌可以表示诊断信息,例如与患者的疾病状态有关,和/或与患者的建议治疗有关,和/或与患者的不良健康事件的可能性有关。
图5比较了一些不同的神经机器翻译系统的性能,这些神经机器翻译系统包括如本文所述的被配置为执行自然语言机器翻译(“V-MCTS”)的序列到序列神经网络系统。总的来说,可以看出V-MCTS执行得有竞争力,并且该算法具有以下优点:它不仅仅涉及寻找具有高模型似然性的输出,这些输出并不总是最期望的自然语言翻译。
在图5中,系统针对英语到德语(“ENDE”)和英语到法语(“ENFR”)任务进行比较,并且使用三种不同的方法BLEU、BERT评分和MLBERT评分进行评分。顶行包含一般度量和变换器基线(Vaswani等人)。第二行示出了具有基于似然性的解码的监督模型的性能。第三行示出了来自基于值的算法的结果,包括V-MCT、VGBS(值引导波束搜索),其中使用值神经网络选择波束中的前k个)和S+R(值),其中从模型中采样多个完成的候选句子并根据它们的值进行排序。最后一行示出了来自S+R(评分)的结果,其中完成的候选句子根据它们的评分(例如,BLEU评分)进行排名,以及来自MCTS+推广(rollout)的结果,其中节点的值近似值被从节点直到到达终端节点的贪婪推广替换,完成的样本的评分变为节点的值。
本说明书结合系统和计算机程序组件使用术语“配置”。对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中使得系统执行操作或动作。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当由数据处理装置执行时使装置执行操作或动作的指令。
本说明书中描述的主题和功能操作的实施例可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件(包括本说明书中公开的结构及其结构等同物)或它们中的一个或多个的组合中实现。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即,在有形非暂时性存储介质上编码的计算机程序指令的一个或多个模块,用于由装置的数据处理执行或控制数据处理的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基底、随机或串行存取存储器设备、或它们中的一个或多个的组合。可替代地或另外地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,其被生成以编码信息,以传输到合适的接收器装置,以供数据处理装置执行。
术语“数据处理装置”是指数据处理硬件,并且包括用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。装置还可以是或进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,装置可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
计算机程序(其也可以被称为或描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言,或者声明或过程语言;并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元。程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本,存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中,例如,存储一个或多个模块、子程序或代码部分的文件。计算机程序可以被部署为在一个计算机上或在位于一个站点或分布在多个站点上并通过数据通信网络互连的多个计算机上执行。
在本说明书中,术语“数据库”广泛地用于指代任何数据集合:数据不需要以任何特定方式结构化,或者根本不需要结构化,并且它可以存储在一个或多个位置中的存储设备上。因此,例如,索引数据库可以包括多个数据集合,每个数据集合可以被不同地组织和访问。
类似地,在本说明书中,术语“引擎”广泛地用于指代被编程为执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,可以在同一台或多台计算机上安装和运行多个引擎。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如,FPGA或ASIC)执行,或者由专用逻辑电路和一个或多个编程计算机的组合执行。
适合于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的元件是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括或者可操作地耦合到用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘或光盘),以从其接收数据或向其传输数据或两者。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备,例如通用串行总线(USB)闪存驱动器,仅举几例。
适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可以通过其向计算机提供输入的键盘和指向设备(例如,鼠标或轨迹球)的计算机上实现。其他种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求将网页发送到用户设备上的网络浏览器。此外,计算机可以通过向个人设备(例如,运行消息传送应用的智能电话)发送文本消息或其他形式的消息并且作为回报从用户接收响应消息来与用户交互。
用于实现机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,用于处理机器学习训练或生产的公共和计算密集部分,即推断、工作负载。
可以使用机器学习框架(例如,TensorFlow框架、Microsoft认知工具包框架、Apache Singa框架或Apache MXNet框架)来实现和部署机器学习模型。
本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有用户可以通过其与本说明书中描述的主题的实现交互的图形用户界面、web浏览器或app的客户端计算机),或者一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如因特网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将数据(例如,HTML页面)发送到设备的用户,例如,用于向与充当客户端的设备交互的用户显示数据和从其接收用户输入的目的。可以在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。
虽然本说明书包含许多具体实施方式细节,但是这些不应被解释为对任何发明的范围或可能要求保护的范围的限制,而是作为可以特定于特定发明的特定实施例的特征的描述。在本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管特征可以在上面被描述为以某些组合起作用并且甚至最初被如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从组合中删除,并且所要求保护的组合可以针对子组合或子组合的变型。
类似地,虽然以特定顺序在附图中描绘了操作并且在权利要求中叙述了操作,但是这不应被理解为要求以所示的特定顺序或按顺序执行这些操作,或者执行所有示出的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或封装到多个软件产品中。
已经描述了主题的特定实施例。其它实施例在所附权利要求书的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或相继顺序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。
Claims (25)
1.一种使用序列到序列神经网络系统从输入序列生成输出序列的计算机实现的方法,
其中,所述序列到序列神经网络系统被配置为:
接收i)包括输入令牌序列的输入序列和ii)包括零个、一个或多个输出令牌的部分输出序列作为系统输入;以及
处理所述系统输入以生成系统输出,所述系统输出定义下一输出令牌的可能输出令牌上的下一令牌概率分布,以扩展所述部分输出序列;
所述方法包括:
获得i)包括所述输入令牌序列的输入序列和ii)初始部分输出序列;以及
通过执行由所述序列到序列神经网络系统引导的所述初始部分输出序列的可能延续的前瞻树搜索来扩展所述初始部分输出序列,直到满足一个或多个终止标准。
2.根据权利要求1所述的方法,还包括使用值神经网络引导所述前瞻树搜索,其中使用值神经网络引导所述前瞻树搜索包括处理所述输入序列和与所述前瞻树搜索的节点相关联的部分输出序列两者,以通过生成与所述节点相关联的部分输出序列的值来评估所述节点;以及使用与所述节点相关联的所述部分输出序列的值来引导所述前瞻树搜索。
3.根据权利要求2所述的方法,其中,所述序列到序列神经网络系统和所述值神经网络各自已经使用包括训练输入序列和训练输出序列的训练数据对进行了训练,以优化相应的序列转换度量,并且其中,所述序列到序列神经网络系统的序列转换度量和所述值神经网络的序列转换度量是不同的。
4.根据权利要求1-3中任一项所述的方法,其中用于所述前瞻树搜索的搜索树的根节点表示所述初始部分输出序列,其中从所述根节点到路径上的子节点的边各自表示所述初始部分输出序列的候选延续;以及
其中,执行由所述序列到序列神经网络系统引导的所述前瞻树搜索包括,对于所述搜索树的子节点:
使用所述序列到序列神经网络系统处理所述输入令牌序列、所述初始部分输出序列和所述初始部分输出序列的候选延续,以定义用于扩展所述初始部分输出序列的候选延续的下一输出令牌的可能输出令牌上的下一令牌概率分布;以及
使用所述下一令牌概率分布来扩展所述搜索树。
5.根据权利要求4所述的方法,还包括由值神经网络引导对所述部分输出序列的可能的延续执行所述前瞻树搜索,
其中,所述值神经网络被配置为处理至少部分输出序列以生成所述部分输出序列的值,并且
其中,执行由值神经网络引导的所述前瞻树搜索包括:
通过使用所述值神经网络处理由节点表示的所述初始部分输出序列的候选延续以确定所述节点的值,来评估由所述前瞻树搜索的节点表示的所述初始部分输出序列的候选延续。
6.根据权利要求5所述的方法,其中,所述值神经网络被配置为处理所述输入序列和所述部分输出序列的组合;并且其中
确定节点的值包括输入序列和由节点表示的初始部分输出序列的候选延续的组合。
7.根据权利要求1至6中任一项所述的方法,包括:
对所述初始部分输出序列的可能的延续执行所述前瞻树搜索,以确定多个完整的候选输出序列,其中,每个完整的候选输出序列表示所述输入令牌的完整序列;
对所述完整候选输出序列中的每一个进行评分;以及
基于所述评分选择候选输出序列作为所述输出序列。
8.根据权利要求1至6中任一项所述的方法,还包括:
使用所述前瞻树搜索来选择所述初始部分输出序列的所述可能的延续中的一个;
使用所选择的可能的延续来扩展所述初始部分输出序列,以生成扩展的部分输出序列;以及
通过对由所述序列到序列神经网络系统引导的所述扩展部分输出序列的可能的延续执行另一个前瞻树搜索来扩展所述扩展部分输出序列。
9.根据权利要求8所述的方法,包括通过执行前瞻树搜索来迭代地扩展所述扩展部分输出序列,直到生成所述输出序列的完整版本。
10.根据前述权利要求中任一项所述的方法,其中,通过对所述初始部分输出序列的可能的延续执行前瞻树搜索来扩展所述初始部分输出序列包括:
使用所述前瞻树搜索生成所述初始部分输出序列的所述可能的延续上的搜索树概率分布;以及
使用所述搜索树概率分布从所述可能的延续中选择所述初始部分输出序列的延续。
11.根据从属于权利要求4时的权利要求4-10中任一项所述的方法,其中,所述节点之间的边具有包括所述边的动作评分的边数据,其中,所述边的动作评分包括用于将输出令牌添加到由所述节点表示的所述初始部分输出序列的候选延续的评分,并且其中,
执行所述前瞻树搜索包括通过基于所述边的所述动作评分和所述下一令牌概率分布的组合选择要遍历的边来从所述根节点遍历所述搜索树。
12.根据权利要求11所述的方法,还包括:由值神经网络引导对所述部分输出序列的可能的延续执行所述前瞻树搜索,并且其中,使用所述下一令牌概率分布来扩展所述搜索树包括:
从所述根节点遍历所述搜索树,直到遇到叶节点;
通过为所述叶节点创建至少一个新的子节点来扩展所述叶节点,其中所述新的子节点表示所述初始部分输出序列的候选延续的候选扩展;
通过使用所述下一令牌概率分布确定所述叶节点与所述新的子节点之间的新边的边数据以确定所述新边的动作评分;以及
通过使用所述值神经网络处理所述初始部分输出序列的所述候选延续来评估所述叶节点以确定叶节点值。
13.根据权利要求12所述的方法,还包括使用叶节点值来更新在搜索期间遍历的叶节点和根节点之间的边的动作评分。
14.根据权利要求13所述的方法,其中,更新边的所述动作评分包括将所述动作评分设置为由在所述前瞻树搜索期间执行的涉及所述边的树搜索中的最大值确定的值。
15.根据任一前述权利要求所述的方法,使用所述序列到序列神经网络系统处理所述系统输入以生成系统输出包括:
使用包括变换器神经网络子系统的编码器神经网络系统来处理所述系统输入,以生成所述系统输入的潜在表示,以及
使用包括变换器神经网络子系统的解码器神经网络系统来处理所述系统输入的所述潜在表示和所述部分输出序列的组合,以生成所述系统输出。
16.根据权利要求15所述的方法,其中,所述处理包括:
将所述输入序列和所述部分输出序列提供给硬件加速器单元;
使用硬件加速器单元,使用编码器神经网络系统和解码器神经网络系统的一个或多个变换器块来处理输入序列和部分输出序列128,其中一个或多个变换器块被配置为实现具有多个注意力头部的多头注意力;
其中,处理所述输入序列和所述部分输出序列包括将用于所述多头注意力的键和值存储到存储器以及从所述存储器读取用于所述多头注意力的键和值;以及
其中,所述处理包括每个变换器块仅计算跨所有注意力头部共享的单组键和值。
17.根据权利要求16所述的方法,其中,所述键和值由向量定义,并且还包括将维度键和值向量匹配到在用于处理所述键和值向量的所述硬件加速器单元的硬件中定义的向量的维度。
18.根据权利要求1至17所述的方法,其中,所述输入令牌和所述输出令牌各自表示自然语言中的单词或单词片段。
19.根据权利要求18所述的方法,其中,所述输入令牌表示第一自然语言的单词或单词片段,并且其中,所述输出令牌表示不同的第二自然语言的单词或单词片段。
20.一种训练值神经网络的计算机实现的方法,所述方法包括:
获得序列到序列神经网络系统,所述序列到序列神经网络系统被配置为:
接收i)包括输入令牌序列的输入序列和ii)包括零个、一个或多个输出令牌的部分输出序列作为系统输入;以及
处理所述系统输入以生成系统输出,所述系统输出定义下一输出令牌的可能输出令牌上的下一令牌概率分布,以扩展所述部分输出序列;
获得包括训练数据对的训练数据集,每个训练数据对包括训练输入序列和训练输出序列;
对于至少一些训练数据对中的每一个,使用序列到序列神经网络系统处理训练输入序列以生成采样的训练输出序列,并用采样的训练输出序列替换训练输出序列以获得修改的训练数据集;
使用所述修改的训练数据集训练所述值神经网络,以优化取决于针对所述训练数据集的每个训练数据对确定的序列转换度量的目标。
21.根据权利要求20所述的方法,其中,所述值神经网络被配置为处理所述训练输入序列和部分训练输出序列两者以生成所述部分输出序列的值,并且其中,使用所述修改的训练数据集训练所述值神经网络包括:
对于每个训练数据对:
将所述训练输入序列和所述采样的训练输出序列的部分版本提供给所述值神经网络,以及
累加由所述值神经网络生成的值以确定所述训练数据对的累加值;以及
在所述累积值与所述训练数据对的所述序列转换度量之间的差上训练所述值神经网络。
22.根据权利要求21所述的方法,其中,所述值神经网络还被配置为处理所述训练输入序列和部分训练输出序列两者以生成用于确定所述部分训练输出序列的下一个输出令牌的令牌预测输出,并且其中,训练所述值神经网络还包括使用所述训练数据对来训练所述令牌预测输出。
23.根据权利要求21所述的方法,其中,在所述训练期间,所述值神经网络包括具有共享权重的两个基于变换器神经网络的编码器-解码器系统,并且其中,所述方法包括:
将所述训练输入序列和所采样的训练输出序列提供给第一基于变换器神经网络的编码器-解码器系统,以生成令牌选择策略输出和第一值评分;
将所述训练输出序列和所采样的训练输出序列提供给第二基于变换器神经网络的编码器-解码器系统,以生成第二值评分;
训练所述第一基于变换器神经网络的编码器-解码器系统以优化所述策略输出和所述第一值评分;
训练所述第一基于变换器神经网络的编码器-解码器系统以优化所述第二价值评分;以及
基于在所述第一基于变换器神经网络的编码器-解码器系统的最终层的输出与所述第二基于变换器神经网络的编码器-解码器系统的最终层的输出之间确定的蒸馏损失来训练所述第一基于变换器神经网络的编码器-解码器系统。
24.一个或多个存储指令的计算机可读存储介质,所述指令在由一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求1-23中任一项所述的方法的操作。
25.一种系统,包括一个或多个计算机和存储指令的一个或多个存储设备,所述指令在由一个或多个计算机执行时使所述一个或多个计算机实现根据权利要求1-23中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GR20210100088 | 2021-02-09 | ||
GR20210100088 | 2021-02-09 | ||
PCT/EP2022/053035 WO2022171635A1 (en) | 2021-02-09 | 2022-02-08 | Sequence-to sequence neural network systems using look ahead tree search |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116982054A true CN116982054A (zh) | 2023-10-31 |
Family
ID=80786371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280013917.8A Pending CN116982054A (zh) | 2021-02-09 | 2022-02-08 | 使用前瞻树搜索的序列到序列神经网络系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240104353A1 (zh) |
EP (1) | EP4264501A1 (zh) |
CN (1) | CN116982054A (zh) |
WO (1) | WO2022171635A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117690434A (zh) * | 2024-02-04 | 2024-03-12 | 深圳市友杰智新科技有限公司 | 多命令词的语音解码识别方法、装置、设备及存储介质 |
-
2022
- 2022-02-08 US US18/274,748 patent/US20240104353A1/en active Pending
- 2022-02-08 EP EP22708075.1A patent/EP4264501A1/en active Pending
- 2022-02-08 WO PCT/EP2022/053035 patent/WO2022171635A1/en active Application Filing
- 2022-02-08 CN CN202280013917.8A patent/CN116982054A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117690434A (zh) * | 2024-02-04 | 2024-03-12 | 深圳市友杰智新科技有限公司 | 多命令词的语音解码识别方法、装置、设备及存储介质 |
CN117690434B (zh) * | 2024-02-04 | 2024-06-04 | 深圳市友杰智新科技有限公司 | 多命令词的语音解码识别方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20240104353A1 (en) | 2024-03-28 |
WO2022171635A1 (en) | 2022-08-18 |
EP4264501A1 (en) | 2023-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210390271A1 (en) | Neural machine translation systems | |
Yao et al. | An improved LSTM structure for natural language processing | |
US11972365B2 (en) | Question responding apparatus, question responding method and program | |
US11893060B2 (en) | Latent question reformulation and information accumulation for multi-hop machine reading | |
CN115485696A (zh) | 机器学习模型的对抗预训练 | |
CN108960338B (zh) | 基于注意力反馈机制的图像自动语句标注方法 | |
JP7309798B2 (ja) | 対話意図の認識方法及び装置、電子機器並びに記憶媒体 | |
CN110688450B (zh) | 一种基于蒙特卡洛树搜索的关键词生成方法、基于强化学习的关键词生成模型及电子设备 | |
RU2712101C2 (ru) | Предсказание вероятности появления строки с использованием последовательности векторов | |
EP4060526A1 (en) | Text processing method and device | |
EP4170542A2 (en) | Method for sample augmentation | |
Liu et al. | Sign language recognition from digital videos using feature pyramid network with detection transformer | |
US20220383119A1 (en) | Granular neural network architecture search over low-level primitives | |
CN111145914B (zh) | 一种确定肺癌临床病种库文本实体的方法及装置 | |
US20230205994A1 (en) | Performing machine learning tasks using instruction-tuned neural networks | |
CN116982054A (zh) | 使用前瞻树搜索的序列到序列神经网络系统 | |
US20240005131A1 (en) | Attention neural networks with tree attention mechanisms | |
US20230316055A1 (en) | Attention neural networks with parallel attention and feed-forward layers | |
EP4323909A1 (en) | Character-level attention neural networks | |
CN115291888A (zh) | 基于自注意力交互式网络的软件社区仓库挖掘方法及装置 | |
El-Gayar | Automatic generation of image caption based on semantic relation using deep visual attention prediction | |
US12026966B2 (en) | Method for recognizing dialogue intention, electronic device and storage medium | |
Su et al. | Deep rnn architecture: Design and evaluation | |
US20240078379A1 (en) | Attention neural networks with n-grammer layers | |
Yang et al. | Intelligent sentence completion based on global context dependent recurrent neural network language model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |