我对噪声对比估计的理解是,我们从词嵌入(负样本)中采样一些向量,然后计算每个向量的对数似然。然后我们想要最大化目标词的概率和每个负样本词的对数似然之间的差异(所以如果我对此是正确的,我们想要优化损失函数,使其尽可能接近1 尽可能)。
我的问题是这样的:
num_classes
函数参数的目的是什么nce_loss
?我最好的猜测是传入类的数量,以便 Tensorflow 知道我们从中抽取负样本的分布的大小,但这可能没有意义,因为我们只能从变量本身推断分布的大小. 否则,我想不出为什么我们需要知道可能的类总数的原因,特别是如果语言模型只输出 k + 1 个预测(目标词的负样本大小 + 1)。