Compositional Attention: Disentangling Search and Retrieval
18 Oct 2021
ICLR2022
https://arxiv.org/abs/2110.09419
Sarthak Mittal, Sharath Chandra Raparthy, Irina Rish, Yoshua Bengio, Guillaume Lajoie
Multi-head, key-value attention is the backbone of the widely successful Transformer model and its variants. This attention mechanism uses multiple parallel key-value attention blocks (called heads), each performing two fundamental computations: (1) search - selection of a relevant entity from a set via query-key interactions, and (2) retrieval - extraction of relevant features from the selected entity via a value matrix. Importantly, standard attention heads learn a rigid mapping between search and retrieval. In this work, we first highlight how this static nature of the pairing can potentially: (a) lead to learning of redundant parameters in certain tasks, and (b) hinder generalization. To alleviate this problem, we propose a novel attention mechanism, called Compositional Attention, that replaces the standard head structure. The proposed mechanism disentangles search and retrieval and composes them in a dynamic, flexible and context-dependent manner through an additional soft competition stage between the query-key combination and value pairing. Through a series of numerical experiments, we show that it outperforms standard multi-head attention on a variety of tasks, including some out-of-distribution settings. Through our qualitative analysis, we demonstrate that Compositional Attention leads to dynamic specialization based on the type of retrieval needed. Our proposed mechanism generalizes multi-head attention, allows independent scaling of search and retrieval, and can easily be implemented in lieu of standard attention heads in any network architecture.
多头、键值注意力是广泛成功的Transformer模型及其变体的支柱。这种注意机制使用多个并行键值注意块(称为头部),每个块执行两个基本计算:(1)搜索-通过查询键交互从集合中选择相关实体,以及(2)检索-通过值矩阵从所选实体中提取相关特征。重要的是,标准注意头学习搜索和检索之间的刚性映射。在这项工作中,我们首先强调配对的这种静态性质如何可能:(a)导致在某些任务中学习冗余参数,(b)阻碍泛化。为了缓解这个问题,我们提出了一种新的注意机制,称为组合注意,它取代了标准的头部结构。该机制通过查询键组合和值配对之间的额外软竞争阶段,将搜索和检索分离开来,并以动态、灵活和上下文相关的方式进行组合。通过一系列的数值实验,我们发现它在各种任务上都优于标准的多头注意,包括一些分布外的设置。通过我们的定性分析,我们证明了组合注意会导致基于所需检索类型的动态专业化。我们提出的机制概括了多头注意,允许搜索和检索的独立缩放,并且可以很容易地在任何网络架构中替代标准注意头。
1简介
注意机制已成为跨多个领域的机器学习模型的组成部分。Bahdanau等人(2015年)首次提出了软注意的现代概念,用于机器翻译,以允许循环网络在长序列上表现良好。从那时起,人们的注意力集中在几个完全放弃循环网络的模型上(即Transformer(Vaswani et al.,2017)),并在各种各样的应用中得到利用,如自然语言(Bahdanaau et al.,2015;Vaswani et al.,2017;Devlin et al.,2018),计算机视觉(Dosovitskiy et al.,2020)和物理推理(Ding et al.,2020;Locatello et al.,2020)。
这一成功的核心是一个简单的想法:在序列元素之间实现任务驱动的灵活连接,以提取和合并信息。该过程由注意(或对齐)功能实现,这些功能以其最简单的形式获取一个引用或查询实体,并在一组其他实体中“挑选”(即关注)最相关的输入实体。现代注意力系统以两种有意义的方式完善了这一关键原则。首先,它们利用键值attention,其中attention函数从参考实体获取“查询”,将它们与附加到输入实体的“键”匹配,并返回表示所选实体转换的“值”。其次,它们允许多个注意机制并行运行,通常称为注意头,允许模型共同关注多个实体,从而提高表达能力。尽管取得了这些进步,但Transformer式体系结构在某些任务上仍存在困难(Fan et al.,2020;Nogueira et al.,2021),包括上下文敏感关联和分布外(OoD)泛化(Lake&Baroni,2018b;Liska et al.,2018)。在物理推理和以对象为中心的任务方面,它们仍然远远没有达到人的水平(Webb等人,2020年)。在实体具有多个属性的面向对象世界中,当前的多头注意机制学习刚性搜索检索关联,这会导致各种限制,如图1和第2.3节所示。
为了解决这些缺点,最近开发了一些能够吸引注意力的系统,以便更好地分解和重新组合知识(Goyal et al.,2019;2021a;b),其中一些我们在附录A中讨论。然而,大多数这些努力都取决于专为特定目的构建的架构组件,这些组件仍然是利基的,通常难以大规模实施。为了补充这些努力,并在Transformers已被证明的有效性的基础上,我们的目标是对关键值注意进行最小的修改,以实现对注意头中发现的计算的灵活分解,并消除一些参数冗余。至关重要的是,我们的目标是为现有的Transformer(以及基于它们的所有模型)提供一种易于实现和即插即用的机制。
我们提出了组合注意,其中搜索和检索操作可以灵活组合:关键查询搜索机制不再绑定到固定值检索矩阵,而是从多个组合注意头可访问的共享值矩阵池中动态选择。这将提高灵活性并改进性能。
贡献摘要。
(a) 我们正式描述了标准多头注意中刚性搜索和检索耦合的缺点,并通过一个说明性组合任务(第2.3节和第4.1节)的实验对其进行了实证分析。
(b) 我们提出了将组合注意力用于分离搜索和检索,并通过大量实验验证了其优势(第3节和第4节)。
(c) 通过一系列分析,我们展示了我们提出的注意机制是如何按预期分解关系任务结构的,并促进了面向对象的泛化(第4节)。
(d) 我们讨论了我们提出的方法的计算复杂性,该方法可以在任何组件(搜索和/或检索)中独立扩展,并且很容易替代标准Transformer式体系结构中的多头注意(第5节)。
2多头注意的局限性
在本节中,我们首先从搜索和检索机制的角度介绍了多头注意的标准符号(Vaswani et al.,2017)。然后,我们强调搜索检索的刚性如何导致神经网络参数化的限制和冗余。
2.1多头注意力基础
键值注意事项:
给定一组查询和键值对,键值注意计算每个查询和键值集之间的缩放余弦相似性度量。该相似度得分确定了相应查询的输出中每个值的贡献。
更正式地说,给定一组排列在矩阵X中的输入元素∈ R N×d,我们首先使用X上的线性变换和可学习的投影矩阵获得查询Q、键K和值V
对于每个查询,使用缩放的余弦相似度(称为缩放的点积)计算每个关键字的相似度得分,以给出用于软组合值的注意权重,如下所示:
哪里√ 1 dk是比例因子
多头注意:
多头注意机制将多个(例如,h)独立的关键值注意机制并行组合,为模型提供联合关注不同位置的能力,从而提高表征能力。这些多个头产生的输出串联在一起,然后使用可学习矩阵Wo线性投影回输入维度∈ R hdv×d:
其中headi=注意(气、气、六)
2.2搜索和检索组件
在这里,我们采用第2.1节中定义的多头注意,并将其分解为两个基本组件:搜索和检索。
搜索:搜索由查询矩阵和键矩阵(即Wq和Wk)参数化。这些参数定义了元素xj和xk对之间兼容性度量的概念∈ X:
式中,Q=X Wq,K=X Wk。上述计算给出了在搜索参数定义的兼容性度量下,元素xj与其他元素xk之间的兼容性。
检索:
检索由值矩阵Wv参数化,该值矩阵描述X中输入元素中与下游任务相关且需要访问的特征类型:
其中V=X Wv。请注意,每次检索都定义了要从输入x 0 k s访问的属性类型,并且可以将任何搜索结果作为其输入。
多头注意力作为搜索和检索的刚性配对:
根据上述定义,我们可以看到标准的多头注意如何相当于搜索和检索的刚性配对,从而在优化时学习固定属性对的端到端功能。实际上,h个头部由h个不同的搜索检索对组成–第i次检索仅在第i次搜索上执行。因此,多头注意力相当于等式4和5的特例
通过这些固定的搜索-检索配对来观察多头注意,预示着我们下面提出的搜索和检索的可能泛化。然而,在这样做之前,我们首先强调标准多头注意的具体缺点。
2.3刚性联想的缺点
如第2.2节所述,多头注意考虑搜索和检索之间的固定配对。虽然它在许多领域都取得了广泛的成功,但我们假设,这种刚性映射并不总是理想的,有时会导致冗余参数的容量和学习减少,从而错过了更好的系统化推广机会。我们注意到,与每个头部相关联的搜索定义了一个特征(由查询键矩阵Wq和Wk定义),根据该特征评估对象之间的兼容性。此外,每个头部的检索允许模型访问搜索对象中的特定特征(由值矩阵Wv定义)。接下来,我们展示了多头注意中可能出现的两种类型的冗余:(a)搜索冗余,导致学习冗余查询键矩阵;(b)检索冗余,导致学习冗余值矩阵。
我们使用图1所示的一个简单示例共同强调这两个冗余,其中三个具有属性的对象:形状、颜色和位置,是不同问题的主题。在(a)中,模型必须学会根据颜色进行搜索并相应地检索形状信息,而在(b)中,模型必须根据形状进行搜索并检索位置。在这项任务中,标准的多头注意力(中排)应该学习两个头,分别用于(a)和(b)。为了回答(c)中的问题,模型必须根据颜色进行搜索并检索位置。虽然头1学习到的(a)中存在按颜色搜索,而头2学习到的(b)中存在检索位置,但无法将它们组合起来。因此,需要另一个头部来获得头部1的搜索和头部2的检索。这导致了参数冗余和错失了更有效地分解知识的机会,因为这些学习到的知识片段已经分别存在于头1和头2中。
图1中的场景看起来可能非常理想化,因为多头注意可能不会限制对单个特征的搜索/检索,并且能够进行更细微的软组合。虽然这个简单的例子可能就是这种情况,但它强调的是僵化的学习关联的危险,这种关联限制了所学知识片段的重新组合,导致冗余参数,并可能限制OoD泛化,无论模型学习什么。我们在附录B.1中对此进行了更详细的讨论,并在第4.1节中,在专门构建的诊断任务(我们称之为上下文检索任务)中对这些原则进行了实证研究。最后,我们重申,h个头的多头注意最多只能代表h个唯一(搜索-检索)配对。在下面的内容中,我们建议通过允许S×R这样的配对来缓解这一基本限制,S是搜索类型的数量,R是检索类型的数量。
3组合注意力-分离搜索和检索
我们提出了一种新的注意机制,该机制放松了静态搜索-检索配对,有利于更灵活和动态的映射。为此,我们完全放弃了“头”的概念,而是提出了独立的、可重组的搜索和检索,如第2.2节所定义。中心创新在于这两个组件的组合方式:查询键值注意力检索
与heads类似,我们从定义S并行搜索机制开始。也就是说,我们分别有S个不同的查询键参数化Wqi和Wki。每个搜索的输出如等式4所示。本质上,每次搜索我都会得到
接下来,我们定义了R种不同的检索机制,它们对应于R种不同的Wvj矩阵。这些矩阵用于从输入中获取不同的属性。在形式上,总结如下
其中Vj突出显示了对不同属性的访问。然后,对应于每个搜索,完成所有可能的检索。这类似于方程式5,定义如下
对于所有i,j。这一步为我们提供了每个搜索的所有假设检索,其中,每个搜索需要实例化一个检索。该实例化是通过使用检索查询Qi和检索密钥Kij计算的二级注意机制完成的,检索查询Qi和检索密钥Kij如下所示:
其中参数Wqi∈ R d×dr是由i索引的每个搜索的不同矩阵,与Wk一起负责推动搜索和检索之间的配对。我们将矩阵Qi从R N×dr广播到R N×1×dr,并定义Ki∈ R N×R×dr by
因此,通过这些检索查询和键,每个搜索所需的实例化如下所示
转置在最后两个轴上。因此,对于每个搜索i,softmax给出所有可能检索的注意权重,并且通过该软注意机制实例化获胜检索。最后,与多头注意类似,这些并行搜索的输出通过串联并通过线性网络进行组合:
其中Wo∈ R Sdv×d。注意,在这种机制中,每个搜索的检索选择不是固定的,而是分别由Qi和Ki动态调整。我们让读者参考图2,以获得计算图的视觉描述。
组合注意允许模型具有(a)不同数量的搜索和检索,即分别为S和R,(b)动态选择每个搜索的共享检索,以及(c)S×R(搜索-检索)对的表示能力。因此,我们强调,组合注意将搜索和检索分离开来,并解决了多头注意的冗余问题(第2.3节)。
4个实验
对于我们的所有实验,我们将标准Transformer模型(Vaswani et al.,2017)和跨层参数共享(Dehghani et al.,2018)作为基线。对于视觉任务,我们将Dosovitskiy等人(2020年)引入的视觉Transformer作为基线。我们提出的模型“组合Transformer”(Composition Transformer)使用组合注意机制作为多头注意块的替代品,同时保持体系结构的其余部分不变。我们还对检索次数、模型尺寸和复杂性进行了烧蚀,如附录B.7所述
通过我们的实验,我们表明:(a)灵活的搜索和检索组合可以获得更好的分布内和分布外性能;(b)我们提出的模型可以获得类似或更好的性能,通常检索次数较少。
4.1上下文检索任务
首先,我们考虑一个专门构建的任务,以更好地理解学习的属性映射如何通过注意机制进行重组。我们引入此实验的目的是明确控制搜索和检索属性,以便(1)对OoD泛化进行系统测试,以及(2)直接比较预期/真值和学习到的激活模式。因此,我们提出了一种基于监督集的回归任务,其中具有多个特征的对象需要有选择地相互关联(例如,找到最近的蓝色对象),并且必须根据固有上下文返回不同的特征值(例如,如果位置为中位,则返回报告形状,否则返回大小)。我们的任务寻求一个可以存在此类关联的最小设置,并涉及N个对象{xi}N 1=1的集合,每个对象都具有标量值特征,如图3(左)所示。对应于每个对象xi,输出是标量
其中,αs是随机选择的固定权重,v i s是s比较搜索的结果,将对象xi与集中的其他对象配对。为了描述这些比较搜索,我们首先概述了每个对象的组成。在这里
其中z i∈ R S和zi∈ R R分别包含S“搜索”特征和R“检索”特征,以及一个热向量R i S∈ {0,1}R包含搜索s的对象xi的检索首选项。
搜索步骤:每个对象xi根据搜索功能并行搜索与其最近的对象。此操作由
其中s表示第s个搜索特征,因此存在s个并行独立搜索,其中j i s表示对象xi的搜索s的获胜者。
检索步骤:对应于每个获胜者j i s,检索上下文r i s指示从j i s对象访问哪个检索特征。这是由
通过最小化{yi}N i=1目标上的L1损失来完成训练(详见附录C.1)。虽然看起来是组合的,但此任务考虑了具有各种属性的多个对象,并测试模型灵活组合搜索和检索的能力。这与现实世界场景紧密相关,但处于受控的低维环境中。我们在图3(左)中提供了任务的可视化。
OoD设置:由于所有搜索共享要检索的不同值,我们通过在训练中仅显示某些真值搜索检索组合,以及在测试期间显示其他组合,构建了数据集的分布外版本。更具体地说,对于具有S个搜索和R个检索的任务,可能存在定义检索首选项的R个唯一值组合。对于OoD设置,我们在训练集中使用一部分,在测试集中使用其余部分。我们强调,只有有效分解搜索和检索并灵活组合它们的模型才能很好地处理不可见的搜索-检索组合。
定量结果:我们对一系列搜索S和检索R进行了实验。由于此任务只需要一组并行搜索,因此我们使用了一个分层注意模型进行实验。我们观察到,在分布和OoD设置中,在一系列任务超参数中,组合注意始终优于多头注意(图3–右图)。此外,我们提出的方法在各种模型复杂性方面都优于基线
分析:我们将等式13中的值得分可视化,在所有搜索和实体中进行聚合,并将其与任务提供的真值检索进行对比。图5显示了该模型专门用于检索哪些特性。我们还分析了搜索-检索配对,方法是采用一个在所有可能的值组合子集上训练的模型,并绘制其激活统计信息(1)所有可能的值组合,(2)在训练期间看到的值组合,以及(3)在图4中的OoD测试期间看到的值组合。正如预期的那样,我们在(1)中看到了激活统计数据的平均值,因为每个搜索功能都是以统一的i.i.d.方式调用的。相比之下,我们分别看到(2)和(3)的激活模式的专业化程度越来越高,这与组合注意导致的选择性重组相一致。该分析的关键发现是,组合注意动态地专门化了值检索,从而可以更好地概括OoD设置中看不见的值组合。
附录C.1包含关于任务、超参数的更多详细信息,以及关于不同任务设置下模型复杂性和专业化可视化的进一步解释。
4.2 SORT-OF-CLEVR中的关系推理
Sort of CLEVR(Santoro et al.,2017)是一项视觉问答(VQA)任务,通过根据对象的属性及其相互关系提出问题来测试模型对场景的理解。该任务由三类问题组成:(a)一元问题,基于单个对象的属性;(b)二元问题,基于两个对象之间的关系;(c)三元问题,基于三个对象之间的关系。
定量结果:
我们使用参数共享的四层Transformer模型进行实验。表1强调了组合Transformer在不同问题类型(一元、二元和三元)上的表现优于标准Transformer,即使搜索和/或检索次数少于标准Transformer中的头数。这归因于这样一个事实,即我们的模型通过重用参数来动态检索上下文相关属性,利用了此任务的固有组成性质。
有关此任务、模型超参数和各种模型设置的性能烧蚀的详细信息,请参阅附录C.2。
4.3等边三角形检测
这是Ahmad&Omohundro(2009)提出的一项二值分类任务,目的是确定图像中的三个点簇集是否形成等边三角形。对于等边三角形,这些簇的中点应该彼此等距。
定量结果。
表3强调,在不同的检索次数中,组合注意优于多头注意。
我们请读者参阅附录C.3了解更多详细信息。
4.4多任务图像分类
我们提出了跨四个不同数据集(CIFAR10、Fashionlist、SVHN和等边三角形检测)的图像分类问题,作为一个多任务学习设置。为了在这方面表现良好,模型需要找出哪些信息是跨数据集共享的,哪些是数据集专用的。
定量结果:
我们训练了一个具有四个可学习嵌入的2层通用Transformer,每个任务一个。我们提出的模型在基线中将多头注意替换为组合注意。表2显示,拟议的模型优于基线。
附录C.4包含有关任务和模型的更多详细信息。
4.5 ESBN任务中的逻辑推理
Webb et al.(2020)引入了一套四项任务来测试模型在OoD环境中执行逻辑推理的能力。在每个任务中,输入是一系列对象,输出基于这些对象之间的关系。例如,在“相同/不同”任务中,模型接收两个对象,并且必须预测对象是相同还是不同。每个任务都有OoD标准——例如,m95指的是100个对象中的5个进行训练,剩下的95个进行测试。
定量结果:
我们使用了一个单层Transformer模型,正如在原始基准中所做的那样(Webb et al.,2020)。图6强调了组合注意在所有任务中都优于多头注意,尤其是在较高的保持(m)值下。这表明,与基线模型相比,该模型能够更好地处理所有任务的分布变化。
有关任务和模型的详细信息,请读者参阅附录C.5。
4.6扫描数据集
扫描(Lake&Baroni,2018a)是一项组合的序列到序列任务,旨在将自然语言指令转换为机器人可以遵循的动作序列。我们遵循长度外推泛化分割(Newman et al.,2020;Csordas et al.,2021),其中对22个输出动作的长度进行训练,并对较大的输出序列长度进行测试。
定量结果:
我们训练一个3层通用Transformer作为基线,并将其与我们建议的插件注意替换进行比较。表4显示了组合注意在多个截止长度上优于标准的多头注意。有关任务和模型的更多详细信息,请参阅附录C.6。
4.7语言建模
我们在WikiText-103数据语料库(Merity et al.,2016)上进行了语言建模实验。在这里,任务是预测下一个或隐藏单词的概率,通过困惑来评估。
定量结果:
我们使用带参数的6层Transformer模型。我们在图7中绘制了验证困惑与历代的对比图,图中强调了我们提出的注意机制不仅优于基线,而且收敛速度更快。此外,我们发现,我们提出的模型获得了测试困惑度38.8±0.0,而基线的困惑度为39.6±0.3。
我们请读者参阅附录C.7了解更多详细信息。
5讨论和结论
总结
在这项工作中,我们重新审视了一种流行的注意机制——多头注意,并强调了它由于搜索和检索机制之间的刚性关联而存在的缺点。我们认为,这种刚性耦合阻碍了参数的可重用性,降低了模型的表达能力。为了缓解这种情况,我们提出了一种新的机制,该机制使用值检索机制灵活地组合搜索和检索。在各种任务上的实验表明,我们提出的方法优于标准的多头Transformer,而通常只使用一小部分检索。
复杂性
虽然我们提出的机制需要额外的参数来计算价值分数,但我们强调,与参数总数相比,这一增长往往微不足道。重要的是,我们注意到,每个搜索机制中参数的轻微增加很容易通过减少所需的检索次数来抵消。对于我们的所有实验,除非另有说明,否则我们提出的模型提供与基线类似的容量。这突出表明,性能的提高是由于搜索和检索的灵活组合,而不是由于参数的数量。我们在附录B.5中详细讨论了计算复杂性。
限制和结论。
出于对知识的有效分解和所学计算片段的动态重用性的需要,我们提出了组合注意,这是实现搜索和检索灵活组合的第一步。我们还强调了附录B.8中提出的方法的一些局限性,并希望我们的工作能够促进对能够更好地进行系统概括的更灵活模型的研究
道德声明
作者没有预见到负面的社会或道德影响超出了ML总体改进的预期。此外,作者指出,随着灵活性的增加,在实际应用中学习负面内隐偏见的可能性增加。与其他前沿的ML方法一样,在部署应用模型之前,应仔细考虑对社会的潜在负面影响。
再现性声明
作者提供了用于运行所有所需实验的代码,并将使用大量文档来开放源代码,以便于再现。此外,作者在第3节中提供了拟议模型的精确公式,并在附录C中提供了超参数以及用于所有实验的不同现有代码库。
附录
A相关工作
Transformer模型的出现促进了各种风格的注意力模型的发展。这场革命首先开始于通过注意力以一种半参数记忆结构的形式扩充递归神经网络(RNN)(Bahdanau et al.,2015),并很快导致人们质疑递归的必要性。这一系列问题导致了一类著名的模型,这些模型摆脱了重复性,只支持在现代硬件上非常有效的并行自注意计算(Vaswani et al.,2017)。我们简要讨论了这些方面的各种进展,并区分了我们提出的注意算法与它们的不同之处。
A、 1注意事项
注意力一直是人类认知的一个主要组成部分,它允许人类有选择地处理来自们接收到的大量感官刺激的相关信息。从海量信息中选择相关特征的想法使我们能够以稳健且计算高效的方式进行预测。受神经认知的启发,已经做出了很多努力,试图将注意力引入到可靠下游预测输入的相关状态中(Xu et al.,2015;Luong et al.,2015;Kerg et al.,2020)。
基于递归神经网络的系统中的一个主要问题是由于模型中不正确的信用分配而导致的梯度消失和爆炸问题。这是因为RNNs通过一个参数固定大小的向量对特定时间内看到的所有信息进行建模,该向量在所有时间步长上都会重复计算。这使得系统在序列长度变化或存在长序列分散注意力的信息时变得脆弱。解决这一问题的一种方法是远离整个过去的参数化表示,而是依赖动态半参数“记忆”,以允许这些模型在需要时回顾(Graves et al.,2014;Bahdanau et al.,2015)。这些工作旨在通过自注意增强复发,并证明当与这些认知启发的归纳偏差相结合时,ML系统能够更好地推断更大的序列长度。
在此之后,最近有很多工作旨在消除时间步长之间的重复性,并完全依赖于通过自注意查询信息。多领域的最新进展(Vaswani et al.,2017;Dosovitskiy et al.,2020;Ding et al.,2020;Locatello et al.,2020)表明,消除重复现象并完全依赖并行计算不仅可以显著提高性能和泛化能力,而且可以更容易、更快地在当前硬件上进行训练。自从这些以多头注意力为基础的Transformer模型问世以来,注意力在视觉、语言和强化学习等各个领域的作用变得越来越重要。它还导致了对完全基于注意力的系统中各种架构选择的大量研究,其中一些我们将在附录a.2中讨论。
然而,值得注意的是,有一些研究强调,为了有效地解决某些逻辑推理任务,需要反复与自注意相结合(Hudson&Manning,2018;Selvakumar et al.,2018;Webb et al.,2020)。
A、 2个Transformer变型
自注意模型在当前ML社区中的普遍存在导致了大量研究,旨在将不同的归纳偏置纳入所使用的注意机制中;即在多头注意。这些变体中的大多数旨在改变多头注意,以消除标准多头注意中存在的二次时间复杂度计算瓶颈。然而,有一些研究更关注注意力编码的基本归纳偏差,而不是计算效益。我们在这里讨论其中一些变体。
降低计算复杂性。
给定一组n个向量,标准的多头注意旨在创建一个n×n的注意矩阵,该矩阵需要计算二次复杂度。当n较大时,此瓶颈会阻止自注意的使用。有鉴于此,最近的许多研究旨在将这种二次复杂度降低到n log n或线性复杂度。这通常是通过在n×n注意矩阵中引入一些限制,通过对位置敏感的哈希来实现的(Kitaev等人,2020年)
稀疏性(Child et al.,2019),低阶近似(Wang et al.,2020),或通过随机特征近似softmax(Choromanski et al.,2020)。我们请读者参考Tay et al.(2020),了解不同Transformer变体的更详细分析。
附加归纳偏置。
虽然上述Transformer的许多变化都是为了防止二次瓶颈而设计的,但其中大多数也在模型中添加了某些额外的归纳偏置。例如,稀疏性的增加不仅降低了计算复杂度,而且还增加了不同元素之间稀疏信息路由的额外归纳偏差。还有一些其他变体(Lamb等人,2021;Goyal等人,2021b)添加了其他感应偏差,例如Transformer模型中的因式分解状态空间和全局工作空间瓶颈。
A、 3模块化、组合性、可重用性和瓶颈
最近,在模块化计算方面做出了一些努力,以提高模型进行系统概括的能力。特别是,人类能够划分信息,并以一种不受干扰、上下文驱动和强大的方式对其采取行动。这些认知基础导致机器学习系统初步进入这一领域。我们将在下面讨论一些基本组合。
模块化。
模块化是指将知识分解成更小的组件,这些组件可以独立存在并作用于感官信息。它可以被视为分离的表示,允许对这些不同的组件或分解机制进行干预,其中每个机制都有特定的目的,并且可以作用于部分或全部感官信息。模块化的基本目标是防止整个单一系统中无限制的信息流,而是以通常端到端的方式学习因式分解的表示和作用于这些表示的机制。最近的研究(Goyal et al.,2019;2020;2021a;Mittal et al.,2020;Madan et al.,2021;Lamb et al.,2021;Ke et al.,2021)沿着因子分解知识的路线证明,它通常会提高稳健性和更好的OoD性能。
组合性和可重用性。
即使在新奇和未知的情况下,人类也能够执行复杂的任务。这种能力通常源于这样一个事实,即我们的复杂动作实际上是由更简单的原语组成的,我们对这些原语的理解非常好,以至于我们能够将这些原语动态地组组合新的复杂动作。最近的研究已经开始研究能够测试和允许组合泛化的任务和系统(Lake&Baroni,2018a;Li et al.,2019;Keysers et al.,2019;Chen et al.,2020;Hupkes et al.,2020;Goyal&Bengio,2020),这是对基础原语/机制的新组合的泛化。许多模块化系统在经常性域中构建的主要原因是,我们希望分解机制在许多场景中都可以重用。知识的可重用性(Dehghani et al.,2018;Bai et al.,2019)允许在模块化系统中学习分离机制,从而有可能导致所学分离机制的有效组合。使用可多次重复使用的计算的系统最近的成功表明,可重用性实际上是获得组合性的一个重要基础。
瓶颈
根据全球工作空间理论(Baars,1997;Dehaene et al.,2017),人类的有意识注意是造成信息处理瓶颈的关键因素。这一瓶颈的主要用途是限制整个网络、人脑或其他方面的信息流,从而对无关紧要的感官信息具有鲁棒性。假设这一瓶颈的有用性与系统2认知操作的依赖关系的稀疏性和简单性有关(Bengio,2017;Goyal&Bengio,2020)。最近沿着这些思路开展的工作(Goyal et al.,2021b)表明,模块化系统加上瓶颈可以有效地分解计算,然后以动态和上下文相关的方式组合计算,通常可以提高性能、更快的适应和系统化概括(Bengio et al.,2019;Ke et al.,2021)。
B拟议模型
在本节中,我们将提供有关一般动机、架构设置和跨层使用参数共享的论证的其他详细信息。我们进一步提供了所提出模型的计算复杂性以及我们考虑的一些烧蚀的细节。
B、 1动机
虽然图1中的设置看起来很理想,因为Transformer头很可能没有学习这种可解释的单一特征函数来进行搜索和检索,但我们认为,在标准的多头注意框架中,这种刚性仍然存在于搜索和检索之间。为此,我们注意到搜索组件Searchh分别由查询矩阵和键矩阵Wqh和Wkh参数化,检索组件Retrievalh由值矩阵Wvh参数化。这两个组件都会导致基于输入的动态计算,但搜索和检索之间的配对是固定的,也就是说,Retrievalh将Searchh作为其参数(注意相同的h下标),也在等式5中突出显示。因此,每当需要在多个搜索中共享检索参数化时,标准的多头注意将导致学习冗余,因为没有在搜索之间共享检索的概念。
与所提出的组合注意方法相比,我们发现现在有了一种共享不同搜索的检索的概念。也就是说,两个不同的搜索仍然可以选择相同的检索参数化,这减轻了上面解释的刚性和冗余。请注意,此讨论不取决于模型有选择地选择特征的能力,如图1所示。这表明,无论这些搜索和检索学习到什么,如果最佳解决方案要求在搜索中共享检索,则讨论的多头注意的缺点仍然存在。我们通过多个特征的理想化示例来强调动机,这仅仅是为了便于解释,并吸引我们试图纳入的基本认知启发归纳偏见。
我们强调,多头注意和拟议的组合注意并不是两类独立的方法。事实上,我们提出的机制是多头注意的一个严格超集,因此提供了一个包含多头注意家族的更一般的框架。从等式13可以看出这一点,其中,如果有足够的容量来表示任何h×h矩阵,我们可以通过将搜索和检索的次数设置为h,并将“值得分”矩阵设置为h×h单位矩阵(或通常的任何h×h置换矩阵),以h为头数,来恢复多头注意。因此,我们的机制不仅解决了本文中强调的冗余问题,而且还提供了一种更通用的注意机制。
B、 2与现有工程的差异
我们提出了组合注意,这是一种新的注意机制,旨在实现搜索和检索的分离计算。与多头注意不同,这允许搜索和检索的灵活和动态组合。
这与MAC及其变体不同(Hudson&Manning,2018;Selvakumar et al.,2018),因为所提出的算法是一个完全并行的系统,不会重复。此外,我们发现在MAC中,分离是由特权信息驱动的;i、 通过问题和图像之间的区别。这些特权信息可能不会出现在各种任务中(例如语言建模、分类等)。然而,我们提出的模型不需要特权信息,因此很容易适用于许多不同的领域。此外,MAC没有多个并行搜索和检索,因此,我们提出的模型旨在解决一个截然不同的问题。
虽然人们可能会倾向于将头部修剪(Michel et al.,2019;Voita et al.,2019)作为消除标准多头注意中冗余的一种方式,但我们强调,我们工作的核心目标和动机有很大不同。头的修剪本质上意味着我们从学习系统中消除了刚性搜索-检索配对,因为它对解决任务的效用可以忽略不计。然而,在这项工作中,我们要解决的冗余是头部的一个子部分是冗余的,而不是整个头部。也就是说,头部的搜索或检索部分是冗余的,但不是两者都是冗余的。图1突出显示了只有头部的一个子部分是多余的,而不是整个头部,以及组合注意力如何解决问题。
此外,组合注意不同于附录A.2中的各种Transformer变体,因为它的目的不是解决二次计算瓶颈,而是增加一个尚未探索的归纳偏置。我们还注意到,所提出的模型适用于针对多头部注意发现的各种计算技巧。
B、 3架构细节
标准Transformer模型(Vaswani et al.,2017)有许多层,其中每一层由两个组件组成,即多头注意(第2.1节),然后是具有单个隐藏层的MLP(多层感知机)。在多头注意步骤和MLP结束时,存在残余连接。
在这项工作中,我们遵循Dehghani et al.(2018),并考虑跨层权重共享的模型。为了便于实验,我们不考虑自适应停止标准。我们之所以考虑这个选择,是因为我们需要可重用的计算片段,而通用Transformer是朝着这个目标迈出的一步。
我们对transformer模型的看法是,不同的头部不仅执行不同类型的搜索,而且执行不同类型的检索。然后通过线性层联合处理来自这些并行检索的信息,然后再处理另一个MLP。线性层和MLP后存在残余连接。
对于我们提出的组合变体,我们基本上用组合注意取代模型中的多头注意,同时保持所有其他细节不变。
B、 4多层和权重共享
大量研究表明,重量分担Transformer与标准Transformer型号具有竞争力(Dehghani等人,2018年;Bai等人,2019年)。我们还认为,重复使用计算会给系统带来更大的压力,使其学习有意义的多用途参数(例如,如果只使用一次,则更容易学习冗余头,而如果重复使用,则更容易学习冗余头)。人们可能会想,增加层的数量或取消权重共享可能会补偿我们提议的系统所提供的灵活性。然而,我们提出了相反的观点。
假设我们有一个没有参数共享的Transformer模型,它有l层和h头。然后,该模型可以计算的唯一搜索-检索对的数目为lh(如果参数共享,则为h)。与组合注意相比,我们发现唯一搜索检索对的数量实际上是lsr(sr if参数共享),其中s是搜索数量,r是检索数量。因此,如果我们使用相似数量的层,组合注意仍然允许学习更多的组合可能性。从另一个角度来看,在规模上,拟议的机制有可能减少要求灵活搜索和检索的任务所需的层数。
另一个重要的观点是,即使我们有更多的层次(有或没有参数共享),多头注意力仍然只能学习搜索和检索之间的严格组合。因此,如果任务需要在搜索和检索之间从所有可能的配对中进行动态选择,那么模型必须在单独的头部组合中学习每个配对,无论是在相同的层还是在未来的层中。这是因为添加更多层不会改变搜索和检索的组合方式,这正是我们在这里键值注意力的。
B、 5计算复杂性
参数数量。
对于比较模型,我们将参数计数彼此保持在~5%以内,对于语言建模实验,将相同的参数计数保持在140M参数。我们还强调,我们提出的检索次数较少的模型匹配更紧密,参数通常低于基线,在许多任务上仍优于它们。
训练时间。
虽然组合注意增加了模型的复杂性,但我们注意到,所提出模型的训练时间通常在基线的10%以内,因此增加的复杂性不会对模型造成太大的阻碍。
失败。
我们使用现成的库2估计了所提出的等边三角形检测任务模型的FLOPs,发现它们彼此之间的FLOPs约为基线的10%。特别是,我们还看到,对于较少的检索,FLOPs要么与基线相同,要么低于基线。
并行计算。
由于对句子中的每个单词(或场景中的每个对象)进行并行计算,Transformer允许使用GPU高效实现。此外,它们允许对每个单词的每个头部进行并行计算。相应地,在我们提出的模型中,我们仍然对句子中的每个单词进行并行计算,并并行计算不同搜索的输出。唯一的额外复杂性是对每次搜索的检索选择的另一种软注意。对于每个搜索,这也是并行进行的,因此我们保留了GPU上多头注意力的所有主要效率。
能够适应不同的变化。我们注意到,目前在标准多头注意方面的许多进展,例如稀疏注意矩阵,也可以纳入所提出的模型中。我们还可以在检索端使用稀疏性,从而限制某些搜索从较小的检索集中进行选择。我们相信这些分析是未来的重要工作,但超出了本文的范围。
复杂性vs组合优势。
虽然我们有时比多头注意力更复杂,但这种复杂性的微小增加往往被我们获得的组合优势所抵消。特别是对于h搜索和检索,多头注意只能计算h可能的搜索检索对,而该模型可以计算h 2可能的搜索检索对。控制。在我们的所有实验中,我们控制基线和所提出模型之间的层数、搜索和参数。
B、 6有关缩放的详细信息
假设我们的系统有h个头部用于多头部注意,s个搜索,r个检索用于组合注意。让我们假设系统的输入有N个令牌。然后,我们可以看到,多头注意中的参数数量与3h成正比,而组合注意中的参数数量与(2s+r)成正比。
此外,关注注意力过程的最高计算成本(与N2系数相关,忽略N中线性项的系数),我们可以看到,在多头注意力中,二次复杂度系数与2h成正比,而在组合注意力中,二次复杂度系数与s(1+r)成正比。
这表明,依赖于r,该模型中的参数可能较少,但时间复杂度严格较高。这是因为我们允许组合更多的搜索-检索配对,而这不能免费获得(没有免费午餐定理)。
重要的是,如果任务需要进行h次搜索(s=h)和h次检索(r=h),并且需要在所有可能的搜索检索对中动态选择任何搜索检索对(即h 2),然后,多头注意需要h 2头,这会导致(3h 2)参数和(2h 2)计算成本,以充分完成这项任务,而提议的模型只需要3h参数和(h 2+h)计算成本,与多头注意相比,这将大大更小,计算效率也更高。我们在上下文检索任务中尽可能地使用这个确切的动机来展示基本的差异和参数效率。
B、 7烧蚀
检索。
对于许多任务,我们保持搜索次数与基线中的头数相同,然后在检索次数上消除。总的来说,我们注意到大多数模型的性能都优于基线,检索次数较少,突出了组合注意的组合优势。请参阅表1、4、2、6等。我们进一步消除了模型容量和水头,同时保持了对拟议模型的固定搜索和检索。在表7中,我们证明了头部冗余确实会影响模型的性能,但是像组合注意力这样的灵活模型的性能更好。
组合MLP。
作为检索选择机制的另一个消蚀,我们的目标是用多层感知器(MLP)代替等式13中的点积注意,以计算值得分,该感知器将检索查询和键作为输入并输出检索注意得分。我们的MLP只是一个线性网络,但我们仍然普遍注意到良好的性能,如表8和表9所示。
B、 8限制和未来工作
组合注意虽然比标准的多头注意更灵活,但仍取决于该机制有效执行价值检索的能力。特别是,我们没有明确地对不同的值矩阵施加瓶颈,迫使系统学习不同的检索,当与检索选择机制的联合学习相结合时,可以从基于梯度的学习中获得次优解。图12中突出显示了这一点。未来可能的工作旨在解决这一问题。
未来发展的另一个有趣方向是动态地将检索集限制在b
B、 8限制和未来工作
组合注意虽然比标准的多头注意更灵活,但仍取决于该机制有效执行价值检索的能力。特别是,我们没有明确地对不同的值矩阵施加瓶颈,迫使系统学习不同的检索,当与检索选择机制的联合学习相结合时,可以从基于梯度的学习中获得次优解。图12中突出显示了这一点。未来可能的工作旨在解决这一问题。
未来发展的另一个有趣方向是,通过搜索将检索集动态限制在1(标准Transformer)到all(我们的组合注意力)之间的稀疏数,以便于访问。这将允许对手头任务的复杂性和表现力之间的权衡进行微调。
C实验
在本节中,我们将进一步详细介绍第4节中概述的任务。我们还将在下面提供特定于任务的体系结构详细信息。
C、 1上下文检索任务
我们在第4.1节中定义了任务的主要细节,并在下面提供了额外的所需细节和动机。
动机
我们的目标是设计一个由多个对象组成的实验,每个对象都有一些标量特征。对应于每个对象,我们有一组由搜索特征定义的真值搜索和一组由检索特征定义的真值检索。选择要拾取的检索由对象的检索首选项决定。这与现实世界中的场景非常相似,在现实世界中,对象具有许多特征,可以根据上下文对任何特征进行搜索和检索。在这里,我们通过定义所有对象的固定搜索(即无搜索首选项),将检索首选项作为一个热点信号提供,并只考虑独立的标量特征,从而简化了任务。
数据集。
我们为此任务考虑了许多搜索-检索组合设置。我们画αs∼ U型(−1,1)和特征z,z∼ N(0,1),并考虑2次搜索4次检索、4次搜索8次检索和4次搜索16次检索的设置。OoD设置。对于OoD设置,我们显示了用于训练的所有可能值组合的特定子集,其余的用于零炮测试。我们在图5中举例说明了2 search 4检索变体的训练和测试检索组合
实施细节。
对于任务的每一个变体,我们都会消除一些头部和Transformer隐藏的维度。我们选择排除剩余网络,因为任务不需要它,纯粹从数据生成的角度来看。对于搜索,我们显式屏蔽对角线,因为真值搜索定义为arg minj6=i,并且与所有值一起,我们还从每个隐藏维度中输入一个额外的值,因为它包含有关检索首选项的信息。
定量结果。
我们在表6中强调了我们的烧蚀结果,表6强调了不仅组合注意优于标准多头注意,而且在许多超参数选择中也优于标准多头注意。特别是,我们经常看到,即使参数数量较少,建议的注意机制也优于基线。此外,由于我们动态生成数据,因此低训练迭代对应于此任务的低数据状态。图10表明,组合注意力不仅收敛速度更快,而且在低数据区域也表现得更好。
定性结果。
我们在图11中可视化了针对不同任务设置提出的模型的激活模式,这表明该模型通常根据基本事实(直到排列)专门化其检索。我们在图12中进一步看到,有时专业化不会发生,这就是我们在第5节中讨论的。
C、 2类CLEVR
数据集。
CLEVR由10k幅图像组成,每幅图像都附有10个非关系问题和10个关系问题。非关系问题测试模型专注于“单个”对象的属性的能力,如形状、水平位置和垂直位置。非关系问题的几个例子是(i)绿色物体的形状是什么?(ii)红色物体的水平位置是什么?(iii)黄色物体的垂直位置是什么?另一方面,关系问题测试模型对一个或多个对象的属性进行推理的能力。关系问题的几个例子是(i)距离绿色对象最远的对象的形状是什么?,(ii)距离红色物体最近的物体的形状是什么?”。数据集示例如图13所示,每个输入图像的大小为75×75,包含6个方形或圆形对象。每个对象都使用这6种不同颜色(红色、蓝色、绿色、橙色、黄色、灰色)中的一种进行着色,以使它们明显不同。伴随的问题(关系型和非关系型)以大小为11的向量进行编码,其中前六个条目编码颜色信息,后两个条目编码问题类型,最后三个条目编码问题子类型,所有这些都以一种热方式进行。
实施细节。
我们使用一个具有共享参数的4层Transformer,并使用Transformer尺寸分别为32、256和512以及ffn尺寸分别为64、512和1024的烧蚀。我们考虑4个和8个头部的基线,对于提议的模型,我们使用4次搜索,并对1-4次检索进行消融。我们使用32个维度进行检索查询和关键维度。我们以0.0001的学习率对模型进行了100个epoch的训练。对于我们所有的实验,我们报告了5个种子的平均值和标准偏差。
定量结果。
除了本文给出的结果外,我们还对标准Transformer的不同容量和不同头数进行了烧蚀。我们在表7中强调,我们提出的注意力机制在不同规模的模型中都能很好地发挥作用,并且在头部数量较多的情况下,其表现优于基线。我们在表8中进一步说明,组合注意也优于搜索较少的标准模型,即使检索点积注意被基于MLP的注意所取代,也表现良好,如ablations附录B.7所述。
定性结果。
在这里,我们对CLEVR数据集上的学习模型进行分析。我们在整个测试集中平均等式13中的值分数,并绘制检索值激活统计数据与图14中任务数据库中问题类型的对比。我们注意到,一元、二元和三元类型的问题在激活模式上有明显的差异。
C、 3等边三角形检测
这是Ahmad&Omohundro(2009)提出的一项二值分类任务,目的是确定图像中的三个点簇集是否形成等边三角形。该数据集由64×64个图像和三个随机放置的点簇组成。对于等边三角形,这些簇的中点应该彼此等距
实施细节。
我们遵循与Dosovitskiy等人(2020年)相同的设置,并将其视为一项分类任务。每幅图像被分割成4×4个patch,这些patch通过MLP编码并与位置编码结合在一起。然后将其与作为分类头的CLS令牌一起馈送到一个4层Transformer(具有参数共享)。
我们将Transformer的隐藏维度设置为256,ffn维度设置为512。我们使用4个头部作为基线,对于提议的模型,我们使用4次搜索,并在1次、2次和4次检索中进行消融。检索查询和键是32维的(在等式13中使用)。与Goyal等人(2021b)类似,所有模型都以0.0001的学习率进行了200个epoch的余弦退火训练。对于我们所有的实验,我们报告了3个种子的平均值和标准偏差。
定性结果。
我们在图15中说明,组合注意力不仅可以分离搜索和检索,还可以根据梯度信号,在需要时允许它们之间更紧密的配对。因此,我们看到,它会导致容量的增加,因为配对矩阵(搜索和检索之间)是动态的,依赖于上下文,并且可以不仅仅是一个身份矩阵。
定量结果。
我们在表9中看到,提议的组合注意不仅在不同的检索次数上优于多头注意基线,而且在MLP(附录B.7)消融上也优于多头注意基线,其中检索选择得分是通过简单的线性网络而不是点积注意机制获得的。这表明,即使使用这种灵活的搜索和检索组合的不同方式(除了基于点积的),也可以提高性能。
C、 4多任务图像分类
数据集。
此任务由四个数据集组成–CIFAR10、FahsionMNIST、SVHN和等边三角形检测。给定其中一个数据集的图像,该模型的任务是进行相应的分类预测。我们使用随机裁剪和水平翻转作为数据增强
技术。此任务测试模型学习多用途表示的能力,这些表示可用于在可能共享有意义信息的多个任务上执行良好。
实施细节。
我们训练了一个4头的2层通用Transformer。我们将Transformer的隐藏维度设置为256,ffn维度设置为512。对于我们提出的模型,我们保持所有设置不变,使用4次搜索,并消除检索次数。该图像被裁剪成4×4个patch,然后输入编码器并添加位置信息。对于每个数据集的预测,有一个可学习的嵌入,它与裁剪的补丁一起输入到Transformer中。检索查询和键是16维的,我们使用的学习率为0.0001。在我们的实验中,我们报告了3个种子的平均值和标准偏差。
定量结果。
我们在表2中展示了所提出的模型在不同检索次数下的表现优于标准的多头注意。
C、 5 ESBN任务中的逻辑推理
数据集。
这是一套四项任务-相同/不同、RMT、3的分布和身份规则(Webb et al.,2020)。对于每个任务,模型都会获取一系列对象作为输入,这些对象之间有一定的关系。这种关系取决于任务,并在此基础上,指定模型进行预测。此外,数据集包括一个OoD设置,例如,短语m90意味着对10个唯一对象进行训练,对其余90个对象进行测试。
相同/不同。
该模型获取两个对象作为输入,并负责预测这两个对象是否相同。
RMTS。
与相同/不同相似,我们得到三对对象。第一对是前两个对象可以相同或不同的上下文。第二对和第三对是选项,模型的任务是选择与第一对具有相同关系的对。也就是说,如果第一对具有相同的对象,则模型应从对2和对3中拾取具有相同对象的对。
分配3。
我们首先得到三个对象作为输入,然后得到这些对象的排列作为下一个输入,最后一个对象被隐藏。该模型的任务是从下面显示的四个候选对象集中预测哪个对象应该填充最后一个位置。简而言之,模型必须从多项选择中选择一个对象,以确保前三个对象和后三个对象是彼此的排列。
身份规则。
输入以ABA的形式给出,其中A和B是一些独特的对象。与3的分布类似,该模型再获得两个对象CD,并且必须从四个选项的候选集中选择对象C。也就是说,该模型的任务是学习在填充最终点时相同外围对象的规则。
我们让读者参考图16,以获得这四项任务的视觉演示。
实施细节。
我们遵循Webb et al.(2020)3的设置,训练单层Transformer模型作为基线,并在我们提出的模型中用组合注意代替多头注意。我们将8个头基线模型与所提出模型中在不同检索中进行的8次搜索进行了比较。我们使用0.0001的学习率,并遵循原始代码库的初始化和规范化方案。我们报告了每个模型的平均性能,标准偏差超过10个种子。
定量结果。
我们注意到,在相同/不同和RMTS任务的基线上,拟议模型有了实质性的改进,如图17所示,尤其是在OoD设置中。我们看到3的分布和身份规则也略有改善。
C、 6扫描任务
数据集。
扫描任务(Lake&Baroni,2018a)旨在系统地测试各种模型的OoD性能。这项任务要求模型将自然语言输入(如“左跳三次”和“左跳三次”)转换为机器人代理要遵循的一系列动作,如“左跳左跳左走”。特别是,我们使用此任务的长度外推版本,其中模型在较短的动作序列上进行训练,然后在较长的动作序列上进行评估。因此,这项任务通过原始动作的组合来测试系统概括的能力。特别是,我们遵循Newman等人(2020)提出的任务分割范式;Csordas等人(2021),旨在解决原始分裂的某些问题。
实施细节。
我们遵循Csordas等人(2021)4的实施,并训练了一个具有8个头的3层通用Transformer模型。我们将模型维度设置为128,ffn维度设置为256,检索查询和键维度设置为32。所有模型均以0.001的学习率进行训练。
定量结果。
该任务的结果如表4所示,该表表明,拟议模型在多个截止长度上优于基线,表明拟议模型能够更好地推广到组合任务。
C、 7语言建模
我们在WikiText-103数据语料库(Merity et al.,2016)上进行了语言建模实验。语料库由28475篇训练文章和60篇验证和测试文章组成,任务是预测下一个单词的概率,并通过困惑度进行评估。
定量结果:
我们使用具有参数共享的6层Transformer模型,并在fairseq代码库上进行实验(Ott等人,2019年)。我们在图7中绘制了验证困惑与历代的对比图,图中强调了我们提出的注意机制不仅优于基线,而且收敛速度更快。此外,我们发现,我们提出的模型获得了测试困惑度38.8±0.0,而基线的困惑度为39.6±0.3。
实施细节。
我们使用Ott et al.(2019)5存储库对数据进行预处理和训练。我们使用基于Transformer的模型,包含512个隐藏维度和2048个ffn维度。我们的基线有8个头部,我们提出的模型有8个搜索和8个检索,并使用32维检索查询和关键字进行训练。我们对学习率执行超参数扫描–0.0005、0.001、0.002、0.004和0.007。对于基线和建议的方法,我们选择验证复杂度最好的模型(基线-0.002和建议-0.004),然后在选择的学习率上运行额外的种子。