Tensorflow предлагает tf.nn.sampled_softmax_loss
и tf.nn.nce_loss
в качестве методов отрицательной выборки. (Подробнее здесь .)
В примере word2vec на gitub tenorflow используется tf.nn.sampled_softmax_loss
, тогда как на их официальной странице документации используется tf.nn.nce_loss
.
В литературе по встраиванию слов они всегда используют потерю NCE и никогда не выбирают softmax. Есть ли причина, почему это так? Выборочный softmax кажется более очевидным решением для предотвращения применения softmax ко всем классам, поэтому я полагаю, что должна быть веская причина для потери NCE.