Utilisation du modèle Malstm (réseaux siamois + LSTM avec distance de Manhattan) pour détecter la similitude sémantique entre les paires de questions. L'ensemble de données de formation utilisé est un sous-ensemble de l'ensemble de données de paires de questions Quora d'origine (paires ~ 363k utilisées).
Il s'agit de l'implémentation de Keras basée sur le papier original (PDF) et un excellent article de médium.
test.csv de Kaggle est trop grand, donc je n'avais extrait que les 20 premières questions et créé un fichier appelé test-20.csv et il est utilisé dans predict.py .
Vous devez mettre tous les fichiers de données sur le répertoire ./data .
$ python3 train.py
Il utilise le fichier test-20.csv mentionné ci-dessus.
$ python3 predict.py
J'ai essayé avec divers paramètres tels que le nombre d'états cachés de la cellule LSTM, la fonction d'activation de la cellule LSTM et le nombre répété d'époches. J'ai utilisé le GPU NVIDIA Tesla P40 X 2 pour la formation et 10% de données ont été utilisées comme ensemble de validation (taille du lot = 1024 * 2). En conséquence, j'ai atteint une précision d'environ 82,29% après 50 époques environ 10 minutes plus tard.
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