Efficient Estimation of Word Representations in Vector Space

作者: Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean 年份: 2013 会议: arXiv (ICLR 2013 Workshop) 分类: NLP基础

论文笔记:Efficient Estimation of Word Representations in Vector Space

元信息

项目内容
机构Google
日期January 2013
链接arXiv

一句话总结

提出 Skip-gram 和 CBOW 两种高效的词向量训练架构,通过 负采样 和 层级Softmax 加速训练,首次在大规模语料上学习出能捕获语义和句法关系的稠密词向量(经典的 king - man + woman ≈ queen)。

核心贡献

两种高效架构: 提出 CBOW(Continuous Bag-of-Words)和 Skip-gram 两种无需隐藏层的浅层神经网络架构,大幅降低计算复杂度

训练加速技术: 引入 层级Softmax(Hierarchical Softmax)和 负采样(Negative Sampling)两种近似训练方法,使得在十亿级语料上训练成为可能

词类比评估范式: 提出词向量类比测试(word analogy task)作为评估标准,揭示了词向量空间中的线性代数结构

规模化验证: 首次在 Google News 等十亿级语料上训练词向量,证明向量维度和训练数据量对质量的关键影响

问题背景

要解决的问题

传统 NLP 系统将词视为离散符号(one-hot 编码),无法捕获词之间的语义关系,且受限于数据稀疏性

需要一种计算高效的方法在超大规模语料上学习高质量的连续词向量表示

现有方法的局限

NNLM(Bengio 2003): 含隐藏层的前馈神经网络语言模型,计算瓶颈在 H×VH \times V 的输出层(HH 为隐藏层大小,VV 为词表大小),训练复杂度 O(N×D×H+H×V)O(N \times D \times H + H \times V) 过高

RNNLM(Mikolov 2010): RNN 语言模型无需指定上下文窗口大小但训练更慢,复杂度 O(H×H+H×V)O(H \times H + H \times V)

LSA / LDA: 浅层统计方法在捕获词间细粒度语义关系方面能力有限

本文的动机

观察到简单模型在大数据上的表现可以超过复杂模型在小数据上的表现,因此设计去掉隐藏层的极简架构,将计算资源集中在从海量数据中学习词表示

方法详解

CBOW(Continuous Bag-of-Words)

输入: 目标词前后各 CC 个上下文词的 one-hot 编码

结构: 所有上下文词的投影向量取平均(或求和),直接连接到输出层

输出: 预测中间的目标词

特点: 上下文词的顺序无关(bag-of-words),训练速度快,适合频繁词

训练复杂度: O(N×D+D×log2(V))O(N \times D + D \times \log_2(V))(使用 Hierarchical Softmax)

Skip-gram

输入: 当前目标词的 one-hot 编码

结构: 目标词经投影层映射为 DD 维向量,直接用于预测上下文

输出: 预测目标词前后窗口内的上下文词

特点: 每个(目标词, 上下文词)对产生一个训练样本,对低频词和小语料效果更好

训练复杂度: O(C×(D+D×log2(V)))O(C \times (D + D \times \log_2(V)))(使用 Hierarchical Softmax)

Hierarchical Softmax(层级Softmax)

用 Huffman树 替代标准 softmax 的 VV 路分类

O(V)O(V) 的输出计算降为 O(log2(V))O(\log_2(V))

高频词离根节点更近,进一步加速

Negative Sampling(负采样)

不计算完整的 softmax 归一化,而是将问题转化为二分类:区分真实上下文词(正样本)和随机采样的噪声词(负样本)

每个训练样本仅需更新 kk 个负样本(小数据集 k=5-20k=5\text{-}20,大数据集 k=2-5k=2\text{-}5

负样本按 P(w)3/4P(w)^{3/4} 的 unigram 分布采样(实验中 3/4 幂次效果最佳)

Subsampling of Frequent Words

高频词(如 “the”, “a”)提供的信息量极少,对其进行下采样

wiw_i 被丢弃的概率为:P(discard)=1t/f(wi)P(\text{discard}) = 1 - \sqrt{t / f(w_i)},其中 f(wi)f(w_i) 为词频,tt 为阈值(通常 10510^{-5}

加速训练并提升低频词的表示质量

关键公式

公式1: Softmax 目标函数

p(wOwI)=exp(vwOvwI)w=1Vexp(vwvwI)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})}

含义: 标准 softmax 计算目标词 wOw_O 在给定输入词 wIw_I 条件下的概率

符号说明:

  • vwIv_{w_I}: 输入词的词向量(投影矩阵 WW 的行)
  • vwOv'_{w_O}: 输出词的上下文向量(输出矩阵 WW' 的行)
  • VV: 词表大小

