从 Word2Vec 到多模态:词嵌入技术的演进全景

从 Word2Vec 到多模态:词嵌入技术的演进全景

用直观的方式,讲清楚嵌入模型每一代是如何工作的,以及它们为什么被发明出来。


引言:把世界翻译成数字

想象你要向一个外星人介绍地球上的所有东西------桌子、苹果、音乐、悲伤的感觉。外星人听不懂中文或英文,它只懂数字

"嵌入"(Embedding)就是把人类理解的东西翻译成一组数字 ,让计算机能够处理它们。关键技巧是:意思相近的东西,它们的那组数字也要相近

整个嵌入模型的历史,就是"怎么把意思翻译成一串数字"的进化史。这篇文章将带你走过从 2013 年到 2026 年的技术演进路线。


第一阶段:静态词嵌入(2013-2018)

为什么需要词嵌入?

在词嵌入出现之前,文本用"独热编码"(One-Hot Encoding)表示:

复制代码
"猫" → [0, 0, 0, 1, 0, 0, ...]
"狗" → [0, 1, 0, 0, 0, 0, ...]

这种方式有三个致命问题:

  1. 维度灾难:词汇表通常是 10 万~300 万维,极其稀疏
  2. 语义鸿沟:任意两个词的向量正交,"猫"和"狗"的相似度为 0
  3. 无法泛化:模型无法从"猫吃鱼"泛化到"狗吃肉"

词嵌入将每个词映射为一个低维稠密向量(通常 100~300 维),语义相近的词在向量空间中距离更近。

Word2Vec --- 用上下文猜词

核心假设:一个词的含义由它的上下文决定(Distributional Hypothesis)。

Word2Vec 像一个用"放大镜"(滑动窗口)读书的学生。它用一个窗口从左到右扫描语料库,每次看几个词,任务是:给你中间的词,猜它周围是什么词

复制代码
"我每天早上喝一杯热 _____"

根据"我""每天""早上""一杯""热",猜出横线处应该是"咖啡"或"茶"。它读了几十亿个这样的句子,渐渐学会了:"咖啡"和"茶"经常出现在相似的场景中 → 所以它们的向量应该很接近。

Word2Vec 有两种架构:

方式 意思 训练速度 擅长
Skip-Gram 从中心词猜周围词 较慢 罕见词,向量质量高
CBOW 从周围词猜中心词 较快 常见词

训练完成后,我们把整个神经网络扔掉,只保留隐藏层那 300 个数字------那就是每个词的嵌入向量。

神奇的效果:词向量之间可以做数学运算:

复制代码
"国王" - "男人" + "女人" ≈ "女王"
"巴黎" - "法国" + "意大利" ≈ "罗马"

局限:每个词只有一张"名片"。"苹果"在水果摊和手机店里的意思完全不同,但 Word2Vec 给它们的向量完全一样。

GloVe --- 统计全班投票

GloVe(Global Vectors)的思路不同:它统计所有词在整个语料库中是怎么一起出现的

读完整本书后,GloVe 构建了一本"共现字典":

复制代码
        "冰"    "固体"    "液体"
"水"     568     120      340
"石头"   2       310       5

"GloVe 发现了一个规律:如果'水'和'冰'共现 568 次,而'石头'和'冰'才共现 2 次,那'水'和'冰'的关系就更近。"它调整每个词的向量,让向量之间的距离反映这些共现次数。

FastText --- 拼积木学单词

Word2Vec 遇到从未见过的词(比如拼写错误的 "wonderfull")就无计可施------这个词没有向量。

FastText 想了个聪明办法:不按词发名片,按"小积木"(字符 n-gram)发名片

复制代码
"running" = v(<ru) + v(run) + v(unn) + v(nni) + v(nin) + v(ing) + v(ng>)

词的向量 = 所有碎片向量的和。这带来三个好处:

  1. 拼错也不怕:"wonderfull" 和 "wonderful" 大部分碎片是一样的
  2. 学新词很快:包含见过的碎片就能猜出意思
  3. 形态丰富的语言也能处理:土耳其语一个词根能衍生出几百个词,但它们共享大量碎片

第二阶段:上下文词嵌入(2018-2020)

ELMo --- 同一个词,不同脸

ELMo 解决了早期词嵌入最大的问题:一词多义

