🌈Transformer说人话版(一)先弄懂向量【持续更新ing】

0 阅读15分钟

🟡世界的语言——向量

人工智能的核心挑战,在于将人类世界中海量的、非结构化的信息——文字、图像、声音——翻译成机器能够进行计算的符号。在所有可能的数学对象中,向量就成为了这门通用语言的基石,将世间万物映射为这个空间中特定坐标点。 将万物向量化的根本目的,是为了将模糊的“语义”问题,转化为精确的“几何”问题。一旦完成映射,我们就能用线性代数对概念进行前所未有的操作。真的兄弟们,好好学线代,好好学线代.......

  • 距离与角度: 向量间的欧氏距离或夹角(余弦相似度),直接对应着现实世界中概念的相似性
  • 向量运算: 向量的加减法能够捕捉概念间的类比关系,最经典的例子莫过于 国王-男人+女人=王后
  • 空间变换: 通过矩阵乘法对向量进行旋转、缩放等变换,是神经网络进行特征提取和信息处理的本质。

不过我不是教你数学,写这个文章主要是从一个RAG工程师的视角让你知道RAG里你必须了解的两种向量

  1. 语义向量:稠密向量Embeddings
  2. 检索向量:稀疏向量IR

🟡第一章:One-Hot 稀疏向量

理解一个物种的进化,先从它的祖先开始。One-Hot向量就是现代向量表示技术的祖先,它的目的就是产生一个绝对的身份标识,注意我的话:他是以一种毫无歧义、也毫无意义的方式标识出其中一个成员的身份。在NLP的语境下,这个集合就是整个项目的词汇表(Vocabulary)。

  • 维度: 就是词汇表的总大小。这是一个巨大的数字,通常在3万到10万之间,全球所有能见到的token
  • 数值: 向量中仅有一个元素的值为1,其余所有V-1个元素的值均为0
  • 映射: ID为1998的元素所在的索引对应于该词在词汇表中的唯一ID。这个ID是固定的,是预定义的

🔘表示单位:独立的词(Token)

这是理解One-Hot向量的关键之一。它的基本表示单位是单个词。因此,一个包含N个词的句子,在理论上会被看作是一个由N个独立的One-Hot向量组成的序列。

假设一个词汇表大小为 V=50,000
且有如下固定的ID分配: {"apple": 25, "macbook": 1024, "releases": 4800}

  • one_hot("apple") 是一个50,000维的向量,仅在第25个索引位为1
  • one_hot("macbook") 是一个50,000维的向量,仅在第1024个索引位为1

句子 "apple releases macbook" 在输入层面,会被表示为三个独立的、50,000维的One-Hot向量。它本身不是将句子聚合为一个统一的表示。

🔘致命缺陷:语义真空

维度与计算灾难
巨大的维度带来了天文数字般的存储和计算开销。而且这种极度的稀疏性使得模型难以从中学习到有效的模式。

语义真空
这是其理论上的死穴。在V维的向量空间中,任意两个不同词的One-Hot向量在几何上都是正交的。这意味着它们的点积恒为0。所有的词在语义上都是“等距”的、孤立的岛屿。这使得有意义的语义学习从一开始就无法进行。由于正交性,One-Hot向量之间的点积交互失去了意义。

  • 内部交互: 在一个句子表示中,计算不同词的One-Hot向量的点积,结果恒为0,无法提供任何关于词序或依赖关系的信息。
  • 外部交互: 用一个词的One-Hot向量去匹配另一个词的One-Hot向量,除了完全相同的词点积为1外,其他所有情况点积都为0,无法实现任何形式的相似度匹配。

🔘意义(意义就是让你知道它为啥落后)

One-Hot向量是一个纯粹的理论构建,它在现代AI系统中无任何直接应用。学习它的唯一目的,是为了深刻理解它所暴露出的核心问题——高维、稀疏、无语义——从而明白所有后续的向量技术,尤其是稠密Embedding,究竟是为了解决什么而诞生。

🟡第二章:稠密向量Embeddings

稠密向量,或称嵌入Embeddings,是现代AI的真正基石。作为一个:低维 + 实值 + 非稀疏 的向量。其核心使命,是在一个远低于词汇表维度的、连续的向量空间中,以一种分布式的方式,捕捉并表示输入对象的深层语义。

  • 维度: 一个可调节的超参数,远小于V。典型值为 256, 768, 1024
  • 数值: 向量中的绝大部分元素都是非零的浮点数。与One-Hot只有一个“1”不同,稠密向量的“意义”分布在所有维度上。每个维度都代表一个由模型在海量数据中自动学习到的、人类难以直接命名的抽象语义特征。

稠密向量的精髓在于,它不是通过固定公式计算的,而是作为神经网络中可被优化的、可学习的参数而存在。

