论文解读:词向量作为隐式矩阵分解(SGNS)

1. 前言

解读SGNS(skip-gram with negative-sample)的训练方法。

1.1 skip-gram 模型:
利用当前时刻的词,预测它上下文的内容

论文解读:词向量作为隐式矩阵分解(SGNS)
公式:
对于序列 w1, w2, …, wT, Skip-gram最大化平均的log 概率。
论文解读:词向量作为隐式矩阵分解(SGNS)
p(w|w_t) 使用softmax函数:论文解读:词向量作为隐式矩阵分解(SGNS)
这里, W是词汇表中单词的数量。

1.2 Skip-gram + negative sampling:
从上面可以看到,如果直接使用 softmax是不靠谱的, 因为计算量和词汇表的数量W有关,而一般词汇表大小为 10510^510710^7次方。

训练目标希望使用logistic regression来区别出目标词 wow_o 和噪声分布 Pn(w)P_n(w). 并且每个数据样本使用了 k 个负样本(对于小训练集,取5-20, 对于大的数据集可以取 2-5)。
论文解读:词向量作为隐式矩阵分解(SGNS)
此外,负样本采样的概率为各词频的 3/4 次幂,增加低频的采样概率。

2. SGNS

论文解读:词向量作为隐式矩阵分解(SGNS)


参考:

  1. Neural Word Embedding as Implicit Matrix Factorization;
  2. Distributed Representations of Words and Phrases and their Compositionality;
  3. SGNS