本文解读的是Tomas Mikolov等人于2013年发表的开创性论文《Efficient Estimation of Word Representations in Vector Space》,该论文提出了Word2Vec模型,首次实现了高效、大规模的词向量学习,将词语表示从稀疏的one-hot编码转变为稠密的分布式向量表示。Word2Vec不仅是自然语言处理的里程碑,更是从传统NLP到现代大语言模型演进的起点——它证明了语义可以通过向量空间中的几何关系来表达,为后续的Seq2Seq、Transformer乃至GPT系列奠定了基础。


语言理解的根本挑战

问题一:词语表示的离散性困境

在传统NLP中,词语通常用one-hot编码表示。对于一个包含 $V$ 个词的词表,每个词被表示为一个 $V$ 维向量,只有对应位置为1,其余为0。

这种表示方法存在三个根本问题:

  • 维度灾难:词表规模通常在万到百万级别,导致向量维度极高
  • 稀疏性:每个向量只有一个非零元素,绝大多数信息为0
  • 语义缺失:任意两个词的向量正交,无法表达语义相似性

例如,“king"和"queen"虽然语义相近,但在one-hot表示下:

$$ \text{sim}(\text{king}, \text{queen}) = \text{king}^\top \cdot \text{queen} = 0 $$

向量的内积为0,完全无法捕捉它们的语义关联。

问题二:分布式假设与向量空间

语言学中的分布式假设(Distributional Hypothesis)指出:“一个词的含义由其上下文决定”(You shall know a word by the company it keeps)。这一假设为词向量学习提供了理论基础。

如果我们能够将词映射到一个连续的向量空间,使得语义相似的词在空间中距离相近,那么:

  • 词之间的语义关系可以通过向量运算表达
  • 模型可以泛化到未见过的词组合
  • 下游任务可以利用预学习的语义知识

问题是:如何高效地学习这样的词向量?

问题三:计算效率的瓶颈

在Word2Vec之前,已有一些词向量学习方法(如神经网络语言模型NNLM),但它们面临严重的计算瓶颈:

$$ \text{时间复杂度} = O(V \times H + H \times H) \times E \times T $$

其中 $V$ 是词表大小,$H$ 是隐藏层维度,$E$ 是训练轮数,$T$ 是语料大小。当 $V$ 达到百万级别时,Softmax输出层的计算成为不可接受的瓶颈。

Word2Vec的核心贡献在于:通过简化模型架构和引入高效训练技巧,将词向量学习的规模提升了几个数量级


Word2Vec的核心机制

CBOW:从上下文预测中心词

**Continuous Bag-of-Words(CBOW)**模型通过上下文词预测中心词。给定上下文窗口 $c$,目标是最大化:

$$ P(w_t | w_{t-c}, \ldots, w_{t-1}, w_{t+1}, \ldots, w_{t+c}) $$

CBOW的计算过程:

  1. 输入层:将上下文词的one-hot编码转换为词向量
  2. 投影层:对上下文词向量取平均

$$ h = \frac{1}{2c} \sum_{j=-c, j \neq 0}^{c} v_{w_{t+j}} $$

  1. 输出层:计算中心词的概率分布

$$ P(w_t | \text{context}) = \frac{\exp(v’{w_t}^\top h)}{\sum{w=1}^{V} \exp(v’_w^\top h)} $$

其中 $v_w$ 是词 $w$ 的输入向量,$v’_w$ 是输出向量。

Skip-gram:从中心词预测上下文

Skip-gram模型与CBOW相反,通过中心词预测上下文词。给定中心词 $w_t$,目标是最大化:

$$ P(w_{t-c}, \ldots, w_{t+c} | w_t) = \prod_{j=-c, j \neq 0}^{c} P(w_{t+j} | w_t) $$

每个上下文词的预测概率为:

$$ P(w_o | w_i) = \frac{\exp(v’{w_o}^\top v{w_i})}{\sum_{w=1}^{V} \exp(v’w^\top v{w_i})} $$

