Hi,
I find the most important difference may be:
pos_u, pos_v, neg_v = self.op.generate_batch(self.windows_size, self.batch_size, self.neg_sample_num)

and
neg_score = torch.bmm(neg_embed_v, embed_u.unsqueeze(2)).squeeze()

right?