Word2Vec
·
Word2Vec 是自然语言处理(NLP)史上一个里程碑式的模型,由 Google 的 Tomas Mikolov 团队在 2013 年提出。它的核心贡献是:让计算机学会了通过“上下文”来理解单词的含义,并将其转化为高维稠密向量。
之所以称它为“静态”词向量,是因为在 Word2Vec 中,一个单词对应唯一的向量。无论这个词出现在什么语境下(比如“苹果”是指水果还是公司),它的数学表示都是固定不变的。
1. Word2Vec 的核心思想:分布式假设
Word2Vec 基于一个著名的语言学假说:“一个词的含义是由它周围的词决定的。”
- 例子:
- “我今天吃了一个红色的苹果。”
- “这个甜甜的苹果很好吃。”
- 因为“苹果”经常和“吃”、“红色”、“甜”出现在一起,模型通过大量文本训练后,就会把“苹果”的坐标移动到靠近“吃”和“甜”的位置。
2. 两种训练模式
Word2Vec 主要有两种实现方式,像是一枚硬币的两面:
| 模式 | 全称 | 逻辑 | 适用场景 |
|---|---|---|---|
| CBOW | Continuous Bag of Words | 通过周围的词来预测中间的词。 | 适合小型数据集,训练速度快。 |
| Skip-gram | Continuous Skip-gram | 通过中间的词来预测周围的词。 | 效果更好,尤其对低频词(冷门词)更准确。 |
3. Word2Vec 的神奇特性:向量运算
Word2Vec 最著名的发现是词向量之间存在线性平移关系。这意味着语义逻辑可以转化为加减法:
- 性别关系:Vector("King")−Vector("Man")+Vector("Woman")≈Vector("Queen")Vector("King") - Vector("Man") + Vector("Woman") \approx Vector("Queen")Vector("King")−Vector("Man")+Vector("Woman")≈Vector("Queen")
- 时态关系:Vector("Walking")−Vector("Walk")+Vector("Swimming")≈Vector("Swim")Vector("Walking") - Vector("Walk") + Vector("Swimming") \approx Vector("Swim")Vector("Walking")−Vector("Walk")+Vector("Swimming")≈Vector("Swim")
- 首都关系:Vector("Beijing")−Vector("China")+Vector("Paris")≈Vector("France")Vector("Beijing") - Vector("China") + Vector("Paris") \approx Vector("France")Vector("Beijing")−Vector("China")+Vector("Paris")≈Vector("France")
4. 为什么叫它“静态”词向量?(对比现代模型)
这是理解 Word2Vec 局限性的关键。
-
静态(Word2Vec / GloVe):
在词典里,“苹果”只有一个向量。
- 问题:无法处理多义词。在“苹果手机”和“红富士苹果”里,两者的向量完全一样。
-
动态(BERT / GPT):
模型会根据句子上下文,实时计算出不同的向量。
- 优势:同一个词在不同语境下的坐标是浮动的。
5. 总结:它的历史地位
虽然现在的 LLM(如 GPT-4)使用的是更高级的 Transformer 架构,但 Word2Vec 奠定了以下基础:
- Embedding 层:几乎所有深度学习 NLP 模型的第一层都是 Embedding。
- 空间语义:确立了“语义相似度 = 向量空间距离”的行业标准。
- 预训练思想:先在海量文本上练好词向量,再用到具体任务中。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)