[笔记.AI]初始向量

发布于:2025-03-30 ⋅ 阅读:(29) ⋅ 点赞:(0)

(借助 DeepSeek-V3 辅助生成) 

初始向量的生成方式

在自然语言处理(NLP)中,初始向量是指模型在处理输入文本时,将每个 Token(如词、子词或字符)映射到高维向量空间的起点。这些初始向量是模型训练的基础,它们的生成方式直接影响模型的收敛速度和最终性能。以下是初始向量的核心生成方法及其技术细节:


1. 随机初始化

这是最基础的初始化方式,适用于从头开始训练模型的场景。
具体步骤

  1. 嵌入层(Embedding Layer):模型会预先定义一个嵌入矩阵(Embedding Matrix),其大小为 [词汇表大小 × 嵌入维度]。例如,若词汇表包含 50,000 个 Token,嵌入维度为 768,则矩阵形状为 [50000, 768]

  2. 随机采样

    • 每个 Token 对应的初始向量从某种概率分布中随机采样,常见的分布包括:

      • 正态分布:均值为 0,方差较小(如 0.02),例如 torch.randn(dim) * 0.02

      • 均匀分布:在区间 [-a, a] 内均匀采样,例如 PyTorch 默认的均匀初始化。

  3. 数值示例

    • 假设 Token "苹果" 的初始向量可能是 [0.12, -0.34, 0.56, ..., 0.78](维度为 768)。

特点

  • 完全无先验知识,依赖后续训练学习语义。

  • 适用于大规模预训练模型(如 GPT、BERT 的初始训练阶段)。


2. 预训练词向量加载

在某些场景中,模型会直接加载预训练的词向量(如 Word2Vec、GloVe)作为初始值,以加速训练或提升效果。
具体步骤

  1. 预训练词向量库

    • 使用公开的词向量库(如 Word2Vec 的 Google News 300 维向量,或 GloVe 的 50/100/200/300 维向量)。

  2. 对齐词汇表

    • 将当前模型的词汇表与预训练词向量库的词汇表对齐,未对齐的 Token 仍随机初始化。

  3. 冻结或微调

    • 冻结:保持预训练向量不变,仅训练模型其他部分(适用于小数据集)。

    • 微调:允许预训练向量在训练中更新(更灵活但需更多数据)。

示例

  • 在训练一个文本分类模型时,加载 GloVe 的 300 维词向量作为初始嵌入,使模型从已有语义知识开始学习。

特点

  • 利用已有语义信息加速收敛。

  • 适用于数据量较少或领域特定的任务(如医疗文本分类)。


3. 位置编码(Positional Encoding)的叠加

在 Transformer 架构中,初始向量还需叠加 位置编码(Positional Encoding),以赋予模型感知 Token 顺序的能力。
生成方式

固定编码(如原始 Transformer)

  • 使用正弦和余弦函数生成位置编码,公式为:

                PE_{(pos,2i)}=sin(\frac{pos}{10000^{2i/d}})

                PE_{(pos,2i+1)}=cos(\frac{pos}{10000^{2i/d}})

  •  其中 pos 是位置序号,i 是维度索引,d 是嵌入维度。

可学习编码

  • 将位置编码作为可训练参数(如 BERT),在训练中动态调整。

示例

  • Token "苹果" 在句首和句中的位置不同,其最终初始向量 = 词嵌入向量 + 位置编码向量

特点

  • 固定编码无需训练,节省算力;可学习编码更灵活。


4. 分词方式对初始向量的影响

不同的分词方法(如 WordPiece、BPE、SentencePiece)会改变 Token 的粒度,从而影响初始向量的数量和语义划分:

  • WordPiece(BERT):将罕见词拆分为子词(如 "unhappy" → ["un", "##happy"]),每个子词有独立向量。

  • BPE(GPT):通过统计合并高频子词(如 "low" 和 "lower" 共享 "low" 的向量)。

  • 字符级分词:每个字符单独向量化(适用于中文等无空格语言)。

示例

  • 对中文句子 "深度学习",BPE 可能拆分为 ["深", "度", "学", "习"],而 WordPiece 可能拆分为 ["深", "度学", "习"],导致初始向量不同。


5. 初始向量的训练与优化

初始向量并非固定不变,而是在训练过程中通过反向传播不断调整:

  1. 前向传播:输入 Token 通过嵌入层获取初始向量。

  2. 损失计算:根据任务目标(如预测下一个词、分类)计算误差。

  3. 反向传播:梯度回传到嵌入层,更新嵌入矩阵中的数值。

优化目标

  • 使语义相似的 Token 在向量空间中靠近(如 "猫" 和 "狗" 的向量距离较近)。

  • 使同一词在不同上下文中的向量动态变化(如 BERT 的 "银行" 在 "存钱" 和 "河岸" 中的不同表示)。


总结:初始向量的核心意义

维度 说明
技术本质 将离散符号映射到连续向量空间,为模型提供可计算的语义起点。
核心方法 随机初始化、预训练词向量加载、位置编码叠加。
关键影响 影响模型收敛速度、语义表示质量、多任务泛化能力。
实际应用 需根据任务需求选择初始化策略(如大数据集用随机初始化,小数据集用预训练)。

通过合理设计初始向量,模型能够更高效地学习语言规律,这也是大模型(如 GPT-4、LLaMA)成功的关键基础之一。


网站公告

今日签到

点亮在社区的每一天
去签到