Что такое параметр `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 В статье упоминается использование этого режима в некоторых их экспериментах, такого режима недостаточно для воспроизведения их результатов. (Никто из тех, кого я знаю, не смог воспроизвести эти результаты, и другие комментарии одного из авторов указывают на то, что в оригинальной статье есть некоторые ошибки или упущения в процессе.)

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

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

Другие вопросы по тегам