Negative Sampling
分类: NLP基础
Negative Sampling
定义
负采样(Negative Sampling)是 Word2Vec 中为避免计算完整 softmax 归一化而提出的近似训练方法。对于每个正样本(目标词-上下文词对),随机采样 个噪声词作为负样本,将多分类问题转化为 个二分类问题,使训练复杂度从 降至 。
数学形式
Skip-gram + Negative Sampling 的目标函数:
: 输入词(中心词)的嵌入
: 正样本(真正的上下文词)的嵌入
: 负样本的嵌入
: 噪声分布(词频的 3/4 次方,使低频词被采到的概率略高于按频率采样)
核心要点
计算效率的质变:完整 softmax 需要对词汇表中所有 个词计算内积和归一化;负采样只需计算 个内积( 通常取 5-20),训练速度提升数个数量级
隐式矩阵分解:Levy & Goldberg (2014) 证明 SGNS 实际上在分解 shifted PMI 矩阵:,建立了预测方法和计数方法之间的理论联系
噪声分布的设计:采用 而非均匀分布或原始频率分布,是一个经验性但非常有效的选择,平衡了高频词和低频词的采样概率
对比学习的先驱:负采样的 “拉近正样本、推远负样本” 思想是现代对比学习(SimCLR、MoCo、CLIP)的直接前身
采样数 的影响:小数据集上 效果好,大数据集上 即可。 过大会使模型过度关注区分常见负样本而忽略语义结构
代表工作
Mikolov et al. (2013): Distributed Representations of Words and Phrases and their Compositionality
Levy & Goldberg (2014): Neural Word Embedding as Implicit Matrix Factorization