1. Noise Contrastive Estimation (NCE)
在大规模数据集上训练语言模型时,计算输出层(例如softmax层)的概率分布需要大量的计算资源,因为需要对整个词汇表进行归一化计算。NCE通过将问题转化为二分类问题,避免了对整个词汇表的归一化,从而显著降低了计算成本。
softmax函数的表达式如下所示:
Softmax(xi)=exi∑j=1nexj \text{Softmax}(x_i) = \frac{e^{x_i}}{\sum_{j=1}^{n}e^{x_j}} Softmax(xi)=∑j=1nexjexi
可以看到,随着样本类别的增多,所需要的指数运算也会增加。
NCE的表达式如下所示:
NCELoss=−1N∑i=1N[logPmodel(xi)Pmodel(xi)+kPn(xi)+∑j=1klogkPn(xij)Pmodel(xij)+kPn(xij)]\text{NCELoss} = -\frac{1}{N}\sum_{i=1}^{N}\left[\log \frac{P_{\text{model}}(x_i)}{P_{\text{model}}(x_i) + kP_n(x_i)} + \sum_{j=1}^{k} \log \frac{kP_n(x_{ij})}{P_{\text{model}}(x_{ij}) + kP_n(x_{ij})}\right] NCELoss=−N1i=1∑N[logPmodel(xi)+kPn(x

本文介绍了NoiseContrastiveEstimation(NCE)和InformationNoise-ContrastiveEstimation(InfoNCE)在大规模数据集上的应用,NCE通过二分类问题降低计算成本,而InfoNCE在自监督学习中用于特征学习,通过最大化正负样本间的互信息学习有效表示。
最低0.47元/天 解锁文章
1644





