首页 > 其他分享 >旋转位置编码

旋转位置编码

时间:2024-10-31 13:18:42浏览次数:7  
标签:编码 Kj 位置 矩阵 信息 旋转 Qi

为什么要引入旋转位置编码?

因为想要捕捉相对位置关系,语义应该是和相对位置有关,而不是绝对位置。也就是在长文本中的某个词应该和它附近词更相关,离它较远的词关系没那么大。

回顾Attention

这里就希望在计算Q,K相似性的时候引入,相对位置信息,如果用数学函数表达的话Qi,Kj相乘应该只依赖三个信息,即Xi,Xj,(i-j),这里(i-j)就是Xi和Xj的相对位置信息,即

Q_{i}K_{j}^{T} = g(X_{i},X{j},i-j)

我们希望找到一种方式,使得Qi,Kj相乘完,满足上述式子。

回顾矩阵知识

矩阵乘法可以看作一种线性算子,一个矩阵A,左乘一个矩阵X,AX就是A对X每个行向量进行变换。

这里引入一个旋转矩阵R(\theta )=\begin{pmatrix} cos\theta &sin\theta \\ -sin\theta &con\theta \end{pmatrix}

这个矩阵物理意义就是,对X逆时针旋转\theta角度

旋转矩阵的俩个性质:

R(\theta)^{T} = R(-\theta)

R(\theta_{1})R(\theta_{2}) = R(\theta_{1}+\theta_{2})

融入旋转位置信息

刚才我们希望的是

Q_{i}K_{j}^{T} = g(X_{i},X{j},i-j),我们现在假设Qi和Kj都是二维向量i,j是它们对应的position,\eta_{i},\eta_{j}Q_{i},K_{j}的弧度表示。

因为Q_{i}K_{j} = \left \| Q_{i} \right \|\left \| K_{j} \right \|cos(\eta_{j}-\eta_{i}),我们现在想办法在这个等式右边融入相对位置信息

思路:把Q_{i}K_{j}俩个向量各自按照i,j角度旋转后再计算点积

Q_{i}R(i)(K_{j}R(j))^T替换Q_{i}K_{j},新的向量内积就带上了位置信息。观察新的内积,模长没有变,角度增加了j-i。现在我们目标就基本上完成了,下面是严格数学证明:

这里只推导了二维空间,高维空间推导类似

标签:编码,Kj,位置,矩阵,信息,旋转,Qi
From: https://blog.csdn.net/data_huzh/article/details/143377493

相关文章

  • OpenCV | 基于最细长轮廓自动校正旋转图片
    点击查看代码importcv2importnumpyasnpdefpreprocess_image(image):#转换为灰度图像gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)#高斯模糊去噪blurred=cv2.GaussianBlur(gray,(33,33),0)#自适应阈值二值化binary=cv2.a......
  • emoji编码和长度校验
    背景:最近有个需求,在校验输入内容中要校验字符长度,但是里面包含了支持emoji类型在length计数时惊了我,知识盲区--》补课问题描述:1.校验规则:最大12个中文字符,24个英文字符,支持emoji、数字、标点符号2.console.log('......
  • 现代编码理论
    编码理论基础-有限域上的循环码编码的构成和分类自对偶码编码和设计环码准循环码介绍斜多项式环和斜循环码加性循环码卷积码介绍  卷积码由PeterElias在1955年提出。它们可以被看作是分组代码的一般化。为了促进这种一般化,考虑一个k×n的生成器矩阵G,其......
  • Python——查询IP地址地理位置与设备信息
    在这个数字化时代,IP地址不仅是设备与互联网通信的桥梁,它还蕴含着丰富的信息,比如地理位置、ISP(互联网服务提供商)和设备类型等。这些信息对于网络安全、用户行为分析以及个性化服务提供等方面都具有重要意义。本文将介绍一个Python脚本,它可以帮助用户查询指定IP地址的地理位置信......
  • Base64编码原理
    Base64编码原理Base64作用目前Base64已经成为网络上常见的传输8Bit字节代码的编码方式之一。在做支付系统时,系统之间的报文交互都需要使用Base64对明文进行转码,然后再进行签名或加密,之后再进行(或再次Base64)传输。Base64编码原理Base64的原理比较简单,每当我们使用Base64时都会......
  • 005 字符编码与文件处理
    知识储备1#计算机三大核心硬件:CPU,内存,硬盘23#1、软件运行之前,软件的代码及其数据都是存放在硬盘中的4#2、任何软件的启动都是将数据从硬盘读入内存,然后CPU从内存中取出指令并执行5#3、软件运行过程中产生的数据最先都是存放在内存中的,若想永久保存软件产生的数据......
  • 【GiraKoo】常用编码的对比(ASCII,GB2312,GBK,GB18030,UCS,Unicode)
    甯哥敤缂栫爜鐨勫姣旓紙ASCII锛孏B2312锛孏BK锛孏B18030锛孶CS锛孶nicode锛�鍦ㄧ▼搴忓紑鍙戜腑锛屾枃瀛楃紪鐮佷竴鐩存壆婕旂潃浜虹暅鏃犲锛屽嵈鑳屽悗鎹呬竴鍒€鐨勮鑹层€�鍙兘鍦ㄦ簮浠g爜鏂囦欢涓紝娉ㄩ噴鑾悕鍏跺鍦板彉鎴愪簡涔辩爜銆�鍙兘鏄彂閫佺粰鍒......
  • 独热编码(One-Hot Encoding)
    一、独热编码出现之前:针对无序离散的分类特征,机器学习算法的分类器并不能直接进行数据处理。因为,分类器通常处理的数据是连续且有序的。但是我们可以对这些离散的特征数据建立映射表来让其有序并且连续起来。例如:针对一个人对象,我们可以假设其属性进行了如下映射。性别特征:["男"......
  • 【数据结构】哈夫曼树的构建和哈夫曼编码
    说明本篇为笔者学习随记,供学习和复习使用结构体定义typedefstruct{ intweight=0; intparent=0,lchild=0,rchild=0;}HTNode;此处=0可使结构体在构建时就自动初始化typedefchar**HuffmanCode;把多重指针换成HuffmanCode 哈夫曼树的构建构建思路:a)初始化哈夫......
  • Dedecms备份的数据文件位置及备份数据库的方法
    备份数据文件的位置Dedecms备份的数据库文件通常保存在以下目录中:  /dede/backup_data/用织梦DEDECMS后台备份数据库的方法第一种方法登录原站后台登录到您的Dedecms后台管理界面。备份数据库进入“系统”->“数据库备份/还原”。选择需要备份的表,建议......