Siamese LSTM
1.0.0
使用MALSTM模型(Siamese Networks + LSTM具有曼哈顿距离)来检测问题对之间的语义相似性。所使用的培训数据集是原始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