NCE Noise Contrastive Estimation与negative sampling负例采样
背景
要解决的问题是, 当label太多, 导致使用传统的softmax 输出结果巨大, 计算不高效, 甚至无法实操的问题.
比如:
- word2vec cbow的负例.
- 或者其他的类似场合: 在一个context= c i c_i ci下, 有一大候选集 L = ( L 1 , L 2 , . . . L j , . . . , L n ) L = (L_1, L_2,...L_j, ..., L_n) L=(L1,L2,...Lj,...,Ln)构成的label集合可供选择. 训练样本中正例只有一个(or若干个), 其他的都为负label.
NCE(Noise Contrastive Estimation)
假设共有 m m m个样本 ( ( l i , c i ) ) ((l_i, c_i)) ((li,ci)), 建模:
P ( l i ∣ c i ) = u θ ( l i , c i ) ∑ i n u θ ( l j , c i ) = u θ ( l i , c i ) Z i P(l_i|c_i) = \frac{u_{\theta}(l_i, c_i)}{\sum_i^n{u_{\theta}(l_j, c_i)}} = \frac{u_{\theta}(l_i, c_i)}{Z_{i}} P(li∣ci)=∑inuθ(lj,ci)uθ(li,ci)<