跳到主要内容

Embedding 基础原理

问题

Embedding 是如何将文本转换为向量的?从 Word2Vec 到现代 Embedding 模型经历了哪些演进?

答案

一、文本表示演进

阶段模型特点
One-Hot维度 = 词表大小,无语义信息
Word2VecCBOW / Skip-gram固定维度,捕捉语义关系
GloVe全局共现矩阵结合全局统计信息
ELMoBiLSTM上下文相关词向量
BERTTransformer Encoder深度上下文理解
现代模型多任务对比学习专为检索优化

二、Word2Vec 核心思想

核心假设:语义相似的词出现在相似的上下文中。

// Skip-gram: 用中心词预测上下文
输入: "猫" → 预测: "可爱", "宠物", "毛茸茸"

// CBOW: 用上下文预测中心词
输入: "可爱", "宠物", "毛茸茸" → 预测: "猫"

训练后产生的向量具有语义运算性质:

KingMan+WomanQueen\vec{\text{King}} - \vec{\text{Man}} + \vec{\text{Woman}} \approx \vec{\text{Queen}}

三、现代 Embedding 模型训练

现代文本 Embedding 模型(如 BGE、E5、GTE)通常使用对比学习训练:

InfoNCE 损失函数

L=logesim(q,p+)/τi=0Nesim(q,pi)/τ\mathcal{L} = -\log \frac{e^{\text{sim}(q, p^+)/\tau}}{\sum_{i=0}^{N} e^{\text{sim}(q, p_i)/\tau}}

四、从词向量到句子向量

方法原理质量
词向量平均对所有词的 Embedding 取平均
TF-IDF 加权平均重要词权重更高
BERT [CLS]取 BERT 输出的 [CLS] 向量中(未优化)
Sentence-BERT孪生网络 + 对比学习
现代模型(BGE/E5)大规模对比学习训练最高

常见面试问题

Q1: Word2Vec 和 BERT Embedding 的本质区别?

答案

  • Word2Vec静态——一个词只有一个向量,"bank"(银行/河岸)无法区分
  • BERT上下文相关——同一个词在不同句子中有不同向量
  • 现代 Embedding 模型基于 BERT 架构,但专门为句子级语义理解优化

Q2: Embedding 维度一般多大?

答案

  • 常见维度:256、512、768、1024、1536、3072
  • 维度越高:表达能力越强,但存储和计算成本越大
  • 实践建议:768-1024 是性价比最高的区间

相关链接