在PyTorch等框架中有个nn.Embedding层,这层在内部维护着一个巨大的权重矩阵 W_E,其形状为 V x d(词汇表大小 x 嵌入维度)。你可以把它想象成一个巨大的、有V行、d列的表格。当输入一个词的ID(例如7543)时,该层不会进行任何复杂的矩阵乘法,而是直接、高效地从矩阵W_E查找并提取出第7543行。这一行,就是一个d维的稠密向量。这个操作在数学上等价于用该词的One-Hot向量与W_E矩阵相乘,但实现上优化为了简单的查表。模型训练过程中,基于任务的损失(Loss),梯度会通过反向传播算法流回nn.Embedding层,并持续微调W_E矩阵中的所有V x d个值。这个过程的目标,就是将语义上相近的词,在d维空间中的几何位置也拉得更近。

🔘表示单位:独立的词

尽管在形态和内涵上天差地别,稠密Embedding向量与One-Hot向量共享一个至关重要的共同点:它的基本表示单位依然是单个词(Token)。一个包含N个词的句子,在被送入Transformer等模型的初始阶段,依然被表示为一个由N个独立的稠密向量组成的序列。

🔘核心优势:语义关系的几何化

稠密向量的最大成就,是成功地将语言中模糊的“语义关系”,映射为了向量空间中精确的“几何关系”。向量空间中的距离(如欧氏距离)或角度(余弦相似度)能够直接、有效地度量现实世界中的语义相似度。而向量间的加减运算能够捕捉类比关系,实现了语义的代数化。

🟡第三章:信息检索(IR)稀疏向量

IR稀疏向量是信息检索(IR)领域的东西,但是在深度学习时代,它非但没有消失,反而在以RAG为代表的系统中,作为“词法检索”的模块焕发了新的生机。必须强调,它与One-Hot向量虽然形态相似(高维、稀疏),但其定义、构造和使命完全不同。

IR稀疏向量是为一篇完整的文档或一个查询,构建一个词汇构成的指纹,并为指纹中的每个词汇赋予其重要性权重

  • 维度: 与One-Hot向量相同,直接等于词汇表总大小。这是它们唯一的、也是导致混淆的共同点
  • 数值: 向量中大部分元素为0非零元素的位置对应于文档中出现的词。这些非零值是特定统计算法计算出的、代表该词对这篇文档重要性的实数权重。

IR向量的值并非通过神经网络学习,而是通过经典的、确定性的统计算法计算得出,最主流的算法是TF-IDF及其现代演进版本BM25

  • TF : 一个词在当前文档中出现的频率。一个词出现次数越多,可能越重要。
  • IDF: 一个词在整个文档库中出现频率的倒数。一个词在所有文档中越罕见,它的区分度就越高,也就越重要。
  • Weight ≈ TF * IDF。这个权重定量地描述了一个词对于唯一标识一篇文档的贡献度。
  • BM25: 在TF-IDF的基础上,引入了对文档长度的惩罚(过长的文档不应仅因为包含更多词而获得更高分)等优化

🔘表示单位:文档(与前两者的根本区别)

这是IR稀疏向量最独特、也最需要被牢记的属性。它的基本表示单位是整个文档/句子

  • 一个包含N个词的句子,从始至终只被表示为一个统一的、V维的IR稀疏向量。
  • 在这个表示体系中,句子中的词,如“apple”或“macbook”不再是独立的向量实体。它们变成了这个V维向量空间中的一个个维度。这个文档向量在这些维度上的投影值,就是这些词的权重。

文档: "apple releases new apple macbook"

  • 假设词典大小: V=50,000(这篇文章总共50000字),这个句子才5个token,而且还一个重复的,总共4个ID
  • 计算出的BM25权重: {"apple": 2.5, "releases": 0.8, "new": 0.6, "macbook": 3.1}
  • 这个文档的IR稀疏向量是一个50,000维的向量,仅在apple, releases, new, macbook这四个词对应的索引上有2.5, 0.8, 0.6, 3.1等非零值,其余49,996个维度上的值均为0.0。

当查询包含必须严格匹配的术语、产品型号、代码函数名、人名地名等硬性关键词时,它的作用无可替代。它虽然不理解语义,但它对词汇的精确性和重要性有着无与伦比的洞察力。

🟡第四章:向量的交互——点积、注意力与检索

一个向量的静态表示只是故事的一半,它的真正价值体现在交互之中。在AI模型内部,向量的交互语言主要是点积,两个向量的点积与它们长度的乘积以及它们夹角的余弦成正比 (ab=abcos(θ))(a · b = |a| |b| cos(θ))。因此,点积是衡量两个向量对齐程度、相似性或相关性的最基本运算。

🔘One-Hot的交互:死寂的正交空间

由于任意两个不同词的One-Hot向量都是正交的 (cos(90°) = 0),它们的点积恒为0。这意味着在这个空间里,任何点积交互都无法产生有意义的信号**,无法区分任何语义关系。这是一个无法进行有意义计算的死寂空间。

🔘IR稀疏向量的交互:面向外部的精确匹配

  • 内部交互: 不适用。由于一个文档只有一个IR向量,其内部不存在“词向量”的概念,因此不存在内部向量间的交互。
  • 外部交互: 这是IR向量存在的唯一目的。通过计算一个词法匹配分数。这个点积操作高效地、并行地累加了查询和文档所共有的关键词的权重乘积,数越高,意味着文档在字面上与查询越匹配,且匹配上的词越重要。

