ToB企服应用市场:ToB评测及商务社交产业平台

标题: 探秘Transformer系列之(9)--- 位置编码分类 [打印本页]

作者: 南飓风    时间: 9 小时前
标题: 探秘Transformer系列之(9)--- 位置编码分类
探秘Transformer系列之(9)— 位置编码分类


  
0x00 概述

由于 Transformer 自身具有置换稳定性(Permutation Invariance),无法直接捕获每个词在序列中的位置信息,因此利用位置编码将序列中元素顺序信息融入Transformer成为一种常见做法。根据位置编码表现的是序列中元素的绝对位置信息还是相对位置信息,业界将位置编码重要分为绝对位置编码(Absolute Position Encoding,APE)和相对位置编码(Relative Position Encoding,RPE)。绝对位置编码的核心思想是在每个输入序列的元素上添加一个位置向量,以表现该元素在序列中的具体位置。相对位置编码则侧重于考虑元素之间的间隔信息。这里说重要是因为另有一些难以划分的位置编码。固然也有别的的区分方式,好比把RoPE单独列为旋转编码。

0x01 区别

上一篇我们知道为了克服自注意力矩阵带来的影响,有的研究职员提出了相对编码。从而引出了对位置编码的分类。我们本节从各个角度出发,来看看绝对位置编码和相对位置编码的区别。
1.1 从直观角度来看

以句子“从槐树叶底,朝东细数着一丝一丝漏下来的日光“为例,对于怎样获取序列顺序?我们大要有两个选择方案:

这两个方案就分别对应了绝对位置编码和相对位置编码。下图给出了从直观角度出发来看,原始无位置编码,绝对位置编码和相对位置编码的区别。


由于自然语言一样寻常更依赖于相对位置,以是相对位置编码通常也有着良好的表现。
1.2 从模子处理角度来看

从模子处理角度来看,这两种方案有如下分别:

这些差异如下图所示。其中 p(j-i) 是编码 j - i 相对位置信息的术语。RPEs倾向于直接修改注意力机制来融合相对位置信息,这种修改独立于值向量,使它们不与位置信息纠缠。

1.3 优劣

绝对位置编码的优点是:实现简单。缺点是:

相对位置编码的优点是:

缺点是:

别的,现在这些位置编码会让模子过分在意局部信息,过分信任邻近生成的内容。怎样在位置编码层面实现“三思而后行”,即让模子在注意邻近信息的同时,也能考虑到较远位置的信息,从而对当前输出进行一定的纠正,也是一个不可忽视的题目。
虽然说位置编码重要是绝对位置编码和相对位置编码两大类,但每一类实在又能衍生出各种各样的变种,研究职员在这方面发挥了极大的聪明才智。本文就让我们来欣赏一下研究职员为了更好地表达位置信息所构建出来的“八仙过海,各显神通”般的编码方案。
0x02 绝对位置编码

形式上来看,绝对位置编码是相对简单的一种方案,经典的绝对位置编码有三种:

比年来,关于绝对位置编码的工作大多数是以不同的方法生成绝对位置编码为主,好比在三角函数编码的底子之上额外学习一些其他参数。
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 别的

别的另有一些别的方法,好比:

0x03 相对位置编码

3.1 意义

我们从几个方面来看看相对位置的意义。
大脑中的参考系

美国国家工程院院士杰夫·霍金斯(Jeff Hawkins)在其论文和著作《千脑理论》提出来一些观点很值得我们思考:

如上所述,参考系是人脑中的紧张部门,这对于位置编码具有极其紧张的引导意义。或者更确切的说,这是相对位置编码的紧张理论支撑之一。
语义影响

在很多任务中,序列中的元素之间的相对位置关系对于理解序列的语义和结构非常紧张。或者说,绝对位置编码对句子语义的影响不大,更为紧张的是相对位置编码。好比下面句子中,相对语序比绝对语序对语义的影响更加关键。

长度外推

