Word2Vec 全解析:用词向量建构语言的语义空间

内容纲要

一、引言

我们都知道“苹果”和“香蕉”是水果,“王者荣耀”和“英雄联盟”是游戏,但计算机要理解它们之间的相似性可不容易。TF-IDF 把词当作离散符号,缺乏语义表达能力。而 Word2Vec 则打破了这个局限,它通过将词嵌入向量空间,让词语之间的“语义相似”可以量化比较,成为 NLP 中的一个里程碑。


二、Word2Vec 是什么?

Word2Vec 是由 Google 在 2013 年提出的一种词嵌入(word embedding)技术,基于神经网络,通过上下文学习词的语义分布,使得语义相近的词在向量空间中“靠得更近”。

它有两个主要模型:

  1. CBOW(Continuous Bag of Words)连续词袋模型
    通过上下文预测中心词
    输入:上下文词
    输出:中心词

  2. Skip-gram 跳字模型
    通过中心词预测上下文
    输入:中心词
    输出:上下文词(一个或多个)


三、Word2Vec 如何工作?

以 Skip-gram 为例:

  • 给定一句话:“我 爱 自然 语言 处理”
  • 中心词:“语言”
  • 窗口大小为 2,则训练目标为:
    • 输入“语言”,预测“自然”、“处理”

神经网络的目标是通过大量这样的训练样本,学习每个词对应的向量,使得能准确预测其上下文。

最终输出的每个词是一个低维稠密向量(例如 100 维或 300 维),其中蕴含了丰富的语义信息。


四、Word2Vec 的神奇属性

学出来的词向量可以做“类比计算”:

\text{king} - \text{man} + \text{woman} ≈ \text{queen}

这不是魔法,是 Word2Vec 向量空间的线性结构特性——语义关系可以通过向量代数表达!


五、Python 实现

使用 gensim 库可以快速训练 Word2Vec:

from gensim.models import Word2Vec

sentences = [
    ["我", "爱", "自然", "语言", "处理"],
    ["机器", "学习", "是", "人工智能", "的一部分"],
    ["深度", "学习", "驱动", "了", "AI", "的发展"]
]

model = Word2Vec(sentences, vector_size=100, window=2, min_count=1, sg=1)

# 查看“语言”的词向量
print(model.wv["语言"])

# 查看与“AI”最相似的词
print(model.wv.most_similar("AI"))

六、Word2Vec 与 TF-IDF 的对比

对比点 TF-IDF Word2Vec
表示方式 稀疏向量 稠密向量
是否考虑语义
向量可训练性 静态,基于统计 通过神经网络学习得到
是否能量化相似性 部分(仅通过共现) 是,余弦相似度效果好

七、实际应用场景

  1. 文本相似度计算
    平均词向量 + 余弦相似度,用于问答匹配、搜索召回等。

  2. 情感分析
    使用词向量作为输入特征,增强模型理解能力。

  3. 命名实体识别、文本分类、生成模型输入
    Word2Vec 是传统 NLP 系统的核心组成部分。


八、局限性与发展方向

尽管 Word2Vec 优于 TF-IDF,但它也存在一些问题:

  • 静态词向量:无法根据上下文动态变化,“银行”在“金融银行”和“河岸银行”中无法区分。
  • 未考虑句子结构和语法
  • OOV 问题:未登录词无法处理

这些问题后来被 GloVe、FastText、ELMo 和 BERT 等模型进一步优化和扩展。


九、总结

Word2Vec 构建了语言的“向量空间地图”,使得语义计算成为可能。它不仅在传统 NLP 中有极大价值,也是后续深度模型的奠基石。如今,虽然 BERT 等预训练模型已成主流,但 Word2Vec 依然适合轻量化、可解释性强的场景,仍然是一项值得掌握的基础技术。


引用资料

  1. Mikolov, T., Chen, K., Corrado, G., & Dean, J. (2013). Efficient Estimation of Word Representations in Vector Space. arXiv preprint arXiv:1301.3781.
  2. Gensim 官方文档:https://radimrehurek.com/gensim/models/word2vec.html
  3. Stanford CS224n课程讲义:https://web.stanford.edu/class/cs224n/

Leave a Comment

您的电子邮箱地址不会被公开。 必填项已用*标注

close
arrow_upward