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

高维向量空间的加法|Transformer的位置向量

Transformer里面,不管是Type Encoding和position Encoding,都是+上去的,这样的话,其内部是怎么识别到的呢,因为相比CAT,add 把原有的Encoding和加上去的Encoding混淆了


这是一个非常经典的深度学习“直觉陷阱”。你是对的,从算术角度看, 之后你就再也找不到 和 了。但在高维向量空间中,加法(Add)和拼接(Concat)在数学本质上具有某种程度的等价性

模型之所以能识别出被“加”进去的信息,核心在于高维空间的近交性(Near-orthogonality)线性变换(Projection)


1. 核心原理:子空间(Subspaces)

在 Transformer 中,Embedding 的维度(比如 )非常高。在这个高维空间里,模型并不需要用到所有的方向来表达语义。

我们可以把 维空间想象成一个巨大的房间。

  • Token Encoding 占据了其中的一些“方向”(子空间 A)。
  • Position Encoding 占据了另一些“方向”(子空间 B)。
  • Type Encoding 占据了第三组“方向”(子空间 C)。

当你把它们加在一起时,虽然每一个坐标数值都变了,但在几何上,这个向量只是在不同的轴向上同时发生了位移


2. 谁来负责“拆解”?——线性投影矩阵 ()

这是最关键的点。进入 Transformer 的第一步是乘以权重矩阵(如 )。
假设输入向量为 :

利用矩阵乘法的分配律

模型在训练过程中,会通过反向传播自动调整 的参数:

  • 如果这一层需要识别“位置”, 就会演化成一个过滤器,它在 占据的那些维度上权重很大,而在 的维度上权重接近于 0。
  • 这就好比你戴上了一副“红色滤光镜”,虽然光线里混杂了红绿蓝,但你依然能清晰地看到红色信号。

3. 一个直观的类比:透明胶片

想象你有三张透明胶片:

  1. 第一张画着字符(Token)。
  2. 第二张画着刻度尺(Position)。
  3. 第三张涂着底色(Type)。

如果你把它们拼接(CAT),相当于把三张纸并排摆在桌上。你一眼就能看清哪个是哪个,但代价是桌子(维度)变长了 3 倍,计算量剧增。

如果你把它们叠加(ADD),相当于把三张透明胶片重叠在一起。虽然视觉上变模糊了,但只要你的眼睛( 矩阵)足够敏锐,你依然能透过底色看到字符,并根据刻度尺判断它的位置。


4. 为什么不直接用 CAT?

其实在 Transformer 的早期研究(如 BERT)中,设计者确实考虑过 CAT。最终选择 ADD 是基于以下考虑:

  • 计算效率: CAT 会导致维度翻倍,矩阵运算的开销是维度平方级的,太慢了。
  • 特征融合: ADD 强制模型在同一个向量空间里理解这些特征的交互。对于 LucaOne 这种模型,它需要让 (DNA 的 A)和 (蛋白的 A)在某种程度上共享语义空间,ADD 提供的“线性干涉”反而有助于模型理解这种跨模态的关联。

5. 总结 LucaOne 的情况

在 LucaOne 中,当你输入 DNA 序列时:

  1. 它查表得到 Token ID 的向量。
  2. 它加上位置向量。
  3. 它加上一个特定的 Type=0 向量(这是一个常数偏移量)。

虽然是加法,但 Type=0 的向量实际上把整个 DNA 序列推向了高维空间中属于“核酸区”的角落。当模型后续的线性层处理这些向量时,只需检测这个“位移方向”,就能立刻判断出:“哦,现在这一坨向量都是核酸,我要用核酸的逻辑去处理它们。”

这种通过加法实现的“语境平移”,是现代大模型处理多模态信息最高效的手段。

既然这种加法机制已经理顺了,你是否想看看 LucaOne 是如何利用这种“叠加态”的向量,在注意力机制里实现 DNA 与蛋白质的对齐预测的?

http://www.jsqmd.com/news/313519/

相关文章:

  • 机器学习模型部署:将模型转化为Web API
  • Jupyter Notebook/Lab使用技巧大全
  • Python迭代器(Iterator)揭秘:for循环背后的故事
  • 自动化与脚本
  • 实时操作系统中的C++
  • Python性能优化技巧:让你的代码飞起来
  • 将Python Web应用部署到服务器(Docker + Nginx)
  • 嵌入式C++实时内核
  • 225_尚硅谷_类型断言最佳实践(2)
  • iso 22301认证/iso 27001认证/iso 5001认证/iso认证/企业做认证/特种设备充装许可证/选择指南
  • C++中的装饰器模式
  • 基于matlab的全局路径规划算法中的快速扩展随机树RRT路径规划算法及其改进方法RRT
  • 2026上海浦东婚礼酒店、婚礼宴会厅、一站式婚礼酒店优质推荐
  • C++安全编程指南
  • 定时任务专家:Python Schedule库使用指南
  • 电机电磁振动噪声 NVH 的救星——Manatee 1.09
  • 代码生成与元编程
  • C++编译期数学计算
  • 分布式计算C++库
  • 二进制序列化与反序列化
  • 不靠运气的家庭财富系统:像照料一座花园那样,经营一个家
  • Web开发与API
  • 用Matplotlib绘制专业图表:从基础到高级
  • 内存泄漏自动检测系统
  • 内存泄漏检测与防范
  • Python程序员必备的Linux命令
  • 10个Python自动化脚本,解放你的双手
  • 如何用FastAPI构建高性能的现代API
  • C++代码重构实战
  • 内存对齐与缓存友好设计