UNIVERSAL TRANSFORMERS——通用 Transformer

UNIVERSAL TRANSFORMERS——通用 Transformer 一、研究背景与动机痛点1RNNRNN擅长处理序列、有循环归纳偏置但无法并行计算训练速度慢。痛点2TransformerTransformer并行性好、全局感受野强但缺乏循环偏置在需要迭代/递归推理的任务如复制长串、逻辑推断、长度外推上泛化能力差。核心目标设计一种既能并行计算又具备RNN式循环归纳偏置且理论上图灵完备的序列模型。二、核心模型Universal Transformer (UT)核心思想在“深度”上循环而非在“序列长度”上循环。不是像RNN那样按时间步逐个处理位置而是所有位置并行在每一轮step中同步更新每个位置的表示。每一轮包含两步多头自注意力跨所有位置交换信息同Transformer。循环转换函数对每个位置独立应用参数在所有位置和时间步共享。关键机制权重共享不同“层”即循环步之间的参数是绑定的相当于一个深度可变的、参数共享的多层Transformer。位置-时间联合编码给每个位置和每个时间步加上正弦位置嵌入使模型感知当前处于第几轮处理。动态停止ACT每个位置可以独立决定何时停止计算思考时间/ponder time复杂符号多算几步简单符号早停既提高效率又可能提升准确率。三、理论贡献图灵完备性标准Transformer的深度是固定的由层数决定因此对于任意长的输入其计算步数有限不是计算通用模型。UT的循环步数可以与输入长度相关如等于输入长度因而在足够内存下可以模拟任意图灵机属于计算通用Turing-complete模型。这一点弥补了标准Transformer在理论能力上的短板。四、实验验证与结果论文在算法任务、语言理解、机器翻译三大类上全面验证任务类别具体任务关键结果算法推理Copy、Reverse、Addition训练长度40→测试长度400UT远优于LSTM和Transformer接近Neural GPU但后者用了课程学习程序执行LTE记忆类复制/翻倍/反转和程序评估类程序/控制/加法UT在所有记忆任务上达到100%准确程序任务上全面超越对比模型语言理解bAbI20个推理问答任务1K/10K数据UT达到State-of-the-art且动态停止的思考时间随所需支持事实数量自适应增加句法结构主谓一致受干扰名词吸引子数量从0到5递增UT尤其是带ACT版本在高难度多吸引子下优于所有对比模型长上下文语言建模LAMBADA需根据4-5句上下文预测最后一个词UT达到新SOTA动态停止版本优于固定步数版本表明ACT不仅是“多算几步”还起到正则化作用机器翻译WMT14 En-De大规模seq2seq基准UT比标准TransformerBLEU提升0.9比加权Transformer提升0.5参数相近五、动态停止ACT的深入发现思考时间与任务难度正相关bAbI任务中需3个支持事实→平均3.8步需2个→3.1步需1个→2.3步。模型学会忽略无关信息对于长故事中大量无关事实许多位置在第1-2步就停止不浪费计算。ACT不仅是计算节省更是有效正则化固定步数增加到9步也未能达到ACT的效果说明ACT让模型更合理分配容量。六、模型架构定位与关系对比对象关系TransformerUT是Transformer的参数共享、可变深度泛化1步UT ≈ TransformerRNNUT是并行的RNN集合每个位置一个RNN但区别在于每步可全局注意所有位置Neural GPUUT可退化为Neural GPU令自注意力恒等步数输入长度神经图灵机NTMUT的并行注意可表达NTM的读写操作七、总结与定位一句话概括Universal Transformer Transformer的并行计算优势 RNN的循环归纳偏置 动态计算分配 理论图灵完备性。核心价值统一了高效并行与强推理能力两大需求。在算法外推、结构化推理、长文本语言建模等Transformer弱项上显著改进。同时不牺牲在大规模任务如机器翻译上的性能。未来序列模型的发展方向可能不仅是“更深更宽”更在于在深度维度上引入循环、动态分配计算资源以提升数据效率和泛化到未知长度的能力。这里是自己的论文阅读记录感兴趣的话可以参考一下如果需要阅读原文的话可以看这里如下所示摘要循环神经网络RNN通过在每个新数据点更新其状态来顺序处理数据长期以来一直是序列建模任务的事实上的选择。然而它们固有的顺序计算特性导致训练速度缓慢。最近前馈和卷积架构在一些序列建模任务如机器翻译上取得了优越的结果其附加优势在于能够并行处理序列中的所有输入从而实现轻松并行化和更快的训练速度。尽管取得了这些成功但流行的前馈序列模型如 Transformer在许多循环模型易于处理的简单任务上却无法很好地泛化例如复制字符串甚至在字符串或公式长度超过训练时所见长度时的简单逻辑推理任务上也是如此。我们提出了通用 TransformerUT这是一种时间并行、自注意力的循环序列模型可以看作是 Transformer 模型的泛化并解决了上述问题。UT 结合了前馈序列模型如 Transformer的并行化和全局感受野以及 RNN 的循环归纳偏置。我们还添加了一个动态的、按位置停止的机制并发现它在多个任务上提高了准确性。与标准的 Transformer 不同在某些假设下UT 可以被证明是图灵完备的。我们的实验表明在各种算法和语言理解任务上UT 都优于标准的 Transformer包括在具有挑战性的 LAMBADA 语言建模任务上UT 达到了新的最高水平以及在机器翻译任务上UT 在 WMT14 英-德数据集上比 Transformer 提升了 0.9 个 BLEU 分数。1 引言卷积和完全基于注意力的前馈架构如 Transformer近来已成为循环神经网络RNN在多种序列建模任务尤其是机器翻译上的可行替代方案Gehring 等人2017Vaswani 等人2017。这些时间并行架构解决了 RNN 的一个显著缺点即其固有的顺序计算阻止了输入序列元素间的并行化同时仍然解决了序列长度变长时的梯度消失问题Hochreiter 等人2003。Transformer 模型尤其完全依赖于自注意力机制Parikh 等人2016Lin 等人2017来计算其输入和输出符号的一系列上下文感知的向量空间表示然后在模型逐符号预测输出序列时使用这些表示来预测后续符号的分布。这种机制不仅易于并行化而且由于每个符号的表示也直接受到所有其他符号表示的影响因此在整个序列上实现了有效的全局感受野。这与卷积架构等通常只有有限感受野的模型形成了对比。然而值得注意的是Transformer 及其固定的不同层堆栈放弃了 RNN 那种倾向于学习迭代或递归转换的归纳偏置。我们的实验表明这种归纳偏置可能对于各种复杂程度的算法和语言理解任务至关重要与神经图灵机Graves 等人2014、神经 GPUKaiser Sutskever2016或堆栈 RNNJoulin Mikolov2015等模型不同Transformer 在处理训练期间未见过的输入长度时泛化能力不佳。在本文中我们介绍了通用 TransformerUT这是一种时间并行的循环自注意力序列模型可以看作是 Transformer 模型的泛化从而提高了理论能力并在各种具有挑战性的序列到序列任务上取得了改进的结果。UT 结合了前馈序列模型如 Transformer的并行化和全局感受野以及 RNN 的循环归纳偏置后者似乎更适合一系列算法和自然语言理解的序列到序列问题。顾名思义与标准的 Transformer 相比在某些假设下UT 可以被证明是图灵完备的或称“计算通用性”如第 4 节所示。在每个循环步骤中通用 Transformer 使用自注意力机制Parikh 等人2016Lin 等人2017并行地迭代精炼其所有符号的表示然后进行一个转换在所有位置和时间步上共享该转换由一个深度可分离卷积Chollet2016Kaiser 等人2017或一个按位置的全连接层组成见图 1。我们还添加了一个动态的、按位置停止的机制Graves2016允许模型为每个符号动态选择所需的精炼步骤数并首次展示了这种条件计算机制实际上可以在几个较小的、结构化的算法和语言推理任务上提高准确性尽管在机器翻译任务上效果略有下降。我们强有力的实验结果表明在各种任务上UT 都优于 Transformer 和 LSTM。增加的循环性在机器翻译中带来了改进的结果UT 优于标准的 Transformer。在几个算法任务和 bAbI 语言理解任务的实验中UT 也始终且显著地优于 LSTM 和标准 Transformer。此外在具有挑战性的 LAMBADA 文本理解数据集上采用动态停止机制的 UT 达到了新的最高水平。2 模型描述2.1 通用 Transformer通用 TransformerUT见图 2基于大多数神经序列到序列模型Sutskever 等人2014Cho 等人2014Vaswani 等人2017中常用的编码器-解码器架构。UT 的编码器和解码器都通过将循环神经网络应用于输入和输出序列各自位置的表示来运行。然而与大多数将循环神经网络应用于序列数据的应用不同UT 不是在序列的位置上进行循环而是在每个位置向量表示的连续修订版上进行循环即在“深度”上循环。换句话说UT 的计算不受限于序列中的符号数量而仅受限于每个符号表示被修订的次数。在每个循环时间步每个位置的表示都通过两个子步骤并行地进行修订首先使用自注意力机制在序列中的所有位置间交换信息从而为每个位置生成一个由前一时间步所有其他位置表示所通知的向量表示。然后对自注意力机制的输出应用一个转换函数在位置和时间上共享在每个位置上独立应用。由于循环转换函数可以应用任意多次这意味着 UT 可以具有可变的深度每个符号的处理步骤数。关键的是这与大多数流行的神经序列模型包括 TransformerVaswani 等人2017或深度 RNN形成对比这些模型由于应用了固定的层堆栈而具有恒定的深度。我们现在更详细地描述编码器和解码器。图 2通用 Transformer 编码器和解码器的循环块。此图省略了位置和时间步编码以及丢弃、残差连接和层归一化。完整版本见附录 A。采用动态停止机制的通用 Transformer 使用 ACTGraves2016为每个位置单独确定步骤数 T。2.2 动态停止在序列处理系统中某些符号例如某些单词或音素通常比其他符号更模糊。因此为这些更模糊的符号分配更多的处理资源是合理的。自适应计算时间ACTGraves2016是一种机制用于根据模型在每一步预测的标量停止概率动态调节处理每个输入符号所需的计算步骤数称为“思考时间”。表 1在 bAbI 数据集上不同训练/评估设置下的平均错误率和失败任务数括号内两者都是越低越好。我们标出了每种设置下已知的最高水平否则用“-”表示。受将通用 Transformer 解释为并行应用于序列中所有位置的自注意力 RNN 的启发我们还为每个位置即每个逐符号的自注意力 RNN详见附录 C添加了一个动态的 ACT 停止机制。一旦逐符号的循环块停止其状态就会被复制到下一步直到所有块都停止或者达到最大步数。编码器的最终输出就是这样产生的最终表示层。3 实验与分析我们在多种算法和语言理解任务以及机器翻译任务上评估了通用 Transformer。我们在附录 D 中更详细地描述了这些任务和数据集。3.1 BABI 问答bAbI 问答数据集Weston 等人2015包含 20 个不同的任务目标是根据若干编码了潜在多个支持事实的英语句子来回答问题。其目标是通过要求在呈现的每个故事中的语言事实上进行某种类型的推理来衡量各种形式的语言理解。标准的 Transformer 在此任务上效果不佳。然而我们设计了一个基于通用 Transformer 的模型在该任务上达到了最高水平的结果。为了编码输入类似于 Henaff 等人2016我们首先通过将学习到的乘法位置掩码应用于每个单词的嵌入并将所有嵌入求和来编码故事中的每个事实。我们以相同的方式嵌入问题然后将这些事实和问题的嵌入馈送给通用Transformer。按照最初的提议模型可以分别在每个任务上训练“单独训练”或在所有任务上联合训练“联合训练”。表 1 总结了我们的结果。我们使用不同的初始化进行了 10 次运行并根据验证集上的性能选择了最佳模型与之前的工作类似。在 10K 和 1K 训练机制下详见附录 E 的按任务细分UT 和带有动态停止机制的 UT 在平均错误率和失败任务数量方面都在所有任务上取得了最高水平的结果。为了更好地理解模型的工作原理我们分析了此任务的注意力分布和平均 ACT 思考时间详见附录 F。首先我们观察到注意力分布开始时非常均匀但在后续步骤中围绕回答每个问题所需的正确支持事实注意力逐渐变得更为集中这与人类解决问题的方式非常相似。其次使用动态停止机制我们观察到测试数据中所有样本的所有位置上对于需要三个支持事实的任务平均思考时间即每符号循环处理链的深度为 3.8±2.2高于需要两个支持事实的任务3.1±1.1而后者又高于只需要一个支持事实的任务2.3±0.82.3±0.8。这表明模型会根据回答问题所需支持事实的数量来调整处理步骤数。最后我们观察到在只需要一个支持事实的任务中不同位置的思考时间直方图比需要两个和三个支持事实的任务更均匀需要两个支持事实的任务也比需要三个的更均匀。特别是对于需要三个支持事实的任务许多位置在第 1 步或第 2 步就已经停止只有少数位置会进行更多步骤的转换例如见图 3。这一点特别有趣因为在这种情况下故事的长度确实更长有更多不相关的事实模型似乎成功地学会了以这种方式忽略它们。与动态记忆网络Kumar 等人2016类似UT 中存在一个迭代注意力过程允许模型根据先前迭代的结果来调节其对记忆的注意力。附录 F 提供了一些示例说明 UT 中存在时间状态的概念模型在每一步根据前一步的输出更新其状态记忆并且这种更新链也可以被视为多跳推理过程中的步骤。图 3在需要一个需要三个支持事实的 bAbI 任务中使用动态停止机制的 UT 在编码故事事实和问题时的思考时间。3.2 主谓一致接下来我们考虑预测英语句子中主语和动词之间数一致性的任务Linzen 等人2016。该任务作为衡量模型捕捉自然语言句子中层级依存结构能力的代理。我们使用Linzen 等人2016提供的数据集并遵循他们的实验协议使用语言建模训练设置即下一个词预测目标来解决该任务然后在测试时计算目标动词的排名准确率。我们在测试数据的不同难度子集上评估了我们的模型难度通过一致吸引子的数量来衡量——即与主语数相反的中间名词的数量旨在混淆模型。例如给定句子“The keys to the cabinet”训练期间的目标是预测动词“are”复数。在测试时我们然后评估一致吸引子的排名准确率即目标是让“are”的排名高于“is”。我们的结果总结在表 2 中。文献中最好的带注意力的 LSTM 在此任务上达到 99.18% 的准确率Yogatama 等人2018优于普通的 TransformerTran 等人2018。UT 显著优于标准 Transformer并取得了与当前最高水平相当的平均结果99.2%。然而我们看到随着吸引子数量的增加UT尤其是带有动态停止机制的 UT的表现逐渐优于所有其他模型见最后一行Δ。3.3 LAMBADA 语言建模LAMBADA 任务Paperno 等人2016是一个语言建模任务包括在给定更广泛的 4-5 个前句上下文的情况下预测一个缺失的目标词。该数据集是专门设计的使得人类在显示完整上下文时能够准确预测目标词但在仅显示目标词所在句子时则不能。因此它超越了语言建模并测试模型在预测目标词时整合更广泛语篇和长期上下文的能力。该任务在两种设置下进行评估作为语言建模标准设置和作为阅读理解。在前者更具挑战性的情况下模型仅在训练数据上训练下一个词预测并在测试时评估目标词上的表现即模型训练预测所有词而不是专门针对具有挑战性的目标词。在后者中由 Chu 等人2017引入目标句子减去最后一个词被用作从上下文句子中选择目标词的查询。请注意目标词在 81% 的情况下出现在上下文中这使得设置简单得多。然而在剩余的 19% 情况下任务是不可能完成的。结果如表 3 所示。通用 Transformer 在语言建模和阅读理解两种设置下都达到了最高水平的结果优于 LSTM 和普通 Transformer。请注意控制集的构建方式与 LAMBADA 开发集和测试集类似但没有经过任何过滤因此在该集上取得良好结果显示了模型在标准语言建模方面的能力。我们最好的固定步数 UT 结果使用了 6 步。然而带有动态停止机制的最佳 UT 在测试数据上所有位置和示例上平均所取的步数为 8.2±2.1。为了查看动态模型是否仅仅因为采取了更多步骤而表现更好我们分别训练了两个固定步数分别为 8 步和 9 步的 UT 模型见最后两行。有趣的是这两个模型相比 6 步模型取得了更好的结果但并未优于带有动态停止机制的 UT。这使我们相信动态停止可能通过激励模型对某些输入符号使用较少的步数同时允许对其他符号进行更多计算从而充当了有用的正则化器。3.4 算法任务我们在三个算法任务上训练了 UT即复制、反转和整数加法所有任务都使用由十进制符号‘0’-‘9’组成的字符串。在所有实验中我们在长度为 40 的序列上训练模型并在长度为 400 的序列上进行评估Kaiser Sutskever2016。我们使用从随机偏移位置开始的 UT 进行训练以进一步鼓励模型学习位置相对的转换。结果如表 4 所示。在所有三个任务上UT 都大幅优于 LSTM 和普通 Transformer。神经 GPU 在此任务上报告了完美结果Kaiser Sutskever2016但是我们注意到这个结果需要特殊的基于课程的训练协议而其他模型并未使用。3.5 学习执行LTE作为另一类序列到序列学习问题我们还在表明模型学习执行计算机程序能力的任务上评估了 UT如Zaremba Sutskever2015所提出的。这些任务包括程序评估任务程序、控制和加法和记忆化任务复制、翻倍和反转。我们使用Zaremba Sutskever2015中讨论的混合策略来生成数据集。与Zaremba Sutskever2015不同我们在训练期间没有使用任何课程学习策略并且在测试时也没有使用目标序列。表 5 和表 6 分别展示了 LSTM 模型、Transformer 和通用 Transformer 在程序评估和记忆化任务上的性能。UT 在所有记忆化任务上都取得了完美的分数并且在所有程序评估任务上都大幅优于 LSTM 和 Transformer。3.6 机器翻译我们在 WMT 2014 英-德翻译任务上训练了一个 UT使用了与Vaswani 等人2017中报告相同的设置以评估其在大型序列到序列任务上的性能。结果总结在表 7 中。采用全连接循环转换函数而非可分离卷积且未使用 ACT 的 UT在参数数量大致相同的情况下相比 Transformer 提升了 0.9 个 BLEU相比加权 Transformer 提升了 0.5 个 BLEUAhmed 等人2017。表 7在 WMT14 英-德翻译任务上的机器翻译结果在 8 块 P100 GPU 上训练训练设置具有可比性。所有基础结果具有相同数量的参数。4 讨论当运行固定步数时通用 Transformer 相当于一个在其所有层间共享参数的多层 Transformer。这在一定程度上类似于递归 Transformer后者在其深度上共享自注意力层的权重Gulcehre 等人20185。然而由于逐符号的循环转换函数可以应用任意次数另一种可能更具信息量的方式是将 UT 表征为一组并行的 RNN每个符号一个共享参数它们同时演化每个符号的隐藏状态每个步骤的状态是通过关注前一步的隐藏状态序列生成的。通过这种方式它与诸如神经 GPUKaiser Sutskever2016和神经图灵机Graves 等人2014等架构相关。因此UT 保留了原始前馈 Transformer 模型具有吸引力的计算效率但增加了 RNN 的循环归纳偏置。此外使用动态停止机制UT 可以根据输入数据选择处理步骤的数量。通用 Transformer 与其他序列模型之间的联系从架构上看是显而易见的如果我们将循环步数限制为 1它就是一个 Transformer。但更有趣的是考虑通用 Transformer 与 RNN 以及在其他时间维度上进行循环的网络之间的关系。表面上这些模型可能看起来很接近因为它们也是循环的。但有一个关键区别像 RNN 这样的时间循环模型无法在循环步骤中访问记忆。这使得它们在计算上更类似于自动机因为循环部分中唯一可用的记忆是固定大小的状态向量。而 UT 则可以关注整个前一层使其能够在循环步骤中访问记忆。在拥有足够记忆的情况下通用 Transformer 是计算通用的——即它属于可用于模拟任何图灵机的模型类别从而解决了标准 Transformer 模型的一个缺点 6。除了理论上的吸引力我们的结果表明这种增加的表达能力也在几个具有挑战性的序列建模任务上带来了更高的准确率。这缩小了在机器翻译等大规模任务上具有竞争力的实用序列模型与可以通过梯度下降训练以执行算法任务的通用计算模型如神经图灵机或神经 GPUGraves 等人2014Kaiser Sutskever2016之间的差距。为了证明这一点我们可以将神经 GPU 简化为通用 Transformer。忽略解码器并将自注意力模块即带有残差连接的自注意力参数化为恒等函数我们假设转换函数是一个卷积。如果我们现在将总循环步数 TT 设置为等于输入长度我们就得到了一个精确的神经 GPU。请注意最后一步是通用 Transformer 与普通 Transformer 的关键区别后者的深度不能随输入大小动态扩展。通用 Transformer 与神经图灵机之间也存在类似的关系后者每步的单一读/写操作可以由通用 Transformer 的全局并行表示修订来表达。然而与这些仅在算法任务上表现良好的模型相比通用 Transformer 在诸如 LAMBADA 和机器翻译等现实自然语言任务上也取得了具有竞争力的结果。另一个相关的模型架构是端到端记忆网络Sukhbaatar 等人2015。然而与端到端记忆网络不同通用 Transformer 使用的记忆对应于与其输入或输出各个位置对齐的状态。此外通用 Transformer 遵循编码器-解码器配置并在大规模序列到序列任务中取得了具有竞争力的性能。5 结论本文介绍了通用 Transformer它是 Transformer 模型的泛化扩展了其理论能力并在广泛具有挑战性的序列建模任务如语言理解以及各种算法任务上取得了最先进的结果从而解决了标准 Transformer 的一个关键缺点。通用 Transformer 将以下关键特性融合到一个模型中权重共享遵循 CNN 和 RNN 中权重共享背后的直觉我们通过一种简单的权重共享形式扩展了 Transformer这种形式在归纳偏置和模型表达能力之间取得了有效平衡我们在小型和大型实验中都广泛地展示了这一点。条件计算在我们构建计算通用机器的目标下我们为通用 Transformer 配备了通过最近引入的机制来停止或继续计算的能力与固定深度的通用 Transformer 相比该机制显示出更强的结果。我们对时间并行序列模型的最新发展充满热情。通过增加计算能力和处理深度上的循环性我们希望超越此处介绍的基础通用 Transformer 的进一步改进将帮助我们构建更强大、数据效率更高并能超越当前最先进水平的泛化能力的学习算法。