Embedding

This article is extracted from the chat log with AI. Please identify it with caution.

好的,我们来深入探讨 Embedding,这是现代 AI 尤其是 NLP 领域的核心基石。

第一部分:Embedding 详解#

1. 什么是 Embedding?#

Embedding(嵌入) 是一种将高维、离散、稀疏的符号(如单词、产品、用户 ID)映射到低维、连续、稠密的向量空间中的技术。

简单来说,它就是为每一个对象(如一个词)学习一个数值向量,这个向量被认为是该对象在某个语义空间中的“坐标”

2. 核心思想与哲学#

Embedding 的核心假设是 “分布式假说”一个词的语义由其上下文决定。意思相近的词,往往会出现在相似的上下文中。

因此,Embedding 的目标是:在向量空间中,语义或功能相似的物体,其对应的向量在空间中的位置也应当接近。 这种接近度通常通过余弦相似度或欧氏距离来衡量。

3. Embedding 是如何工作的?(以 Word2Vec 为例)#

虽然现代方法更复杂,但 Word2Vec 的原理最能直观展示 Embedding 的学习过程。它有两种主要模型:

a) CBOW(连续词袋模型)

  • 任务:通过上下文词预测中心词。
  • 输入:中心词周围多个词的 One-Hot 向量。
  • 输出:预测中心词的 One-Hot 向量。
  • 过程:神经网络中间会生成一个隐藏层,这个层的权重矩阵就是我们想要的 Embedding 矩阵。模型训练的目标是让预测的中心词概率尽可能准确,在这个过程中,语义相似的上下文会迫使模型学到相似的向量来表示它们。

b) Skip-gram

  • 任务:通过中心词预测上下文词。
  • 输入:中心词的 One-Hot 向量。
  • 输出:预测周围多个词的 One-Hot 向量。
  • 过程:与 CBOW 相反,它用一个词来预测其上下文。同样,在训练过程中,具有相似上下文的词会得到相似的向量表示。

关键点:模型本身(用于预测下一个词)可能并不是我们最终想要的,但训练过程中产生的 “副产物”——权重矩阵,即 Embedding 向量——才是我们真正的目标

4. Embedding 的神奇特性#

Embedding 向量不仅能表示词语,还能捕捉复杂的语义和语法关系,这些关系可以通过向量运算来体现:

  • 语义相似性向量(国王)向量(君主) 的余弦相似度会很高。
  • 类比关系:最著名的例子:
    • 向量(国王) - 向量(男人) + 向量(女人) ≈ 向量(王后)
    • 向量(巴黎) - 向量(法国) + 向量(德国) ≈ 向量(柏林)
    • 向量(走) - 向量(慢) + 向量(快) ≈ 向量(跑)

这证明 Embedding 空间是一个结构良好的语义空间,而非随机的数值集合。


第二部分:现代的 Embedding 解决方案#

现代的 Embedding 技术已经远远超越了静态的 Word2Vec,发展出了更强大、更复杂的解决方案。可以分为以下几类:

1. 静态词嵌入(Static Word Embeddings)#

这类嵌入为每个词分配一个固定的向量,与上下文无关。

  • Word2Vec: 如上所述,是时代的开创者。
  • GloVe: 斯坦福大学开发。结合了 Word2Vec 的局部上下文窗口和全局矩阵分解(统计整个语料库的词共现信息)的优点。
  • FastText: 由 Facebook 开发。其核心创新是引入子词信息,将单词视为字符 n-gram 的集合。这使得它能更好地处理罕见词形态丰富的语言(如德语、土耳其语),即使一个词没在训练语料中出现,也能通过其子词组合出合理的向量。

适用场景:快速基线、计算资源有限、不需要深度理解上下文的任务。

2. 上下文词嵌入(Contextual Word Embeddings)#

