2017-10-20 3 views
1

Ich lerne über Word2Vec mit dem TensorFlow-Tutorial. Der Code, den ich für Word2Vec ausführe, stammt ebenfalls aus dem TensorFlow-Lernprogramm: https://github.com/tensorflow/models/blob/master/tutorials/embedding/word2vec_optimized.py. Als ich den Code für 15 Epochen lief, betrug die Testgenauigkeit rund 30%. Als ich für 100 Epochen lief, betrug die Testgenauigkeit etwa 39%. Ich verwende den Text8-Datensatz für das Training und die Fragen-Wörter.txt für die Auswertung.Wie viele Epochen sollte Word2Vec trainiert werden? Was ist ein empfohlener Trainingsdatensatz?

Muss ich für mehr Epochen laufen? Sollte ich einen anderen Datensatz verwenden? Wie kann ich die Testgenauigkeit verbessern?

Antwort

0

Größere Datensätze sind besser; text8 ist sehr, sehr klein - ausreichend, um etwas von der Analogielösungskraft von Wortvektoren zu zeigen, aber nicht gut genug für andere Zwecke.

Weitere Iterationen können dazu beitragen, etwas stärkere Vektoren aus kleineren Datasets herauszuquetschen, aber mit abnehmenden Renditen. (Keine Anzahl von zusätzlichen Iterationen über einen schwachen Datensatz kann die gleichen reichen Zusammenhänge extrahieren, die ein größerer, verschiedenartiger Korpus liefern kann.)

Es gibt eine verwandte text9 aus der gleichen Quelle, die, wenn ich mich richtig erinnere, 10x größer ist. Sie erhalten wahrscheinlich bessere Bewertungsergebnisse, wenn Sie es verwenden, als 10x mehr Iterationen unter text8.

Ich glaube, die 3 Millionen vortrainierten Vektoren, die Google einmal veröffentlicht hat - das GoogleNews Set - wurden auf einen Korpus von 100 Milliarden Wörter im Wert von Nachrichtenartikeln trainiert, aber mit nur 3 Durchgängen.

Beachten Sie, dass es keinen einzigen Standard für Wort-Vektor-Qualität gibt: Die questions-words.txt Analogie-Lösung ist nur eine bequeme Auswertung, aber es ist möglich, dass die besten Wort-Vektoren nicht am besten bei Ihren eigenen domänenspezifischen Analysen sind. Ebenso können Wortvektoren, die auf einer Textdomäne trainiert wurden, wie die GoogleNews aus Nachrichtenartikeln, im Vergleich zu Texten, die besser zu Ihrer Domain passen (wie Forenbeiträge, wissenschaftliche Artikel usw.), die alle unterschiedliche Wörter verwenden, schlechter abschneiden).

Daher ist es oft am besten, einen eigenen Korpus und eine eigene zielspezifische quantitative Auswertung zu verwenden, um die Korpus-/Parameterauswahl anzupassen.

+0

Danke! Ich werde einen größeren Datensatz versuchen. –

+0

Der größere Datensatz hat die Testgenauigkeit erhöht. Danke auch für die Empfehlung, den Datensatz und die Tests dem Thema anzupassen. –

Verwandte Themen