直观地说,长度外推与长度和位置有很强的相干性。Transformer作者提出了正弦位置嵌入,并声称它可以外推到训练之外的更长的序列。这一说法背后的想法,即只需改变位置表现方法就可以实现长度外推,已得到广泛支持和证实。因此,开发更好的位置编码方法已经成为增强Transformer长度外推的重要途径。
由于 APE 在长度外推上的表现难以令人满意,而 RPE 自然地由于其位移稳定性具备更好的外推能力。而且人们普遍认为上下文中单词的相对顺序更紧张。因此,比年来,RPE 已成为编码位置信息的重要方法。
早期的 RPE 来自于对正弦位置编码的简单修改,并经常联合裁剪或分箱策略来制止出现分布外的位置嵌入,这些策略被认为有利于外推。别的,由于 RPE 解耦了位置和位置表现之间的一对一对应关系,因此将毛病项直接添加到注意力公式中成为将位置信息集成到 Transformer 中的一种可行乃至更好的方法。这种方法要简单得多,而且自然地解开了值(value)向量和位置信息的纠缠。
3.2 绝对位置编码的位置

怎样在Transformer中加上相对位置信息?出发点有两个,但是殊途同归。

因此,研究职员通过修改自注意力盘算的过程,把相对位置信息植入到Transformer架构的每一层的注意力机制中。相对位置编码会根据矩阵元素的下标,直接考虑每个元素对应的两个token间的相对位置关系。好比在盘算自注意力矩阵时,无论是在query和key的dot product,以及最终注意力权重和value矩阵乘时,都会分别额外添加一个表现位置m和位置n相对位置信息的仅依赖于m-n的bias。这样通过将每个元素的位置嵌入向量与其他位置的偏移向量进行组合,来编码元素之间的相对间隔。每个元素的位置嵌入向量会随着其与其他元素的位置关系而变化,从而更好地捕捉序列中的局部结构信息,从而进步序列建模的性能。
以“You are great“这句子为例,怎样获取序列顺序?我们大要有两个选择方案。

而下图展示了可以添加到注意力矩阵中的绝对和相对位置毛病的示例。左:例句中的注意力矩阵。中间:可学习的绝对位置偏置(bias)。右:相对参考位置的位置偏置。它们表现出直观的权重分配模式,这是绝对位置编码所不具备的。

3.3 绝对位置编码的公式

因为相对位置编码大多是在正弦位置编码的底子上修改得到,因此我们先考虑一样寻常的带绝对位置编码的注意力机制。下图上方出了Transformer模子的某一层中自注意力机制的盘算流程。最终输出的点乘结果                                             z                            i                                       z_i                  zi​是当前位置i和和序列中所有位置间的关系,是输入序列的线性加权表现结果。
下图下方的公式 (2) 是query、key之间的向量内积展开式,一共是四项注意力的组合,其中每一项的分别为

相对位置编码的引入,一样寻常就会从这里出发。有的方案将其中某些项酿成可训练的参数,有的乃至把中间两项都去掉了。总之,怎样描画序列不同位置间的相对间隔、怎样通过相对间隔控制自注意力矩阵不同位置的偏置大小,不停是位置编码计划的重中之重。而不同位置编码方案添加偏置的方式则各不雷同。

接下来,笔者将带领读者分析一些较为经典的相对位置编码工作。
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​,具体技能细节如下:


对于裁剪我们做下阐明:这里的相对位置实在就是一个分段函数,在[-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。具体细节如下。

联合绝对位置编码的公式,本方案的具体推导过程如下:

应该是从这个工作开始,后续的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矩阵的底子上加一个可训练的偏置项。具体如下:

联合绝对位置编码的公式,本方案的具体推导过程如下:

该方法的一个显着优点是其可扩展性。它可以扩展到任意长的序列,这比绝对位置嵌入有明显的优势。
3.8 DeBERTa式

DeBERTa出自《DeBERTa: Decoding-enhanced BERT with Disentangled Attention》。和T5恰恰相反,DeBERTa去掉了分解后的第四项,在第二、三项中将绝对位置编码改为相对位置编码。其思绪如下:

别的,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
针对绝对位置编码的公式的四项,论文认为存在两个题目:

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|                  qi​kjT​→qi​kjT​−λ∣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​=qtT​ks​=xtT​WQT​WK​xs​+bt,s​
其中,                                             b                                       i                               j                                                 b_{ij}                  bij​被称为位置偏置,依据其不同形式,可以把相对位置编码分为以下两种流派。


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企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4