2017-02-22 65 views
0

Объект Word2Vec в gensim имеет параметр null_word, который не поясняется в документах.Что такое параметр «null_word» в gensim Word2Vec?

класс gensim.models.word2vec.Word2Vec (предложения = нет, размер = 100, альфа = 0,025, окна = 5, min_count = 5, max_vocab_size = нет, образец = 0,001, семян = 1, рабочие = 3 , min_alpha = 0,0001, SG = 0, Hs = 0, отрицательное значение = 5, cbow_mean = 1, hashfxn =, ITER = 5, null_word = 0, trim_rule = нет, sorted_vocab = 1, batch_words = 10000)

Что такое параметр null_word?

Проверка кода на https://github.com/RaRe-Technologies/gensim/blob/develop/gensim/models/word2vec.py#L680, говорится:

if self.null_word: 
     # create null pseudo-word for padding when using concatenative L1 (run-of-words) 
     # this word is only ever input – never predicted – so count, huffman-point, etc doesn't matter 
     word, v = '\0', Vocab(count=1, sample_int=0) 
     v.index = len(self.wv.vocab) 
     self.wv.index2word.append(word) 
     self.wv.vocab[word] = v 

Что такое "concatenative L1"?

ответ

1

null_word используется только при использовании PV-DM с режимом конкатенации - параметры dm=1, dm_concat=1 в инициализации модели.

В этом режиме не по умолчанию, то doctag-вектор и векторы соседних слов в пределах window позиций целевого слова являются сцепленным в очень широкий-входном слой, а не более типичное усреднения.

Такие модели намного больше и медленнее, чем в других режимах. В случае целевых слов в начале или конце текстового примера может быть недостаточно соседних слов для создания этого входного уровня, но для модели требуются значения для этих слотов. Таким образом, null_word по существу используется в качестве дополнения.

В то время как оригинальная бумага Paragraph Vectors, упомянутая в этом режиме в этих экспериментах, этого режима недостаточно для воспроизведения их результатов. (Никто из тех, кого я знаю, не смог воспроизвести эти результаты, и другие комментарии одного из авторов подразумевают, что исходный документ имеет некоторые ошибки или упущения в его процессе.)

Кроме того, я не обнаружил случаи где этот режим дает явное преимущество, чтобы оправдать добавленное время/память. (Это может потребовать очень больших наборов данных или очень длительных тренировочных периодов, чтобы показать какую-либо выгоду.)

Таким образом, вы не должны слишком беспокоиться об этом свойстве модели, если только вы не проводите предварительные эксперименты с этим менее распространенным режимом - в этом случае вы можете просмотреть источник всех мелких подробностей о том, как он используется в качестве дополнения.