0

gensim での平均化を使用して PV-DM の実装を理解しようとしています。関数train_document_dmdoc2vec.pyの戻り値("errors")train_cbow_pairは、平均化( cbow_mean=1)の場合で、入力ベクトル数( )で除算されていませんcount。この説明によれば、入力ベクトルを平均化する場合、ドキュメント数による除算があるはずです: word2vec パラメータ学習の説明、式 (23)。からのコードは次のtrain_document_dmとおりです。

l1 = np_sum(word_vectors[word2_indexes], axis=0)+np_sum(doctag_vectors[doctag_indexes], axis=0)  
count = len(word2_indexes) + len(doctag_indexes)  
if model.cbow_mean and count > 1:  
    l1 /= count  
neu1e = train_cbow_pair(model, word, word2_indexes, l1, alpha,
                                learn_vectors=False,  learn_hidden=learn_hidden)  
if not model.cbow_mean and count > 1:  
    neu1e /= count  
if learn_doctags:  
    for i in doctag_indexes:  
        doctag_vectors[i] += neu1e * doctag_locks[i]  
if learn_words:  
    for i in word2_indexes:  
        word_vectors[i] += neu1e * word_locks[i]  
4

1 に答える 1