🔘稠密向量的交互:内外兼修

内部交互→ 自注意力机制

在处理一个句子时,让每个词都能“看到”并理解其与句子中其他所有词的关系。 将一个句子表示为一系列独立的词Embedding向量后,自注意力机制为每个词向量生成三个“分身”:QKV。一个词的Q向量,会与句子内部所有其他词的K向量进行点积。

外部交互

  1. 模式一:语义检索

在RAG中,用一个查询向量在海量文档向量中寻找最相似的内容。

  1. 模式二:交叉注意力

在Encoder-Decoder架构中(如机器翻译),让解码器在生成内容时能够参考源信息。正在生成的目标词(来自Decoder)的Q向量,与所有源文档中的词(来自Encoder)的K,V向量进行点积。允许生成模型在产出每个新词时,动态地、有选择地“回头看”源信息,并决定当前最应该关注源信息的哪个部分,实现了信息的有效对齐和传递。

  1. 模式三:最终预测生成

语言模型生成下一个词的最后一步,需要从模型的内部表示空间映射回离散的词汇表空间。模型在计算完所有层后,会为下一个待预测的token生成一个最终的上下文向量 。这个向量会与整个Embedding表的权重矩阵 进行一次大规模的点积运算。

🟡第五章:RAG架构混合检索

作为RAG工程师,你的核心任务就是设计、实现并优化检索系统,以向大型语言模型提供最高质量的上下文。这意味着你必须成为指挥IR稀疏向量和稠密向量协同作战的专家。

🔘混合检索的必要性

纯稠密检索(语义)的缺陷:

对于包含必须精确匹配的关键词(产品型号RTX 4090、错误码0x80070005、函数名torch.nn.functional.cross_entropy)的查询,语义模型可能会因为过度泛化而召回不精确的结果,导致“幻觉”或事实性错误。

纯稀疏检索(词法)的缺陷

完全无法理解同义词、近义词或概念转述。对于查询“苹果公司最新的笔记本电脑怎么样?”,它会完全错过一篇标题为“MacBook Pro M4深度评测”的权威文章,导致关键信息的丢失和“召回率”的低下。

🔘混合检索的标准架构

查询: "评估苹果公司新发布的M4芯片的性能"

  1. 并行检索: 查询被同时送入两个独立的检索管道。

    • 稀疏检索管道:
      • 索引: 一个预先构建好的、支持BM25算法的倒排索引,例如由Elasticsearch
      • 过程: 将查询转换为一个包含"M4", "芯片", "性能"等高权重词的IR稀疏向量,执行的关键词检索。
      • 产出: 一个按词法匹配分数排序的文档列表 稀表
    • 稠密检索管道:
      • 索引: 一个预先构建好的向量数据库索引,例如由FAISS或Milvus提供,存储了所有文档的稠密向量。
      • 过程: 使用一个嵌入模型将查询编码为一个d维的稠密向量,去库里执行高效的近似最近邻搜索。
      • 产出: 一个按语义相似度分数排序的文档列表 稠表
  2. 融合与重排 (Fusion & Reranking):

    • 问题: 稀表和稠表的得分是异构的,无法直接比较。
    • 咋整: 采用一个融合算法(RRF),将两个列表合并成一个最终列表。 (RRF)是当前最常用且效果稳健的无参数融合算法。它的思想极其简单:一个文档的最终分数,是它在各个列表中的排名的倒数之和 ,所以RRF不关心原始分数,只关心排名,因此能公平地结合两种异构源,且倾向于将同时出现在两个列表前排的文档给予最高权重。
    • 产出: 一个经过重排的、兼具关键词精度和语义广度的最终文档列表 。

其实你要是了解熵权法,就会发现思想差不多,RRF和熵权法均不直接依赖原始得分的具体数值(即“无视量纲”),但RRF仅基于排名位置计算融合分数,而熵权法通过标准化消除量纲影响后,基于信息量分配权重。

  1. 上下文提供: 将L_final中的Top-K个文档的内容拼接起来,作为最终的上下文,喂给大型语言模型进行阅读理解和答案生成。

©唐山市环境科学规划研究院

唐山市环境规划科学研究院(唐山市生态环境宣传教育中心)是唐山市生态环境局直属的事业单位。我院以科学研究为主体、技术服务为支撑,创新发展模式,注重发展质量,历经唐山市环保事业发展的各个阶段。以“为生态环境保护提供技术服务”为宗旨,开展大气、双碳、水、海洋、土壤、固废、噪声、规划、排污许可等多个领域的研究及成果运用,在生态规划编制、重污染天气应急、减污降碳、水(海洋)资源分析、土壤污染调查、EOD项目、无废城市、企业诊所、环保管家、智慧环保平台开发等方面持续深耕,为生态环境保护提供系统化解决方案。

由作者个人全栈开发的垂直模型系统:唐山小环,是一个知识图谱+混检的双擎多模态RAG系统,专注于环保领域,现位于河北省科技厅持续展示,欢迎相关从业者咨询我院。