Word2Vec
分类: NLP基础
Word2Vec
定义
Word2Vec 是一种将词映射到低维稠密向量空间的词嵌入方法,通过在大规模语料上训练浅层神经网络,使语义相近的词在向量空间中距离更近,从而捕捉词的分布式语义表示。
数学形式
Skip-gram 目标函数:
J(θ)=−T1t=1∑T−c≤j≤c,j=0∑logP(wt+j∣wt)
P(o∣c)=∑w=1∣V∣exp(uw⊤vc)exp(uo⊤vc)
vc: 中心词 c 的嵌入向量(输入矩阵)
uo: 上下文词 o 的嵌入向量(输出矩阵)
c: 上下文窗口大小
T: 语料库中的词总数
∣V∣: 词表大小
负采样近似(实际训练中使用):
Jneg(θ)=logσ(uo⊤vc)+k=1∑KEwk∼Pn(w)[logσ(−uwk⊤vc)]
K: 负样本数(通常 5-20)
Pn(w)∝f(w)3/4: 负采样分布,对词频取 3/4 次幂
核心要点
两种架构:CBOW(上下文预测中心词)和 Skip-gram(中心词预测上下文),Skip-gram 对低频词效果更好
负采样(Negative Sampling)将 softmax 的 O(∣V∣) 计算简化为 O(K),使大规模训练成为可能
学到的词向量具有线性代数结构,经典例子:vking−vman+vwoman≈vqueen
本质上是在隐式分解词-上下文共现矩阵的 PMI(逐点互信息)矩阵(Levy & Goldberg, 2014)
预训练词向量是下游 NLP 任务的标准特征输入,开启了”预训练+微调”范式的先河
缺点:每个词只有一个静态向量,无法处理一词多义(后被 ELMo、BERT 等上下文嵌入取代)
代表工作
Mikolov et al. (2013a): “Efficient Estimation of Word Representations in Vector Space”,提出 Word2Vec
Mikolov et al. (2013b): “Distributed Representations of Words and Phrases and their Compositionality”,引入负采样
Levy & Goldberg (2014): 从矩阵分解角度解释 Word2Vec 与 PMI 的等价关系
相关概念
GloVe
Language Model
BERT
Tokenization