排序算法作为推荐与搜索领域应用最为广泛的和成功的机器学习算法,主要可分为pointwise,pairwise和listwise三种应用形式。我们一般使用的LR, FM, DeepFM, DIN等算法,一般主要指以pointwise的形式使用。
pairwise排序算法
pairwise模型结构
训练时,基于pair对来进行输出。虽然训练时一般为双塔结构,但实际上这两个塔可以理解为share的,实际上就是一个塔,只不过对Xi 和Xj分别forward了两次。
预测时与pointwise模型基本一致,并不需要基于pair来输入。预测时就是把训练时的模型砍了一半来使用。
图1 pairwise模型的训练结构
图2 pairwise模型predict结构
损失函数
一般来说,pairwise的损失函数有这么几种可选的(hinge loss, 交叉熵, 交叉熵+lambda)。
最常用的是hinge loss, 没错!就是svm用的那个hinge loss。
如果使用交叉熵损失函数,那就是ranknet算法。
如果使用交叉熵+lambda那就是lambdarank算法。实际上lambdarank已经属于listwise的范畴。
from: http://blog.csdn.net/pipisorry/article/details/48031035
ref: