Verwenden von Malstm -Modell (siamesische Netzwerke + LSTM mit Manhattan Distanz) zur Erkennung semantischer Ähnlichkeit zwischen Fragenpaaren. Der verwendete Trainingsdatensatz ist eine Teilmenge des ursprünglichen Quora -Fragepaar -Datensatzes (~ 363K -Paare verwendet).
Es handelt sich um eine Keras -Implementierung, die auf Originalpapier (PDF) und einem hervorragenden mittelgroßen Artikel basiert.
Kaggle's test.csv ist zu groß, daher hatte ich nur die Top-20-Fragen extrahiert und eine Datei namens test-20.csv predict.py .
Sie sollten alle Datendateien in das Verzeichnis ./data einfügen.
$ python3 train.py
Es wird die oben erwähnte test-20.csv -Datei verwendet.
$ python3 predict.py
Ich habe es mit verschiedenen Parametern wie der Anzahl der versteckten Zustände der LSTM -Zelle, der Aktivierungsfunktion der LSTM -Zelle und der wiederholten Anzahl von Epochen ausprobiert. Ich habe Nvidia Tesla P40 GPU X 2 für das Training verwendet, und 10% Daten wurden als Validierungssatz verwendet (Stapelgröße = 1024*2). Infolgedessen habe ich nach 50 Epochen etwa 10 Minuten später etwa 82,29% Genauigkeit erreicht.
Epoch 50/50
363861/363861 [==============================] - 12s 33us/step - loss: 0.1172 - acc: 0.8486 - val_loss: 0.1315 - val_acc: 0.8229
Training time finished.
50 epochs in 601.24