搜索排序算法
排序模型LTR(L2R,learning to rank) Pointwise:对排序列表中的每一项,直接学习一个值,比如可以是预估点击率(Predict CTR,pCTR),然后按照预估值从大到小排序即可。常见模型有LR、FFM、GBDT、XGBoost。GBDT是LTR中应用较多的非线性模型。Additive Groves(简称AG)是在随机森林基础上构建的模型,加入Bagging算法,使得模型的泛化能力更强。AG由很多Grove 组合(bagging)而成,每一个Grove由多棵树组成,在训练时每棵树的拟合目标是真实值与其它树预测结果之和的残差。在训练的过程中达到了指定数目的树时,重新训练的树会替代掉以前的树。谷歌提出的FTRL方法能够在线对线性模型进行更新。 Pairwise:两两学习两个项的先后关系。常见模型有GBRank、RankNet、LambdaMart、RankSVM。LambdaMart是Lambda和MART(Multiple Additive Regression Tree,GBDT的别名)的结合,是GBDT的一种针对排序问题的改进。在计算梯度时LambdaMart重新计算了Lambda,重新赋予了排序梯度的物理意义,它利用sigmoid来计算各pair的排序概率,使用交叉熵作为损失函数来判断拟合程度,并将排序离线指标(如MAP、NDCG)考虑到梯度中去。