该问题归类到Transformer架构问题集——位置编码——相对位置编码。请参考LLM数学推导——Transformer架构问题集。
在自然语言处理的奇妙领域中,Transformer 模型凭借其独特的架构成为当之无愧的 “明星”,而相对位置编码作为其中的关键技术,如同为模型赋予了感知文本顺序的 “特殊能力”。当我们引入因果掩码这一 “特殊规则” 时,相对位置编码的特性会发生有趣的变化 —— 对称性破坏现象由此产生。接下来,我们将像侦探一样,抽丝剥茧,一步步深入分析这一现象背后的原理。
1. 相对位置编码与因果掩码背景知识
1.1 相对位置编码
传统的绝对位置编码就像是给文本中的每个位置都发放了一张独一无二的 “身份证”,通过固定的向量来表示每个位置。但这种方式在处理长距离依赖或复杂语义关系时存在局限性。相对位置编码则另辟蹊径,它关注的是文本中位置之间的相对关系,比如两个词在句子中的前后顺序、相隔距离等。通过这种方式,模型能够更好地理解文本的结构和语义,就像我们阅读文章时,会自然地关注句子中词语之间的相对位置来理解含义一样。
在计算注意力分数时,相对位置编码通常会引入一个与位置相对关系相关的偏置项。例如,在一个简单的公式中,注意力分数 的计算可能会考虑查询向量
、键向量
以及相对位置偏置
,公式类似这样:
,其中
是键向量的维度,n 是序列的长度 。这个偏置项
就是相对位置编码的核心体现,它根据位置 i 和 j 的相对关系来调整注意力分数,让模型更加关注与当前位置相关的信息。
1.2 因果掩码
因果掩码在自然语言处理中扮演着 “时间卫士” 的角色,尤其是在文本生成任务中。它的作用是确保模型在生成当前位置的内容时,只能利用该位置之前的信息,而不能 “偷看” 未来的信息。这就好比我们在写作时,只能基于已经写好的内容来构思接下来的句子,而不能提前知道后面还没写的内容。
在实际计算中,因果掩码通常表现为一个上三角矩阵(在不考虑填充的情况下)。当计算注意力分数时,对于被掩码的位置,会将其对应的分数设置为一个非常小的值(通常是负无穷),经过 softmax 函数后,这些位置的注意力权重几乎为 0,从而实现了 “屏蔽未来信息” 的效果。例如,在生成一个句子时,当模型处理到第 i 个词时,因果掩码会阻止模型关注第 i + 1,i + 2 等后续位置的信息,保证生成过程符合因果逻辑。
2. 相对位置编码在因果掩码下的对称性破坏现象分析
2.1 对称性的定义与理想情况
在相对位置编码中,我们所说的对称性是指位置对 (i, j) 和 (j, i) 之间的某种等价关系。理想情况下,如果相对位置编码具有对称性,那么从位置 i 关注位置 j 和从位置 j 关注位置 i 时,模型所利用的位置信息应该是相似的,或者说它们对注意力分数的影响是对称的。例如,在一个简单的句子中,“我喜欢苹果”,如果我们考虑 “我” 和 “苹果” 这两个位置,对称性意味着模型在计算它们之间的注意力关系时,无论从 “我” 的角度看 “苹果”,还是从 “苹果” 的角度看 “我”,所依据的位置编码规则应该是相同的,不会出现偏向。
2.2 因果掩码对对称性的破坏过程
当引入因果掩码后,情况发生了变化。我们以一个包含 n 个位置的序列为例,假设我们要分析位置 i 和 j(i < j)的关系。
在没有因果掩码时,计算注意力分数