From c93eb0b647ec9de7cfcb43c74c37f295f2944821 Mon Sep 17 00:00:00 2001 From: Tal Ifargan <65530510+TalIfargan@users.noreply.github.com> Date: Thu, 3 Nov 2022 15:49:57 +0200 Subject: [PATCH] Fixed bug in loss computation for Word2Vec with hierarchical softmax (#3397) * fixed loss computation for sg, hs * fixed loss computation for cbow, hs --- gensim/models/word2vec_inner.pyx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gensim/models/word2vec_inner.pyx b/gensim/models/word2vec_inner.pyx index ffdc908b5c..3692e3e5b8 100755 --- a/gensim/models/word2vec_inner.pyx +++ b/gensim/models/word2vec_inner.pyx @@ -126,7 +126,7 @@ cdef void w2v_fast_sentence_sg_hs( if _compute_loss == 1: sgn = (-1)**word_code[b] # ch function: 0-> 1, 1 -> -1 - lprob = -1*sgn*f_dot + lprob = sgn*f_dot if lprob <= -MAX_EXP or lprob >= MAX_EXP: continue lprob = LOG_TABLE[((lprob + MAX_EXP) * (EXP_TABLE_SIZE / MAX_EXP / 2))] @@ -326,7 +326,7 @@ cdef void w2v_fast_sentence_cbow_hs( if _compute_loss == 1: sgn = (-1)**word_code[b] # ch function: 0-> 1, 1 -> -1 - lprob = -1*sgn*f_dot + lprob = sgn*f_dot if lprob <= -MAX_EXP or lprob >= MAX_EXP: continue lprob = LOG_TABLE[((lprob + MAX_EXP) * (EXP_TABLE_SIZE / MAX_EXP / 2))]