Skip-gram的训练目标是最大化对数似然:

$$ \mathcal{L} = \sum_{t=1}^{T} \sum_{j=-c, j \neq 0}^{c} \log P(w_{t+j} | w_t) $$

Skip-gram在处理稀有词和小规模语料时表现更好,因为每个词有多次作为中心词被训练的机会。

高效训练技巧

Word2Vec的突破性在于引入了两种高效训练技巧,将Softmax的 $O(V)$ 复杂度大幅降低。

**负采样(Negative Sampling)**将多分类问题转化为二分类问题。对于每个正样本(中心词-上下文词对),随机采样 $k$ 个负样本(中心词-随机词对)。

目标函数变为:

$$ \log \sigma(v’{w_o}^\top v{w_i}) + \sum_{j=1}^{k} \mathbb{E}{w_j \sim P_n(w)} [\log \sigma(-v’{w_j}^\top v_{w_i})] $$

其中 $\sigma(x) = \frac{1}{1+e^{-x}}$ 是sigmoid函数,$P_n(w)$ 是负样本分布(通常采用单词频率的3/4次方)。

负采样将复杂度从 $O(V)$ 降至 $O(k)$,其中 $k$ 通常取5-20。

**层次Softmax(Hierarchical Softmax)**使用Huffman树结构,将Softmax的 $O(V)$ 复杂度降至 $O(\log V)$。每个词对应树中的一条路径,从根节点到叶节点的路径决定了词的概率。

路径上每个节点的二分类概率为:

$$ P(n, \text{left}) = \sigma(v’n^\top v{w_i}) $$

词的概率是路径上所有节点概率的乘积:

$$ P(w | w_i) = \prod_{n \in \text{path}(w)} P(n, \text{direction}) $$


词向量的神奇性质

语义线性结构

Word2Vec学到的词向量展现出惊人的线性结构。最著名的例子是:

$$ \vec{v}{king} - \vec{v}{man} + \vec{v}{woman} \approx \vec{v}{queen} $$

这意味着"king"和"man"之间的关系(性别差异)与"queen"和"woman"之间的关系相似,且这种关系可以通过向量运算捕捉。

类似的关系还包括:

  • 国家-首都:$\vec{v}{Paris} - \vec{v}{France} + \vec{v}{Italy} \approx \vec{v}{Rome}$
  • 动词时态:$\vec{v}{walking} - \vec{v}{walk} + \vec{v}{swim} \approx \vec{v}{swimming}$
  • 比较级:$\vec{v}{bigger} - \vec{v}{big} + \vec{v}{small} \approx \vec{v}{smaller}$

向量空间的几何意义

词向量空间具有丰富的几何结构。语义相似的词在空间中形成聚类,语义关系表现为向量间的方向。

余弦相似度是衡量词语相似性的常用指标:

$$ \text{sim}(w_1, w_2) = \frac{v_{w_1} \cdot v_{w_2}}{|v_{w_1}| \cdot |v_{w_2}|} $$

通过最近邻搜索,可以找到语义最相近的词:

查询词 最近邻词
king queen, prince, monarch, ruler
computer software, hardware, laptop, PC
beautiful gorgeous, pretty, lovely, stunning

迁移学习的先驱

Word2Vec开创了NLP中预训练-微调范式的先河。在大规模语料上预训练的词向量可以直接用于下游任务,显著提升性能。

这一思想后来发展为:

  • ELMo(2018):上下文相关的词向量
  • BERT(2018):双向Transformer预训练
  • GPT系列(2018-2023):单向Transformer生成式预训练

评估与应用

内在评估:词语类比任务

Google发布的词语类比数据集包含约20,000个类比问题,分为语义和句法两类。评估指标是类比问题的准确率。

模型 语义准确率 句法准确率 总体准确率
CBOW (300维) 24% 64% 45%
Skip-gram (300维) 55% 59% 57%
Skip-gram (1000维) 66% 65% 66%

