代碼在https://github.com/THTBSE/siamese-lstm-network/blob/master/siamese_lstm.py里。這篇博客https://blog.csdn.net/thriving_fcl/article/details/73730552 有解釋該模型。模型論文:https://www.aclweb.org/anthology/W16-1617。
對於contrastive loss的理解:
如果用的相似度(相似度取值范圍-1到1):那么如果文本相似,那么相似度要盡可能大,即盡可能接近1。上述csdn鏈接里y=1的loss公式為1/4*(1-相似度)^2,相似度要接近1,loss才會小。如果文本不相似,那么相似度盡可能小。上述csdn鏈接里y=0的loss公式為相似度^2。那么相似度要小,即在0附近(正負都可以),那么loss才會小。
如果用的距離,那么如果文本相似,那么距離要小,所以諸如距離^2可以作為loss公式可用,距離小才會讓loss小。如果文本不相似,那么距離要大能讓loss變小的公式可以用。