代码在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变小的公式可以用。
原文:https://www.cnblogs.com/datascience1/p/11095371.html