"bank"在 "river bank"(河岸)和 "bank account"(银行账户)中是完全不同的意思。ELMo 的做法是:同一个词,根据上下文,给出不同的向量

ELMo 像一个读书非常仔细的学生:

  1. 从左到右读一遍:看到"猫坐在_____上",猜后面是什么
  2. 从右到左读一遍:看到"_____坐在猫上",猜前面是什么
  3. 把两遍的结果合起来:综合左右信息,决定"猫"在这个句子里的向量

它是第一个做到"上下文相关"的大规模模型。

BERT --- 超级填空题高手

BERT 和 ELMo 的关键区别在于:它能同时看左边和右边的信息,而不是分开读两遍再合并。

核心训练方法:掩码语言建模(MLM)

复制代码
原句: "今天 [MASK] 真好,我们去 [MASK] 玩吧"
任务: 根据左右两边的词,猜出被遮住的两个词是"天气"和"公园"

BERT 随机把句子中 15% 的词遮住,让模型猜。它做了几十万道的"填空题"后,就变成了一个超级会理解语言的学生。

BERT 的嵌入:每一层都给每个词生成一个向量,我们通常取最后一层的输出作为词的最终嵌入。如果在另一个句子中遇到同一个词,BERT 会给出一个不一样的向量------因为它考虑了上下文。


第三阶段:句子嵌入(2019-至今)

Sentence-BERT --- 一句话的摘要数字

BERT 虽然聪明,但用它比较两个句子的相似度特别慢------1 万个句子需要两两比较 1 亿次,大约 65 小时。

SBERT 想了一个办法:先把每个句子变成一个"摘要名片"(一个向量),然后再比较就快了 。整个流程缩短到约 5 秒,快了超过 4 万倍

它怎么做

复制代码
句子A: "今天天气真好"  →  经过 BERT → 平均所有词的向量 → 句子向量A
句子B: "今天阳光明媚"  →  经过 BERT → 平均所有词的向量 → 句子向量B

然后用余弦相似度比较两个向量------数字越接近,意思越相似。

训练方法------对比学习

  • 正样本:意思相近的句子对("今天天气很好"和"今天阳光明媚")→ 拉近
  • 负样本:意思不同的句子对("今天天气很好"和"股票涨了很多")→ 推开

SentenceTransformers 框架让这个过程变得非常简单:

python 复制代码
from sentence_transformers import SentenceTransformer, util

model = SentenceTransformer('all-MiniLM-L6-v2')

sentences = [
    "The weather is lovely today.",
    "It's so sunny outside!",
    "The cat sits on the mat."
]
embeddings = model.encode(sentences)

cosine_scores = util.cos_sim(embeddings[0], embeddings[1])
# 输出: ~0.66

第四阶段:多语言嵌入(2021-至今)

E5 --- 一个模型学 100 种语言

E5 就像一个会说 100 种语言的翻译官------不管是中文、英文、阿拉伯文还是斯瓦希里语,它都能把它们变成同一种"语言"(向量空间)。

怎么做到的

  1. 先学"世界语":底座 XLM-RoBERTa 已经用 100 种语言训练过,学会了各种语言的基本模式
  2. 做配对游戏:把翻译对拉近("今天天气很好" ↔ "Today the weather is nice"),把无关对推开

经过上亿次训练,E5 学会了跨语言的语义对齐------中文的"猫"和英文的"cat"在向量空间中几乎在同一个位置。

关键创新:在输入前加一个"使用说明"(instruction):

复制代码
查询: "query: 猫吃什么?"    →  生成查询向量
文档: "passage: 猫是肉食动物" →  生成文档向量

这样模型就知道"这个是用来搜索的"vs"这个是用来被搜索的"。

现代多语言嵌入模型对比

模型 团队 特点
Multilingual E5-Large Microsoft/UXLing 开源最强之一,100+ 语言,95% 检索命中率
Qwen3-Embedding (0.6B/4B/8B) 通义千问 MTEB 多语言 No.1(70.58),embedding + reranking 一体
Qwen3-VL-Embedding (2B/8B) 通义千问 文本+图像+视频统一嵌入空间 (2026.01)
Voyage-multilingual-2 Voyage AI 2024 中文检索命中率 97%
Gemini Embedding 2 Google 2026 年推荐为 RAG 生产最优

第五阶段:多模态嵌入(2025-至今)

Qwen3-VL-Embedding --- 文字和图片说同一种语言

