the whole neural network (not just the output layer like the NNJM) for each noise sample and thus noise computation is more expensive.
for different epochs, we resampled the negative example for each positive example, so the BNNJM can make use of different negative examples.