Siamese LSTM
1.0.0
MalstMモデル(Siamese Networks + LSTM with Manhattan距離)を使用して、質問ペア間のセマンティックな類似性を検出します。使用されるトレーニングデータセットは、元のQuora質問ペアデータセットのサブセット(使用される〜363kペア)です。
これは、元の論文(PDF)と優れた中程度の記事に基づいたKerasの実装です。
Kaggleのtest.csvが大きすぎるため、上位20の質問のみを抽出し、 test-20.csvというファイルを作成しpredict.pyた。
すべてのデータファイルを./dataディレクトリに配置する必要があります。
$ python3 train.py
上記のtest-20.csvファイルを使用します。
$ python3 predict.py
LSTMセルの隠された状態の数、LSTMセルの活性化関数、およびエポックの繰り返しカウントなど、さまざまなパラメーターを試しました。トレーニングにNvidia Tesla P40 GPU X 2を使用しました。10%のデータを検証セットとして使用しました(バッチサイズ= 1024*2)。その結果、約10分後に50エポックの後、約82.29%の精度に達しました。
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