以前的嵌入模型只能处理文字。Qwen3-VL-Embedding 把文字、图片、视频全部变成了同一种"语言"。

三个组件

  1. 视觉编码器(眼睛):把图片变成一组数字
  2. 语言模型(大脑):把文字变成一组数字
  3. 连接器(桥梁):把视觉嵌入"翻译"成语言模型能懂的语言

训练方法:对比学习

复制代码
配对1(正): 图片[一只猫的照片] + 文字"一只可爱的橘猫在睡觉" → 拉近
配对2(负): 图片[一只猫的照片] + 文字"一辆红色的汽车"       → 推开

训练完成后,猫的照片和"猫"的文字 → 向量很近,可以实现用文字搜图片、用图片搜视频


技术演进全景

复制代码
时期           模型              核心思想                       能做什么
─────────────────────────────────────────────────────────────────────────────
2013           Word2Vec          用上下文猜词                  词相似度、类比
2014           GloVe             统计全班投票                  更好的类比关系
2016           FastText          拼积木学单词                  处理没见过的新词
                    ↓
2018           ELMo              同一个词,上下文不同→向量不同    解决一词多义
2018           BERT              超级填空题高手                全面理解语言
                    ↓
2019           SBERT             一句话变一张名片              快速比较句子
                    ↓
2022+          E5                100种语言共享同一个向量空间     跨语言搜索
                    ↓
2025+          Qwen3-VL-Embed    文字+图片+视频→统一语言        跨模态搜索

关键演进逻辑

阶段 解决的问题 引入的新能力
静态嵌入 离散符号 → 稠密向量 语义相似度计算
上下文嵌入 一词多义 上下文感知的词表示
句子嵌入 句子级语义比较 固定维度句子向量、快速相似度检索
多语言嵌入 跨语言场景 多语言统一语义空间
多模态嵌入 跨模态检索 文本/图像/视频统一表示

评测:MTEB 基准

衡量嵌入模型好坏,最权威的基准是 MTEB(Massive Text Embedding Benchmark),由 Hugging Face 维护。


总结

从 Word2Vec 给每个词发一张固定"名片",到 ELMo/BERT 让同一个词在不同语境中有不同"脸",到 SBERT 把一句话变成一个向量,到 E5 让 100 种语言共享同一个向量空间,再到 Qwen3-VL 把文字、图片、视频统一到同一种语言------嵌入模型的演进方向非常清晰:

从孤立到关联,从单一到多元,从静态到动态

每一次突破,都让计算机离真正"理解"人类的信息更近了一步。


参考来源

  1. Mikolov et al., 2013 - Word2Vec (arXiv)
  2. Pennington et al., 2014 - GloVe (PDF)
  3. Bojanowski et al., 2016 - FastText (arXiv)
  4. Devlin et al., 2018 - BERT (arXiv)
  5. Reimers & Gurevych, 2019 - Sentence-BERT (arXiv)
  6. Wang & Yang, 2022 - E5 (arXiv)
  7. Qwen3-Embedding (官方 GitHub)
  8. Qwen3-VL-Embedding (官方博客)
  9. SentenceTransformers 官方文档 (sbert.net)
  10. MTEB Leaderboard (Hugging Face)
相关推荐
Zik----3 分钟前
CCswitch-code
人工智能
至乐活着1 小时前
深入解析跳表SkipList:原理、实现与性能优化实战
数据结构·算法·跳表·skiplist·java实现
AI科技星1 小时前
全域谱分析:无穷维超复数信息场分形统一场论 ——自然、量子、金融多重分形第一性原理完整体系(中英双语终稿)
人工智能·机器学习·金融·乖乖数学·全域数学
stormzhangV1 小时前
为什么你的 AI 像智障
人工智能
Jerry2 小时前
LeetCode 383. 赎金信
算法
ai产品老杨2 小时前
H264 H265视频分析常见问题和排查清单
人工智能·算法·音视频
项目经理老王2 小时前
OpenClaw无捆绑安装包,安全纯净版AI助手部署
人工智能·安全
Jerry2 小时前
LeetCode 454. 四数相加 II
算法
梦帮科技2 小时前
GRAVIS v4.0:基于Web的极速套利架构设计与实时数据流实现
前端·人工智能·rust·自动化·区块链·智能合约·数字货币
“码”力全开2 小时前
AI视频分析API性能优化指南
人工智能·性能优化·音视频