【深度学习】Transformer 的常见的位置编码有哪些

打印 上一主题 下一主题

主题 876|帖子 876|积分 2628

Transformer 位置编码(Positional Encoding)主要用于弥补 自注意力机制(Self-Attention) 对位置信息的忽略,常见的方案有以下几种:

1. 绝对位置编码(Absolute Positional Encoding)

绝对位置编码是最早在原始 Transformer 论文(《Attention Is All You Need》)中提出的方式,它在每个 token 位置参加一个固定的向量,用于表示其位置信息。
(1) 三角函数编码(Sinusoidal Positional Encoding)

公式:
                                         P                                       E                                           (                                  p                                  o                                  s                                  ,                                  2                                  i                                  )                                                 =                            sin                            ⁡                                       (                                                        p                                     o                                     s                                                           1000                                                   0                                                       2                                           i                                           /                                                           d                                              model                                                                                                )                                            PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right)                     PE(pos,2i)​=sin(100002i/dmodel​pos​)
                                         P                                       E                                           (                                  p                                  o                                  s                                  ,                                  2                                  i                                  +                                  1                                  )                                                 =                            cos                            ⁡                                       (                                                        p                                     o                                     s                                                           1000                                                   0                                                       2                                           i                                           /                                                           d                                              model                                                                                                )                                            PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right)                     PE(pos,2i+1)​=cos(100002i/dmodel​pos​)
其中:


  •                                         p                            o                            s                                  pos                     pos 是 token 在序列中的位置索引,
  •                                         i                                  i                     i 是 embedding 维度索引,
  •                                                    d                               model                                            d_{\text{model}}                     dmodel​ 是模型维度(如 512)。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莱莱

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表