公式2: Skip-gram 目标函数

1Tt=1Tcjc,j0logp(wt+jwt)\frac{1}{T} \sum_{t=1}^{T} \sum_{-c \leq j \leq c, \, j \neq 0} \log p(w_{t+j} | w_t)

含义: 最大化在给定中心词 wtw_t 时预测其窗口内上下文词 wt+jw_{t+j} 的对数概率

符号说明:

  • TT: 语料中的总词数
  • cc: 上下文窗口半径

公式3: Hierarchical Softmax

p(wwI)=j=1L(w)1σ([ ⁣[n(w,j+1)=ch(n(w,j))] ⁣]vn(w,j)vwI)p(w | w_I) = \prod_{j=1}^{L(w)-1} \sigma\left([\![n(w,j+1) = \text{ch}(n(w,j))]\!] \cdot v'_{n(w,j)}{}^\top v_{w_I}\right)

含义: 沿 Huffman 树从根到叶节点的路径,逐层做二分类的概率之积

符号说明:

  • L(w)L(w): 从根到词 ww 叶节点的路径长度
  • n(w,j)n(w,j): 路径上第 jj 个节点
  • ch(n)\text{ch}(n): 节点 nn 的左子节点
  • σ()\sigma(\cdot): sigmoid 函数
  • [ ⁣[] ⁣][\![\cdot]\!]: Iverson 括号,左子为 +1,右子为 -1

公式4: Negative Sampling 目标

logσ(vwOvwI)+i=1kEwiPn(w)[logσ(vwivwI)]\log \sigma(v'_{w_O}{}^\top v_{w_I}) + \sum_{i=1}^{k} \mathbb{E}_{w_i \sim P_n(w)} \left[\log \sigma(-v'_{w_i}{}^\top v_{w_I})\right]

含义: 最大化正样本对的相似度,同时最小化 kk 个负样本对的相似度

符号说明:

  • kk: 负样本数量
  • Pn(w)=U(w)3/4/ZP_n(w) = U(w)^{3/4} / Z: 噪声分布(unigram 的 3/4 次幂)
  • σ()\sigma(\cdot): sigmoid 函数

公式5: 词类比的向量运算

v(king)v(man)+v(woman)v(queen)\vec{v}(\text{king}) - \vec{v}(\text{man}) + \vec{v}(\text{woman}) \approx \vec{v}(\text{queen})

含义: 词向量空间中的线性关系可以编码语义类比,通过向量算术求解

求解方式: argmaxwcos(v(w),v(king)v(man)+v(woman))\arg\max_{w} \cos(\vec{v}(w), \vec{v}(\text{king}) - \vec{v}(\text{man}) + \vec{v}(\text{woman}))

实验结果

词类比任务(Word Analogy Task)

评估集包含 8,869 个语义类比10,675 个句法类比 问题

语义类比示例:Athens : Greece = Oslo : Norway

句法类比示例:apparent : apparently = rapid : rapidly

主要结论

模型维度训练数据语义准确率句法准确率
CBOW300783M words15.5%53.1%
Skip-gram300783M words50.0%55.9%
Skip-gram3001.6B words56.7%63.0%
Skip-gram10006B words66.1%65.1%

Skip-gram 在语义类比上远超 CBOW(50.0% vs 15.5%),但 CBOW 训练速度更快

向量维度和训练数据量是关键因素: 从 300 维 / 783M 到 1000 维 / 6B,语义准确率从 50.0% 提升到 66.1%

训练时间:在单机 CPU 上,1.6B 语料的 Skip-gram 训练约 3 天(2012 年硬件)

局限性

无法处理多义词: 每个词仅有一个向量表示,无法区分 “bank”(银行 vs 河岸)

上下文窗口固定: 只能捕获局部共现关系,无法建模长距离依赖

形态学忽略: 无法利用词的内部结构(前缀、后缀),对未登录词(OOV)无能为力——后续 FastText 解决了此问题

评估方式单一: 词类比任务不能全面反映词向量质量,且对向量空间的各向同性有隐含假设

频率偏差: 高频词的向量质量远高于低频词,subsampling 只是部分缓解

相关概念

分布式语义假设: 一个词的含义由其上下文决定(“You shall know a word by the company it keeps” — Firth, 1957)

GloVe: 基于全局共现矩阵的词向量方法,与 Word2Vec 互为补充

FastText: Mikolov 等人后续工作,引入子词(subword)信息解决 OOV 问题

ELMo: 基于双向 LSTM 的上下文化词向量,解决多义词问题

BERT: 基于 Transformer 的预训练语言模型,彻底取代静态词向量

笔记创建时间: 2026-04-03