这是当前的主流。这类模型会根据单词在句子中的具体上下文,为同一个词生成不同的向量。

  • ELMo: 一个里程碑。它使用双向 LSTM,从左到右和从右到左分别读取句子,然后将两个方向的表示结合。因此,“苹果”在“吃苹果”和“苹果公司”中会有不同的向量。
  • BERT 及其家族: 革命性的模型,基于 Transformer 架构。
    • BERT: 通过“掩码语言模型”进行训练,即随机遮盖句子中的词并预测它。它能生成深度的、上下文相关的词嵌入。通常取最后一层或最后几层的输出作为词的嵌入。
    • RoBERTa, ALBERT, DeBERTa: 都是 BERT 的变体,在训练方法、模型结构上进行了优化,性能更强。
  • GPT 系列: 同样基于 Transformer,但采用自回归(从左到右)的方式训练。虽然主要用于文本生成,但其内部隐藏状态同样是非常强大的上下文嵌入。

适用场景:几乎所有现代 NLP 任务,如情感分析、问答系统、语义相似度计算等。

3. 句子/文档嵌入(Sentence/Document Embeddings)#

目标是将整个句子或段落表示为一个单一的向量。

  • 平均池化: 最简单的方法,对一个句子中所有词的 Embedding 取平均值。
  • USE: 谷歌发布的通用句子编码器,专门为生成句子级嵌入而训练,可用于计算句子相似度。
  • Sentence-BERT: 对 BERT 进行修改,使用孪生网络结构,通过监督学习(如自然语言推理数据)来微调,使其生成的句子嵌入可以直接用于余弦相似度计算,效率远高于用原始 BERT 计算。
  • SimCSE: 一种简单的对比学习框架,通过“自降噪”来学习高质量的句子嵌入,效果非常出色。

适用场景:语义搜索、文本聚类、文档检索。

4. 多模态嵌入(Multimodal Embeddings)#

将不同模态的信息(如文本和图像)映射到同一个向量空间中。

  • CLIP: 由 OpenAI 发布。它同时训练一个图像编码器和一个文本编码器,目标是让匹配的(图像,文本)对的嵌入尽可能相似,不匹配的尽可能不相似。这使得我们可以用文本直接搜索图像,或者用图像来搜索文本。
  • AudioCLIP: 将 CLIP 扩展到了音频领域。

适用场景:跨模态搜索、图像描述生成、多模态内容理解。

5. 专用领域嵌入(Specialized Embeddings)#

针对特定领域或任务训练的嵌入。

  • 代码嵌入: 如 CodeBERT,在大量代码上训练,可以理解编程语言的语法和语义,用于代码搜索、补全、漏洞检测等。
  • 知识图谱嵌入: 如 TransE,将知识图谱中的实体和关系映射到向量空间,用于链接预测、知识推理。
  • 推荐系统嵌入: 为用户、商品、电影等 ID 学习嵌入,用于计算相似度和进行推荐。

总结与趋势#

类型代表模型核心特点适用场景
静态词嵌入Word2Vec, GloVe与上下文无关,一个词一个向量快速原型、资源受限
上下文词嵌入BERT, ELMo与上下文相关,一词多义现代 NLP 各项任务
句子嵌入Sentence-BERT, SimCSE整个句子的单一向量表示语义搜索、文本聚类
多模态嵌入CLIP不同模态在统一空间跨模态检索、理解
专用嵌入CodeBERT针对特定领域优化代码分析、推荐系统

当前趋势:

  1. 规模化: 模型和嵌入的维度越来越大,性能也越来越强。
  2. 专业化: 为特定垂直领域(法律、医疗、金融)训练专用嵌入。
  3. 多模态化: 打通文本、图像、音频、视频的界限,实现真正的多模态理解。
  4. 从“表示学习”到“理解与生成”: 嵌入不再是最终目标,而是大型语言模型(LLM)内部理解世界的基础表示,最终服务于复杂的推理和生成任务。

Embedding 技术是连接离散符号世界与连续数值世界的桥梁,是让机器“理解”人类信息的基石,其发展和应用仍在飞速演进中。

本文共 2617 字,创建于 Oct 22, 2025

相关标签: LLM, NLP, Algorithms, ByAI, Tokenizer, 机器学习