外在评估:下游任务性能

Word2Vec作为特征输入,在多个NLP任务上带来显著提升:

任务 基线 +Word2Vec 提升
情感分析 80.5% 86.3% +5.8%
命名实体识别 84.2% 88.7% +4.5%
句法分析 89.1% 91.4% +2.3%

训练效率

Word2Vec的训练效率是其广泛采用的关键因素:

语料规模 词表大小 训练时间 每秒处理词数
10亿词 100万 1天 ~100万
60亿词 300万 3天 ~230万

使用单机多线程即可在合理时间内处理大规模语料。


Word2Vec的历史地位

承上启下的里程碑

Word2Vec在NLP发展史上具有承上启下的地位:

承上

  • 继承了分布式假设的语言学理论
  • 延续了神经网络语言模型的思路
  • 改进了LSA/LDA等矩阵分解方法的效率

启下

  • 为深度学习在NLP中的应用奠定基础
  • 开创了大规模预训练范式
  • 启发了后续的ELMo、BERT、GPT系列

局限性与改进方向

Word2Vec也存在一些局限性:

  1. 静态表示:每个词只有一个向量,无法处理多义词(如"bank"既可表示银行也可表示河岸)
  2. 缺乏上下文:词向量不随上下文变化,限制了表达能力
  3. 子词问题:无法处理未登录词(OOV)和形态学变化

这些局限性推动了后续研究:

  • FastText(2016):引入子词信息,处理形态学变化
  • ELMo(2018):上下文相关的动态词向量
  • Transformer(2017):自注意力机制,捕捉长距离依赖

阅读研究论文的时间线计划

本文在技术时间线中的位置

【当前位置】Word2Vec(2013) → Seq2Seq(2014) → Attention(2015) → Transformer(2017) 
→ GPT-1(2018) → GPT-2(2019) → Scaling Laws(2020) → GPT-3(2020) → InstructGPT(2022) → ChatGPT

前置知识

在阅读本文之前,建议了解:

  • 信息论基础(熵、交叉熵、互信息)
  • 神经网络基础(前向传播、反向传播、梯度下降)
  • 概率语言模型(N-gram、统计语言模型)

后续论文推荐

完成本文后,建议按顺序阅读:

  1. 【ChatGPT时刻02】Seq2Seq(下一篇):序列到序列学习框架,是机器翻译和对话系统的基础
  2. 【ChatGPT时刻03】注意力机制:解决长距离依赖问题的关键突破
  3. 【ChatGPT时刻04】Transformer:现代大语言模型的架构基础

完整技术路线图

词表示革命                    序列建模突破                  大模型时代
    │                            │                           │
Word2Vec ────────► Seq2Seq ─────────► Transformer ──────────► GPT-3
(2013)            (2014)              (2017)                  (2020)
    │                │                    │                      │
    └── 词向量        └── 编码器-解码器     └── 自注意力           └── 涌现能力
        嵌入层            Attention初现          位置编码              上下文学习
                                               并行计算              指令遵循(RLHF)

参考文献

  • Mikolov, T., Chen, K., Corrado, G., & Dean, J. (2013). Efficient Estimation of Word Representations in Vector Space. arXiv preprint arXiv:1301.3781.
  • Mikolov, T., Sutskever, I., Chen, K., Corrado, G., & Dean, J. (2013). Distributed Representations of Words and Phrases and their Compositionality. NeurIPS.
  • Goldberg, Y., & Levy, O. (2014). word2vec Explained: Deriving Mikolov et al.’s Negative-Sampling Word-Embedding Method. arXiv preprint arXiv:1402.3722.
  • Levy, O., & Goldberg, Y. (2014). Neural Word Embedding as Implicit Matrix Factorization. NeurIPS.
  • Pennington, J., Socher, R., & Manning, C. D. (2014). GloVe: Global Vectors for Word Representation. EMNLP.