探秘Transformer系列之(9)— 位置编码分类
0x00 概述
由于 Transformer 自身具有置换稳定性(Permutation Invariance),无法直接捕获每个词在序列中的位置信息,因此利用位置编码将序列中元素顺序信息融入Transformer成为一种常见做法。根据位置编码表现的是序列中元素的绝对位置信息还是相对位置信息,业界将位置编码重要分为绝对位置编码(Absolute Position Encoding,APE)和相对位置编码(Relative Position Encoding,RPE)。绝对位置编码的核心思想是在每个输入序列的元素上添加一个位置向量,以表现该元素在序列中的具体位置。相对位置编码则侧重于考虑元素之间的间隔信息。这里说重要是因为另有一些难以划分的位置编码。固然也有别的的区分方式,好比把RoPE单独列为旋转编码。
0x01 区别
上一篇我们知道为了克服自注意力矩阵带来的影响,有的研究职员提出了相对编码。从而引出了对位置编码的分类。我们本节从各个角度出发,来看看绝对位置编码和相对位置编码的区别。
1.1 从直观角度来看
以句子“从槐树叶底,朝东细数着一丝一丝漏下来的日光“为例,对于怎样获取序列顺序?我们大要有两个选择方案:
- 绝对位置信息。好比:“从”是第一个token,“底”是第五个token。
- 相对位置信息。好比:“光”间隔”日"差一个位置,但是间隔“漏”差四个位置。
这两个方案就分别对应了绝对位置编码和相对位置编码。下图给出了从直观角度出发来看,原始无位置编码,绝对位置编码和相对位置编码的区别。
- 未引入位置编码。在人类的语言中,单词的位置与顺序界说了语法,也影响着语义。无法捕获的单词顺序会导致我们很难理解一句话的寄义。
- 绝对位置编码。绝对位置编码的作用方式是告知Transformer架构每个元素在输入序列的位置,类似于为输入序列的每个元素打一个"位置标签"来标明其绝对位置。
- 相对位置编码。相对位置编码作用于自注意力机制,告知Transformer架构两两元素之间的间隔。
由于自然语言一样寻常更依赖于相对位置,以是相对位置编码通常也有着良好的表现。
1.2 从模子处理角度来看
从模子处理角度来看,这两种方案有如下分别:
- 绝对位置信息是在输入层做文章,在输入阶段就将位置信息融入到token的输入表征中,具体细节如下:
- 在Transformer中的位置。APE只在第一层之前出现。
- 建模方式。根据绝对位置k来界说位置编码,利用公式函数或者可学习向量得到每个token的位置编码。
- 相对间隔。每个位置的位置编码是固定的向量,且每个位置相互独立,不考虑其与其他位置的关系,因此在和注意力机制联合时,无法盘算相对间隔。
- 模子输入。对于模子来说,每个token对应的输入是token自身编码和其位置编码的融合。
- 操作对象。位置编码的操作对象是自注意力变更中的特征序列Q, K(Transformer论文是针对输入嵌入序列 X),即将token的绝对位置信息添加到对应的 q t , k s q_t,k_s qt,ks中。
- 相对位置信息重要是在模子网络层做文章,通过微调注意力结构,使得模子有能力分辨不同位置的Token。
- 在Transformer中的位置。RPE通常在每一层都重复出现,而不是像APE那样只在第一层之前出现。
- 建模方式。相对位置编码并没有对每个输入的位置信息做完备建模。而是对相对位置i-j进行建模。即在盘算自注意力分布时考虑两个token间的相对位置信息,即下标之差。让模子通过数据自己学习位置信息来分辨不同位置的Token。
- 相对间隔。绝对位置编码考虑的是各个独立token的位置信息;相对位置编码考虑的则是进行Attention盘算时的query、key之间的相对位置信息,或者说是基于两个token之间的相对间隔来表现位置关系。
- 模子输入。一样寻常来说,相对位置编码并不是将位置编码直接加到词嵌入上,模子的输入依然是词嵌入。也有的方案利用间隔编码矩阵(Distance Encoding Matrix)来盘算偏移向量,然后与位置嵌入向量相加,再输入模子。
- 操作对象。位置编码的操作对象是自注意力变更中的自注意力矩阵 A(早期方案也有涉及特征序列 V 的操作),即将两token的相对位置信息添加到对应的 A t , s A_{t,s} At,s上。
这些差异如下图所示。其中 p(j-i) 是编码 j - i 相对位置信息的术语。RPEs倾向于直接修改注意力机制来融合相对位置信息,这种修改独立于值向量,使它们不与位置信息纠缠。
1.3 优劣
绝对位置编码的优点是:实现简单。缺点是:
- 难以泛化。
- 相对定位的缺乏可能会阻碍模子理解语言结构的眇小差别的能力。
相对位置编码的优点是:
- 可以将位置信息渗透进特征向量 $q_t $和 k s k_s ks 的每一个维度,在描画长间隔语义关系时,不仅可以有效过滤无关信息,也为传递有价值的语义关联提供了渠道。
- 可以或许更好地处理序列的局部结构,因为它关注的是元素之间的相对位置。
- 建立了语义信息和位置信息之间沟通的桥梁,不再让位置信息构成绝对的抑制。
缺点是:
- 盘算服从低下。由于自注意力层中的额外盘算步调(好比获得每个时间步的相对位置编码,位置矩阵被添加到查询键矩阵中)使得盘算更复杂,可能增长训练和推理的时间。
- KV Cache 利用的复杂性:由于每个附加token都会改变每个其他token的嵌入,这使得 Transformer 中KV Cache的有效利用变得复杂。利用 KV Cache 的一项要求是已经生成的单词的位置编码, 在生成新单词时不改变(绝对位置编码)。因此相对位置编码不得当推理,因为每个标志的嵌入会随着每个新时间步的变化而变化。
- 整体偏置易随相对位置大小颠簸,需要更多的维度、额外的校正才能有所缓解,而且针对自身想额外抑制的语义关系,无法做到彻底的处罚。
别的,现在这些位置编码会让模子过分在意局部信息,过分信任邻近生成的内容。怎样在位置编码层面实现“三思而后行”,即让模子在注意邻近信息的同时,也能考虑到较远位置的信息,从而对当前输出进行一定的纠正,也是一个不可忽视的题目。
虽然说位置编码重要是绝对位置编码和相对位置编码两大类,但每一类实在又能衍生出各种各样的变种,研究职员在这方面发挥了极大的聪明才智。本文就让我们来欣赏一下研究职员为了更好地表达位置信息所构建出来的“八仙过海,各显神通”般的编码方案。
0x02 绝对位置编码
形式上来看,绝对位置编码是相对简单的一种方案,经典的绝对位置编码有三种:
- 可学习且无约束的。代表作是论文"Convolutional Sequence to Sequence Learning",该工作利用可训练的嵌入形式作为位置编码。
- 可训练的位置编码,代码作是论文“BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”。
- 三角函数位置编码。代表作是论文"Attention Is All You Need"。文章中利用正余弦函数生成的位置编码。
比年来,关于绝对位置编码的工作大多数是以不同的方法生成绝对位置编码为主,好比在三角函数编码的底子之上额外学习一些其他参数。
2.1 底子方案
底子方案是论文"Convolutional Sequence to Sequence Learning"提出来的。该方案将每个单词的位置k映射为一个唯一的位置向量 p k p_k pk,然后在每个词的嵌入 x k x_k xk上加位置编码 p k p_k pk之后输入模子。形式上如下: x = ( x 1 + p 1 , . . . , x k + p k ) x=(x_1+p_1,...,x_k+p_k) x=(x1+p1,...,xk+pk)。其中,x表现模子的输入, x k x_k xk表现第k个位置的词嵌入, p k p_k pk表现第k个位置的绝对位置编码,且只依赖于位置编号k。
2.2 训练式
BERT/GPT利用的是可学习的位置编码(learned absolute positional embedding),通过在模子的嵌入层中引入可学习的参数来学习位置信息的表现。具体做法就是直接将位置编码当作可训练参数,初始化一个外形为[max_length, hidden_size]的矩阵作为位置向量,让它随着训练过程更新。即为每个输入下标训练一个嵌入向量来描画绝对位置特征。后续这个矩阵就像词表一样利用。
可学习方案的优点是可以根据任务的需要进行调整,可以更精确地区分不同位置的词语,并捕捉到位置信息对任务的影响,进而学习到最得当特定任务的位置编码。缺点是扩展性不强,外推性差。只能表征有限长度内的位置,无法对任意位置进行建模,不能很好地泛化到训练时未见过的更长序列,也不具有长途衰减性。而且由于位置信息是通过位置编码隐式提供的,模子需要从数据中学习怎样最好地利用这些信息,这可能需要更多的模子参数和训练数据。
2.3 三角函数式
vanilla Transformer通过固定的数学公式(利用正弦和余弦函数)来生成位置向量,从而捕捉到不同位置之间的相对关系。这里不再对细节进行赘述。因为其思绪之一是希望通过绝对编码方式来实现相对编码,因此也有人将其归为混合位置编码。
2.4 别的
别的另有一些别的方法,好比:
- Encoding Word Order in Complex Embeddings 提出一种复值词向量函数生成绝对位置编码,奇妙地将复值函数的振幅和相位与词义和位置相接洽。该复值词向量函数以位置为变量来盘算每个词在不同位置的词向量。由于该函数对于位置变量而言是一连的,因此该方法不光建模了绝对位置,也建模了词之间的相对位置。
- SHAPE: Shifted Absolute Position Embedding for Transformers 提出了一种绝对位置编码的鲁棒性训练方法。SHAPE的根本思想是在训练过程中对绝对位置编码随机整体平移一段间隔来实现泛化能力。
- Rethinking Positional Encoding in Language Pretraining在注意力上添加两个标志位置嵌入之间的点积logit。
- 也有研究职员在考虑利用xk⊗pk(逐位相乘)对词嵌入和位置编码进行融合。因为token embedding和PE相加实在是一种特征交织,从这个角度来看的话,实在相乘也是一种特征交织的方式。
0x03 相对位置编码
3.1 意义
我们从几个方面来看看相对位置的意义。
大脑中的参考系
美国国家工程院院士杰夫·霍金斯(Jeff Hawkins)在其论文和著作《千脑理论》提出来一些观点很值得我们思考:
- 参考系与新皮质。
- 新皮质的关键是参考系。
- 参照系在新皮质中无处不在。
- 参考系与存储。
- 参考系是一种信息在大脑中的存储结构,大脑是利用参考系来管理所有知识。
- 知识存储在与参考系相干联的位置。我们所知的每一个究竟都与参考系中的一个位置相对应。
- 参考系与建模。
- 大脑通过感官输入与参考系中的位置接洽起来,建立世界模子。
- 参考系不仅仅为实物建模,而是为我们所知道的一切建模。除了具象的物体之外,参考系还能衍生到一些抽象的概念,例如哲学,民主都是基于新皮质中不同的参照系进行界说的。
- 参考系与思考。
- 序列辨认题目。新皮质必须知道接下来的移动是什么,才能做出来对于序列的下一个输入的猜测。
- 思考是一种特殊形式的移动。假设我们所知的一切都存储在参考系中,那么为了回忆存储的知识,我们需要在参考系中激活得当的位置。当神经元激活一个又一个位置的时间,思考就产生了。
如上所述,参考系是人脑中的紧张部门,这对于位置编码具有极其紧张的引导意义。或者更确切的说,这是相对位置编码的紧张理论支撑之一。
语义影响
在很多任务中,序列中的元素之间的相对位置关系对于理解序列的语义和结构非常紧张。或者说,绝对位置编码对句子语义的影响不大,更为紧张的是相对位置编码。好比下面句子中,相对语序比绝对语序对语义的影响更加关键。
- 读书好、读好书、好读书。
- 四川人不怕辣、贵州人辣不怕、湖南人怕不辣。
- 有个不明生物在吃鸡, 有只鸡在吃不明生物。
长度外推
直观地说,长度外推与长度和位置有很强的相干性。Transformer作者提出了正弦位置嵌入,并声称它可以外推到训练之外的更长的序列。这一说法背后的想法,即只需改变位置表现方法就可以实现长度外推,已得到广泛支持和证实。因此,开发更好的位置编码方法已经成为增强Transformer长度外推的重要途径。
由于 APE 在长度外推上的表现难以令人满意,而 RPE 自然地由于其位移稳定性具备更好的外推能力。而且人们普遍认为上下文中单词的相对顺序更紧张。因此,比年来,RPE 已成为编码位置信息的重要方法。
早期的 RPE 来自于对正弦位置编码的简单修改,并经常联合裁剪或分箱策略来制止出现分布外的位置嵌入,这些策略被认为有利于外推。别的,由于 RPE 解耦了位置和位置表现之间的一对一对应关系,因此将毛病项直接添加到注意力公式中成为将位置信息集成到 Transformer 中的一种可行乃至更好的方法。这种方法要简单得多,而且自然地解开了值(value)向量和位置信息的纠缠。
3.2 绝对位置编码的位置
怎样在Transformer中加上相对位置信息?出发点有两个,但是殊途同归。
- 因为每个单词的位置编码是相对于其他单词的位置差异而得到的,以是显然就不似乎APE那样直接加到输入上了,需要从输入之后的模块入手,这就是注意力模块。
- 前文分析过,原始transformer中的相对位置表达能力是在盘算注意力阶段被粉碎的。因此,研究职员自然想到,用过在注意力盘算时间再把相对位置信息加上。
因此,研究职员通过修改自注意力盘算的过程,把相对位置信息植入到Transformer架构的每一层的注意力机制中。相对位置编码会根据矩阵元素的下标,直接考虑每个元素对应的两个token间的相对位置关系。好比在盘算自注意力矩阵时,无论是在query和key的dot product,以及最终注意力权重和value矩阵乘时,都会分别额外添加一个表现位置m和位置n相对位置信息的仅依赖于m-n的bias。这样通过将每个元素的位置嵌入向量与其他位置的偏移向量进行组合,来编码元素之间的相对间隔。每个元素的位置嵌入向量会随着其与其他元素的位置关系而变化,从而更好地捕捉序列中的局部结构信息,从而进步序列建模的性能。
以“You are great“这句子为例,怎样获取序列顺序?我们大要有两个选择方案。
- 绝对位置信息。好比:“You”是第一个token,“are”是二个token。
- 相对位置信息。好比:“great”间隔”are"差一个位置,但是间隔“great”差两个位置。
而下图展示了可以添加到注意力矩阵中的绝对和相对位置毛病的示例。左:例句中的注意力矩阵。中间:可学习的绝对位置偏置(bias)。右:相对参考位置的位置偏置。它们表现出直观的权重分配模式,这是绝对位置编码所不具备的。
3.3 绝对位置编码的公式
因为相对位置编码大多是在正弦位置编码的底子上修改得到,因此我们先考虑一样寻常的带绝对位置编码的注意力机制。下图上方出了Transformer模子的某一层中自注意力机制的盘算流程。最终输出的点乘结果 z i z_i zi是当前位置i和和序列中所有位置间的关系,是输入序列的线性加权表现结果。
下图下方的公式 (2) 是query、key之间的向量内积展开式,一共是四项注意力的组合,其中每一项的分别为
- “输入-输入”。 没有考虑位置编码的原始分数,只是基于内容的寻址(content-based addressing)。
- “输入-位置”。相对于当前内容的位置毛病(content-dependent positional bias)。
- “位置-输入”。从内容层面衡量key的紧张性,表现全局的内容毛病(global content bias)。
- “位置-位置”。从相对位置层面衡量key的紧张性,表现全局的位置毛病(global positional bias)。
相对位置编码的引入,一样寻常就会从这里出发。有的方案将其中某些项酿成可训练的参数,有的乃至把中间两项都去掉了。总之,怎样描画序列不同位置间的相对间隔、怎样通过相对间隔控制自注意力矩阵不同位置的偏置大小,不停是位置编码计划的重中之重。而不同位置编码方案添加偏置的方式则各不雷同。
接下来,笔者将带领读者分析一些较为经典的相对位置编码工作。
3.4 经典式
相对位置编码起源于论文《Self-Attention with Relative Position Representations》,作者是Transformer的原班人马,他们应该早就知道三角函数编码的题目。
下图给出了三角函数编码的改造过程,重要思绪是以当前位置 q t q_t qt为锚点,在盘算注意力分数 e i j e_{ij} eij和加权求和 z i z_i zi时各引入一个可训练的相对位置向量 a i j V a_{ij}^V aijV和 a i j K a_{ij}^K aijK,具体技能细节如下:
- 形式上与正弦位置编码有接洽。
- 把相对位置信息i-j加在K和V上面,而且在多头之间共享,其中i-j是有约束条件的。
- 相对位置编码的目标是序列元素的边或者间隔。所谓相对位置,是将原来依赖于二元坐标(i,j)的向量,改为只依赖于相对间隔i−j的向量 R i , j K , R i , j V R^K_{i,j},R^V_{i,j} Ri,jK,Ri,jV,而且通常来说会进行截断,以顺应不同任意的间隔,制止分布外位置。 这样只需要有限个位置编码,就可以表达出任意长度的相对位置(因为进行了截断)。或者说,通过在确定的范围内裁剪相对位置,减少了要学习的位置嵌入数目,增强了长度外推。
对于裁剪我们做下阐明:这里的相对位置实在就是一个分段函数,在[-k,k]范围内为线性,在两侧做了截断。通过预先设定的最大相对位置k来强化模子对以当前词为中心的左右各k个词的注意力盘算。因此,最终的窗口大小为2k+1。对于边沿位置窗口超出2k的单词,则接纳了裁剪的机制,即只对有效的临近词进行建模。相对位置权重矩阵 a i j a_{ij} aij如下图所示。
联合绝对位置编码的公式,本方案的具体推导过程如下:
3.5 XLNET
XLNET式位置编码源自Transformer-XL的论文Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context。
Transformer-XL 对绝对位置编码公式做了改动:保存了正余弦频率的取值以及位置信息与语义信息的交互,增长了两个全局可学习的变量u、v,Key的变更矩阵也区分为基于内容的和基于相对位置的两个W。具体细节如下。
- 把绝对位置编码替换为相对位置编码。
- 以 q t q_t qt为锚点,将所有的 p s p_s ps改为 r t − s r_{t-s} rt−s,表现对key而言由绝对位置编码换成相对于 q t q_t qt的相对位置编码。相对位置信息 r t − s r_{t-s} rt−s (content-dependent positional bias)是依照Transformer中的通过正余弦频率方式来获取的,该项不需要学习,因此自己也没有被截断。从XLNet论文公式角度看,此处是把绝对位置编码 U j U_j Uj换成了相对位置编码 R i − j R_{i-j} Ri−j。
- 在key上引入相对位置信息,key的变更矩阵 W K W_K WK被拆分为基于内容的和基于相对位置的两个W,也就是说输入序列和位置编码不再共享权值。从XLNet论文公式角度看,两个W对应 W k , E W_{k,E} Wk,E和 W k , R W_{k,R} Wk,R。
- 调整绝对位置编码公式的第二项。通过矩阵 W R W_R WR 描画相对间隔与上下文语义之间的关系。
- 调整绝对位置编码公式的第三项和第四项。
- 在第三项和第四项中引入引入了两个新的可学习的参数 u ∈ R d u∈R^d u∈Rd 和 v ∈ R d v∈R^d v∈Rd 来替换Transformer中的query向量。这是因为无论query位置怎样,其对不同词的注意毛病都保持划一。因为我们已经把相对位置编码融入了key端,那么query端就不再需要位置编码了。
- 假如从XLNet论文公式角度看是替换掉 U i T W q T U_i^TW_q^T UiTWqT。
联合绝对位置编码的公式,本方案的具体推导过程如下:
应该是从这个工作开始,后续的RPE都只加到K上去,而不加到V上了。
3.6 TENER
从位置编码的角度,TENER作者发现了传统三角式位置编码在实践中不具备单调性,在理论上也缺少前后token间相对方向的感知。因此,TENER作者提出了将相对方向和相对间隔都纳入到位置编码当中。TENER的位置编码和Transformer-XL的位置编码类似,形式上,只是去掉了相对位置信息 r t , s r_{t,s} rt,s 的变更矩阵。别的,TENER还发现,去除自注意力变更中的校正系数 d \sqrt d d ,可以提升其在NER任务上的效果。
联合绝对位置编码的公式,本方案的具体推导过程如下:
TENER实在揭示了现在位置编码的一些弊病,即:已有的位置编码重要描画两个token之间的相对间隔,缺少对于token间相对方向的描画,怎样实现一个可拆分可解释的方向感知位置编码,是一个很大的挑衅。
3.7 T5
同样基于注意力分数盘算的分解,T5接纳了一种简单的相对位置编码方案,将相对位置直接映射成可学习的标量。从绝对编码公式角度看,T5去除了位置信息和语义信息的交互,直接描画相对位置信息,利用毛病(浮点数)来表现每个可能的位置偏移。例如,毛病 B1 表现任意两个相距一个位置的标志之间的相对间隔,无论它们在句子中的绝对位置怎样。 这保证了偏置随着相对位置的单调性。
扼要的说,T5直接将绝对位置公式的后三项换成一个可学习的bias,或者说,它是在(概率未归一化的)Attention矩阵的底子上加一个可训练的偏置项。具体如下:
- 删除(b),©项。因为T5作者认为输入信息与位置信息应该是独立(解耦)的,它们就不应该有过多的交互。
- 简化(d)项为 b i j b_{ij} bij。第4项相对位置信息实际上只是一个只依赖于(i,j)的标量,可以将直接映射成可学习的标量,作为参数训练出来。该相对位置毛病矩阵被添加到自注意力层中的查询矩阵和关键矩阵的乘积中。这确保了雷同相对间隔的标志始终由雷同的毛病表现,无论它们在序列中的位置怎样。
- 去除 v j = ( x j + p j ) W V v_j = (x_j + p_j)W_V vj=(xj+pj)WV中的位置编码。
联合绝对位置编码的公式,本方案的具体推导过程如下:
该方法的一个显着优点是其可扩展性。它可以扩展到任意长的序列,这比绝对位置嵌入有明显的优势。
3.8 DeBERTa式
DeBERTa出自《DeBERTa: Decoding-enhanced BERT with Disentangled Attention》。和T5恰恰相反,DeBERTa去掉了分解后的第四项,在第二、三项中将绝对位置编码改为相对位置编码。其思绪如下:
- 将二三项中的位置编码换成相对位置编码。首先通过 δ ( t , s ) \delta(t,s) δ(t,s) 将 t−s 直接截断在区间 (−k,k] 内,接着通过参数矩阵 P ∈ R 2 k × d P∈R^{2k×d} P∈R2k×d 描画将相对位置映射为特征向量;即接纳相对位置编码,并解耦了内容和位置的注意力。
- 将第4项扔掉。因为已经利用了相对位置编码,position2position不会带来额外的信息。
别的,DeBERTa提供了利用相对位置和绝对位置编码的一个新视角,它指出NLP的大多数任务可能都只需要相对位置信息,但确实有些场景下绝对位置信息更有帮助,于是它将整个模子分为两部门来理解。它一共有13层,前11层只是用相对位置编码,这部门称为Encoder,背面2层加入绝对位置信息,这部门它称之为Decoder。
联合绝对位置编码的公式,本方案的具体推导过程如下:
3.9 TUPE
TUPE出自论文"RETHINKING POSITIONAL ENCODING IN LANGUAGE PRE-TRAINING"。
注:TUPE有APE和RPE两个版本,本文归类时是按照其出发点来归为APE。
TUPE实在可以看作是T5和DeBERTa的位置编码的联合。TUPE位置编码去掉绝对位置编码的公式的第二三项,保存第四项。相较于T5压缩后学习一个标量描画相对位置,TUPE将语义信息和位置信息划一对待、分开描画:以 W Q W_Q WQ, W K W_K WK 描画语义关系,并以 U Q U_Q UQ,$U_K $来描画位置关系(directly model the relationships between a pair of words or positions by using different projection matrices)
针对绝对位置编码的公式的四项,论文认为存在两个题目:
- 位置嵌入和词嵌入不应该耦合。
- 在绝对位置编码中,应用于位置嵌入和词嵌入的加法运算带来了两种异构信息资源之间的混合相干性。 它可能会在注意力中带来不须要的随机性,并进一步限定模子的表达能力。
- 论文作者对这四项做了可视化,发现中间两项看起来很匀称,阐明position和token之间没有太大的关联。因此,TUPE移除了二三项,即移除了单词-位置、位置-单词的对应关系。
- token和position之间用了雷同的矩阵做QKV变化,但是position和token之间所包罗的信息不同,以是共享矩阵不合理。因此,TUPE解耦了token和position的投影矩阵,通过不同的参数化分别盘算词的上下文相干性和位置相干性,然后将它们相加。
- 引用T5模子中的偏置项。
- 其次,考虑到符号 [CLS] 在下游任务中的特殊作用(整个句子的表现),论文质疑将符号 [CLS] 的位置与其他单词一样对待是否是一个合理的计划。 因此,TUPE 将 [CLS] 符号与其他位置分开(untie),从而使其更容易从所有位置捕获信息。
TUPE架构如下图所示。
解耦的逻辑如下图所示。
联合绝对位置编码的公式,本方案的具体推导过程如下:
3.10 ALiBi
ALiBi编码出自论文“rain Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation”。ALiBi (Attention with Linear Biases) 实在和T5类似,直接给(未概率归一化的)注意力分数加上了一个线性的bias,通过线性偏置项,让自注意力分布更加关注相对间隔较小,即邻近位置的语义信息。区别在于:T5 的偏置是可训练参数,而 ALiBi 的偏置是预设好、不可训练的。
动机
ALiBi的动机是:靠近的词比阔别的词更紧张。
实行
ALiBi编码不是给词向量加入位置嵌入向量,而是用一个和query, key之间的间隔成比例的一个“处罚项”来偏置query-key的注意力得分。这个偏置根据 query 和 key 的相对间隔来处罚 attention score,相对间隔越大,处罚项越大。相当于两个 token 的间隔越远,相互贡献就越小。好比,针对原始attention层中第i个Token的Query向量和第j个Token的Key向量进行相乘操作,ALiBi通过加入位置i、j的绝对值差将位置i和位置j的相对位置信息嵌入到attention盘算过程中。该绝对值差是常量,可以事先盘算出来,而且每个头(head)的值都有所不同。
具体公式是 q i k j T → q i k j T − λ ∣ i − j ∣ q_ik_j^T \rightarrow q_ik_j^T - \lambda|i-j| qikjT→qikjT−λ∣i−j∣,其中 λ \lambda λ 是超参数,对于每一个head接纳不同数值设置,论文颠末实行发现对超参数 λ \lambda λ 以 1 2 1 , 1 2 2 , 1 2 3 , . . . , 1 2 8 , \frac{1}{2^1},\frac{1}{2^2},\frac{1}{2^3},...,\frac{1}{2^8}, 211,221,231,...,281,区间进行设置效果最佳,即假如有 n 个head,则区间 λ \lambda λ 起始从 2 − 8 / n 2^{−8/n} 2−8/n 开始到止境 2 − 8 2^{−8} 2−8。
实行过程如下图所示。
特色
ALIBI是一个很朴素(固然也很有效)的光滑局部注意力技巧,但假如将它理解为“位置编码”,又并非十分妥当。
ALIBI通过线性偏置项,让自注意力分布更加关注相对间隔较小,即邻近位置的语义信息,相当于增强局域性的作用。虽然其是线性偏置项,但是颠末softmax变化之后,真正乘以自注意力分布上的却是指数的衰减。其次,线性的偏置意味着当相对间隔很大时,偏置项趋近于负无穷。因此,ALiBi的偏置项更像是在盘算注意力分数时通过一个带坡度的滑动窗口或者掩码来直接实现注意力盘算过程中的长途衰减,即只能获取到训练长度内的信息。而只要相对间隔足够大,ALiBi都会对其给予严格的处罚。随着序列长度的增长,ALiBi 往往从全局注意力过渡到险些局部的注意力,这就是为什么 ALiBi 在训练长度内的表现比大多数基线差,但在超出训练长度后表现更好的缘故原由。
与此同时,还要注意的是,以ALiBi为代表的绝对偏置编码,无法将对 A t , s A_{t,s} At,s 的操作拆分至 q t q_t qt, k s k_s ks ;而从参数角度,由于偏置 b(t-s) 是直接加在 q t q_t qt, k s k_s ks 内积上的,因此对于参数矩阵 W q W_q Wq, W k W_k Wk ,每个特征维度间缺少区分性,相比其他两种偏置形式更难优化。
联合绝对位置编码的公式,本方案的具体推导过程如下:
3.11 偏置编码&上下文模式
分析完上述相对位置编码之后,我们看看一种分类方式。无论是绝对位置编码,还是相对位置编码,怎样描画序列不同位置间的相对间隔、怎样通过相对间隔控制自注意力矩阵不同位置的偏置大小,不停是位置编码计划的重中之重。而不同位置编码方案添加偏置的方式则各不雷同。但是根本上都可以整理成如下形式。
S t , s = q t T k s = x t T W Q T W K x s + b t , s S_{t,s} = q^T_tk_s = x_t^TW_Q^TW_Kx_s + b_{t,s} St,s=qtTks=xtTWQTWKxs+bt,s
其中, b i j b_{ij} bij被称为位置偏置,依据其不同形式,可以把相对位置编码分为以下两种流派。
- bias方案。以T5、TUPE、ALiBi为代表的位置编码,其 b i j b_{ij} bij是一个与 q j q_j qj, k j k_j kj无关的标量。直接把偏置加 q j q_j qj, k j k_j kj的内积上,直接对自注意力矩阵操作。这种方式直接将偏置加在自注意力矩阵 A t , s A_{t,s} At,s 上,盘算简单理解容易,但处罚过于绝对。
- 上下文方案。包括好比Transfomrer-XL,DeBERTa,其中 b i j = f ( x i , x j , r i j ) b_{ij}=f(x_i,x_j,r_{ij}) bij=f(xi,xj,rij)。这种方案将偏置渗透进特征向量 q t q_t qt, k s k_s ks 的每个维度上,能很好区分特征维度,并以过滤代替处罚,具有更强表达能力。但其其整体偏置易随相对位置大小颠簸,需要更多的维度、额外的校正才能有所缓解。
3.12 小结
一样寻常来说,绝对位置编码具有实现简单、盘算速度快等优点,而相对位置编码则直接地表现了相对位置信号,更符合直觉也更符合文本的特性,实际效果往往也更好。怎样做到集二者之所长呢?很自然的想法是,通过绝对位置编码来实现相对位置编码!也就是混合位置编码。因此,APE和RPE两者最终统一于旋转位置编码(Rotary Position Embedding,RoPE),以绝对位置编码的形式,实现了相对位置编码的效果。
注:此处分类模糊,有人把RoPE看作是混合位置编码,也有人把其归结为相对位置编码,也有人把其单独列为旋转位置编码。
0xEE 个人信息
★★★★★★关于生活和技能的思考★★★★★★
微信公众账号:罗西的思考
假如您想及时得到个人撰写文章的消息推送,或者想看看个人保举的技能资料,敬请关注。
0xFF 参考
Length Extrapolation of Transformers: A Survey from the Perspective of Position Encoding
LLaMA长度外推高性价比trick:线性插值法及相干改进源码阅读及相干记录
Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation
2309.12307.pdf (arxiv.org)
ALiBi
Bias项的神奇作用:RoPE + Bias = 更好的长度外推性
DeBERTa: Decoding-enhanced BERT with Disentangled Attention\
Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
EXTENDING CONTEXT WINDOW OF LARGE LANGUAGE MODELS VIA POSITION INTERPOLATION
GitHub - dvlab-research/LongLoRA: Code and documents of LongLoRA and LongAlpaca
https://blog.csdn.net/weixin_44826203/article/details/129255185
https://medium.com/@ddxzzx/why-and-how-to-achieve-longer-context-windows-for-llms-5f76f8656ea9
https://twitter.com/GregKamradt/status/1727018183608193393
Kimi Chat 公布“大海捞针”长文本压测结果,也搞清晰了这项测试的精华 (qq.com)
NTK-Aware Scaled RoPE allows LLaMA models to have extended (8k+) context size without any fine-tuning and minimal perplexity degradation. : r/LocalLLaMA (reddit.com)
RETHINKING POSITIONAL ENCODING IN LANGUAGE PRE-TRAINING
RoPE
RoPE外推的缩放法则 —— 实行外推RoPE至1M上下文 河畔草lxr
T5
TENER: Adapting Transformer Encoder for Named Entity Recognition
Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context
Transformer升级之路:15、Key归一化助力长度外推 苏剑林
Transformer升级之路:1、Sinusoidal位置编码追根溯源 - 科学空间|Scientific Spaces
Transformer升级之路:2、博采众长的旋转式位置编码
Transformer升级之路:6、旋转位置编码的完备性分析
TUPE
XLNet
xPos
RoFormer: Enhanced Transformer with Rotary Position Embedding
Self-Attention with Relative Position Representations
分析transformer模子的参数目、盘算量、中间激活、KV cache - 知乎 (zhihu.com)
图解RoPE旋转位置编码及其特性
大模子分布式训练并行技能(五)-序列并行 (qq.com)
条理分解位置编码,让BERT可以处理超长文本
干货!On Position Embeddings AI TIME
理解Transformer的位置编码51CTO博客transformer的位置编码
羊驼再度进化,“长颈鹿版”LongLLaMA 来啦,上下文长度冲向 100K ,性能不减
让研究职员绞尽脑汁的Transformer位置编码 - 科学空间|Scientific Spaces
详解基于调整RoPE旋转角度的大模子长度外推方法 (qq.com)
https://blog.csdn.net/qq_27590277/article/details/106264402
Ke G, He D, Liu T Y. Rethinking positional encoding in language pre-training[J]. arXiv preprint arXiv:2006.15595, 2020.
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |