Что такое параметр `null_word` в gensim Word2Vec?
Объект Word2Vec в gensim
имеет null_word
параметр, который не описан в документации.
класс gensim.models.word2vec.Word2Vec(предложения = нет, размер = 100, альфа = 0,025, окно =5, min_count=5, max_vocab_size= нет, образец = 0,001, семя = 1, рабочие =3, min_alpha=0,0001, сГ = 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, он заявляет:
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
Что такое "конкатенация L1"?
1 ответ
null_word
используется только при использовании PV-DM в режиме конкатенации - параметры dm=1, dm_concat=1
в инициализации модели.
В этом режиме по умолчанию, doctag-вектор и векторы соседних слов в пределах window
позиции целевого слова объединяются в очень широкий входной слой, а не в более типичное усреднение.
Такие модели намного крупнее и медленнее других режимов. В случае целевых слов в начале или в конце текстового примера, возможно, не хватит соседних слов для создания этого входного слоя - но модель требует значений для этих слотов. Итак null_word
в основном используется в качестве дополнения.
Пока оригинал Paragraph Vectors
В статье упоминается использование этого режима в некоторых их экспериментах, такого режима недостаточно для воспроизведения их результатов. (Никто из тех, кого я знаю, не смог воспроизвести эти результаты, и другие комментарии одного из авторов указывают на то, что в оригинальной статье есть некоторые ошибки или упущения в процессе.)
Кроме того, я не нашел случаев, когда этот режим дает явную выгоду, чтобы оправдать добавленное время / память. (Это может потребовать очень большие наборы данных или очень длительное время обучения, чтобы показать какую-либо выгоду.)
Таким образом, вам не следует слишком беспокоиться об этом свойстве модели, если вы не проделываете расширенные эксперименты с этим менее распространенным режимом - в этом случае вы можете просмотреть источник всех мелких деталей о том, как он используется в качестве заполнения.