当前位置: 首页 > news >正文

位置编码学习笔记

位置编码是transformer中的关键部分,解决了transformer对于序列中的单词顺序不敏感的问题。从为什么、是什么、怎么做来了解位置编码。

1. 为什么需要位置编码?

时序数据本身都隐式地包含了位置信息,但是不同模型的模型对于位置信息是否敏感不同。决定位置是否敏感,可以简单理解为如果更换时序序列的单词顺序,输出结果是否发生变化。如果发生了变化,如RNN、CNN,则是位置敏感的模型,如果没有发生变化,如transformer,则是位置不敏感的模型,需要额外引入位置编码。

2. 为什么transformer对位置不敏感?

transformer的核心机制是attention,transformer对位置不敏感,本质上是attention对位置不敏感。举例来说,一个句子,“我吃香蕉”,注意力机制会生成Q(“我”),Q(“吃”),Q(“香蕉”),K(“我”),K(“吃”),K(“香蕉”),V(“我”),V(“吃”),V(“香蕉”),无论单词顺序如何,输出的第一部分,Z(“我”)= (Q(“我”)· K(“我”))V(“我”)+(Q(“我”)· K(“吃”))V(“吃”)+(Q(“我”)· K(“香蕉”))V(“香蕉”),与顺序无关。因此,attention仅依赖于词与词之间的相似度来计算权重,无法区分不同顺序的句子,不具备处理序列顺序的能力。

3. 有哪些位置编码?

绝对位置编码和相对位置编码,固定位置编码和可学习位置编码

a. 绝对位置指的是每个单词在序列中的具体位置,如“我”是第一个单词。主要方法是对输入的嵌入向量增加位置编码嵌入,经典transformer使用正余弦位置编码,公式如下:

PE(pos,2i)=sin(\frac{pos}{10000^{\frac{2i}{d_model}}})

PE(pos,2i+1)=cos(\frac{pos}{10000^{\frac{2i}{d_model}}})

此外,还包括可学习的绝对位置编码,将位置编码嵌入设置为可学习参数。

b. 相对位置指的是单词与单词之间的距离,如“我”是“吃”的前面一个单词。主要在注意力计算时进行相对位置信息的融合,下面介绍两种方式,首先是可学习相对位置嵌入,b是sxs的矩阵,s代表序列长度,bi-j对应i和j之间的相对位置编码,以可学习的参数的形式呈现。

其次,是RoPE,LLama中采用,旋转位置编码。公式如下:

c. 为什么正余弦位置编码需要正余弦交替?因为正余弦交替则可以对PE(pos)进行线性变换获得PE(pos+k),因此包含了相对位置信息。

http://www.xdnf.cn/news/96877.html

相关文章:

  • Linux:进程地址空间
  • 【LangChain4j】AI 第一弹:LangChain4j 的理解
  • 32单片机——GPIO寄存器
  • 05/06-Java入门-HelloWorld和编程工具的使用
  • c语言指针3
  • 初识分布式事务原理
  • VMware中CentOS 7虚拟机设置固定IP(NAT模式)完整教程
  • Scanpy可视化技巧--UMAP图优化
  • 数据的加载与保存
  • 基于Quill的文档编辑器开发日志(上)——前端核心功能实现与本地存储管理
  • Java 环境配置详解(Windows、macOS、Linux)
  • 新书推荐——《游·思——看世界 上》孔祥超 著
  • 【MQ篇】RabbitMQ之工作队列模式!
  • Kotlin中实现静态
  • 智能文档解析系统架构师角色定义
  • 链表系列一>两数相加
  • 如何将 Azure Active Directory (Azure AD) 作为 SAML IdP 对接到 Keycloak
  • 从零手写 RPC-version1
  • django软件开发招聘数据分析与可视化系统设计与实现(源码+lw+部署文档+讲解),源码可白嫖!
  • 搭建Stable Diffusion图像生成系统实现通过网址访问(Ngrok+Flask实现项目系统公网测试,轻量易部署)
  • JavaEE学习笔记(第二课)
  • C#开发usb hid 简易GUI调试工具记录
  • 2025山东省职业院校技能大赛网络安全赛项样题
  • rk3588 驱动开发(二)第四章嵌入式 Linux LED 驱动开发实验
  • 初阶数据结构--排序算法(全解析!!!)
  • 【JVS更新日志】物联网、智能BI、智能APS 4.23更新说明!
  • Android仿今日头条Kotlin版本
  • gem5教程第五章 了解gem5默认配置脚本
  • eplan许可证与防火墙安全软件冲突
  • MobileNetV2:面向移动端的高效神经网络架构革新——突破轻量化模型的设计边界