基于GRU和am-softmax的句子相似度模型 | 附代码实现
背景 细想之下会发现,句子相似度与人脸识别有很多的相似之处。 已有的做法 在我搜索到的资料中,深度学习做句子相似度模型,就只有两种做法:一是输入一对句子,然后输出一个 0/1 标签代表相似程度,也就是视为一个二分类问题,比如 Learning Text Similarity with Siamese Recurrent Networks [1] 中的模型是这样的: ▲ 将句子相似度视为二分类模型 包括今年拍拍贷的“魔镜杯”,也是这种格式。另外一种做法是输入一个三元组“(句子 A,跟 A 相似的句子,跟 A 不相似的句子)”,然后用 triplet loss 的做法解决,比如文章 Applying Deep Learning To Answer Selection: A Study And An Open Task [2] 中的做法。 这两种做法其实也可以看成是一种,本质上是一样的,只不过 loss 和训练方法有所差别。但是,这两种方法却都有一个很严重的问题:负样本采样严重不足,导致效果提升非常慢。 使用场景 我们不妨回顾一下我们使用句子相似度模型的场景。一般来说,我们事先存好了很多 F...


