2017-02-22 10 views
0

Das Word2Vec Objekt in gensim hat einen null_word Parameter, der nicht in der Dokumentation erklärt wird.Was ist der `Null_word` Parameter in Gensim Word2Vec?

Klasse gensim.models.word2vec.Word2Vec (Sätze = keine, size = 100, alpha = 0,025, Fenster = 5, min_count = 5, max_vocab_size = keine, Probe = 0,001, Samen = 1, Arbeiter = 3 , min_alpha = 0,0001, sg = 0, hs = 0 negativ = 5, cbow_mean = 1, hashfxn =, iter = 5, null_word = 0, trim_rule = None, sorted_vocab = 1, batch_words = 10000)

Was wird für den Parameter verwendet?

den Code https://github.com/RaRe-Technologies/gensim/blob/develop/gensim/models/word2vec.py#L680 prüfen, heißt es:

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 

Was ist "konkatenative L1"?

Antwort

1

Die null_word wird nur verwendet, wenn der PV-DM mit Verkettungsmodus - Parameter dm=1, dm_concat=1 bei Modellinitialisierung verwendet wird.

In diesem Nicht-Standardmodus, der doctag-Vektor und die Vektoren der benachbarten Wörter innerhalb window Positionen eines Zielwort sind verketteten in einen sehr weiten Eingangs-Schicht anstelle der typischeren Mittelung.

Solche Modelle sind viel größer und langsamer als andere Modi. Bei Zielwörtern, die sich am Anfang oder Ende eines Textbeispiels befinden, sind möglicherweise nicht genügend benachbarte Wörter zum Erstellen dieses Eingabe-Layers vorhanden. Das Modell benötigt jedoch Werte für diese Slots. So wird im Wesentlichen als Padding verwendet.

Während die ursprüngliche Paragraph Vectors Papier erwähnt, die Verwendung dieses Modus in einigen ihrer Experimente, ist dieser Modus nicht ausreichend, um ihre Ergebnisse zu reproduzieren. (Niemand, von dem ich weiß, war in der Lage, diese Ergebnisse zu reproduzieren, und andere Kommentare von einem der Autoren implizieren, dass das Originalpapier einen Fehler oder eine Unterlassung in seinem Prozess hat.)

Zusätzlich habe ich keine Fälle gefunden wo dieser Modus einen klaren Vorteil bietet, um die zusätzliche Zeit/Speicher zu rechtfertigen. (Es kann sehr große Datensätze oder sehr lange Trainingszeiten erfordern, um einen Vorteil zu zeigen.)

Sie sollten sich also nicht allzu sehr um diese Modelleigenschaft kümmern, es sei denn, Sie führen fortgeschrittene Experimente mit diesem weniger gebräuchlichen Modus durch - In diesem Fall können Sie die Quelle auf alle feinen Details überprüfen, wie sie als Padding verwendet werden.

Verwandte Themen